dev-arm: Check if INTID group is enabled when reading HPPIRx
authorGiacomo Travaglini <giacomo.travaglini@arm.com>
Fri, 23 Aug 2019 11:18:59 +0000 (12:18 +0100)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Fri, 6 Sep 2019 11:53:49 +0000 (11:53 +0000)
If it is not enabled, it should return INTID_SPOURIOUS

Change-Id: I4dfa8b9fcea874b4d281cd154dd38752b05e1d59
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/20616
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/dev/arm/gic_v3_cpu_interface.cc

index b4c271d4a29f87c7d33241d157c54a0781de506b..d2b397a7e121791d01dcd7bb7fc933691d917681 100644 (file)
@@ -1653,7 +1653,7 @@ Gicv3CPUInterface::virtualFindActive(uint32_t int_id) const
 uint32_t
 Gicv3CPUInterface::getHPPIR0() const
 {
-    if (hppi.prio == 0xff) {
+    if (hppi.prio == 0xff || !groupEnabled(hppi.group)) {
         return Gicv3::INTID_SPURIOUS;
     }
 
@@ -1679,7 +1679,7 @@ Gicv3CPUInterface::getHPPIR0() const
 uint32_t
 Gicv3CPUInterface::getHPPIR1() const
 {
-    if (hppi.prio == 0xff) {
+    if (hppi.prio == 0xff || !groupEnabled(hppi.group)) {
         return Gicv3::INTID_SPURIOUS;
     }