aboutsummaryrefslogtreecommitdiff
path: root/lib/utils
diff options
context:
space:
mode:
authorYu Chien Peter Lin <peterlin@andestech.com>2024-07-24 23:00:54 +0800
committerAnup Patel <anup@brainfault.org>2024-08-23 14:17:29 +0530
commit56183ca609aa72a075d96d23eebe3df7fbaf53cd (patch)
tree075ebc7ea9d8a007d278fe7eb0d2735433d4a649 /lib/utils
parent3d1f53b1732dee047bef053fd25aa7b57051b47c (diff)
downloadopensbi-56183ca609aa72a075d96d23eebe3df7fbaf53cd.zip
opensbi-56183ca609aa72a075d96d23eebe3df7fbaf53cd.tar.gz
opensbi-56183ca609aa72a075d96d23eebe3df7fbaf53cd.tar.bz2
lib: utils: fdt_domain: Use consistent device-tree address when next-arg1 is missing
The diagram shown below illustrates the boot-flow involving OP-TEE OS initialization. (1)-----------+ | U-Boot SPL | +------------+ | v (2)-------------------------------------------------------------+ | OpenSBI (fw_dynamic) | | (4)------------------------+ | | | optee dispatcher driver | | +-----------------+-------^---------|-------+------------------+ M-mode | | | ---------+--[trusted domain]---+----.----+--[untrusted domain]------- S-mode | (coldboot domain) | | | v | | v (3)---------------------------+ |(5)----------------------------+ | OP-TEE OS | | | U-Boot | +----------------------------+ | +-----------------------------+ | | | v |(6)----------------------------+ | | Linux | | +-----------------------------+ As OP-TEE OS has device-tree node fixups that need to be passed through to the next boot stages, e.g. the reserved memory node: reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; optee_core@f1000000 { no-map; reg = <0x0 0xf1000000 // OP-TEE OS base address 0x0 0x01000000>; }; <...> }; Instead of using 0x0 as the default value, allow identical next-arg1 to be used by non-coldboot domain (i.e., untrusted domain) when the property is not provided. Also, update the description of next-arg1 property in the document. Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com> Reviewed-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'lib/utils')
-rw-r--r--lib/utils/fdt/fdt_domain.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/lib/utils/fdt/fdt_domain.c b/lib/utils/fdt/fdt_domain.c
index fa1c357..a13daa6 100644
--- a/lib/utils/fdt/fdt_domain.c
+++ b/lib/utils/fdt/fdt_domain.c
@@ -395,8 +395,7 @@ static int __fdt_parse_domain(void *fdt, int domain_offset, void *opaque)
val64 = fdt32_to_cpu(val[0]);
val64 = (val64 << 32) | fdt32_to_cpu(val[1]);
} else {
- if (domain_offset == *cold_domain_offset)
- val64 = sbi_scratch_thishart_ptr()->next_arg1;
+ val64 = sbi_scratch_thishart_ptr()->next_arg1;
}
dom->next_arg1 = val64;