Attention is currently required from: Arthur Heymans, Tim Wawrzynczak. Nico Huber has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/62576 )
Change subject: libpayload: Parse the ACPI RSDP table entry ......................................................................
Patch Set 6:
(1 comment)
File payloads/libpayload/libc/coreboot.c:
https://review.coreboot.org/c/coreboot/+/62576/comment/b69eb207_29ec7f2e PS6, Line 271: info->acpi_rsdp = cb_unpack64(cb_acpi_rsdp->rsdp_pointer);
Technically shouldn't there be a virt_to_phys() call after unpacking?
We decided at some point that it's easier to only store physical addresses in sysinfo. It's not beautiful but everything else we tried before degraded at some point ;) The basic problem is payloads like FILO that shift the whole segments and relocate themself this way. The payload copies itself to the new offset, so all global, "virtual" pointers that point inside the payload stay valid, but all that point outside the payload would have to be manually adjusted. It's just easier to not have global pointers (or at least not early on) that point outside the payload.