summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--host/arch/arm/lib/crossystem_arch.c2
-rw-r--r--host/lib/crossystem.c21
2 files changed, 20 insertions, 3 deletions
diff --git a/host/arch/arm/lib/crossystem_arch.c b/host/arch/arm/lib/crossystem_arch.c
index d74c2d10..c507ca85 100644
--- a/host/arch/arm/lib/crossystem_arch.c
+++ b/host/arch/arm/lib/crossystem_arch.c
@@ -321,8 +321,6 @@ const char* VbGetArchPropertyString(const char* name, char* dest, int size) {
prop = "hardware-id";
else if (!strcasecmp(name, "fwid"))
prop = "firmware-version";
- else if (!strcasecmp(name, "mainfw_act"))
- prop = "active-firmware";
else if (!strcasecmp(name, "mainfw_type"))
prop = "firmware-type";
else if (!strcasecmp(name, "ecfw_act"))
diff --git a/host/lib/crossystem.c b/host/lib/crossystem.c
index eea48998..34c1de17 100644
--- a/host/lib/crossystem.c
+++ b/host/lib/crossystem.c
@@ -26,7 +26,8 @@
typedef enum VdatStringField {
VDAT_STRING_TIMERS = 0, /* Timer values */
VDAT_STRING_LOAD_FIRMWARE_DEBUG, /* LoadFirmware() debug information */
- VDAT_STRING_LOAD_KERNEL_DEBUG /* LoadKernel() debug information */
+ VDAT_STRING_LOAD_KERNEL_DEBUG, /* LoadKernel() debug information */
+ VDAT_STRING_MAINFW_ACT /* Active main firmware */
} VdatStringField;
@@ -293,6 +294,22 @@ char* GetVdatString(char* dest, int size, VdatStringField field)
value = GetVdatLoadKernelDebug(dest, size, sh);
break;
+ case VDAT_STRING_MAINFW_ACT:
+ switch(sh->firmware_index) {
+ case 0:
+ StrCopy(dest, "A", size);
+ break;
+ case 1:
+ StrCopy(dest, "B", size);
+ break;
+ case 0xFF:
+ StrCopy(dest, "recovery", size);
+ break;
+ default:
+ value = NULL;
+ }
+ break;
+
default:
value = NULL;
break;
@@ -403,6 +420,8 @@ const char* VbGetSystemPropertyString(const char* name, char* dest, int size) {
default:
return NULL;
}
+ } else if (!strcasecmp(name, "mainfw_act")) {
+ return GetVdatString(dest, size, VDAT_STRING_MAINFW_ACT);
} else if (!strcasecmp(name, "vdat_timers")) {
return GetVdatString(dest, size, VDAT_STRING_TIMERS);
} else if (!strcasecmp(name, "vdat_lfdebug")) {