arm_gic: GICD_ICFGR: Write model only for pre v1 GICs
authorAdam Lackorzynski <adam@os.inf.tu-dresden.de>
Fri, 29 Aug 2014 14:00:28 +0000 (15:00 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 29 Aug 2014 14:00:28 +0000 (15:00 +0100)
Setting the model is only available in pre-v1 GIC models.

Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Adam Lackorzynski <adam@os.inf.tu-dresden.de>
Message-id: 1408372255-12358-3-git-send-email-adam@os.inf.tu-dresden.de
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/intc/arm_gic.c

index d2b1aaf485c4d4f73915be2f4eba63b519ea55c6..e5466470b0dcc616618b7519c46bdf86b9b685bd 100644 (file)
@@ -561,10 +561,12 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
         if (irq < GIC_INTERNAL)
             value |= 0xaa;
         for (i = 0; i < 4; i++) {
-            if (value & (1 << (i * 2))) {
-                GIC_SET_MODEL(irq + i);
-            } else {
-                GIC_CLEAR_MODEL(irq + i);
+            if (s->revision == REV_11MPCORE || s->revision == REV_NVIC) {
+                if (value & (1 << (i * 2))) {
+                    GIC_SET_MODEL(irq + i);
+                } else {
+                    GIC_CLEAR_MODEL(irq + i);
+                }
             }
             if (value & (2 << (i * 2))) {
                 GIC_SET_EDGE_TRIGGER(irq + i);