I can access ICC_IAR1_EL1 at EL3 using SP_EL0, however, after I switch EL3 to EL1 non-secure, I can't read IIC_IAR1_EL1 anymore, which doesn't make sense.
Can anybody help here? much appreciated.
__func__011000 EC=MSR, MRS, or System instruction, that isn't reported using EC 0x00/0x01/0x07Unhandled exception 0x18(24) from CA72_0 to CA72_0EXC number:0x00000018EXC class: 0x00000018FaultReg: 0x00000000StatusPrg: 0x80000005PC: 0x00000000 0xA0007F78 FaultReg: 0xD538CC00StatusPrg: 0x00303019Exception class is MSR_MRS These report exceptions from MSR, MRS, or System instructions Instruction syndrome MSR/MRS: Op0: 0x00000000Op2: 0x00000000Op1: 0x00000000CRn: 0x00000000Rt : 0x00000000CRm: 0x00000018dir: 0x00000001
Hi Martin,
Thanks very much for your always help!! Your answer always help me a lot.
Following you suggestion, I tried to check ICC_SRE_EL1_S and ICC_SRE_EL1_NS at EL3 by changing SCR_EL3.NS.
Seems both of ICC_SRE_EL1_S and ICC_SRE_EL1_NS are set to 0x7 already.
My Test Log is showed below.
icc_sre_el1 is 0x7 // checking ICC_SRE_EL1_SSCR_EL3 is 0xc0e // checking SCR_EL3.NS, which is 0x0 by default after initialization
SCR_EL3 is 0xc0f // setting SCR_EL3.NS to 0x1icc_sre_el1 is 0x7 // checking ICC_SRE_EL1_NS
HCR_EL2 is 0x0 // Got HCR_EL2 0x0, cause I read it at EL3ICC IAR1 EL1 is 0x3ff // checking ICC_IAR1_EL1
enter non-secure worldtransition_to_lower_el :Current EL is EL2transition_to_lower_el :Current EL is EL1
current EL is 0x4
Try to read ICC_IAR1_EL1 again, but got error below:
__func__011000 EC=MSR, MRS, or System instruction, that isn't reported using EC 0x00/0x01/0x07Unhandled exception 0x18(24) from CA72_0 to CA72_0EXC number:0x00000018EXC class: 0x00000018FaultReg: 0x00000000StatusPrg: 0x60000004PC: 0x00000000 0xA0007DCC FaultReg: 0xD538CC00StatusPrg: 0x00303019Exception class is MSR_MRS These report exceptions from MSR, MRS, or System instructions Instruction syndrome MSR/MRS: Op0: 0x00000000Op2: 0x00000000Op1: 0x00000000CRn: 0x00000000Rt : 0x00000000CRm: 0x00000018dir: 0x00000001