@@ -1335,6 +1335,22 @@ static void create_platform_bus(VirtMachineState *vms)
sysbus_mmio_get_region(s, 0));
}
+static void create_secure_tee(VirtMachineState *vms)
+{
+ char *firmware;
+ char *optee;
+
+ firmware = g_strdup_printf("/firmware");
+ qemu_fdt_add_subnode(vms->fdt, firmware);
+
+ optee = g_strdup_printf("/firmware/optee");
+ qemu_fdt_add_subnode(vms->fdt, optee);
+ qemu_fdt_setprop_string(vms->fdt, optee, "compatible", "linaro,optee-tz");
+
+ g_free(optee);
+ g_free(firmware);
+}
+
static void create_secure_ram(VirtMachineState *vms,
MemoryRegion *secure_sysmem)
{
@@ -1720,6 +1736,7 @@ static void machvirt_init(MachineState *machine)
if (vms->secure) {
create_secure_ram(vms, secure_sysmem);
create_uart(vms, VIRT_SECURE_UART, secure_sysmem, serial_hd(1));
+ create_secure_tee(vms);
}
vms->highmem_ecam &= vms->highmem && (!firmware_loaded || aarch64);
Add optee compatible string for dtb to force linux to boot optee module. Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org> --- hw/arm/virt.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)