lib: utils: fdt_domain: Make opensbi-domain optional in CPU specification
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
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
@@ -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
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.
Signed-off-by Gregor Haas <[email protected]>--- lib/utils/fdt/fdt_domain.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)lib/utils/fdt/fdt_domain.c +4
-5@@ -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