mirror of https://github.com/acidanthera/audk.git
ArmPkg/ArmGicV3Dxe: Use ArmGicSetInterruptPriority() to set priority
When Affinity Routing enabled, the GICR_IPRIORITYR<n> is used to set priority for SGIs and PPIs instead of GICD_IPRIORITYR<n>. This patch calls ArmGicSetInterruptPriority() helper function when setting priority to handle the difference. Cc: Leif Lindholm <leif@nuviainc.com> Signed-off-by: Quan Nguyen <quan@os.amperecomputing.com> Reviewed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
This commit is contained in:
parent
0d49b82e4f
commit
1159fc3230
|
@ -374,8 +374,6 @@ GicV3DxeInitialize (
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
UINTN Index;
|
UINTN Index;
|
||||||
UINT32 RegOffset;
|
|
||||||
UINTN RegShift;
|
|
||||||
UINT64 CpuTarget;
|
UINT64 CpuTarget;
|
||||||
UINT64 MpId;
|
UINT64 MpId;
|
||||||
|
|
||||||
|
@ -397,12 +395,11 @@ GicV3DxeInitialize (
|
||||||
GicV3DisableInterruptSource (&gHardwareInterruptV3Protocol, Index);
|
GicV3DisableInterruptSource (&gHardwareInterruptV3Protocol, Index);
|
||||||
|
|
||||||
// Set Priority
|
// Set Priority
|
||||||
RegOffset = Index / 4;
|
ArmGicSetInterruptPriority (
|
||||||
RegShift = (Index % 4) * 8;
|
mGicDistributorBase,
|
||||||
MmioAndThenOr32 (
|
mGicRedistributorsBase,
|
||||||
mGicDistributorBase + ARM_GIC_ICDIPR + (4 * RegOffset),
|
Index,
|
||||||
~(0xff << RegShift),
|
ARM_GIC_DEFAULT_PRIORITY
|
||||||
ARM_GIC_DEFAULT_PRIORITY << RegShift
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue