mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-28 07:30:26 +09:00
efi_loader: exit status for efi_reset_system_init
efi_reset_system_init provides the architecture or board specific initialization of the EFI subsystem. Errors should be caught and signalled by a return code. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
098a6cdd1c
commit
22c793e6a2
@ -654,9 +654,9 @@ void __efi_runtime EFIAPI efi_reset_system(
|
||||
while (1) { }
|
||||
}
|
||||
|
||||
void efi_reset_system_init(void)
|
||||
efi_status_t efi_reset_system_init(void)
|
||||
{
|
||||
efi_add_runtime_mmio(&rstcr, sizeof(*rstcr));
|
||||
return efi_add_runtime_mmio(&rstcr, sizeof(*rstcr));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -82,9 +82,9 @@ void __efi_runtime EFIAPI efi_reset_system(
|
||||
while (1) { }
|
||||
}
|
||||
|
||||
void efi_reset_system_init(void)
|
||||
efi_status_t efi_reset_system_init(void)
|
||||
{
|
||||
efi_add_runtime_mmio(&wdog_regs, sizeof(*wdog_regs));
|
||||
return efi_add_runtime_mmio(&wdog_regs, sizeof(*wdog_regs));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -350,7 +350,7 @@ static inline int guidcmp(const efi_guid_t *g1, const efi_guid_t *g2)
|
||||
|
||||
/* Call this with mmio_ptr as the _pointer_ to a pointer to an MMIO region
|
||||
* to make it available at runtime */
|
||||
void efi_add_runtime_mmio(void *mmio_ptr, u64 len);
|
||||
efi_status_t efi_add_runtime_mmio(void *mmio_ptr, u64 len);
|
||||
|
||||
/* Boards may provide the functions below to implement RTS functionality */
|
||||
|
||||
@ -358,7 +358,9 @@ void __efi_runtime EFIAPI efi_reset_system(
|
||||
enum efi_reset_type reset_type,
|
||||
efi_status_t reset_status,
|
||||
unsigned long data_size, void *reset_data);
|
||||
void efi_reset_system_init(void);
|
||||
|
||||
/* Architecture specific initialization of the EFI subsystem */
|
||||
efi_status_t efi_reset_system_init(void);
|
||||
|
||||
efi_status_t __efi_runtime EFIAPI efi_get_time(
|
||||
struct efi_time *time,
|
||||
@ -392,7 +394,10 @@ void *efi_bootmgr_load(struct efi_device_path **device_path,
|
||||
/* Without CONFIG_EFI_LOADER we don't have a runtime section, stub it out */
|
||||
#define __efi_runtime_data
|
||||
#define __efi_runtime
|
||||
static inline void efi_add_runtime_mmio(void *mmio_ptr, u64 len) { }
|
||||
static inline efi_status_t efi_add_runtime_mmio(void *mmio_ptr, u64 len)
|
||||
{
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/* No loader configured, stub out EFI_ENTRY */
|
||||
static inline void efi_restore_gd(void) { }
|
||||
|
@ -134,8 +134,9 @@ void __weak __efi_runtime EFIAPI efi_reset_system(
|
||||
while (1) { }
|
||||
}
|
||||
|
||||
void __weak efi_reset_system_init(void)
|
||||
efi_status_t __weak efi_reset_system_init(void)
|
||||
{
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
efi_status_t __weak __efi_runtime EFIAPI efi_get_time(
|
||||
@ -332,18 +333,26 @@ static efi_status_t EFIAPI efi_set_virtual_address_map(
|
||||
return EFI_EXIT(EFI_INVALID_PARAMETER);
|
||||
}
|
||||
|
||||
void efi_add_runtime_mmio(void *mmio_ptr, u64 len)
|
||||
efi_status_t efi_add_runtime_mmio(void *mmio_ptr, u64 len)
|
||||
{
|
||||
struct efi_runtime_mmio_list *newmmio;
|
||||
efi_status_t ret;
|
||||
|
||||
u64 pages = (len + EFI_PAGE_MASK) >> EFI_PAGE_SHIFT;
|
||||
efi_add_memory_map(*(uintptr_t *)mmio_ptr, pages, EFI_MMAP_IO, false);
|
||||
ret = efi_add_memory_map(*(uintptr_t *)mmio_ptr, pages, EFI_MMAP_IO,
|
||||
false);
|
||||
if (ret != EFI_SUCCESS)
|
||||
return ret;
|
||||
|
||||
newmmio = calloc(1, sizeof(*newmmio));
|
||||
if (!newmmio)
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
newmmio->ptr = mmio_ptr;
|
||||
newmmio->paddr = *(uintptr_t *)mmio_ptr;
|
||||
newmmio->len = len;
|
||||
list_add_tail(&newmmio->link, &efi_runtime_mmio);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user