summaryrefslogtreecommitdiff
path: root/src/dev/arm
diff options
context:
space:
mode:
authorGiacomo Travaglini <giacomo.travaglini@arm.com>2019-03-08 10:47:02 +0000
committerGiacomo Travaglini <giacomo.travaglini@arm.com>2019-03-27 13:29:10 +0000
commite36839e7780df11065ab0a08abaf3fcf68135aa7 (patch)
tree99b2cc04c0407bb48789f070a454662ec757a943 /src/dev/arm
parent9059aafbd3157f515d23b7ba5e89a2d1a8cfd41a (diff)
downloadgem5-e36839e7780df11065ab0a08abaf3fcf68135aa7.tar.xz
dev-arm: Writing ICENABLER for non-SPIs is RAZ/WI (or RES0)
For SGIs and PPIs: * When ARE is 1 (only value supported in gem5) for the Security state of an interrupt, the field for that interrupt is RES0 and an implementation is permitted to make the field RAZ/WI in this case. Change-Id: I6da2a89b1c848d458f42540e0113e7139b910abb Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Ciro Santilli <ciro.santilli@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17630 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Diffstat (limited to 'src/dev/arm')
-rw-r--r--src/dev/arm/gic_v3_distributor.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/dev/arm/gic_v3_distributor.cc b/src/dev/arm/gic_v3_distributor.cc
index 148de5a19..f261b295b 100644
--- a/src/dev/arm/gic_v3_distributor.cc
+++ b/src/dev/arm/gic_v3_distributor.cc
@@ -578,6 +578,10 @@ Gicv3Distributor::write(Addr addr, uint64_t data, size_t size,
// Interrupt Clear-Enable Registers
int first_intid = (addr - GICD_ICENABLER.start()) * 8;
+ if (isNotSPI(first_intid)) {
+ return;
+ }
+
for (int i = 0, int_id = first_intid; i < 8 * size && int_id < itLines;
i++, int_id++) {