Aaron Durbin via coreboot <[email protected]> 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 -- [email protected]
>  To unsubscribe send an email to [email protected]
>
> _______________________________________________
> coreboot mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
>

-- 
==============
Arthur Heymans
_______________________________________________
coreboot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to