]> git.proxmox.com Git - mirror_edk2.git/commit - ArmPkg/Drivers/ArmGic/ArmGicLib.c
ArmPkg/ArmGic: Fix maximum number of interrupts in GICv3
authorAndreas Sandberg <andreas.sandberg@arm.com>
Tue, 9 Mar 2021 16:45:10 +0000 (16:45 +0000)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Thu, 27 May 2021 10:08:32 +0000 (10:08 +0000)
commite1999b264f1f9d7230edf2448f757c73da567832
tree85f9a448b867a23c0ca9e6d1bd7af5c2f3d58922
parentcfa6ffb113f2c0d922034cc77c0d6c52eea05497
ArmPkg/ArmGic: Fix maximum number of interrupts in GICv3

Bugzilla: 3415 (https://bugzilla.tianocore.org/show_bug.cgi?id=3415)

The GICv3 architecture supports up to 1020 ordinary interrupt
lines. The actual number of interrupts supported is described by the
ITLinesNumber field in the GICD_TYPER register. The total number of
implemented registers is normally calculated as
32*(ITLinesNumber+1). However, maximum value (0x1f) is a special case
since that would indicate that 1024 interrupts are implemented.

Add handling for this special case in ArmGicGetMaxNumInterrupts.

Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
ArmPkg/Drivers/ArmGic/ArmGicLib.c