summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--futility/updater_utils.c24
-rw-r--r--host/arch/arm/lib/crossystem_arch.c2
-rw-r--r--host/arch/x86/lib/crossystem_arch.c26
-rw-r--r--utility/crossystem.c1
4 files changed, 23 insertions, 30 deletions
diff --git a/futility/updater_utils.c b/futility/updater_utils.c
index cc60ee8a..978936fa 100644
--- a/futility/updater_utils.c
+++ b/futility/updater_utils.c
@@ -23,6 +23,9 @@
#define COMMAND_BUFFER_SIZE 256
+/* System environment values. */
+static const char * const STR_REV = "rev";
+
/*
* Strips a string (usually from shell execution output) by removing all the
* trailing characters in pattern. If pattern is NULL, match by space type
@@ -425,9 +428,28 @@ static int host_get_fw_vboot2(void)
return VbGetSystemPropertyInt("fw_vboot2");
}
+/* A help function to get $(mosys platform version). */
static int host_get_platform_version(void)
{
- return VbGetSystemPropertyInt("board_id");
+ char *result = host_shell("mosys platform version");
+ long rev = -1;
+
+ /* Result should be 'revN' */
+ if (strncmp(result, STR_REV, strlen(STR_REV)) == 0)
+ rev = strtol(result + strlen(STR_REV), NULL, 0);
+
+ /* we should never have negative or extremely large versions,
+ * but clamp just to be sure
+ */
+ if (rev < 0)
+ rev = 0;
+ if (rev > INT_MAX)
+ rev = INT_MAX;
+
+ VB2_DEBUG("Raw data = [%s], parsed version is %ld\n", result, rev);
+
+ free(result);
+ return rev;
}
/*
diff --git a/host/arch/arm/lib/crossystem_arch.c b/host/arch/arm/lib/crossystem_arch.c
index fc54a281..79fb152e 100644
--- a/host/arch/arm/lib/crossystem_arch.c
+++ b/host/arch/arm/lib/crossystem_arch.c
@@ -523,8 +523,6 @@ int VbGetArchPropertyInt(const char* name)
} else if (!strcasecmp(name, "recoverysw_ec_boot")) {
/* TODO: read correct value using ectool */
return 0;
- } else if (!strcasecmp(name, "board_id")) {
- return ReadFdtInt("firmware/coreboot/board-id");
} else {
return -1;
}
diff --git a/host/arch/x86/lib/crossystem_arch.c b/host/arch/x86/lib/crossystem_arch.c
index f3e631ad..e6bd7e31 100644
--- a/host/arch/x86/lib/crossystem_arch.c
+++ b/host/arch/x86/lib/crossystem_arch.c
@@ -83,10 +83,6 @@
#define GPIO_BASE_PATH "/sys/class/gpio"
#define GPIO_EXPORT_PATH GPIO_BASE_PATH "/export"
-/* Base for SMBIOS information files */
-#define SMBIOS_BASE_PATH "/sys/class/dmi/id"
-#define SMBIOS_PRODUCT_VERSION_PATH SMBIOS_BASE_PATH "/product_version"
-
/* Filename for NVRAM file */
#define NVRAM_PATH "/dev/nvram"
@@ -838,25 +834,6 @@ static int ReadGpio(unsigned signal_type)
return (value == active_high ? 1 : 0);
}
-static int GetBoardId(void)
-{
- /*
- * Can't use vb2_read_file here, as it expects to be able to
- * seek to the end of the file to tell the size, and the sysfs
- * SMBIOS implementation will seek to offset 4096.
- */
- int board_id = -1;
- FILE *f = fopen(SMBIOS_PRODUCT_VERSION_PATH, "r");
-
- if (!f)
- return -1;
-
- if (fscanf(f, "rev%d\n", &board_id) != 1)
- board_id = -1;
-
- fclose(f);
- return board_id;
-}
int VbGetArchPropertyInt(const char* name)
{
@@ -920,9 +897,6 @@ int VbGetArchPropertyInt(const char* name)
value = (int)fwupdate_value;
}
- if (!strcasecmp(name, "board_id"))
- return GetBoardId();
-
return value;
}
diff --git a/utility/crossystem.c b/utility/crossystem.c
index f5a0a133..1551209f 100644
--- a/utility/crossystem.c
+++ b/utility/crossystem.c
@@ -32,7 +32,6 @@ const Param sys_param_list[] = {
{"battery_cutoff_request", CAN_WRITE,
"Cut off battery and shutdown on next boot"},
{"block_devmode", CAN_WRITE, "Block all use of developer mode"},
- {"board_id", 0, "Board hardware revision number"},
{"clear_tpm_owner_done", CAN_WRITE, "Clear TPM owner done"},
{"clear_tpm_owner_request", CAN_WRITE, "Clear TPM owner on next boot"},
{"cros_debug", 0, "OS should allow debug features"},