mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
efi: add EFI_SYSTEM_TABLE_POINTER for debug
Add EFI_SYSTEM_TABLE_POINTER structure for remote debugger to locate the address of EFI_SYSTEM_TABLE. This feature is described in UEFI SPEC version 2.10. Section 18.4.2. The implementation ensures support for hardware-assisted debugging and provides a standardized mechanism for debuggers to discover the EFI system table. Cc: Peter Robinson <pbrobinson@gmail.com> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Tested-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de> # change memset(systab_pointer, 0 ...) -> systab_pointer->crc32 = 0; Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
committed by
Ilias Apalodimas
parent
46a564d689
commit
aaf7be96c2
@@ -259,6 +259,22 @@ struct efi_capsule_result_variable_header {
|
||||
efi_status_t capsule_status;
|
||||
} __packed;
|
||||
|
||||
/**
|
||||
* struct efi_system_table_pointer - struct to store the pointer of system
|
||||
* table.
|
||||
* @signature: The signature of this struct.
|
||||
* @efi_system_table_base: The physical address of System Table.
|
||||
* @crc32: CRC32 checksum
|
||||
*
|
||||
* This struct is design for hardware debugger to search through memory to
|
||||
* get the address of EFI System Table.
|
||||
*/
|
||||
struct efi_system_table_pointer {
|
||||
u64 signature;
|
||||
efi_physical_addr_t efi_system_table_base;
|
||||
u32 crc32;
|
||||
};
|
||||
|
||||
struct efi_memory_range {
|
||||
efi_physical_addr_t address;
|
||||
u64 length;
|
||||
|
||||
@@ -643,6 +643,8 @@ efi_status_t efi_tcg2_measure_dtb(void *dtb);
|
||||
efi_status_t efi_root_node_register(void);
|
||||
/* Called by bootefi to initialize runtime */
|
||||
efi_status_t efi_initialize_system_table(void);
|
||||
/* Called by bootefi to initialize debug */
|
||||
efi_status_t efi_initialize_system_table_pointer(void);
|
||||
/* efi_runtime_detach() - detach unimplemented runtime functions */
|
||||
void efi_runtime_detach(void);
|
||||
/* efi_convert_pointer() - convert pointer to virtual address */
|
||||
|
||||
Reference in New Issue
Block a user