Hi,
I am currently experimenting with ARM TrustZone using a (non-secure) EVMK2L board, but I have run into some issues when trying to set up the ARM GIC to manage secure and non secure interrupts.
I believe that the TCI6630K2L contains a ARM GIC-400 Interrupt controller, which (according to the ARM documentation) supports the GIC Security Extensions.
Despite this, I do not see any of the GIC Security Extensions behaviour when experimenting with the GIC setup. For example, I can read and set the contents of the GICD_IGROUPR0 register from non secure mode, yet the ARM GIC Architecture Specification states that this should be RAZ/WI from non secure mode. Also, if I change the setup of the GIC from non secure mode, the secure configuration also changes, so there appears to be no register banking.
The only thing I could find that might explain this is a note in section 2.4.1 of SPRUHJ4 (Keystone II Architecture ARM CorePac User Guide), which states -
"The original ARM GIC Security Extension supports both secure interrupts (Group 0) and non-secure interrupts (Group 1) but all transaction made to GIC are treated as secure transaction in AINTC, so that the user has to follow the Secure mode procedure irrespective of ARM A15 Core mode."
I am not quite sure what this means? Would this explain the behaviour that I am seeing?