From: Sam Mendoza-Jonas Date: Thu, 25 Feb 2016 23:39:55 +0000 (+1100) Subject: Use 'Primary' instead of 'Current' for flash sides X-Git-Tag: v1.0.0~14 X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=commitdiff_plain;h=72928ed32ab3684be74e4a3b90329dee7cfa6bbb Use 'Primary' instead of 'Current' for flash sides When queried libflash will return the 'first' flash side (ie. the one with the lowest TOC address), however we label this the 'Current' side which is incorrect if the machine has booted from the alternate side. A future fix will inlcude additional platform logic to determine which flash side is current; in the interim label the first flash side as 'Primary' instead of 'Current'. Signed-off-by: Sam Mendoza-Jonas --- diff --git a/discover/hostboot.c b/discover/hostboot.c index 9a27b0f..bc9a3ba 100644 --- a/discover/hostboot.c +++ b/discover/hostboot.c @@ -12,11 +12,11 @@ void hostboot_load_versions(struct system_info *info) { int n = 0; - n = flash_parse_version(info, &info->platform_current, true); + n = flash_parse_version(info, &info->platform_primary, true); if (n < 0) pb_log("Failed to read platform versions for current side\n"); else - info->n_current = n; + info->n_primary = n; n = flash_parse_version(info, &info->platform_other, false); if (n < 0) diff --git a/lib/pb-protocol/pb-protocol.c b/lib/pb-protocol/pb-protocol.c index 3953ee1..9091709 100644 --- a/lib/pb-protocol/pb-protocol.c +++ b/lib/pb-protocol/pb-protocol.c @@ -226,8 +226,8 @@ int pb_protocol_system_info_len(const struct system_info *sysinfo) 4 + 4; len += 4; - for (i = 0; i < sysinfo->n_current; i++) - len += 4 + optional_strlen(sysinfo->platform_current[i]); + for (i = 0; i < sysinfo->n_primary; i++) + len += 4 + optional_strlen(sysinfo->platform_primary[i]); len += 4; for (i = 0; i < sysinfo->n_other; i++) len += 4 + optional_strlen(sysinfo->platform_other[i]); @@ -409,10 +409,10 @@ int pb_protocol_serialise_system_info(const struct system_info *sysinfo, pos += pb_protocol_serialise_string(pos, sysinfo->type); pos += pb_protocol_serialise_string(pos, sysinfo->identifier); - *(uint32_t *)pos = __cpu_to_be32(sysinfo->n_current); + *(uint32_t *)pos = __cpu_to_be32(sysinfo->n_primary); pos += sizeof(uint32_t); - for (i = 0; i < sysinfo->n_current; i++) - pos += pb_protocol_serialise_string(pos, sysinfo->platform_current[i]); + for (i = 0; i < sysinfo->n_primary; i++) + pos += pb_protocol_serialise_string(pos, sysinfo->platform_primary[i]); *(uint32_t *)pos = __cpu_to_be32(sysinfo->n_other); pos += sizeof(uint32_t); @@ -845,14 +845,14 @@ int pb_protocol_deserialise_system_info(struct system_info *sysinfo, goto out; /* Platform version strings for openpower platforms */ - if (read_u32(&pos, &len, &sysinfo->n_current)) + if (read_u32(&pos, &len, &sysinfo->n_primary)) goto out; - sysinfo->platform_current = talloc_array(sysinfo, char *, - sysinfo->n_current); - for (i = 0; i < sysinfo->n_current; i++) { + sysinfo->platform_primary = talloc_array(sysinfo, char *, + sysinfo->n_primary); + for (i = 0; i < sysinfo->n_primary; i++) { if (read_string(sysinfo, &pos, &len, &tmp)) goto out; - sysinfo->platform_current[i] = talloc_strdup(sysinfo, tmp); + sysinfo->platform_primary[i] = talloc_strdup(sysinfo, tmp); } if (read_u32(&pos, &len, &sysinfo->n_other)) diff --git a/lib/types/types.h b/lib/types/types.h index 63c1c7c..6ff4620 100644 --- a/lib/types/types.h +++ b/lib/types/types.h @@ -93,9 +93,9 @@ struct blockdev_info { struct system_info { char *type; char *identifier; - char **platform_current; + char **platform_primary; char **platform_other; - unsigned int n_current; + unsigned int n_primary; unsigned int n_other; char **bmc_current; char **bmc_golden; diff --git a/ui/ncurses/nc-sysinfo.c b/ui/ncurses/nc-sysinfo.c index 5d64550..ce8957c 100644 --- a/ui/ncurses/nc-sysinfo.c +++ b/ui/ncurses/nc-sysinfo.c @@ -65,11 +65,11 @@ static void sysinfo_screen_populate(struct sysinfo_screen *screen, line("%-12s %s", _("System type:"), sysinfo->type ?: ""); line("%-12s %s", _("System id:"), sysinfo->identifier ?: ""); - if (sysinfo->n_current) { + if (sysinfo->n_primary) { line(NULL); - line("%s", _("Current platform versions:")); - for (i = 0; i < sysinfo->n_current; i++) { - line("\t%s", sysinfo->platform_current[i] ?: ""); + line("%s", _("Primary platform versions:")); + for (i = 0; i < sysinfo->n_primary; i++) { + line("\t%s", sysinfo->platform_primary[i] ?: ""); } }