Hi,
how can I check if the GIC-v3 I am using has support for the optional asymetric / legacy support ?
Best,
V.
From §10.1.2 of the GICv3 Architecture Reference Manual (ARM IHI0069C):
Legacy operation is a deprecated feature. In an implementation that does not support legacy operation the followingbits, where implemented, are RAO/WI: • ICC_SRE_EL1.SRE. • ICC_SRE_EL2.SRE. • ICC_SRE_EL3.SRE. • ICC_SRE.SRE. • ICC_HSRE.SRE. • ICC_MSRE.SRE. • GICD_CTLR.ARE_NS. • GICD_CTLR.ARE_S.
Legacy operation is a deprecated feature. In an implementation that does not support legacy operation the following
bits, where implemented, are RAO/WI:
• ICC_SRE_EL1.SRE.
• ICC_SRE_EL2.SRE.
• ICC_SRE_EL3.SRE.
• ICC_SRE.SRE.
• ICC_HSRE.SRE.
• ICC_MSRE.SRE.
• GICD_CTLR.ARE_NS.
• GICD_CTLR.ARE_S.
A consequence of this is that if a GICv3 implementation supports legacy operation, it will be in legacy mode at reset; so if you're not in legacy mode at reset, your GICv3 implementation does not support legacy operation.
Hope that helps,
Ash.
Ok, so I will need to patch u-boot to check very early, since I'm not the first one to mess with ICC_SRE_EL3.SRE
Thank you !