@@ -760,6 +760,7 @@ static void add_iplparams_sys_params(const void *iplp, struct dt_node *node)
const char *sys_family;
const struct HDIF_common_hdr *hdif = iplp;
u16 version = be16_to_cpu(hdif->version);
+ const char *vendor = NULL;
p = HDIF_get_idata(iplp, IPLPARAMS_SYSPARAMS, NULL);
if (!CHECK_SPPTR(p)) {
@@ -807,6 +808,15 @@ static void add_iplparams_sys_params(const void *iplp, struct dt_node *node)
freq *= 1000000;
dt_add_property_u64(dt_root, "nest-frequency", freq);
}
+
+ if (version >= 0x5f)
+ vendor = p->sys_vendor;
+
+ /* Workaround a bug where we have NULL vendor */
+ if (!vendor || vendor[0] == '\0')
+ vendor = "IBM";
+
+ dt_add_property_string(dt_root, "vendor", vendor);
}
static void add_iplparams_ipl_params(const void *iplp, struct dt_node *node)
@@ -40,10 +40,10 @@ prop: #size-cells size: 4 val: 00000002
prop: lid-type size: 5 val: 7068797000
prop: compatible size: 24 val: 69626d2c706f7765726e760069626d2c666972656e7a6500
prop: nest-frequency size: 8 val: 0000000077359400
+prop: vendor size: 4 val: 49424d00
prop: skiboot,maxmem size: 8 val: 80000007ffffffff
prop: model size: 9 val: 383238362d34314100
prop: model-name size: 22 val: 49424d20506f7765722053797374656d205338313400
-prop: vendor size: 4 val: 49424d00
prop: system-id size: 8 val: 5455303031363300
prop: system-brand size: 3 val: 533000
prop: ibm,hbrt-mini-fdt size: 4096 val: d00dfeed000005c20000012800000528000000280000001100000010000000000000009a000004
@@ -91,10 +91,10 @@ prop: #size-cells size: 4 val: 00000002
prop: lid-type size: 5 val: 7068797000
prop: compatible size: 24 val: 69626d2c706f7765726e760069626d2c666972656e7a6500
prop: nest-frequency size: 8 val: 0000000077359400
+prop: vendor size: 4 val: 49424d00
prop: skiboot,maxmem size: 8 val: 8000001fffffffff
prop: model size: 9 val: 383234372d32324c00
prop: model-name size: 23 val: 49424d20506f7765722053797374656d20533832324c00
-prop: vendor size: 4 val: 49424d00
prop: system-id size: 8 val: 3130313043384100
prop: system-brand size: 3 val: 533000
prop: ibm,hbrt-mini-fdt size: 4096 val: d00dfeed0000026e0000012800000214000000280000001100000010000000000000005a000000
@@ -649,7 +649,6 @@ static void sysvpd_parse(void)
}
free(str);
- dt_add_property_string(dt_root, "vendor", "IBM");
system_id = vpd_find(sysvpd, sysvpd_sz, "VSYS", "SE", &sz);
if (!system_id)
Latest spec added vendor information to IPL PARAMS ntuple. Grab this information when available instead of hardcoding vendor name. Also move vendor property code from vpd.c to iplparms parsing function in spira.c. Suggested-by: Stewart Smith <stewart@linux.vnet.ibm.com> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> --- Stewart, This is based on top of Oliver's patchset.. which updates ipl_params structure. Else compilation will fail. -Vasant hdata/spira.c | 10 ++++++++++ hdata/test/p8-840-spira.dt | 2 +- hdata/test/p81-811.spira.dt | 2 +- hdata/vpd.c | 1 - 4 files changed, 12 insertions(+), 3 deletions(-)