]> git.proxmox.com Git - mirror_edk2.git/commit
ArmPkg/ArmGicDxe: Fix GICv3 interrupt routing mode bug
authorMing Huang <ming.huang@linaro.org>
Mon, 29 Oct 2018 04:57:08 +0000 (12:57 +0800)
committerArd Biesheuvel <ard.biesheuvel@linaro.org>
Wed, 7 Nov 2018 15:19:22 +0000 (16:19 +0100)
commitb66e38b50134728614bbca2a2449a36a5dc2bd91
tree643c748b36fade13e8f8c9754619cac247e50e1b
parent0adc6eae9480ca1ae7ac01e239e09b58e447e467
ArmPkg/ArmGicDxe: Fix GICv3 interrupt routing mode bug

Setting GICD_IROUTERn.IRM and GICD_IROUTERn.{Aff3,Aff2,Aff1,Aff0}
at the same time is nonsensical (see 8.9.13 in the GICv3 spec, which
says of GICD_IROUTERn.IRM that "When this bit is set to 1,
GICD_IROUTER<n>.{Aff3,Aff2,Aff1,Aff0} are UNKNOWN"). There is also no
guarantee that IRM is implemented (see GICD_TYPER.No1N which indicates
whether the implementation supports this or not).

Let's thus not set this bit, as we want all SPIs to be delivered to the
same CPU, and not be broadcast to all of them.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ming Huang <ming.huang@linaro.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c