summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@chromium.org>2016-07-29 19:09:30 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-08-01 13:44:26 -0700
commit45e7be22135879ac68a4ba6ed5372608eaec39df (patch)
tree869f8d8f5df4b4b44efe53ced83751f3e62113da /common
parentff8c0b129e47874d51b42919c88f0504dededd96 (diff)
downloadchrome-ec-45e7be22135879ac68a4ba6ed5372608eaec39df.tar.gz
g: use single buffer for version reporting
The only place where two separate buffers for the RO version strings is required is the tpm_registers.c:set_version_string() function. In preparation of reporting the build string along with the version string, let's rearrange the function not to require separate buffers for the RO versions. BRANCH=none BUG=chrome-os-partner:55558 TEST=verified that version reported by the TPM driver on Kevin is still correct: localhost ~ # grep cr50 /sys/firmware/log Firmware version: RO_A: 0.0.1/84e2dde7 RO_B:* 0.0.2/13eda43f RW_A:*... Change-Id: I8924ac48bd838851670f0d659e95aa92a8524665 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/364587 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Diffstat (limited to 'common')
-rw-r--r--common/tpm_registers.c32
1 files changed, 27 insertions, 5 deletions
diff --git a/common/tpm_registers.c b/common/tpm_registers.c
index 9169416209..b7ae24edde 100644
--- a/common/tpm_registers.c
+++ b/common/tpm_registers.c
@@ -119,17 +119,40 @@ static uint8_t tpm_fw_ver[180];
static void set_version_string(void)
{
enum system_image_copy_t active_ro, active_rw;
+ size_t offset;
active_ro = system_get_ro_image_copy();
active_rw = system_get_image_copy();
+
snprintf(tpm_fw_ver, sizeof(tpm_fw_ver),
- "RO_A:%s %s RO_B:%s %s RW_A:%s %s RW_B:%s %s",
+ "RO_A:%s %s",
(active_ro == SYSTEM_IMAGE_RO ? "*" : ""),
- system_get_version(SYSTEM_IMAGE_RO),
+ system_get_version(SYSTEM_IMAGE_RO));
+ offset = strlen(tpm_fw_ver);
+ if (offset == sizeof(tpm_fw_ver) - 1)
+ return;
+
+ snprintf(tpm_fw_ver + offset,
+ sizeof(tpm_fw_ver) - offset,
+ " RO_B:%s %s",
(active_ro == SYSTEM_IMAGE_RO_B ? "*" : ""),
- system_get_version(SYSTEM_IMAGE_RO_B),
+ system_get_version(SYSTEM_IMAGE_RO_B));
+ offset = strlen(tpm_fw_ver);
+ if (offset == sizeof(tpm_fw_ver) - 1)
+ return;
+
+ snprintf(tpm_fw_ver + offset,
+ sizeof(tpm_fw_ver) - offset,
+ " RW_A:%s %s",
(active_rw == SYSTEM_IMAGE_RW ? "*" : ""),
- system_get_version(SYSTEM_IMAGE_RW),
+ system_get_version(SYSTEM_IMAGE_RW));
+ offset = strlen(tpm_fw_ver);
+ if (offset == sizeof(tpm_fw_ver) - 1)
+ return;
+
+ snprintf(tpm_fw_ver + offset,
+ sizeof(tpm_fw_ver) - offset,
+ " RW_B:%s %s",
(active_rw == SYSTEM_IMAGE_RW_B ? "*" : ""),
system_get_version(SYSTEM_IMAGE_RW_B));
}
@@ -535,7 +558,6 @@ static void call_extension_command(struct tpm_cmd_header *tpmh,
void tpm_task(void)
{
- set_version_string();
tpm_init();
sps_tpm_enable();
while (1) {