mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
efi: Support showing tables
Add a command (for the app and payload) to display the tables provided by EFI. Note that for the payload the tables should always be present, so an error message is unnecessary and would bloat the code. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
041840eeeb
commit
1d32eee4fa
3 changed files with 53 additions and 2 deletions
|
@ -62,7 +62,7 @@ obj-$(CONFIG_CMD_EXTENSION) += extension_board.o
|
|||
obj-$(CONFIG_CMD_ECHO) += echo.o
|
||||
obj-$(CONFIG_ENV_IS_IN_EEPROM) += eeprom.o
|
||||
obj-$(CONFIG_CMD_EEPROM) += eeprom.o
|
||||
obj-$(CONFIG_EFI) += efi.o
|
||||
obj-$(CONFIG_EFI) += efi.o efi_common.o
|
||||
obj-$(CONFIG_CMD_EFIDEBUG) += efidebug.o efi_common.o
|
||||
obj-$(CONFIG_CMD_EFICONFIG) += eficonfig.o
|
||||
ifdef CONFIG_CMD_EFICONFIG
|
||||
|
|
31
cmd/efi.c
31
cmd/efi.c
|
@ -7,10 +7,12 @@
|
|||
#include <common.h>
|
||||
#include <command.h>
|
||||
#include <efi.h>
|
||||
#include <efi_api.h>
|
||||
#include <errno.h>
|
||||
#include <log.h>
|
||||
#include <malloc.h>
|
||||
#include <sort.h>
|
||||
#include <uuid.h>
|
||||
#include <asm/global_data.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
@ -273,8 +275,34 @@ done:
|
|||
return ret ? CMD_RET_FAILURE : 0;
|
||||
}
|
||||
|
||||
static int do_efi_tables(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||
char *const argv[])
|
||||
{
|
||||
struct efi_system_table *systab;
|
||||
|
||||
if (IS_ENABLED(CONFIG_EFI_APP)) {
|
||||
systab = efi_get_sys_table();
|
||||
if (!systab) {
|
||||
printf("Cannot read system table\n");
|
||||
return CMD_RET_FAILURE;
|
||||
}
|
||||
} else {
|
||||
int size;
|
||||
int ret;
|
||||
|
||||
ret = efi_info_get(EFIET_SYS_TABLE, (void **)&systab, &size);
|
||||
if (ret) /* this should not happen */
|
||||
return CMD_RET_FAILURE;
|
||||
}
|
||||
|
||||
efi_show_tables(systab);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct cmd_tbl efi_commands[] = {
|
||||
U_BOOT_CMD_MKENT(mem, 1, 1, do_efi_mem, "", ""),
|
||||
U_BOOT_CMD_MKENT(tables, 1, 1, do_efi_tables, "", ""),
|
||||
};
|
||||
|
||||
static int do_efi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
||||
|
@ -298,5 +326,6 @@ static int do_efi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
|||
U_BOOT_CMD(
|
||||
efi, 3, 1, do_efi,
|
||||
"EFI access",
|
||||
"mem [all] Dump memory information [include boot services]"
|
||||
"mem [all] Dump memory information [include boot services]\n"
|
||||
"tables Dump tables"
|
||||
);
|
||||
|
|
|
@ -10,6 +10,7 @@ Synopsis
|
|||
::
|
||||
|
||||
efi mem [all]
|
||||
efi tables
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
@ -54,6 +55,14 @@ Attributes
|
|||
Shows a code for memory attributes. The key for this is shown below the
|
||||
table.
|
||||
|
||||
efi tables
|
||||
~~~~~~~~~~
|
||||
|
||||
This shows a list of the EFI tables provided in the system table. These use
|
||||
GUIDs so it is not possible in general to show the name of a table. But some
|
||||
effort is made to provide a useful table, where the GUID is known by U-Boot.
|
||||
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
|
@ -195,3 +204,16 @@ Example
|
|||
f: uncached, write-coalescing, write-through, write-back
|
||||
rf: uncached, write-coalescing, write-through, write-back, needs runtime mapping
|
||||
1: uncached
|
||||
|
||||
|
||||
=> efi tables
|
||||
000000001f8edf98 ee4e5898-3914-4259-9d6e-dc7bd79403cf EFI_LZMA_COMPRESSED
|
||||
000000001ff2ace0 05ad34ba-6f02-4214-952e-4da0398e2bb9 EFI_DXE_SERVICES
|
||||
000000001f8ea018 7739f24c-93d7-11d4-9a3a-0090273fc14d EFI_HOB_LIST
|
||||
000000001ff2bac0 4c19049f-4137-4dd3-9c10-8b97a83ffdfa EFI_MEMORY_TYPE
|
||||
000000001ff2cb10 49152e77-1ada-4764-b7a2-7afefed95e8b (unknown)
|
||||
000000001f9ac018 060cc026-4c0d-4dda-8f41-595fef00a502 EFI_MEM_STATUS_CODE_REC
|
||||
000000001f9ab000 eb9d2d31-2d88-11d3-9a16-0090273fc14d SMBIOS table
|
||||
000000001fb7e000 eb9d2d30-2d88-11d3-9a16-0090273fc14d EFI_GUID_EFI_ACPI1
|
||||
000000001fb7e014 8868e871-e4f1-11d3-bc22-0080c73c8881 ACPI table
|
||||
000000001e654018 dcfa911d-26eb-469f-a220-38b7dc461220 (unknown)
|
||||
|
|
Loading…
Reference in a new issue