Attention is currently required from: Arthur Heymans, Julius Werner, Jérémy Compostella, Kapil Porwal, Nico Huber.
Subrata Banik has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/81960?usp=email )
Change subject: arch/x86: Enable long mode entry into payload for x86_64 support ......................................................................
Patch Set 2:
(1 comment)
File src/arch/x86/boot.c:
https://review.coreboot.org/c/coreboot/+/81960/comment/5e384d9e_15591bd4 : PS1, Line 25: if (CONFIG(PAYLOAD_X86_64_SUPPORT)) {
Would it be possible to make it an offset? Then we could have a 32-bit entry point followed by a 64-bit one, and a coreboot that knows the new ABI could skip the first and jump directly to the new entry point. This would allow the most compatibility between coreboot and payloads, as we could say the 64-bit entry point is optional on both ends (except for X86S, ofc.).
I guess the complexity of such a 32-bit entry point, that switches to long mode, would depend a lot on the expectations on page tables in the new ABI.
I guess a minimal expectation of at least 4G identity mapped is reasonable. Iirc UPL does that too. I like the idea of multiple entry points over a CBFS attribute as it's indeed the best way to be remain compatible. Linux already has exactly this btw. Question remains on how to achieve this? Have an expectation on the namespace in the ELF file which cbfstool can pick up? .text._entry64?
can we review CB:81964 that adds the payload cbfs attribute for 64-bit. Then this CL has now updated to fetch the cbfs attribute rather reading any static Kconfig.