This patchset enables the TZ support in the GIC for the systems where we enable TZ support in the CPU. In practice that means just the "virt" and "vexpress" boards, since all the others disable the CPU TZ support.
Andreas: I've cc'd you because of Peter C's patch to add object_child_foreach_recursive(). None of the other patches have anything particularly novel QOM-wise (since the GIC property from v1 has gone away). Changes since v1: * New patch which switches the default for the 'virt' board from "enable TZ" to "disable TZ". The UEFI blob can't handle TZ being fully enabled, so I had a choice of breaking it or breaking code which assumes TZ. As far as I know only the TZ test suite falls in the latter category. -machine secure=on will give you the old behaviour back. * rather than the property on the GIC, we take the approach Peter C suggested of defining an interface for devices to implement if they need to do firmware-equivalent setup. The API is a little different from Peter C's RFC patch, but the principle is the same. The patches sit on top of the secure-timer patches I sent out earlier today, which in turn sit on top of Edgar's hyp-timer patches. You can find a git branch with everything at https://git.linaro.org/people/peter.maydell/qemu-arm.git full-tz-enable Peter Crosthwaite (1): qom: Add recursive version of object_child_for_each Peter Maydell (5): hw/arm: new interface for devices which need to behave differently for kernel boot hw/intc/arm_gic_common: Configure IRQs as NS if doing direct NS kernel boot hw/cpu/{a15mpcore,a9mpcore}: enable TrustZone in GIC if it is enabled in CPUs hw/arm/virt: Default to not providing TrustZone support hw/arm/virt: Enable TZ extensions on the GIC if we are using them hw/arm/boot.c | 34 +++++++++++++++++++++++++++ hw/arm/virt.c | 14 +++++++---- hw/cpu/a15mpcore.c | 13 ++++++++++ hw/cpu/a9mpcore.c | 11 +++++++++ hw/intc/arm_gic_common.c | 51 +++++++++++++++++++++++++++++++++++++--- include/hw/arm/linux-boot-if.h | 43 +++++++++++++++++++++++++++++++++ include/hw/intc/arm_gic_common.h | 1 + include/qom/object.h | 15 ++++++++++++ qom/object.c | 25 +++++++++++++++++--- 9 files changed, 197 insertions(+), 10 deletions(-) create mode 100644 include/hw/arm/linux-boot-if.h -- 1.9.1