Commit dd4131b39492bd91dc87d216e761ca4cf210fb67
1 parent
c4a7060c
Interrupt debugging DPRINTFs
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2881 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
22 additions
and
10 deletions
hw/slavio_intctl.c
@@ -71,18 +71,22 @@ static void slavio_check_interrupts(void *opaque); | @@ -71,18 +71,22 @@ static void slavio_check_interrupts(void *opaque); | ||
71 | static uint32_t slavio_intctl_mem_readl(void *opaque, target_phys_addr_t addr) | 71 | static uint32_t slavio_intctl_mem_readl(void *opaque, target_phys_addr_t addr) |
72 | { | 72 | { |
73 | SLAVIO_INTCTLState *s = opaque; | 73 | SLAVIO_INTCTLState *s = opaque; |
74 | - uint32_t saddr; | 74 | + uint32_t saddr, ret; |
75 | int cpu; | 75 | int cpu; |
76 | 76 | ||
77 | cpu = (addr & (MAX_CPUS - 1) * TARGET_PAGE_SIZE) >> 12; | 77 | cpu = (addr & (MAX_CPUS - 1) * TARGET_PAGE_SIZE) >> 12; |
78 | saddr = (addr & INTCTL_MAXADDR) >> 2; | 78 | saddr = (addr & INTCTL_MAXADDR) >> 2; |
79 | switch (saddr) { | 79 | switch (saddr) { |
80 | case 0: | 80 | case 0: |
81 | - return s->intreg_pending[cpu]; | 81 | + ret = s->intreg_pending[cpu]; |
82 | + break; | ||
82 | default: | 83 | default: |
83 | - break; | 84 | + ret = 0; |
85 | + break; | ||
84 | } | 86 | } |
85 | - return 0; | 87 | + DPRINTF("read cpu %d reg 0x%x = %x\n", addr, ret); |
88 | + | ||
89 | + return ret; | ||
86 | } | 90 | } |
87 | 91 | ||
88 | static void slavio_intctl_mem_writel(void *opaque, target_phys_addr_t addr, uint32_t val) | 92 | static void slavio_intctl_mem_writel(void *opaque, target_phys_addr_t addr, uint32_t val) |
@@ -93,6 +97,7 @@ static void slavio_intctl_mem_writel(void *opaque, target_phys_addr_t addr, uint | @@ -93,6 +97,7 @@ static void slavio_intctl_mem_writel(void *opaque, target_phys_addr_t addr, uint | ||
93 | 97 | ||
94 | cpu = (addr & (MAX_CPUS - 1) * TARGET_PAGE_SIZE) >> 12; | 98 | cpu = (addr & (MAX_CPUS - 1) * TARGET_PAGE_SIZE) >> 12; |
95 | saddr = (addr & INTCTL_MAXADDR) >> 2; | 99 | saddr = (addr & INTCTL_MAXADDR) >> 2; |
100 | + DPRINTF("write cpu %d reg 0x%x = %x\n", cpu, addr, val); | ||
96 | switch (saddr) { | 101 | switch (saddr) { |
97 | case 1: // clear pending softints | 102 | case 1: // clear pending softints |
98 | if (val & 0x4000) | 103 | if (val & 0x4000) |
@@ -128,20 +133,26 @@ static CPUWriteMemoryFunc *slavio_intctl_mem_write[3] = { | @@ -128,20 +133,26 @@ static CPUWriteMemoryFunc *slavio_intctl_mem_write[3] = { | ||
128 | static uint32_t slavio_intctlm_mem_readl(void *opaque, target_phys_addr_t addr) | 133 | static uint32_t slavio_intctlm_mem_readl(void *opaque, target_phys_addr_t addr) |
129 | { | 134 | { |
130 | SLAVIO_INTCTLState *s = opaque; | 135 | SLAVIO_INTCTLState *s = opaque; |
131 | - uint32_t saddr; | 136 | + uint32_t saddr, ret; |
132 | 137 | ||
133 | saddr = (addr & INTCTLM_MAXADDR) >> 2; | 138 | saddr = (addr & INTCTLM_MAXADDR) >> 2; |
134 | switch (saddr) { | 139 | switch (saddr) { |
135 | case 0: | 140 | case 0: |
136 | - return s->intregm_pending & 0x7fffffff; | 141 | + ret = s->intregm_pending & 0x7fffffff; |
142 | + break; | ||
137 | case 1: | 143 | case 1: |
138 | - return s->intregm_disabled; | 144 | + ret = s->intregm_disabled; |
145 | + break; | ||
139 | case 4: | 146 | case 4: |
140 | - return s->target_cpu; | 147 | + ret = s->target_cpu; |
148 | + break; | ||
141 | default: | 149 | default: |
142 | - break; | 150 | + ret = 0; |
151 | + break; | ||
143 | } | 152 | } |
144 | - return 0; | 153 | + DPRINTF("read system reg 0x%x = %x\n", addr, ret); |
154 | + | ||
155 | + return ret; | ||
145 | } | 156 | } |
146 | 157 | ||
147 | static void slavio_intctlm_mem_writel(void *opaque, target_phys_addr_t addr, uint32_t val) | 158 | static void slavio_intctlm_mem_writel(void *opaque, target_phys_addr_t addr, uint32_t val) |
@@ -150,6 +161,7 @@ static void slavio_intctlm_mem_writel(void *opaque, target_phys_addr_t addr, uin | @@ -150,6 +161,7 @@ static void slavio_intctlm_mem_writel(void *opaque, target_phys_addr_t addr, uin | ||
150 | uint32_t saddr; | 161 | uint32_t saddr; |
151 | 162 | ||
152 | saddr = (addr & INTCTLM_MASK) >> 2; | 163 | saddr = (addr & INTCTLM_MASK) >> 2; |
164 | + DPRINTF("write system reg 0x%x = %x\n", addr, val); | ||
153 | switch (saddr) { | 165 | switch (saddr) { |
154 | case 2: // clear (enable) | 166 | case 2: // clear (enable) |
155 | // Force clear unused bits | 167 | // Force clear unused bits |