aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorAndrew F. Davis2017-07-10 14:45:51 -0500
committerTom Rini2017-07-22 22:22:44 -0400
commit137ae0c4b1c4da281a9c4f533242ed547f916578 (patch)
treeeba1953160e652a35896df96ed63ef7e213ac2b2 /arch
parent03750231a84da904d6d2809a54d3147dee833f26 (diff)
arm: mach-omap2: fdt-common: Add OP-TEE node when firmware node is defined
If a firmware node is already present in the FDT we will fail to create one and so fail to add our OP-TEE node, make this fixup first check for a firmware node and then only try to add one if it is not found. Signed-off-by: Andrew F. Davis <afd@ti.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/fdt-common.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/arch/arm/mach-omap2/fdt-common.c b/arch/arm/mach-omap2/fdt-common.c
index 297d4d4df5a..9297e9db487 100644
--- a/arch/arm/mach-omap2/fdt-common.c
+++ b/arch/arm/mach-omap2/fdt-common.c
@@ -134,14 +134,22 @@ int ft_hs_add_tee(void *fdt, bd_t *bd)
if (!tee_loaded)
return 0;
- path = "/";
+ path = "/firmware";
offs = fdt_path_offset(fdt, path);
-
- subpath = "firmware";
- offs = fdt_add_subnode(fdt, offs, subpath);
if (offs < 0) {
- printf("Could not create %s node.\n", subpath);
- return 1;
+ path = "/";
+ offs = fdt_path_offset(fdt, path);
+ if (offs < 0) {
+ printf("Could not find root node.\n");
+ return 1;
+ }
+
+ subpath = "firmware";
+ offs = fdt_add_subnode(fdt, offs, subpath);
+ if (offs < 0) {
+ printf("Could not create %s node.\n", subpath);
+ return 1;
+ }
}
subpath = "optee";