This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

GICv2 initialization for Non-Secure World

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

0