[U-Boot] efi_loader: detaching runtime
Heinrich Schuchardt
xypron.glpk at gmx.de
Thu Jun 20 21:59:12 UTC 2019
Hello Alex,
currently we have two code sections in U-Boot:
* __efi_runtime/__efi_runtime_data (mapped to EFI_RUNTIME_SERVICES_CODE)
* all other code (mapped to EFI_LOADER_DATA by add_u_boot_and_runtime())
All code and data that is not marked as __efi_runtime or
__efi_runtime_data lives in a memory area that the EFI application may
reuse after ExitBootServices().
Code that is marked as __efi_runtime is relocated at SetVirtualMemoryMap().
I wonder in which section the relocation code should live.
It cannot be __efi_runtime or it will mess up itself while relocating.
It cannot be in EFI_LOADER_DATA or it may be overwritten after
ExitBootServices().
If this reasoning is right wouldn't we need a third code section living
in EFI_RUNTIME_SERVICES_CODE but which is excluded from the relocation
during SetVirtualMemoryMap()?
Another option of cause would be to put the whole U-Boot code into
EFI_RUNTIME_SERVICES_CODE which will incur a loss of less than 1 MiB for
the operating system.
Best regards
Heinrich
More information about the U-Boot
mailing list