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

GICD_IGRPMODR[0] register read as 0

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?