Attention is currently required from: Angel Pons, Kyösti Mälkki, Patrick Rudolph. Julius Werner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/59008 )
Change subject: mb/google,samsung: Drop init_bootmode_straps() ......................................................................
Patch Set 4:
(1 comment)
File src/mainboard/google/beltino/chromeos.c:
https://review.coreboot.org/c/coreboot/+/59008/comment/64b86745_2f135080 PS3, Line 16: !get_recovery_mode_switch(), "presence"},
Well get_recovery_mode_switch() is sampled src/security/vboot/vboot_logic. […]
Oh, sorry, I didn't read closely enough, I though this said "recovery". "presence" is actually a different thing, and that one is resampled at runtime and still used by depthcharge today. So there, having the GPIO_REC_MODE in here is actually important.
On Chromeboxes like Beltino, the recovery button has two separate functions -- one is that when you hold it down during boot it enters recovery mode, and another is that for certain security-critical decisions (like enabling developer mode) we require the user to press it as a physical presence signal to prove user intent (because we don't trust the USB keyboard not to get hacked). On some platforms, we use a different button (e.g. power) for this presence signal. That's why "recovery", "power" and "presence" are all logically separate things in lb_gpio, although often the same physical GPIO may implement more than one of these logical functions.
Not all boards have a "presence" in their tables, only those without trusted built-in keyboards. That's why you may not have seen it on most newer boards. Also I think we took a different route to approach the same problem on some of the newer Chromeboxes, but the ones that have a "presence" should definitely keep it.