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 <hungte@chromium.org>
Tested-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
diff --git a/host/arch/x86/lib/crossystem_arch.c b/host/arch/x86/lib/crossystem_arch.c
index fc92c8f..284b75d 100644
--- a/host/arch/x86/lib/crossystem_arch.c
+++ b/host/arch/x86/lib/crossystem_arch.c
@@ -399,6 +399,8 @@
 	/* 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 030d9d6..f02e0f7 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 */