Aaron Durbin via coreboot coreboot@coreboot.org writes:
That's the same thing as effectively providing a register ABI between the stages passing information to it. I'm not sure EBDA is necessarily bad in practice. It's typically reserved. What specific issues are you concerned with EBDA?
EBDA typically also holds the RSDP. SeaBIOS sometimes relocates the RSDP when it needs more place. Rewriting the RSDP during S3 resume can (and did in the past) overwrite the RSDP and break S3.
I found that passing cbmem_top via the function argument option (on stack on x86, in registers on arm, aarch64, x86_64) of the program loader could be an universal method of handing off the cbmem_top pointer. With very little code at the start of ramstages only one cbmem_top implementation is needed for all arch during those stages.
See some working POC on arm, x86, x86_64 here: https://review.coreboot.org/c/coreboot/+/36143/ https://review.coreboot.org/c/coreboot/+/36144 https://review.coreboot.org/c/coreboot/+/36145/
Any thoughts?
Arthur Heymans _______________________________________________ coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org
coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org