Skip to contentSkip to conversation

lib: utils: fdt_domain: Make opensbi-domain optional in CPU specification

PATCH New Gregor Haas 2 participants 3 messages Aug 9, 2024 – Aug 24, 2024

lore
Share & tools
lore
#0 lore raw

v2 cover lib: utils: fdt_domain: Make opensbi-domain optional in CPU specification

v2:
- Add missing Signed-off-by line
- Follow formatting guidelines learned from previous patches

Gregor Haas (1):
lib: utils: fdt_domain: Make opensbi-domain optional in CPU
specification

 lib/utils/fdt/fdt_domain.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
Signature · 1 line
2.45.2
#1 lore raw

PATCH v2 1/1 lib: utils: fdt_domain: Make opensbi-domain optional in CPU specification

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.

---
 lib/utils/fdt/fdt_domain.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
lib/utils/fdt/fdt_domain.c +4 -4
index fa1c357..c6ee127 100644
@@ -459,12 +459,12 @@ static int __fdt_parse_domain(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;
Signature · 1 line
2.45.2
#2 lore raw

PATCH v2 1/1 lib: utils: fdt_domain: Make opensbi-domain optional in CPU specification

Quoted 1 line · On Fri, Aug 9, 2024 at 9:17?AM Gregor Haas <[email protected]> wrote:

s/CPU specification/CPU node/

Quoted 37 lines

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.

---
 lib/utils/fdt/fdt_domain.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
lib/utils/fdt/fdt_domain.c +4 -5
index fa1c357..c6ee127 100644
@@ -459,12 +459,12 @@ static int __fdt_parse_domain(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;
--
Quoted 2 lines

2.45.2

Otherwise, this looks good to me.

I have taken care of the above comment at the time of merging this patch. Applied this patch to the riscv/opensbi repo.

Thanks,
Anup