Use 'Primary' instead of 'Current' for flash sides
authorSam Mendoza-Jonas <sam@mendozajonas.com>
Thu, 25 Feb 2016 23:39:55 +0000 (10:39 +1100)
committerSam Mendoza-Jonas <sam@mendozajonas.com>
Fri, 26 Feb 2016 01:39:37 +0000 (12:39 +1100)
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 <sam@mendozajonas.com>
discover/hostboot.c
lib/pb-protocol/pb-protocol.c
lib/types/types.h
ui/ncurses/nc-sysinfo.c

index 9a27b0fc29a5514a5cd62c3e3934a5849e7689d8..bc9a3baac27175482333a314be94c972fa28d041 100644 (file)
@@ -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)
index 3953ee1fbd471ef553a6c845674ee9e4aa9aae24..9091709cd095b145cd3572d345a16070ac4ad996 100644 (file)
@@ -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))
index 63c1c7c811aaed6deb2ba26630dc23d7611eb668..6ff4620e54a5ac0b129cec00a949c522a730bf2c 100644 (file)
@@ -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;
index 5d64550f40bc98a567f7ef87f90bec5085a331d8..ce8957cdfe7f9dcd3aa6cbb4972c7891a721df79 100644 (file)
@@ -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] ?: "");
                }
        }