mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-17 14:38:58 +00:00
efi: Split out table-listing code into a new file
This code is used with EFI_LOADER but is also useful (with some modifications) for the EFI app and payload. Move it into a shared file. Show the address of the table so it can be examined if needed. Also show the table name as unknown if necessary. Our list of GUIDs is fairly small. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
30c9646eff
commit
041840eeeb
4 changed files with 37 additions and 6 deletions
|
@ -63,7 +63,7 @@ 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_CMD_EFIDEBUG) += efidebug.o
|
||||
obj-$(CONFIG_CMD_EFIDEBUG) += efidebug.o efi_common.o
|
||||
obj-$(CONFIG_CMD_EFICONFIG) += eficonfig.o
|
||||
ifdef CONFIG_CMD_EFICONFIG
|
||||
ifdef CONFIG_EFI_MM_COMM_TEE
|
||||
|
|
26
cmd/efi_common.c
Normal file
26
cmd/efi_common.c
Normal file
|
@ -0,0 +1,26 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Common code for EFI commands
|
||||
*
|
||||
* Copyright 2023 Google LLC
|
||||
* Written by Simon Glass <sjg@chromium.org>
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <efi.h>
|
||||
#include <efi_api.h>
|
||||
#include <uuid.h>
|
||||
|
||||
void efi_show_tables(struct efi_system_table *systab)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < systab->nr_tables; i++) {
|
||||
struct efi_configuration_table *tab = &systab->tables[i];
|
||||
char guid_str[37];
|
||||
|
||||
uuid_bin_to_str(tab->guid.b, guid_str, 1);
|
||||
printf("%p %pUl %s\n", tab->table, guid_str,
|
||||
uuid_guid_get_str(tab->guid.b) ?: "(unknown)");
|
||||
}
|
||||
}
|
|
@ -649,11 +649,7 @@ static int do_efi_show_memmap(struct cmd_tbl *cmdtp, int flag,
|
|||
static int do_efi_show_tables(struct cmd_tbl *cmdtp, int flag,
|
||||
int argc, char *const argv[])
|
||||
{
|
||||
efi_uintn_t i;
|
||||
|
||||
for (i = 0; i < systab.nr_tables; ++i)
|
||||
printf("%pUl (%pUs)\n",
|
||||
&systab.tables[i].guid, &systab.tables[i].guid);
|
||||
efi_show_tables(&systab);
|
||||
|
||||
return CMD_RET_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -648,4 +648,13 @@ int efi_call_exit_boot_services(void);
|
|||
int efi_get_mmap(struct efi_mem_desc **descp, int *sizep, uint *keyp,
|
||||
int *desc_sizep, uint *versionp);
|
||||
|
||||
/**
|
||||
* efi_show_tables() - Show a list of available tables
|
||||
*
|
||||
* Shows the address, GUID (and name where known) for each table
|
||||
*
|
||||
* @systab: System table containing the list of tables
|
||||
*/
|
||||
void efi_show_tables(struct efi_system_table *systab);
|
||||
|
||||
#endif /* _LINUX_EFI_H */
|
||||
|
|
Loading…
Add table
Reference in a new issue