summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGregor Haas <[email protected]>2024-08-08 20:47:12 -0700
committerAnup Patel <[email protected]>2024-08-24 14:08:00 +0530
commitb0ad9e0bdd7804fad76dac4228b8a79e3c953310 (patch)
treee5a3a025cc46cfc89205c1bcaf799a9859189523 /lib
parentc5b6ebd141ee33a6280f77bd84be8d0603ef7f77 (diff)
lib: utils: fdt_domain: Make opensbi-domain optional in CPU node
The domain_support.md documentation states that "the HART to domain instance assignment can be parsed from the device tree using *optional* DT property opensbi-domain in each CPU DT node". However, the current implementation does not treat this parameter as optional when determining which HARTs to assign to a freshly discovered domain from the device tree, causing an effect where every HART in the system must be explicitly assigned to a domain only if a domain is specified in the device tree. Instead, this patch simply ignores CPUs that do not specify a domain, and does not attempt to assign them into the recently discovered domain. Signed-off-by: Gregor Haas <[email protected]> Reviewed-by: Anup Patel <[email protected]>
Diffstat (limited to 'lib')
-rw-r--r--lib/utils/fdt/fdt_domain.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/utils/fdt/fdt_domain.c b/lib/utils/fdt/fdt_domain.c
index 8683bb3e..4fde50f5 100644
--- a/lib/utils/fdt/fdt_domain.c
+++ b/lib/utils/fdt/fdt_domain.c
@@ -475,12 +475,12 @@ static int __fdt_parse_domain(const void *fdt, int domain_offset, void *opaque)
if (!fdt_node_is_enabled(fdt, cpu_offset))
continue;
+ /* This is an optional property */
val = fdt_getprop(fdt, cpu_offset, "opensbi-domain", &len);
- if (!val || len < 4) {
- err = SBI_EINVAL;
- goto fail_free_all;
- }
+ if (!val || len < 4)
+ continue;
+ /* However, it should be valid if specified */
doffset = fdt_node_offset_by_phandle(fdt, fdt32_to_cpu(*val));
if (doffset < 0) {
err = doffset;