aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVasant Hegde <hegdevasant@linux.vnet.ibm.com>2019-10-24 21:25:38 +0530
committerOliver O'Halloran <oohall@gmail.com>2019-11-05 19:39:02 +1100
commitc3bfa320955967c943348dc526828de3d278fdbc (patch)
tree0d61a1ad30c654e29cd342e67dc84b66590bda89
parent1c282887c0d58e56364a2b000c437287d08da815 (diff)
downloadskiboot-c3bfa320955967c943348dc526828de3d278fdbc.zip
skiboot-c3bfa320955967c943348dc526828de3d278fdbc.tar.gz
skiboot-c3bfa320955967c943348dc526828de3d278fdbc.tar.bz2
hdata: Fix reserved node label search
Soon hostboot/HDAT will provide consistent reserved node name. It will just provide node name without starting string "ibm,". Commit 50d508c3 made sure that all device tree nodes starts with "ibm,". But we use hostboot/HDAT provided name for `ibm,prd-label` property. So we have to fix couple of our `ibm,prd-label` property based search/comparision to accommodate this change. Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
-rw-r--r--external/opal-prd/opal-prd.c13
-rw-r--r--hdata/tpmrel.c10
2 files changed, 16 insertions, 7 deletions
diff --git a/external/opal-prd/opal-prd.c b/external/opal-prd/opal-prd.c
index b49d9ae..1dc7691 100644
--- a/external/opal-prd/opal-prd.c
+++ b/external/opal-prd/opal-prd.c
@@ -122,7 +122,8 @@ static struct opal_prd_ctx *ctx;
static const char *opal_prd_devnode = "/dev/opal-prd";
static const char *opal_prd_socket = "/run/opal-prd-control";
-static const char *hbrt_code_region_name = "ibm,hbrt-code-image";
+static const char *hbrt_code_region_name = "hbrt-code-image";
+static const char *hbrt_code_region_name_ibm = "ibm,hbrt-code-image";
static const int opal_prd_version = 1;
static uint64_t opal_prd_ipoll = 0xf000000000000000;
@@ -2193,9 +2194,13 @@ static int run_prd_daemon(struct opal_prd_ctx *ctx)
} else {
rc = map_hbrt_physmem(ctx, hbrt_code_region_name);
if (rc) {
- pr_log(LOG_ERR, "IMAGE: Can't access hbrt "
- "physical memory");
- goto out_close;
+ /* Fallback to old style ibm,prd-label */
+ rc = map_hbrt_physmem(ctx, hbrt_code_region_name_ibm);
+ if (rc) {
+ pr_log(LOG_ERR, "IMAGE: Can't access hbrt "
+ "physical memory");
+ goto out_close;
+ }
}
dump_hbrt_map(ctx);
}
diff --git a/hdata/tpmrel.c b/hdata/tpmrel.c
index 1fe14c7..8bfc0f8 100644
--- a/hdata/tpmrel.c
+++ b/hdata/tpmrel.c
@@ -153,10 +153,14 @@ static void tpmrel_cvc_init(struct HDIF_common_hdr *hdif_hdr)
if (!node)
return;
- cvc_reserved_mem = get_hb_reserved_memory("ibm,secure-crypt-algo-code");
+ cvc_reserved_mem = get_hb_reserved_memory("secure-crypt-algo-code");
if (!cvc_reserved_mem) {
- prlog(PR_ERR, "CVC reserved memory not found\n");
- return;
+ /* Fallback to old style ibm,prd-label */
+ cvc_reserved_mem = get_hb_reserved_memory("ibm,secure-crypt-algo-code");
+ if (!cvc_reserved_mem) {
+ prlog(PR_ERR, "CVC reserved memory not found\n");
+ return;
+ }
}
parent = dt_new(node, "ibm,cvc");