Hi
my situation: Running an OS in normal-world which due to an (user) error enters safe state with interrupts disabled. The Hypervisor enters by an FIQ (watchdog) and should reset the normal-world.
No the problem: If the normal-world error happens in an interrupt and EOI wasn't written, then the interrupt keeps active.
In the FIQ-Handler I do an EOI with the IPI vector.
How do I know which ID to write into EOI? Do I have to scan all active bits?
Reading ICCHPIR always returns 0x3fe. Reading ICCIAR returns 0x3ff.
Currently I know the ID, so if I write the correct value, active state goes away.
Any hint?
Hi Martin,
yes I use secure state to realize a Hypervisor.
Meanwhile I scan all NS interrupts in ICDABRn and do an EOI (with ICCICR.ACKCTL = 1). This works (so far) with my test application.