First Part - EL3 Group1 SGI issue
I successfully developed a validation test, which makes A72 trigger and handle non-secure group1 SGI number 0~15 at EL3.
But I have some problem. At EL3.
Why SGI0~15 are generated by same register, but can be handled only when assigned to different group?
When I generate SGI by writing ICC_SGI1R_EL1 and ICC_ASGI1R_EL1 at EL3, how should I correctly group them?
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Second Part - Group1 SGI from EL3 to EL1
Now, ignoring this question, I want to let A72 trigger and handle Non-secure group1 SGI test at EL1 Non-secure state.
But I after I configure register at EL3 as showed below, and change El3 to EL1, interrupt can't be handled. What step I still miss?
uint32_t reg; reg = get_SCR_EL3(); reg &= ~(1<<2);//clear fiq reg &= ~(1<<1);//clear irq set_SCR_EL3(reg); reg = get_HCR_EL2(); reg &= ~(1<<4);//clear FMO reg &= ~(1<<3);//clear IMO set_HCR_EL2(reg); el3_config_to_non_secure(); transition_to_lower_el(EL3, EL2); transition_to_lower_el(EL2, EL1);
understood. it's very clear to me. thank you so so much!