Skip to content

Commit

Permalink
hdat: Grab vendor information from HDAT when available
Browse files Browse the repository at this point in the history
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>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
  • Loading branch information
Vasant Hegde authored and stewartsmith committed Jan 16, 2017
1 parent 1357e64 commit 5b5dc42
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 3 deletions.
10 changes: 10 additions & 0 deletions hdata/spira.c
Original file line number Diff line number Diff line change
Expand Up @@ -779,6 +779,7 @@ static void add_iplparams_sys_params(const void *iplp, struct dt_node *node)
const struct iplparams_sysparams *p;
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)) {
Expand Down Expand Up @@ -845,6 +846,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)
Expand Down
2 changes: 1 addition & 1 deletion hdata/test/p8-840-spira.dt
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,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
Expand Down
2 changes: 1 addition & 1 deletion hdata/test/p81-811.spira.dt
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,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
Expand Down
1 change: 0 additions & 1 deletion hdata/vpd.c
Original file line number Diff line number Diff line change
Expand Up @@ -650,7 +650,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)
Expand Down

0 comments on commit 5b5dc42

Please sign in to comment.