vboot_reference is introducing a new field (ctx) to store the current boot mode in crrev/c/2944250 (ctx->bootmode), which will be leveraged in both vboot flow and elog_add_boot_reason in coreboot. In current steps of deciding bootmode, a function vb2ex_ec_trusted is required. This function checks gpio EC_IN_RW pin and will return 'trusted' only if EC is not in RW. Therefore, we need to implement similar utilities in coreboot. We will deprecate vb2ex_ec_trusted and use the flag, VB2_CONTEXT_EC_TRUSTED, in vboot, vb2api_fw_phase1 and set that flag in coreboot, verstage_main. Also add a help function get_ec_is_trusted which needed to be implemented per mainboard. BUG=b:177196147, b:181931817 BRANCH=none TEST=Test on trogdor if manual recovery works Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: I479c8f80e45cc524ba87db4293d19b29bdfa2192 Reviewed-on: https://review.coreboot.org/c/coreboot/+/57048 Reviewed-by: Yu-Ping Wu <yupingso@google.com> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
36 lines
790 B
C
36 lines
790 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
|
|
#include <boot/coreboot_tables.h>
|
|
#include <gpio.h>
|
|
#include <vendorcode/google/chromeos/chromeos.h>
|
|
|
|
void fill_lb_gpios(struct lb_gpios *gpios)
|
|
{
|
|
/* TBD(twarren@nvidia.com): Any analogs for these on Foster-FFD? */
|
|
struct lb_gpio chromeos_gpios[] = {
|
|
/* TODO: Power: active low / high depending on board id */
|
|
{GPIO(X5), ACTIVE_LOW, -1, "power"},
|
|
|
|
/* TODO: Reset: active low (output) */
|
|
{GPIO(I5), ACTIVE_LOW, -1, "reset"},
|
|
};
|
|
lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));
|
|
}
|
|
|
|
int get_recovery_mode_switch(void)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
int get_write_protect_state(void)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
int get_ec_is_trusted(void)
|
|
{
|
|
/* Do not have a Chrome EC involved in entering recovery mode;
|
|
Always return trusted. */
|
|
return 1;
|
|
}
|