diff mbox series

[RFC,v7,12/12] Add obsolete secure-memory-ranges property

Message ID 20200706161439.12635-13-grimm@linux.ibm.com
State Not Applicable
Headers show
Series Ultravisor support in skiboot | expand

Checks

Context Check Description
snowpatch_ozlabs/apply_patch success Successfully applied on branch master (abe4c4799ffee4be12674ad59fc0bc521b0724f3)
snowpatch_ozlabs/snowpatch_job_snowpatch-skiboot success Test snowpatch/job/snowpatch-skiboot on branch master
snowpatch_ozlabs/snowpatch_job_snowpatch-skiboot-dco success Signed-off-by present

Commit Message

Ryan Grimm July 6, 2020, 4:14 p.m. UTC
Upstream kernel code looks for this so keep compatibility till it's safe
to remove.

Signed-off-by: Ryan Grimm <grimm@linux.ibm.com>
---
 hdata/spira.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
diff mbox series

Patch

diff --git a/hdata/spira.c b/hdata/spira.c
index 9d0ea6d6..5ba1ff13 100644
--- a/hdata/spira.c
+++ b/hdata/spira.c
@@ -1651,6 +1651,34 @@  static void add_npus(void)
 	}
 }
 
+static void add_obsolete_uv_prop(struct dt_node *uv_node)
+{
+	uint64_t secure_start, secure_size;
+	struct dt_node *np;
+	int num_ranges = 0;
+	uint64_t *ranges;
+	int i = 0;
+
+	dt_for_each_compatible(dt_root, np, "ibm,secure-memory")
+		num_ranges++;
+
+	ranges = malloc(num_ranges * sizeof(ranges) * 2);
+	if (!ranges) {
+		prerror("UV: Malloc failed");
+		return;
+	}
+
+	dt_for_each_compatible(dt_root, np, "ibm,secure-memory") {
+		secure_start = dt_get_address(np, 0, &secure_size);
+		ranges[i] = secure_start;
+		ranges[i++] = secure_size;
+	}
+
+	dt_add_property(uv_node, "secure-memory-ranges",
+			ranges, sizeof(ranges));
+	free(ranges);
+}
+
 static void add_uv(void)
 {
 	struct dt_node *uv_node, *secure_mem_node, *uv_fw_node;
@@ -1675,6 +1703,8 @@  static void add_uv(void)
 	uv_fw_node = dt_new_check(uv_node, fw_name);
 	dt_add_property_string(uv_fw_node, "compatible", "ibm,uv-firmware");
 	dt_add_property_u64s(uv_fw_node, "reg", uv_fw_start, UV_LOAD_MAX_SIZE);
+
+	add_obsolete_uv_prop(uv_fw_node);
 }
 
 /*