棋子 · 2020年01月27日

Not able to disable Affinity Routing

I'm not able to disable the affinity routing (i.e. ARE_S and ARE_NS bits being set always). Reset value of GICD_CTLR register is 0x30.

Actually I want to forward the interrupt from Distributor to multiple Cores but seems to use ITARGETSR, affinity routing should not be enabled.

Can someone please let me know how to do the same ?

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2020年01月27日

When you synthesize the GIC-500 you have a number of options, one of them is whether to support legacy mode.

If the GIC-500 was synthesized with legacy support, then the ARE bits will reset to 0 (i.e. legacy mode). Software has to manually set them to access the new GICv3 behaviours.

If the GIC-500 was synthesized without legacy support, the ARE bits will hard wired to 1. The GIC-500 is permanently in GICv3 mode.

So I think you need to check with the SoC vendor (or your hardware design colleagues) how they synthesized the GIC-500.

你的回答