aboutsummaryrefslogtreecommitdiff
path: root/hdata/vpd.c
diff options
context:
space:
mode:
authorVasant Hegde <hegdevasant@linux.vnet.ibm.com>2017-04-02 16:37:28 +0530
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-04-05 12:30:44 +1000
commit54c4dd27bd30030073ede4b2d154da5583d8e20d (patch)
treeb2ac18eab4d7da1182c5e993c70e79f655696943 /hdata/vpd.c
parent810aaf1173a056414295eab22cf32ba6833951b0 (diff)
downloadskiboot-54c4dd27bd30030073ede4b2d154da5583d8e20d.zip
skiboot-54c4dd27bd30030073ede4b2d154da5583d8e20d.tar.gz
skiboot-54c4dd27bd30030073ede4b2d154da5583d8e20d.tar.bz2
hdat: Add model-name property for OpenPower system
Lets add model-name property for OpenPower system as well. Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hdata/vpd.c')
-rw-r--r--hdata/vpd.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/hdata/vpd.c b/hdata/vpd.c
index 6cb9bec..5a66140 100644
--- a/hdata/vpd.c
+++ b/hdata/vpd.c
@@ -501,12 +501,17 @@ struct dt_node *dt_add_vpd_node(const struct HDIF_common_hdr *hdr,
return node;
}
-static void dt_add_model_name(char *model)
+static void dt_add_model_name(void)
{
const char *model_name = NULL;
const struct machine_info *mi;
const struct iplparams_sysparams *p;
const struct HDIF_common_hdr *iplp;
+ const struct dt_property *model;
+
+ model = dt_find_property(dt_root, "model");
+ if (!model)
+ goto def_model;
iplp = get_hdif(&spira.ntuples.ipl_parms, "IPLPMS");
if (!iplp)
@@ -521,12 +526,12 @@ static void dt_add_model_name(char *model)
def_model:
if (!model_name || model_name[0] == '\0') {
- mi = machine_info_lookup(model);
+ mi = machine_info_lookup(model->prop);
if (mi) {
model_name = mi->name;
} else {
model_name = "Unknown";
- prlog(PR_WARNING, "VPD: Model name %s not known\n", model);
+ prlog(PR_WARNING, "VPD: Model name %s not known\n", model->prop);
}
}
@@ -566,7 +571,6 @@ static void sysvpd_parse_legacy(const void *sysvpd, unsigned int sysvpd_sz)
if (str) {
memcpy(str, model, sz);
dt_add_property_string(dt_root, "model", str);
- dt_add_model_name(str);
free(str);
}
} else
@@ -619,6 +623,8 @@ static void sysvpd_parse(void)
sysvpd_parse_opp(sysvpd, sysvpd_sz);
} else
sysvpd_parse_legacy(sysvpd, sysvpd_sz);
+
+ dt_add_model_name();
}
static void iokid_vpd_parse(const struct HDIF_common_hdr *iohub_hdr)