We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi,
I am configuring the GICD_IGRPMODR[0] with a 0X3FFFFFFF value. Sometimes value is read as 0 sometimes it is 0x3FFFFFFF.
The value of GICD_CTLR is 0x30.
1) Can you please tell me why this register behaves differently?
2) In GIC Spec
https://developer.arm.com/documentation/ihi0069/latest/ Page 567 title: Accessing the GICD_IGRPMODR
There are 2 statements that sound contradictory
A) When GICD_CTLR.ARE_S==0 or GICD_CTLR.DS==1, the GICD_IGRPMODR<n> registers are RES0.
B) When affinity routing is enabled for the Secure state, GICD_IGRPMODR0 is RES0 and equivalent functionality is proved by GICR_IGRPMODR0.
When GICD_IGRPMODR[0] register marked as RES0? When ARE_S=0 or ARE_S=1. In our case DS =0 always
3) What is the value of RES0? Is there any difference between RES and RES0?
Thanks, Mr. Martin for the details.
I checked the address of the register in the code. The offset of the register is 0x0D04 meanings its GICD_IGRPMODR[1] register.
While accessing GICD_IGRPMODR[1], Our system is in a secure state, and the DS = 0, ARE_s = 1, ARE_NS=1(ie GICD_CTLR = 0x30)
1) Does Any other configuration affect the GICD_IGRPMODR[1] to become RES0?
2) Any idea, How to check what is access mode( Non-secure accesses, and secure access) while accessing the register
Thank you in advance