Myles Watson schrieb:
Yes. I thought we were going to do something like
cbfs_call("normal"); //totally made up.
What we already do is storing coreboot_ram in CBFS.
Which would look in cbfs for the normal image, decompress it if necessary, and call it.
The first stage is pre-raminit, so we can't decompress or copy it - it must be XIP.
What you're doing makes the normal image work again, but doesn't put it into CBFS.
Ron was working on some support to allow XIP stages in CBFS (uncompressed, but registered in there), but that requires more work. I won't try to hack the build system anymore before non-CBFS is gone: separating the earlier coreboot stages into CBFS would require two different build code paths for that part again, and slowly, that's too much hassle for me. I'll revisit pushing the pre-raminit stage into CBFS after I don't have to care about non-CBFS anymore.
By the way, one idea to solve the XIP execution might be to use %cs to allow running the stage from a semi-arbitrary memory location (by setting %cs in a way that addresses in code and ROM layout match again). That could already be looked into now.
Patrick