Hi Julius,

On 6.04.2023 02:26, Julius Werner wrote:
> Yeah, we moved the point where the recovery reason gets cleared to the
> payload a while ago, because otherwise it got lost when the platform
> decides to do extra reboots. For example, some Intel SoCs do CSE sync
> in ramstage, and sometimes when they do that they need to do an extra
> reboot. When we used to clear the recovery reason in verstage, that
> extra reboot after that point meant we weren't in recovery mode
> anymore when we finally reached the payload.

Exactly, the reboots are the main problem when having recovery clear in 
verstage.

> 
> I don't mind renaming vb2_clear_recovery() to vb2api_clear_recovery()
> and making it available in the public API. Then you can either add
> code somewhere to the end of coreboot to call it (but with a Kconfig
> that excludes ChromeOS) or link your payload to vboot and call it from
> there (which might be useful if your payload also has situations where
> it may need to do an extra reboot). Happy to review a patch to vboot
> if you want to send one.
> 
> In general though, I think you really need payload or OS integration
> if you want to have a useful recovery mode. Recovery mode usually
> means something is actually broken that needs to be fixed (e.g. RW
> partition corrupted from a bad update), and coreboot alone can't fix
> it. So we can clear the recovery condition wherever it works best, but
> you still need to implement the part that will actually fix the system
> somewhere.
> 

Payload and OS integration is one thing. What I still didn't figure out is how
to tell vboot to check if RW partition is valid? Imagine the platform is in
recovery mode and I have flashed the RW with correctly signed image. vboot will
not attempt to boot from RW, because of the recovery reason being non-zero. Thus
the only way I see is to clear the recovery reason. How it is solved on ChromeOS
systems after updating with correct RW firmware? Is there any flag (in vboot
shared data/workbuf) to tell vboot to attempt RW check despite recovery?

Best regards,
-- 
Michał Żygowski
Firmware Engineer
GPG: 6B5BA214D21FCEB2
https://3mdeb.com | @3mdeb_com

Attachment: OpenPGP_0x6B5BA214D21FCEB2.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

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

Reply via email to