Hi Heinrich, On Mon, 18 Oct 2021 at 11:15, Heinrich Schuchardt <xypron.g...@gmx.de> wrote: > > On 9/25/21 2:30 AM, Simon Glass wrote: > > It is useful to see some basic EFI info with the command as it forms part > > of the information about a board. > > > > Add a hook for this and show the table address as a start. > > > > While here, fix an invalid cast in setup_efi_info(). Note that this > > function is using a data structure defined by Linux so we cannot change > > it. Also note that ulong is used since this is the standard in U-Boot > > (>6k uses), despite there being quite a bit of the more verbose uintptr_t > > (930 uses). > > > > Signed-off-by: Simon Glass <s...@chromium.org> > > --- > > > > Changes in v2: > > - Update commit message to mention why the data structure is like it is > > - Update commit message to mention why ulong is used > > > > arch/x86/cpu/efi/payload.c | 13 +++++++++++-- > > arch/x86/include/asm/efi.h | 7 +++++++ > > arch/x86/lib/Makefile | 1 + > > arch/x86/lib/bdinfo.c | 22 ++++++++++++++++++++++ > > 4 files changed, 41 insertions(+), 2 deletions(-) > > create mode 100644 arch/x86/lib/bdinfo.c > > > > diff --git a/arch/x86/cpu/efi/payload.c b/arch/x86/cpu/efi/payload.c > > index 9a73b768e9b..3a9f7d72868 100644 > > --- a/arch/x86/cpu/efi/payload.c > > +++ b/arch/x86/cpu/efi/payload.c > > @@ -280,15 +280,24 @@ void setup_efi_info(struct efi_info *efi_info) > > } > > efi_info->efi_memdesc_size = map->desc_size; > > efi_info->efi_memdesc_version = map->version; > > - efi_info->efi_memmap = (u32)(map->desc); > > + efi_info->efi_memmap = (ulong)(map->desc); > > efi_info->efi_memmap_size = size - sizeof(struct efi_entry_memmap); > > > > #ifdef CONFIG_EFI_STUB_64BIT > > efi_info->efi_systab_hi = table->sys_table >> 32; > > - efi_info->efi_memmap_hi = (u64)(u32)(map->desc) >> 32; > > + efi_info->efi_memmap_hi = (u64)(ulong)map->desc >> 32; > > signature = EFI64_LOADER_SIGNATURE; > > #else > > signature = EFI32_LOADER_SIGNATURE; > > #endif > > memcpy(&efi_info->efi_loader_signature, signature, 4); > > } > > + > > +void efi_show_bdinfo(void) > > +{ > > + struct efi_entry_systable *table = NULL; > > + int size, ret; > > + > > + ret = efi_info_get(EFIET_SYS_TABLE, (void **)&table, &size); > > + bdinfo_print_num_l("efi_table", (ulong)table); > > Some properties of the UEFI API depend on the UEFI API version > (EFI_SYSTEM_TABLE.FirmwareRevision)
OK I will add a patch. > > The revision of the EFI_FILE_PROTOCOL may also be relevant for U-Boot. > > Maybe you want to add this information in a later patch. This is tricky because the protocol version is no-longer available once the payload has loaded. [..] Regards, Simon