discover/platform-powerpc: Correct aux revision format
diff mbox

Message ID 20170607063241.11497-2-sam@mendozajonas.com
State Accepted
Headers show

Commit Message

Samuel Mendoza-Jonas June 7, 2017, 6:32 a.m. UTC
The Auxiliary Firmware Revision Information should be displayed as four
hexadecimal bytes if a manufacturer-specific format is not known. Update
the "Firmware version" format to reflect this.

Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
---
 discover/platform-powerpc.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

Patch
diff mbox

diff --git a/discover/platform-powerpc.c b/discover/platform-powerpc.c
index a0ddd1e..c2e2233 100644
--- a/discover/platform-powerpc.c
+++ b/discover/platform-powerpc.c
@@ -1033,7 +1033,6 @@  static void get_ipmi_bmc_versions(struct platform *p, struct system_info *info)
 	struct platform_powerpc *platform = p->platform_data;
 	uint16_t resp_len = 16;
 	uint8_t resp[16], bcd;
-	uint32_t aux_version;
 	int i, rc;
 
 	/* Retrieve info from current side */
@@ -1061,10 +1060,11 @@  static void get_ipmi_bmc_versions(struct platform *p, struct system_info *info)
 						resp[2]);
 		bcd = resp[4] & 0x0f;
 		bcd += 10 * (resp[4] >> 4);
-		memcpy(&aux_version, &resp[12], sizeof(aux_version));
+		/* rev1.rev2.aux_revision */
 		info->bmc_current[2] = talloc_asprintf(info,
-						"Firmware version: %u.%02u.%05u",
-						resp[3], bcd, aux_version);
+						"Firmware version: %u.%02u.%x%x%x%x",
+						resp[3], bcd, resp[12],
+						resp[13], resp[14], resp[15]);
 		bcd = resp[5] & 0x0f;
 		bcd += 10 * (resp[5] >> 4);
 		info->bmc_current[3] = talloc_asprintf(info, "IPMI version: %u",
@@ -1099,10 +1099,11 @@  static void get_ipmi_bmc_versions(struct platform *p, struct system_info *info)
 						resp[2]);
 		bcd = resp[4] & 0x0f;
 		bcd += 10 * (resp[4] >> 4);
-		memcpy(&aux_version, &resp[12], sizeof(aux_version));
+		/* rev1.rev2.aux_revision */
 		info->bmc_golden[2] = talloc_asprintf(info,
-						"Firmware version: %u.%02u.%u",
-						resp[3], bcd, aux_version);
+						"Firmware version: %u.%02u.%x%x%x%x",
+						resp[3], bcd, resp[12],
+						resp[13], resp[14], resp[15]);
 		bcd = resp[5] & 0x0f;
 		bcd += 10 * (resp[5] >> 4);
 		info->bmc_golden[3] = talloc_asprintf(info, "IPMI version: %u",