Dinesh Gehlot has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/86422?usp=email )
Change subject: mb/google/brya: Do not select HAVE_ACPI_RESUME ......................................................................
mb/google/brya: Do not select HAVE_ACPI_RESUME
Brya mainboard does not reliably support S3 entry/exit. Hence do no select HAVE_ACPI_RESUME config option. Also trigger a fail-safe board reset if the system resumes from S3.
BUG=b:337274309 TEST=Boot verfied google/trulo. TEST=Veified that the _S3 name variable is not present in the DSDT asl.
Change-Id: Ic0dce9c7779333ca079001e3763e843a4aad9a81 Signed-off-by: Dinesh Gehlot digehlot@google.com --- M src/mainboard/google/brya/Kconfig M src/mainboard/google/brya/bootblock.c 2 files changed, 11 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/22/86422/1
diff --git a/src/mainboard/google/brya/Kconfig b/src/mainboard/google/brya/Kconfig index 8d09f2e..073319f 100644 --- a/src/mainboard/google/brya/Kconfig +++ b/src/mainboard/google/brya/Kconfig @@ -28,7 +28,6 @@ select FW_CONFIG select FW_CONFIG_SOURCE_CHROMEEC_CBI select GOOGLE_SMBIOS_MAINBOARD_VERSION - select HAVE_ACPI_RESUME select HAVE_ACPI_TABLES select HAVE_FSP_LOGO_SUPPORT if RUN_FSP_GOP select I2C_TPM diff --git a/src/mainboard/google/brya/bootblock.c b/src/mainboard/google/brya/bootblock.c index 0d0662b..782231e 100644 --- a/src/mainboard/google/brya/bootblock.c +++ b/src/mainboard/google/brya/bootblock.c @@ -1,8 +1,12 @@ /* SPDX-License-Identifier: GPL-2.0-or-later */
+#include <acpi/acpi.h> #include <baseboard/variants.h> #include <bootblock_common.h> +#include <bootmode.h> +#include <reset.h> #include <security/tpm/tss.h> +#include <security/vboot/vboot_common.h>
void bootblock_mainboard_early_init(void) { @@ -18,6 +22,13 @@
void bootblock_mainboard_init(void) { + if (platform_is_resuming()) { + printk(BIOS_EMERG, "ACPI S3 resume is not supported on this platform\n"); + /* Prepare for reboot to clear the sleep state such that the board + is not stuck in reboot loop. */ + vboot_platform_prepare_reboot(); + board_reset(); + } variant_update_descriptor(); }