Commit 8f861819 authored by Peng Fan's avatar Peng Fan
Browse files

MLK-16753-1 imx8m: add optee node according to runtime status



If TEE is enabled according to rom_pointer[0,1] passed to BL33
from ATF, uboot need to add the optee node in dts to let
Kernel could probe the TEE driver.
Signed-off-by: default avatarPeng Fan <peng.fan@nxp.com>
parent 96cf020b
......@@ -373,6 +373,54 @@ void get_board_serial(struct tag_serialnr *serialnr)
#endif
#ifdef CONFIG_OF_SYSTEM_SETUP
static int ft_add_optee_node(void *fdt, bd_t *bd)
{
const char *path, *subpath;
int offs;
/*
* No TEE space allocated indicating no TEE running, so no
* need to add optee node in dts
*/
if (!rom_pointer[1])
return 0;
offs = fdt_increase_size(fdt, 512);
if (offs) {
printf("No Space for dtb\n");
return 1;
}
path = "/firmware";
offs = fdt_path_offset(fdt, path);
if (offs < 0) {
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);
}
}
subpath = "optee";
offs = fdt_add_subnode(fdt, offs, subpath);
if (offs < 0) {
printf("Could not create %s node.\n", subpath);
}
fdt_setprop_string(fdt, offs, "compatible", "linaro,optee-tz");
fdt_setprop_string(fdt, offs, "method", "smc");
return 0;
}
int ft_system_setup(void *blob, bd_t *bd)
{
if (get_boot_device() == USB_BOOT) {
......@@ -409,6 +457,7 @@ add_status:
}
}
}
return 0;
return ft_add_optee_node(blob, bd);
}
#endif
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment