Skip to content

x86_64 EFI runtime service support

Huang, Ying lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest4 patches 3 repliesIn review

v5 from the cover letter

- Remove the duplicated code between efi_32.c and efi_64.c.

- Rename lin2win<x> to efi_call<x>.

- Make EFI time runtime service default to off.

- Use different bootloader signature for EFI32 and EFI64, so that kernel can know whether underlaying EFI firmware is 64-bit or 32-bit.

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4x86_64 EFI runtime service support: EFI basic runtime service supportarch/x86/kernel/Makefile_64 arch/x86/kernel/efi.c arch/x86/kernel/efi_64.c +6 more+836 -30 replies
2/4x86_64 EFI runtime service support: EFI runtime servicesarch/x86/kernel/reboot_64.c arch/x86/kernel/time_64.c include/asm-x86/emergency-restart.h +3 more+107 -653 replies
3/4x86_64 EFI runtime service support: document for EFI runtime servicesDocumentation/x86_64/boot-options.txt Documentation/x86_64/uefi.txt+19 -10 replies
4/4x86_64 EFI runtime service support: remove duplicated code from efi_32.carch/x86/kernel/Makefile_32 arch/x86/kernel/e820_32.c arch/x86/kernel/efi_32.c +2 more+42 -4430 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/4 -v5] x86_64 EFI runtime service support

Following patchset adds EFI/UEFI (Unified Extensible Firmware Interface) runtime services support to x86_64 architecture.

The patchset have been tested against 2.6.24-rc1 kernel on Intel platforms with 64-bit EFI1.10 and UEFI2.0 firmware. Because the duplicated code between efi_32.c and efi_64.c is removed, the patchset is also tested on Intel platform with 32-bit EFI firmware.

v5:

- Remove the duplicated code between efi_32.c and efi_64.c.

- Rename lin2win<x> to efi_call<x>.

- Make EFI time runtime service default to off.

- Use different bootloader signature for EFI32 and EFI64, so that kernel can know whether underlaying EFI firmware is 64-bit or 32-bit.

v4:

- EFI boot parameters are extended for 64-bit EFI in a 32-bit EFI compatible way.

- Add EFI runtime services document.

v3:

- Remove E820_RUNTIME_CODE, the EFI memory map is used to deal with EFI runtime code area.

- The method used to make EFI runtime code area executable is change:

a. Before page allocation is usable, the PMD of direct mapping is
changed temporarily before and after each EFI call.

b. After page allocation is usable, change_page_attr_addr is used to
change corresponding page attribute.

- Use fixmap to map EFI memory mapped IO memory area to make kexec workable.

- Add a kernel command line option "noefi" to make it possible to turn off EFI runtime services support.

- Function pointers are used for EFI time runtime service.

- EFI reboot runtime service is embedded into the framework of reboot_type.

- A kernel command line option "noefi_time" is added to make it possible to fall back to CMOS based implementation.

v2:

- The EFI callwrapper is re-implemented in assembler.

Best Regards,
Huang Ying