Reland "vboot_logic: Set VB2_CONTEXT_EC_TRUSTED in verstage_main"
This reverts commit adb393bdd6cd6734fa2672bd174aca4588a68016. This relands commit 6260bf712a836762b18d80082505e981e040f4bc. Reason for revert: The original CL did not handle some devices correctly. With the fixes: * commit 36721a4 (mb/google/brya: Add GPIO_IN_RW to all variants' early GPIO tables) * commit 3bfe46c (mb/google/guybrush: Add GPIO EC in RW to early GPIO tables) * commit 3a30cf9 (mb/google/guybrush: Build chromeos.c in verstage This CL also fix the following platforms: * Change to always trusted: cyan. * Add to early GPIO table: dedede, eve, fizz, glados, hatch, octopus, poppy, reef, volteer. * Add to both Makefile and early GPIO table: zork. For mb/intel: * adlrvp: Add support for get_ec_is_trusted(). * glkrvp: Add support for get_ec_is_trusted() with always trusted. * kblrvp: Add support for get_ec_is_trusted() with always trusted. * kunimitsu: Add support for get_ec_is_trusted() and initialize it as early GPIO. * shadowmountain: Add support for get_ec_is_trusted() and initialize it as early GPIO. * tglrvp: Add support for get_ec_is_trusted() with always trusted. For qemu-q35: Add support for get_ec_is_trusted() with always trusted. We could attempt another land. Change-Id: I66b8b99d6e6bf259b18573f9f6010f9254357bf9 Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/58253 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Karthik Ramasubramanian <kramasub@google.com> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com>
This commit is contained in:
parent
436eac827a
commit
642508aa9c
@ -11,6 +11,7 @@ int get_recovery_mode_retrain_switch(void);
|
||||
int clear_recovery_mode_switch(void);
|
||||
int get_wipeout_mode_switch(void);
|
||||
int get_lid_switch(void);
|
||||
int get_ec_is_trusted(void);
|
||||
|
||||
/* Return 1 if display initialization is required. 0 if not. */
|
||||
int display_init_required(void);
|
||||
|
@ -24,3 +24,10 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
{
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Do not have a Chrome EC involved in entering recovery mode;
|
||||
Always return trusted. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -40,3 +40,9 @@ int tis_plat_irq_status(void)
|
||||
{
|
||||
return gpio_eint_poll(GPIO_H1_AP_INT);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. This is active low. */
|
||||
return !!gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -9,6 +9,13 @@
|
||||
|
||||
#include "onboard.h"
|
||||
|
||||
/* EC_IN_RW is GPIO 25 in samus and 14 otherwise */
|
||||
#if CONFIG(BOARD_GOOGLE_SAMUS)
|
||||
#define EC_IN_RW_GPIO 25
|
||||
#else
|
||||
#define EC_IN_RW_GPIO 14
|
||||
#endif
|
||||
|
||||
void fill_lb_gpios(struct lb_gpios *gpios)
|
||||
{
|
||||
struct lb_gpio chromeos_gpios[] = {
|
||||
@ -33,3 +40,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
{
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !get_gpio(EC_IN_RW_GPIO);
|
||||
}
|
||||
|
@ -74,3 +74,10 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
{
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Do not have a Chrome EC involved in entering recovery mode;
|
||||
Always return trusted. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -31,3 +31,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
gpios = variant_cros_gpios(&num);
|
||||
chromeos_acpi_gpio_generate(gpios, num);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -64,3 +64,10 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Do not have a Chrome EC involved in entering recovery mode;
|
||||
Always return trusted. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -59,3 +59,9 @@ int tis_plat_irq_status(void)
|
||||
{
|
||||
return gpio_eint_poll(GPIO_GSC_AP_INT);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. This is active low. */
|
||||
return !!gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -64,3 +64,10 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
{
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Do not have a Chrome EC involved in entering recovery mode;
|
||||
Always return trusted. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -38,3 +38,9 @@ int get_write_protect_state(void)
|
||||
{
|
||||
return !gpio_get_value(GPIO_D16);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get_value(GPIO_D17);
|
||||
}
|
||||
|
@ -32,3 +32,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
gpios = variant_cros_gpios(&num);
|
||||
chromeos_acpi_gpio_generate(gpios, num);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -423,6 +423,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* C5 : RAM_STRAP_3 */
|
||||
PAD_CFG_GPI(GPP_C5, NONE, DEEP),
|
||||
|
||||
/* C14 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C14, NONE, DEEP),
|
||||
|
||||
/* C20 : UART2 RX */
|
||||
PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
|
||||
/* C21 : UART2 TX */
|
||||
|
@ -98,3 +98,10 @@ void mainboard_prepare_cr50_reset(void)
|
||||
if (ENV_RAMSTAGE)
|
||||
pmc_soc_set_afterg3_en(true);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Do not have a Chrome EC involved in entering recovery mode;
|
||||
Always return trusted. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -97,3 +97,10 @@ void mainboard_prepare_cr50_reset(void)
|
||||
pmc_soc_set_afterg3_en(true);
|
||||
#endif
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Do not have a Chrome EC involved in entering recovery mode;
|
||||
Always return trusted. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -36,3 +36,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
{
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -225,6 +225,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* Ensure UART pins are in native mode for H1 */
|
||||
/* UART2_RXD */ PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1), /* SERVO */
|
||||
/* UART2_TXD */ PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), /* SERVO */
|
||||
|
||||
/* SM1CLK */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, UP_20K,
|
||||
DEEP), /* EC_IN_RW */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -36,3 +36,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
gpios = variant_cros_gpios(&num);
|
||||
chromeos_acpi_gpio_generate(gpios, num);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -241,6 +241,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* SATAXPCIE1 */ PAD_CFG_NF(GPP_E1, NONE, DEEP,
|
||||
NF1), /* MB_PCIE_SATA#_DET */
|
||||
/* SATA_DEVSLP1 */ PAD_CFG_NF(GPP_E5, NONE, DEEP, NF1), /* DEVSLP1_MB */
|
||||
|
||||
/* SM1CLK */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, UP_20K,
|
||||
DEEP), /* EC_IN_RW */
|
||||
};
|
||||
|
||||
const struct pad_config * __weak variant_gpio_table(size_t *num)
|
||||
|
@ -245,6 +245,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* SATAXPCIE1 */ PAD_CFG_NF(GPP_E1, NONE, DEEP,
|
||||
NF1), /* MB_PCIE_SATA#_DET */
|
||||
/* SATA_DEVSLP1 */ PAD_CFG_NF(GPP_E5, NONE, DEEP, NF1), /* DEVSLP1_MB */
|
||||
|
||||
/* SM1CLK */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, UP_20K,
|
||||
DEEP), /* EC_IN_RW */
|
||||
};
|
||||
|
||||
const struct pad_config *variant_gpio_table(size_t *num)
|
||||
|
@ -26,3 +26,10 @@ 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;
|
||||
}
|
||||
|
@ -157,3 +157,10 @@ int get_write_protect_state(void)
|
||||
{
|
||||
return !read_gpio(get_wp_status_gpio_pin());
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Do not have a Chrome EC involved in entering recovery mode;
|
||||
Always return trusted. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -35,3 +35,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
{
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -219,6 +219,7 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* SPI_WP_STATUS */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C23, UP_20K, DEEP),
|
||||
/* GD_UART2_RXD */ PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
|
||||
/* GD_UART2_TXD */ PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1),
|
||||
/* EC_IN_RW */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, NONE, DEEP),
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -236,6 +236,7 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* UART2_CTS# */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C23, UP_20K, DEEP), /* PCH_WP */
|
||||
/* GD_UART2_RXD */ PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
|
||||
/* GD_UART2_TXD */ PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1),
|
||||
/* SM1CLK */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, UP_20K, DEEP), /* EC_IN_RW */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -228,6 +228,7 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* UART2_CTS# */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C23, UP_20K, DEEP), /* PCH_WP */
|
||||
/* GD_UART2_RXD */ PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
|
||||
/* GD_UART2_TXD */ PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1),
|
||||
/* SM1CLK */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, UP_20K, DEEP), /* EC_IN_RW */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -224,6 +224,7 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* UART2_CTS# */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C23, UP_20K, DEEP), /* PCH_WP */
|
||||
/* GD_UART2_RXD */ PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
|
||||
/* GD_UART2_TXD */ PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1),
|
||||
/* SM1CLK */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, UP_20K, DEEP), /* EC_IN_RW */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -226,6 +226,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* UART0_CTS# */ PAD_CFG_GPO(GPP_C11, 0, DEEP), /* EN_PP3300_KEPLER */
|
||||
/* GD_UART2_RXD */ PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
|
||||
/* GD_UART2_TXD */ PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1),
|
||||
/* SM1CLK */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, UP_20K,
|
||||
DEEP), /* EC_IN_RW */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -215,6 +215,7 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* SPI_WP_STATUS */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C23, UP_20K, DEEP),
|
||||
/* GD_UART2_RXD */ PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
|
||||
/* GD_UART2_TXD */ PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1),
|
||||
/* EC_IN_RW */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, NONE, DEEP),
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -223,6 +223,7 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* UART0_CTS# */ PAD_CFG_GPO(GPP_C11, 0, DEEP), /* EN_PP3300_KEPLER */
|
||||
/* GD_UART2_RXD */ PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
|
||||
/* GD_UART2_TXD */ PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1),
|
||||
/* EC_IN_RW */ PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, NONE, DEEP),
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -49,3 +49,9 @@ int tis_plat_irq_status(void)
|
||||
return gpio_irq_status(GPIO_TPM_IRQ);
|
||||
}
|
||||
#endif
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#include <baseboard/gpio.h>
|
||||
#include <boardid.h>
|
||||
#include <bootmode.h>
|
||||
#include <boot/coreboot_tables.h>
|
||||
#include <gpio.h>
|
||||
@ -26,3 +27,14 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
{
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Board versions 1 & 2 support H1 DB, but the EC_IN_RW signal is not
|
||||
routed. So emulate EC is trusted. */
|
||||
if (CONFIG(BOARD_GOOGLE_GUYBRUSH) &&
|
||||
(board_id() == UNDEFINED_STRAPPING_ID || board_id() < 3))
|
||||
return 1;
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -36,3 +36,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
|
||||
chromeos_acpi_gpio_generate(cros_gpios, num_gpios);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -162,6 +162,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -100,6 +100,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -137,6 +137,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -86,6 +86,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -100,6 +100,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -100,6 +100,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -128,6 +128,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -60,6 +60,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -124,6 +124,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
PAD_CFG_NF(GPP_E1, NONE, DEEP, NF1),
|
||||
/* E5 : SATA_DEVSLP1 */
|
||||
|
@ -90,6 +90,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -100,6 +100,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -220,6 +220,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -106,6 +106,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
PAD_CFG_NF(GPP_E1, NONE, DEEP, NF1),
|
||||
/* E5 : SATA_DEVSLP1 */
|
||||
|
@ -126,6 +126,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -64,6 +64,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -120,6 +120,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
PAD_CFG_NF(GPP_E1, NONE, DEEP, NF1),
|
||||
/* E5 : SATA_DEVSLP1 */
|
||||
|
@ -100,6 +100,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -128,6 +128,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
PAD_CFG_NF(GPP_E1, NONE, DEEP, NF1),
|
||||
/* E5 : SATA_DEVSLP1 */
|
||||
|
@ -100,6 +100,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -160,6 +160,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -80,6 +80,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -100,6 +100,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
PAD_CFG_GPI(GPP_C20, NONE, DEEP),
|
||||
/* C21 : H1_PCH_INT_ODL */
|
||||
PAD_CFG_GPI_APIC(GPP_C21, NONE, PLTRST, LEVEL, INVERT),
|
||||
/* C22 : EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_C22, NONE, DEEP),
|
||||
/* C23 : WLAN_PE_RST# */
|
||||
PAD_CFG_GPO(GPP_C23, 1, DEEP),
|
||||
/* E1 : M2_SSD_PEDET */
|
||||
|
@ -24,3 +24,9 @@ void fill_lb_gpios(struct lb_gpios *gpios)
|
||||
|
||||
lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Stub GPIO. */
|
||||
return 0;
|
||||
}
|
||||
|
@ -76,3 +76,10 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
{
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Do not have a Chrome EC involved in entering recovery mode;
|
||||
Always return trusted. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -34,3 +34,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
{
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -37,3 +37,9 @@ int tis_plat_irq_status(void)
|
||||
{
|
||||
return gpio_eint_poll(CR50_IRQ);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(EC_IN_RW);
|
||||
}
|
||||
|
@ -8,6 +8,8 @@
|
||||
#include <vendorcode/google/chromeos/chromeos.h>
|
||||
#include "onboard.h"
|
||||
|
||||
#define GPIO_EC_IN_RW 21
|
||||
|
||||
void fill_lb_gpios(struct lb_gpios *gpios)
|
||||
{
|
||||
struct lb_gpio chromeos_gpios[] = {
|
||||
@ -39,3 +41,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
{
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !get_gpio(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -1,8 +1,16 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <boot/coreboot_tables.h>
|
||||
#include <bootmode.h>
|
||||
|
||||
void fill_lb_gpios(struct lb_gpios *gpios)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Do not have a Chrome EC involved in entering recovery mode;
|
||||
Always return trusted. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -19,3 +19,9 @@ int get_write_protect_state(void)
|
||||
{
|
||||
return !gpio_get(GPIO(R1));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO(U4));
|
||||
}
|
||||
|
@ -19,3 +19,9 @@ int get_write_protect_state(void)
|
||||
{
|
||||
return !gpio_get(GPIO(R1));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO(U4));
|
||||
}
|
||||
|
@ -19,3 +19,9 @@ int get_write_protect_state(void)
|
||||
{
|
||||
return !gpio_get(GPIO(R1));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO(U4));
|
||||
}
|
||||
|
@ -34,3 +34,9 @@ int get_write_protect_state(void)
|
||||
{
|
||||
return !gpio_get(WRITE_PROTECT);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(EC_IN_RW);
|
||||
}
|
||||
|
@ -35,3 +35,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
gpios = variant_cros_gpios(&num);
|
||||
chromeos_acpi_gpio_generate(gpios, num);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -344,6 +344,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
* stages.
|
||||
*/
|
||||
PAD_CFG_GPO_IOSSTATE_IOSTERM(GPIO_161, 1, DEEP, UP_20K, Tx1RxDCRx0, DISPUPD), /* AVS_I2S1_MCLK -- LTE_OFF_ODL */
|
||||
|
||||
PAD_CFG_GPI(GPIO_189, NONE, DEEP), /* EC_IN_RW */
|
||||
};
|
||||
|
||||
const struct pad_config *__weak
|
||||
|
@ -64,3 +64,10 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Do not have a Chrome EC involved in entering recovery mode;
|
||||
Always return trusted. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -38,3 +38,9 @@ int get_write_protect_state(void)
|
||||
{
|
||||
return !gpio_get_value(GPIO_X30);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get_value(GPIO_X23);
|
||||
}
|
||||
|
@ -40,3 +40,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
gpios = variant_cros_gpios(&num);
|
||||
chromeos_acpi_gpio_generate(gpios, num);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -345,6 +345,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* B18 : GSPI0_MOSI ==> H1_SLAVE_SPI_MOSI */
|
||||
PAD_CFG_NF(GPP_B18, NONE, DEEP, NF1),
|
||||
|
||||
/* C6 : SM1CLK ==> EC_IN_RW_OD */
|
||||
PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, UP_20K, DEEP),
|
||||
|
||||
/* Ensure UART pins are in native mode for H1. */
|
||||
/* C20 : UART2_RXD ==> PCHRX_SERVOTX_UART */
|
||||
PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
|
||||
|
@ -341,6 +341,9 @@ static const struct pad_config gpio_table[] = {
|
||||
|
||||
/* Early pad configuration in bootblock */
|
||||
static const struct pad_config early_gpio_table[] = {
|
||||
/* C6 : SM1CLK ==> EC_IN_RW_OD */
|
||||
PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, UP_20K, DEEP),
|
||||
|
||||
/* C18 : I2C1_SDA ==> PCH_I2C1_H1_3V3_SDA */
|
||||
PAD_CFG_NF(GPP_C18, NONE, DEEP, NF1),
|
||||
/* C19 : I2C1_SCL ==> PCH_I2C1_H1_3V3_SCL */
|
||||
|
@ -346,6 +346,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* B18 : GSPI0_MOSI ==> PCH_SPI_H1_3V3_MOSI */
|
||||
PAD_CFG_NF(GPP_B18, NONE, DEEP, NF1),
|
||||
|
||||
/* C6 : SM1CLK ==> EC_IN_RW_OD */
|
||||
PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, UP_20K, DEEP),
|
||||
|
||||
/* Ensure UART pins are in native mode for H1. */
|
||||
/* C20 : UART2_RXD ==> PCHRX_SERVOTX_UART */
|
||||
PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
|
||||
|
@ -331,6 +331,9 @@ static const struct pad_config gpio_table[] = {
|
||||
|
||||
/* Early pad configuration in bootblock */
|
||||
static const struct pad_config early_gpio_table[] = {
|
||||
/* C6 : SM1CLK ==> EC_IN_RW_OD */
|
||||
PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, UP_20K, DEEP),
|
||||
|
||||
/* C18 : I2C1_SDA ==> PCH_I2C1_H1_3V3_SDA */
|
||||
PAD_CFG_NF(GPP_C18, NONE, DEEP, NF1),
|
||||
/* C19 : I2C1_SCL ==> PCH_I2C1_H1_3V3_SCL */
|
||||
|
@ -352,6 +352,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* B18 : GSPI0_MOSI ==> H1_SLAVE_SPI_MOSI */
|
||||
PAD_CFG_NF(GPP_B18, DN_20K, DEEP, NF1),
|
||||
|
||||
/* C6 : SM1CLK ==> EC_IN_RW_OD */
|
||||
PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, UP_20K, DEEP),
|
||||
|
||||
/* Ensure UART pins are in native mode for H1. */
|
||||
/* C20 : UART2_RXD ==> PCHRX_SERVOTX_UART */
|
||||
PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
|
||||
|
@ -349,6 +349,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* B18 : GSPI0_MOSI ==> PCH_SPI_H1_3V3_MOSI */
|
||||
PAD_CFG_NF(GPP_B18, NONE, DEEP, NF1),
|
||||
|
||||
/* C6 : SM1CLK ==> EC_IN_RW_OD */
|
||||
PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, UP_20K, DEEP),
|
||||
|
||||
/* Ensure UART pins are in native mode for H1. */
|
||||
/* C20 : UART2_RXD ==> PCHRX_SERVOTX_UART */
|
||||
PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
|
||||
|
@ -342,6 +342,10 @@ static const struct pad_config gpio_table[] = {
|
||||
static const struct pad_config early_gpio_table[] = {
|
||||
/* B8 : SRCCLKREQ3# ==> WLAN_PE_RST */
|
||||
PAD_CFG_GPO(GPP_B8, 0, RSMRST),
|
||||
|
||||
/* C6 : SM1CLK ==> EC_IN_RW_OD */
|
||||
PAD_CFG_GPI_GPIO_DRIVER(GPP_C6, UP_20K, DEEP),
|
||||
|
||||
/* C18 : I2C1_SDA ==> PCH_I2C1_H1_3V3_SDA */
|
||||
PAD_CFG_NF(GPP_C18, NONE, DEEP, NF1),
|
||||
/* C19 : I2C1_SCL ==> PCH_I2C1_H1_3V3_SCL */
|
||||
|
@ -9,6 +9,9 @@
|
||||
/* The WP status pin lives on GPIO_SSUS_6 which is pad 36 in the SUS well. */
|
||||
#define WP_STATUS_PAD 36
|
||||
|
||||
/* The EC_IN_RW lives on SCGPIO59 */
|
||||
#define EC_IN_RW_PAD 59
|
||||
|
||||
void fill_lb_gpios(struct lb_gpios *gpios)
|
||||
{
|
||||
struct lb_gpio chromeos_gpios[] = {
|
||||
@ -44,3 +47,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
{
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !score_get_gpio(EC_IN_RW_PAD);
|
||||
}
|
||||
|
@ -35,3 +35,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
gpios = variant_cros_gpios(&num);
|
||||
chromeos_acpi_gpio_generate(gpios, num);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -368,6 +368,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
|
||||
/* WLAN_PE_RST - default to deasserted just in case FSP misbehaves. */
|
||||
PAD_CFG_GPO(GPIO_122, 0, DEEP), /* SIO_SPI_2_RXD */
|
||||
|
||||
PAD_CFG_GPI(GPIO_41, NONE, DEEP), /* LPSS_UART0_CTS - EC_IN_RW */
|
||||
};
|
||||
|
||||
const struct pad_config * __weak
|
||||
|
@ -369,6 +369,8 @@ static const struct pad_config early_gpio_table[] = {
|
||||
|
||||
/* WLAN_PE_RST - default to deasserted just in case FSP misbehaves. */
|
||||
PAD_CFG_GPO(GPIO_122, 0, DEEP), /* SIO_SPI_2_RXD */
|
||||
|
||||
PAD_CFG_GPI(GPIO_41, NONE, DEEP), /* LPSS_UART0_CTS - EC_IN_RW */
|
||||
};
|
||||
|
||||
const struct pad_config *variant_early_gpio_table(size_t *num)
|
||||
|
@ -94,3 +94,10 @@ void mainboard_prepare_cr50_reset(void)
|
||||
if (ENV_RAMSTAGE)
|
||||
pmc_soc_set_afterg3_en(true);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Do not have a Chrome EC involved in entering recovery mode;
|
||||
Always return trusted. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -32,3 +32,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
{
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !get_gpio(14);
|
||||
}
|
||||
|
@ -19,3 +19,9 @@ int get_write_protect_state(void)
|
||||
{
|
||||
return !gpio_get(WRITE_PROTECT_L);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(EC_IN_RW);
|
||||
}
|
||||
|
@ -128,3 +128,10 @@ int get_write_protect_state(void)
|
||||
{
|
||||
return !read_gpio(WP_SW);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Do not have a Chrome EC involved in entering recovery mode;
|
||||
Always return trusted. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -57,3 +57,9 @@ int tis_plat_irq_status(void)
|
||||
{
|
||||
return gpio_irq_status(GPIO_H1_AP_INT);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. This is active low. */
|
||||
return !!gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -56,3 +56,9 @@ int get_write_protect_state(void)
|
||||
{
|
||||
return !gpio_get(GPIO_WP);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_ECINRW);
|
||||
}
|
||||
|
@ -34,3 +34,10 @@ int get_write_protect_state(void)
|
||||
{
|
||||
return !gpio_get(GPIO_WP);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Do not have a Chrome EC involved in entering recovery mode;
|
||||
Always return trusted. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -43,3 +43,10 @@ int get_write_protect_state(void)
|
||||
{
|
||||
return !gpio_get(GPIO_WP);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* Do not have a Chrome EC involved in entering recovery mode;
|
||||
Always return trusted. */
|
||||
return 1;
|
||||
}
|
||||
|
@ -34,3 +34,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
gpios = variant_cros_gpios(&num);
|
||||
chromeos_acpi_gpio_generate(gpios, num);
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -432,6 +432,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
|
||||
/* F11 : THC1_SPI2_CLK ==> EN_PP3300_WWAN */
|
||||
PAD_CFG_GPO(GPP_F11, 1, DEEP),
|
||||
|
||||
/* A9 : I2S2_TXD ==> EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_A9, NONE, DEEP),
|
||||
};
|
||||
|
||||
const struct pad_config *__weak variant_base_gpio_table(size_t *num)
|
||||
|
@ -204,6 +204,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
|
||||
/* E12 : SPI1_MISO_IO1 ==> PEN_ALERT_ODL */
|
||||
PAD_CFG_GPI(GPP_E12, NONE, DEEP),
|
||||
|
||||
/* F17 : WWAN_RF_DISABLE_ODL ==> EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_F17, NONE, DEEP),
|
||||
};
|
||||
|
||||
const struct pad_config *variant_early_gpio_table(size_t *num)
|
||||
|
@ -220,6 +220,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
|
||||
/* E12 : SPI1_MISO_IO1 ==> PEN_ALERT_ODL */
|
||||
PAD_CFG_GPI(GPP_E12, NONE, DEEP),
|
||||
|
||||
/* F17 : WWAN_RF_DISABLE_ODL ==> EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_F17, NONE, DEEP),
|
||||
};
|
||||
|
||||
const struct pad_config *variant_early_gpio_table(size_t *num)
|
||||
|
@ -233,6 +233,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
/* D16 : ISH_UART0_CTS# ==> EN_PP3300_SD */
|
||||
PAD_CFG_GPO(GPP_D16, 1, DEEP),
|
||||
|
||||
/* F17 : WWAN_RF_DISABLE_ODL ==> EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_F17, NONE, DEEP),
|
||||
|
||||
/* H11 : SRCCLKREQ5# ==> WLAN_PERST_L */
|
||||
PAD_CFG_GPO(GPP_H11, 1, DEEP),
|
||||
};
|
||||
|
@ -221,6 +221,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
|
||||
/* E12 : SPI1_MISO_IO1 ==> PEN_ALERT_ODL */
|
||||
PAD_CFG_GPI(GPP_E12, NONE, DEEP),
|
||||
|
||||
/* F17 : WWAN_RF_DISABLE_ODL ==> EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_F17, NONE, DEEP),
|
||||
};
|
||||
|
||||
const struct pad_config *variant_early_gpio_table(size_t *num)
|
||||
|
@ -231,6 +231,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
|
||||
/* E12 : SPI1_MISO_IO1 ==> PEN_ALERT_ODL */
|
||||
PAD_CFG_GPI(GPP_E12, NONE, DEEP),
|
||||
|
||||
/* F17 : WWAN_RF_DISABLE_ODL ==> EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_F17, NONE, DEEP),
|
||||
};
|
||||
|
||||
const struct pad_config *variant_early_gpio_table(size_t *num)
|
||||
|
@ -219,6 +219,9 @@ static const struct pad_config early_gpio_table[] = {
|
||||
|
||||
/* E12 : SPI1_MISO_IO1 ==> PEN_ALERT_ODL */
|
||||
PAD_CFG_GPI(GPP_E12, NONE, DEEP),
|
||||
|
||||
/* F17 : WWAN_RF_DISABLE_ODL ==> EC_IN_RW_OD */
|
||||
PAD_CFG_GPI(GPP_F17, NONE, DEEP),
|
||||
};
|
||||
|
||||
const struct pad_config *variant_early_gpio_table(size_t *num)
|
||||
|
@ -10,6 +10,7 @@ ramstage-y += chromeos.c
|
||||
ramstage-y += ec.c
|
||||
ramstage-y += sku_id.c
|
||||
|
||||
verstage-y += chromeos.c
|
||||
verstage-y += verstage.c
|
||||
|
||||
subdirs-y += variants/baseboard
|
||||
|
@ -33,3 +33,9 @@ void mainboard_chromeos_acpi_generate(void)
|
||||
{
|
||||
chromeos_acpi_gpio_generate(cros_gpios, ARRAY_SIZE(cros_gpios));
|
||||
}
|
||||
|
||||
int get_ec_is_trusted(void)
|
||||
{
|
||||
/* EC is trusted if not in RW. */
|
||||
return !gpio_get(GPIO_EC_IN_RW);
|
||||
}
|
||||
|
@ -1,23 +1,19 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
bootblock-y += gpio_baseboard_common.c
|
||||
bootblock-y += helpers.c
|
||||
bootblock-$(CONFIG_BOARD_GOOGLE_BASEBOARD_TREMBYLE) += gpio_baseboard_trembyle.c
|
||||
bootblock-$(CONFIG_BOARD_GOOGLE_BASEBOARD_DALBOZ) += gpio_baseboard_dalboz.c
|
||||
|
||||
verstage-y += gpio_baseboard_common.c
|
||||
verstage-y += helpers.c
|
||||
verstage-$(CONFIG_BOARD_GOOGLE_BASEBOARD_TREMBYLE) += gpio_baseboard_trembyle.c
|
||||
verstage-$(CONFIG_BOARD_GOOGLE_BASEBOARD_DALBOZ) += gpio_baseboard_dalboz.c
|
||||
verstage-y += tpm_tis.c
|
||||
|
||||
romstage-y += gpio_baseboard_common.c
|
||||
romstage-y += helpers.c
|
||||
romstage-$(CONFIG_BOARD_GOOGLE_BASEBOARD_TREMBYLE) += gpio_baseboard_trembyle.c
|
||||
romstage-$(CONFIG_BOARD_GOOGLE_BASEBOARD_DALBOZ) += gpio_baseboard_dalboz.c
|
||||
romstage-y += tpm_tis.c
|
||||
|
||||
ramstage-y += gpio_baseboard_common.c
|
||||
ramstage-$(CONFIG_BOARD_GOOGLE_BASEBOARD_TREMBYLE) += gpio_baseboard_trembyle.c
|
||||
ramstage-$(CONFIG_BOARD_GOOGLE_BASEBOARD_TREMBYLE) += fsps_baseboard_trembyle.c
|
||||
ramstage-$(CONFIG_BOARD_GOOGLE_BASEBOARD_DALBOZ) += gpio_baseboard_dalboz.c
|
||||
|
@ -1,31 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#include <baseboard/variants.h>
|
||||
#include <soc/gpio.h>
|
||||
#include <stdlib.h>
|
||||
#include <variant/gpio.h>
|
||||
|
||||
static const struct soc_amd_gpio early_gpio_table[] = {
|
||||
/* H1_FCH_INT_ODL */
|
||||
PAD_INT(GPIO_3, PULL_NONE, EDGE_LOW, STATUS),
|
||||
/* I2C3_SCL - H1 */
|
||||
PAD_NF(GPIO_19, I2C3_SCL, PULL_NONE),
|
||||
/* I2C3_SDA - H1 */
|
||||
PAD_NF(GPIO_20, I2C3_SDA, PULL_NONE),
|
||||
/* PCIE_RST0_L - Fixed timings */
|
||||
PAD_NF(GPIO_26, PCIE_RST_L, PULL_NONE),
|
||||
/* FCH_ESPI_EC_CS_L */
|
||||
PAD_NF(GPIO_30, ESPI_CS_L, PULL_NONE),
|
||||
/* ESPI_ALERT_L */
|
||||
PAD_NF(GPIO_108, ESPI_ALERT_L, PULL_NONE),
|
||||
/* UART0_RXD - DEBUG */
|
||||
PAD_NF(GPIO_136, UART0_RXD, PULL_NONE),
|
||||
/* UART0_TXD - DEBUG */
|
||||
PAD_NF(GPIO_138, UART0_TXD, PULL_NONE),
|
||||
};
|
||||
|
||||
const __weak struct soc_amd_gpio *variant_early_gpio_table(size_t *size)
|
||||
{
|
||||
*size = ARRAY_SIZE(early_gpio_table);
|
||||
return early_gpio_table;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user