Attention is currently required from: Nick Vaccaro, Vladimir Serbinenko, Yu-Ping Wu.
Julius Werner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/81505?usp=email )
Change subject: Support loading legacy stage ......................................................................
Patch Set 2:
(1 comment)
Patchset:
PS2: Sorry, but I don't think it's worth adding this extra complexity to coreboot, because your underlying goal isn't really achievable in practice. The RO/RW interface is fundamentally not stable, and broken by dozens of changes every year — in ways that are often non-obvious and entirely platform-specific. For example any change to the CAR memory layout that shifts the position of some persistent buffers (like CB:79288), or any change to the format of any of these persistent buffers (vboot, TPM logs, CBFS and FMAP cache, etc.) will break it.
You may have experimentally determined all the incompatibilities that currently exist to the Volteer RO for the moment, but more are going to be added in the future again, and what you did for Volteer will not automatically work for other boards that released at a different point in the past either. If we were really going to try to add compatibility options for all (or at least many) old ChromeOS boards we'd just be playing whack-a-mole forever and adding mountains of extra backwards-compatibility cruft to all parts of coreboot, and it still wouldn't work reliably anyway (and constantly break with hard crashes or worse whenever we miss an issue).
The only way vboot's RO/RW mechanism is intended to work is that you cut a branch when you release the RO, and then you only ever release RW updates from that branch, and you only carefully cherry-pick individual patches where you've confirmed that they don't interfere with the RO/RW boundary to that branch. That's how we use it in ChromeOS, and our branches are public so if anyone wants to build new custom coreboot RW images that work with our existing released RO images, they are welcome to do that by basing them off that branch. If there's sufficient interest we could even try to maintain matching branches for each device upstream, or try to cut regular coreboot "LTS" branches that we then try to target with our Chromebook releases or something like that. But trying to make ToT compatible with every old release at once is futile, I think.