Commit 6bae70713cb2f87be60ef4f83105c2c928d8612e
1 parent
90f11f95
sparc fix (Blue Swirl)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1262 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
5 additions
and
5 deletions
hw/slavio_intctl.c
... | ... | @@ -113,7 +113,7 @@ static uint32_t slavio_intctlm_mem_readl(void *opaque, target_phys_addr_t addr) |
113 | 113 | saddr = (addr & INTCTLM_MAXADDR) >> 2; |
114 | 114 | switch (saddr) { |
115 | 115 | case 0: |
116 | - return s->intregm_pending; | |
116 | + return s->intregm_pending & 0x7fffffff; | |
117 | 117 | case 1: |
118 | 118 | return s->intregm_disabled; |
119 | 119 | case 4: |
... | ... | @@ -132,12 +132,12 @@ static void slavio_intctlm_mem_writel(void *opaque, target_phys_addr_t addr, uin |
132 | 132 | saddr = (addr & INTCTLM_MAXADDR) >> 2; |
133 | 133 | switch (saddr) { |
134 | 134 | case 2: // clear (enable) |
135 | - // Force unused bits | |
136 | - val |= 0x7fb2007f; | |
135 | + // Force clear unused bits | |
136 | + val &= ~0x7fb2007f; | |
137 | 137 | s->intregm_disabled &= ~val; |
138 | 138 | break; |
139 | 139 | case 3: // set (disable, clear pending) |
140 | - // Force unused bits | |
140 | + // Force clear unused bits | |
141 | 141 | val &= ~0x7fb2007f; |
142 | 142 | s->intregm_disabled |= val; |
143 | 143 | s->intregm_pending &= ~val; |
... | ... | @@ -269,7 +269,7 @@ static void slavio_intctl_reset(void *opaque) |
269 | 269 | for (i = 0; i < MAX_CPUS; i++) { |
270 | 270 | s->intreg_pending[i] = 0; |
271 | 271 | } |
272 | - s->intregm_disabled = 0xffffffff; | |
272 | + s->intregm_disabled = ~0xffb2007f; | |
273 | 273 | s->intregm_pending = 0; |
274 | 274 | s->target_cpu = 0; |
275 | 275 | } | ... | ... |