]> xenbits.xensource.com Git - xenclient/ioemu.git/commitdiff
Prevent overwriting fixed bits in AFSR
authorblueswir1 <blueswir1>
Sat, 1 Dec 2007 14:49:42 +0000 (14:49 +0000)
committerblueswir1 <blueswir1>
Sat, 1 Dec 2007 14:49:42 +0000 (14:49 +0000)
hw/iommu.c

index ad5826e4e3bb695059133ed9a8f3f5b369166023..784a780c8fc3af65a93d5f81afe67fc81d04a3a4 100644 (file)
@@ -74,6 +74,7 @@ do { printf("IOMMU: " fmt , ##args); } while (0)
 #define IOMMU_AFSR_ME       0x00080000 /* Multiple errors occurred */
 #define IOMMU_AFSR_RD       0x00040000 /* A read operation was in progress */
 #define IOMMU_AFSR_FAV      0x00020000 /* IOMMU afar has valid contents */
+#define IOMMU_AFSR_MASK     0xff0fffff
 
 #define IOMMU_AFAR          (0x1004 >> 2)
 
@@ -179,6 +180,9 @@ static void iommu_mem_writew(void *opaque, target_phys_addr_t addr,
         DPRINTF("page flush %x\n", val);
         s->regs[saddr] = val & IOMMU_PGFLUSH_MASK;
         break;
+    case IOMMU_AFSR:
+        s->regs[saddr] = (val & IOMMU_AFSR_MASK) | IOMMU_AFSR_RESV;
+        break;
     case IOMMU_SBCFG0:
     case IOMMU_SBCFG1:
     case IOMMU_SBCFG2: