Hi,
Recently I am working on porting our Cortex A7 code that used to run in secure world to non-secure world for some reason. I got a problem when it came to GIC initialization.
I noticed that in order to manipulate a certain interrupt settings in non-secure world, I need to set that interrupt to Group 1 before I jump to non-secure. Besides that, everything else should be just identical to what should be done in secure world. Even the GICC and GICD control registers banked for non-secure world changed the enable bit for Group 1 to bit 0 so it can be enabled with the same bit mask I used for secure world. I also noticed the difference in priority settings, however, since all my interrupts have the same priority, I didn't make any change to priority settings either.
However, the CPU is not seeing any interrupts that could be seen before, PPI or SPI. Did I miss something here?
BTW, one reason I need to make this work is because I need to jump to non-secure Linux at some point, so need to make sure the GIC is initialized properly for non-secure operations. It would be great if somebody could point me at something explains how to prepare the processor before jumping to a NS linux.
Thanks,
Zizhu