From ecda11561bbb761ebe750425cae193db4e9b3560 Mon Sep 17 00:00:00 2001 From: Hung-Te Lin Date: Tue, 22 May 2018 17:17:21 +0800 Subject: [PATCH] crossystem: Add BINF3_LEGACY for systems boot in legacy mode. The BINF3 (VBT7) reflects the firmware type, and we need that to describe which type of firmware was booted. The 'legacy' did not have its own value definition, but without that we can't make sure if the system is running a non-chrome firmware or simply entered legacy boot path. CL:1054307 introduced a new value (0x4) for legacy type and we should handle it in crossystem mainfw_type command. BUG=b:79130310 TEST=emerge-eve coreboot depthcharge chromeos-bootimage; Boot in legacy mode and see crossystem reporting 'legacy' for mainfw_type. Change-Id: I4a1165e547e70c634d45054f56d1357ae5af2a83 Reviewed-on: https://chromium-review.googlesource.com/1068556 Commit-Ready: Hung-Te Lin Tested-by: Hung-Te Lin Reviewed-by: Randall Spangler --- host/arch/x86/lib/crossystem_arch.c | 2 ++ host/lib/include/crossystem_arch.h | 1 + 2 files changed, 3 insertions(+) diff --git a/host/arch/x86/lib/crossystem_arch.c b/host/arch/x86/lib/crossystem_arch.c index fc92c8f3e7..284b75d294 100644 --- a/host/arch/x86/lib/crossystem_arch.c +++ b/host/arch/x86/lib/crossystem_arch.c @@ -399,6 +399,8 @@ static const char* VbReadMainFwType(char* dest, int size) /* Try reading type from BINF.3 */ if (ReadFileInt(ACPI_BINF_PATH ".3", &value) == 0) { switch(value) { + case BINF3_LEGACY: + return StrCopy(dest, "legacy", size); case BINF3_NETBOOT: return StrCopy(dest, "netboot", size); case BINF3_RECOVERY: diff --git a/host/lib/include/crossystem_arch.h b/host/lib/include/crossystem_arch.h index 030d9d6918..f02e0f73c3 100644 --- a/host/lib/include/crossystem_arch.h +++ b/host/lib/include/crossystem_arch.h @@ -23,6 +23,7 @@ #define BINF3_NORMAL 1 #define BINF3_DEVELOPER 2 #define BINF3_NETBOOT 3 +#define BINF3_LEGACY 4 /* INTERNAL APIS FOR CROSSYSTEM AVAILABLE TO ARCH-SPECIFIC FUNCTIONS */