diff options
author | Vadim Bendebury <vbendeb@chromium.org> | 2016-07-29 19:09:30 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-08-01 13:44:26 -0700 |
commit | 45e7be22135879ac68a4ba6ed5372608eaec39df (patch) | |
tree | 869f8d8f5df4b4b44efe53ced83751f3e62113da /common | |
parent | ff8c0b129e47874d51b42919c88f0504dededd96 (diff) | |
download | chrome-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.c | 32 |
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) { |