dev-arm: Add GICD_SGIR register
authorGiacomo Travaglini <giacomo.travaglini@arm.com>
Tue, 3 Sep 2019 09:45:40 +0000 (10:45 +0100)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Sat, 7 Sep 2019 12:12:55 +0000 (12:12 +0000)
The Distributor Software Generated Interrupt Register is implemented
only if affinity routing is disabled. Since this configuration is
currently not supported in gem5, it has to be treated as RES0.

Change-Id: I9ffcb31b26fc17547f74a4f1d43ce72c59786fa8
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/+/20630
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

src/dev/arm/gic_v3_distributor.cc
src/dev/arm/gic_v3_distributor.hh

index 374a4636d9f898ea99aeae5b8f6c145bf60f922d..a0cebacc705b368ca90e5d48a987cb7a1e29760f 100644 (file)
@@ -936,6 +936,10 @@ Gicv3Distributor::write(Addr addr, uint64_t data, size_t size,
 
         break;
 
+      case GICD_SGIR: // Error Reporting Status Register
+        // Only if affinity routing is disabled, RES0
+        break;
+
       default:
         panic("Gicv3Distributor::write(): invalid offset %#x\n", addr);
         break;
index 76ab6dd02e3d1ba33c709ebd49fd7c47156e30f9..df35dafe4d6a2ca5d5667657a82a33f8008d03df 100644 (file)
@@ -69,6 +69,8 @@ class Gicv3Distributor : public Serializable
         GICD_IIDR = 0x0008,
         // Error Reporting Status Register
         GICD_STATUSR = 0x0010,
+        // Software Generated Interrupt Register
+        GICD_SGIR = 0x0f00,
         // Peripheral ID0 Register
         GICD_PIDR0 = 0xffe0,
         // Peripheral ID1 Register