This adds support for the EFI System Resource Table. This involves
reserving the table in Xen and adding a new hypercall so that dom0 can
access it.
Changes since v2:
- Use the esrt_desc global variable instead of passing it as a function
parameter
- Add an overflow check for the ESRT size
- Create a new memory region for the ESRT to avoid wasting memory
- Add hypercall to retrieve the ESRT
- Add file local variables used during development
- Remove extra consts
- Follow the EFI naming convention in struct definitions
- Move struct definitions to header file
- Fix inverted logic in overflow check
- Remove BUILD_BUG_ON()s
- Avoid overriding attribute of memory descriptor containing ESRT
Changes since v1:
- Remove the esrt_status enum
- Use EFI types
- Fix style nits
- Remove an unused overflow check
Demi Marie Obenour (4):
Grab the EFI System Resource Table and check it
Add a dedicated memory region for the ESRT
Add a new hypercall to get the ESRT
Add emacs file-local variables
xen/arch/arm/efi/efi-boot.h | 1 +
xen/arch/x86/efi/efi-boot.h | 67 +++++++++++++++++++++++++--------
xen/arch/x86/include/asm/e820.h | 2 +-
xen/common/efi/boot.c | 65 ++++++++++++++++++++++++++++++--
xen/common/efi/efi.h | 20 ++++++++++
xen/common/efi/runtime.c | 27 ++++++++++++-
xen/include/efi/efiapi.h | 3 ++
xen/include/public/platform.h | 7 ++++
8 files changed, 172 insertions(+), 20 deletions(-)
--
Sincerely,
Demi Marie Obenour (she/her/hers)
Invisible Things Lab