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.
The GICv2's documentation describes as a programming error (see 5.2.4) having two or more copies of the same interrupt in the List registers.
The notion of "same interrupt" is a bit vague when it comes to SGIs. Is it an error to program several LRs with the same SGI number, but distinct source CPUIDs?
I speculate that it is not an error, because the description of GICH_LR.VirtualID states that each valid interrupt stored in the List registers must have a unique VirtualID for that virtual CPU interface, suggesting that this condition is enough; and the VirtualID encodes both the interrupt ID and the CPUID.
Can anyone confirm/infirm my reasoning?
I must have been distracted when I read the spec. GICH_LR.VirtualID actually encodes the interrupt ID only. The CPUID is part of GICH_LR.PhysicalID. So it seems to suggest that it is an error to program several LRs with the same SGI number.