Commit 2ac711791b2e4aabc5e4046b7428727828c705eb
1 parent
e612a1f7
Replace cpu_abort with hw_error
Signed-off-by: Paul Brook <paul@codesourcery.com>
Showing
47 changed files
with
180 additions
and
262 deletions
hw/an5206.c
| @@ -41,7 +41,7 @@ static void an5206_init(ram_addr_t ram_size, int vga_ram_size, | @@ -41,7 +41,7 @@ static void an5206_init(ram_addr_t ram_size, int vga_ram_size, | ||
| 41 | cpu_model = "m5206"; | 41 | cpu_model = "m5206"; |
| 42 | env = cpu_init(cpu_model); | 42 | env = cpu_init(cpu_model); |
| 43 | if (!env) { | 43 | if (!env) { |
| 44 | - cpu_abort(env, "Unable to find m68k CPU definition\n"); | 44 | + hw_error("Unable to find m68k CPU definition\n"); |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | /* Initialize CPU registers. */ | 47 | /* Initialize CPU registers. */ |
hw/arm_gic.c
| @@ -343,7 +343,7 @@ static uint32_t gic_dist_readb(void *opaque, target_phys_addr_t offset) | @@ -343,7 +343,7 @@ static uint32_t gic_dist_readb(void *opaque, target_phys_addr_t offset) | ||
| 343 | } | 343 | } |
| 344 | return res; | 344 | return res; |
| 345 | bad_reg: | 345 | bad_reg: |
| 346 | - cpu_abort(cpu_single_env, "gic_dist_readb: Bad offset %x\n", (int)offset); | 346 | + hw_error("gic_dist_readb: Bad offset %x\n", (int)offset); |
| 347 | return 0; | 347 | return 0; |
| 348 | } | 348 | } |
| 349 | 349 | ||
| @@ -505,7 +505,7 @@ static void gic_dist_writeb(void *opaque, target_phys_addr_t offset, | @@ -505,7 +505,7 @@ static void gic_dist_writeb(void *opaque, target_phys_addr_t offset, | ||
| 505 | gic_update(s); | 505 | gic_update(s); |
| 506 | return; | 506 | return; |
| 507 | bad_reg: | 507 | bad_reg: |
| 508 | - cpu_abort(cpu_single_env, "gic_dist_writeb: Bad offset %x\n", (int)offset); | 508 | + hw_error("gic_dist_writeb: Bad offset %x\n", (int)offset); |
| 509 | } | 509 | } |
| 510 | 510 | ||
| 511 | static void gic_dist_writew(void *opaque, target_phys_addr_t offset, | 511 | static void gic_dist_writew(void *opaque, target_phys_addr_t offset, |
| @@ -587,8 +587,7 @@ static uint32_t gic_cpu_read(gic_state *s, int cpu, int offset) | @@ -587,8 +587,7 @@ static uint32_t gic_cpu_read(gic_state *s, int cpu, int offset) | ||
| 587 | case 0x18: /* Highest Pending Interrupt */ | 587 | case 0x18: /* Highest Pending Interrupt */ |
| 588 | return s->current_pending[cpu]; | 588 | return s->current_pending[cpu]; |
| 589 | default: | 589 | default: |
| 590 | - cpu_abort(cpu_single_env, "gic_cpu_read: Bad offset %x\n", | ||
| 591 | - (int)offset); | 590 | + hw_error("gic_cpu_read: Bad offset %x\n", (int)offset); |
| 592 | return 0; | 591 | return 0; |
| 593 | } | 592 | } |
| 594 | } | 593 | } |
| @@ -609,8 +608,7 @@ static void gic_cpu_write(gic_state *s, int cpu, int offset, uint32_t value) | @@ -609,8 +608,7 @@ static void gic_cpu_write(gic_state *s, int cpu, int offset, uint32_t value) | ||
| 609 | case 0x10: /* End Of Interrupt */ | 608 | case 0x10: /* End Of Interrupt */ |
| 610 | return gic_complete_irq(s, cpu, value & 0x3ff); | 609 | return gic_complete_irq(s, cpu, value & 0x3ff); |
| 611 | default: | 610 | default: |
| 612 | - cpu_abort(cpu_single_env, "gic_cpu_write: Bad offset %x\n", | ||
| 613 | - (int)offset); | 611 | + hw_error("gic_cpu_write: Bad offset %x\n", (int)offset); |
| 614 | return; | 612 | return; |
| 615 | } | 613 | } |
| 616 | gic_update(s); | 614 | gic_update(s); |
hw/arm_pic.c
| @@ -39,7 +39,7 @@ static void arm_pic_cpu_handler(void *opaque, int irq, int level) | @@ -39,7 +39,7 @@ static void arm_pic_cpu_handler(void *opaque, int irq, int level) | ||
| 39 | cpu_reset_interrupt(env, CPU_INTERRUPT_FIQ); | 39 | cpu_reset_interrupt(env, CPU_INTERRUPT_FIQ); |
| 40 | break; | 40 | break; |
| 41 | default: | 41 | default: |
| 42 | - cpu_abort(env, "arm_pic_cpu_handler: Bad interrput line %d\n", irq); | 42 | + hw_error("arm_pic_cpu_handler: Bad interrput line %d\n", irq); |
| 43 | } | 43 | } |
| 44 | } | 44 | } |
| 45 | 45 |
hw/arm_timer.c
| @@ -62,8 +62,7 @@ static uint32_t arm_timer_read(void *opaque, target_phys_addr_t offset) | @@ -62,8 +62,7 @@ static uint32_t arm_timer_read(void *opaque, target_phys_addr_t offset) | ||
| 62 | return 0; | 62 | return 0; |
| 63 | return s->int_level; | 63 | return s->int_level; |
| 64 | default: | 64 | default: |
| 65 | - cpu_abort (cpu_single_env, "arm_timer_read: Bad offset %x\n", | ||
| 66 | - (int)offset); | 65 | + hw_error("arm_timer_read: Bad offset %x\n", (int)offset); |
| 67 | return 0; | 66 | return 0; |
| 68 | } | 67 | } |
| 69 | } | 68 | } |
| @@ -130,8 +129,7 @@ static void arm_timer_write(void *opaque, target_phys_addr_t offset, | @@ -130,8 +129,7 @@ static void arm_timer_write(void *opaque, target_phys_addr_t offset, | ||
| 130 | arm_timer_recalibrate(s, 0); | 129 | arm_timer_recalibrate(s, 0); |
| 131 | break; | 130 | break; |
| 132 | default: | 131 | default: |
| 133 | - cpu_abort (cpu_single_env, "arm_timer_write: Bad offset %x\n", | ||
| 134 | - (int)offset); | 132 | + hw_error("arm_timer_write: Bad offset %x\n", (int)offset); |
| 135 | } | 133 | } |
| 136 | arm_timer_update(s); | 134 | arm_timer_update(s); |
| 137 | } | 135 | } |
| @@ -290,8 +288,9 @@ static uint32_t icp_pit_read(void *opaque, target_phys_addr_t offset) | @@ -290,8 +288,9 @@ static uint32_t icp_pit_read(void *opaque, target_phys_addr_t offset) | ||
| 290 | 288 | ||
| 291 | /* ??? Don't know the PrimeCell ID for this device. */ | 289 | /* ??? Don't know the PrimeCell ID for this device. */ |
| 292 | n = offset >> 8; | 290 | n = offset >> 8; |
| 293 | - if (n > 3) | ||
| 294 | - cpu_abort(cpu_single_env, "sp804_read: Bad timer %d\n", n); | 291 | + if (n > 3) { |
| 292 | + hw_error("sp804_read: Bad timer %d\n", n); | ||
| 293 | + } | ||
| 295 | 294 | ||
| 296 | return arm_timer_read(s->timer[n], offset & 0xff); | 295 | return arm_timer_read(s->timer[n], offset & 0xff); |
| 297 | } | 296 | } |
| @@ -303,8 +302,9 @@ static void icp_pit_write(void *opaque, target_phys_addr_t offset, | @@ -303,8 +302,9 @@ static void icp_pit_write(void *opaque, target_phys_addr_t offset, | ||
| 303 | int n; | 302 | int n; |
| 304 | 303 | ||
| 305 | n = offset >> 8; | 304 | n = offset >> 8; |
| 306 | - if (n > 3) | ||
| 307 | - cpu_abort(cpu_single_env, "sp804_write: Bad timer %d\n", n); | 305 | + if (n > 3) { |
| 306 | + hw_error("sp804_write: Bad timer %d\n", n); | ||
| 307 | + } | ||
| 308 | 308 | ||
| 309 | arm_timer_write(s->timer[n], offset & 0xff, value); | 309 | arm_timer_write(s->timer[n], offset & 0xff, value); |
| 310 | } | 310 | } |
hw/armv7m_nvic.c
| @@ -102,7 +102,7 @@ int armv7m_nvic_acknowledge_irq(void *opaque) | @@ -102,7 +102,7 @@ int armv7m_nvic_acknowledge_irq(void *opaque) | ||
| 102 | 102 | ||
| 103 | irq = gic_acknowledge_irq(s->gic, 0); | 103 | irq = gic_acknowledge_irq(s->gic, 0); |
| 104 | if (irq == 1023) | 104 | if (irq == 1023) |
| 105 | - cpu_abort(cpu_single_env, "Interrupt but no vector\n"); | 105 | + hw_error("Interrupt but no vector\n"); |
| 106 | if (irq >= 32) | 106 | if (irq >= 32) |
| 107 | irq -= 16; | 107 | irq -= 16; |
| 108 | return irq; | 108 | return irq; |
| @@ -221,8 +221,7 @@ static uint32_t nvic_readl(void *opaque, uint32_t offset) | @@ -221,8 +221,7 @@ static uint32_t nvic_readl(void *opaque, uint32_t offset) | ||
| 221 | return val; | 221 | return val; |
| 222 | case 0xd28: /* Configurable Fault Status. */ | 222 | case 0xd28: /* Configurable Fault Status. */ |
| 223 | /* TODO: Implement Fault Status. */ | 223 | /* TODO: Implement Fault Status. */ |
| 224 | - cpu_abort(cpu_single_env, | ||
| 225 | - "Not implemented: Configurable Fault Status."); | 224 | + hw_error("Not implemented: Configurable Fault Status."); |
| 226 | return 0; | 225 | return 0; |
| 227 | case 0xd2c: /* Hard Fault Status. */ | 226 | case 0xd2c: /* Hard Fault Status. */ |
| 228 | case 0xd30: /* Debug Fault Status. */ | 227 | case 0xd30: /* Debug Fault Status. */ |
| @@ -260,7 +259,7 @@ static uint32_t nvic_readl(void *opaque, uint32_t offset) | @@ -260,7 +259,7 @@ static uint32_t nvic_readl(void *opaque, uint32_t offset) | ||
| 260 | /* TODO: Implement debug registers. */ | 259 | /* TODO: Implement debug registers. */ |
| 261 | default: | 260 | default: |
| 262 | bad_reg: | 261 | bad_reg: |
| 263 | - cpu_abort(cpu_single_env, "NVIC: Bad read offset 0x%x\n", offset); | 262 | + hw_error("NVIC: Bad read offset 0x%x\n", offset); |
| 264 | } | 263 | } |
| 265 | } | 264 | } |
| 266 | 265 | ||
| @@ -324,10 +323,10 @@ static void nvic_writel(void *opaque, uint32_t offset, uint32_t value) | @@ -324,10 +323,10 @@ static void nvic_writel(void *opaque, uint32_t offset, uint32_t value) | ||
| 324 | case 0xd0c: /* Application Interrupt/Reset Control. */ | 323 | case 0xd0c: /* Application Interrupt/Reset Control. */ |
| 325 | if ((value >> 16) == 0x05fa) { | 324 | if ((value >> 16) == 0x05fa) { |
| 326 | if (value & 2) { | 325 | if (value & 2) { |
| 327 | - cpu_abort(cpu_single_env, "VECTCLRACTIVE not implemented"); | 326 | + hw_error("VECTCLRACTIVE not implemented"); |
| 328 | } | 327 | } |
| 329 | if (value & 5) { | 328 | if (value & 5) { |
| 330 | - cpu_abort(cpu_single_env, "System reset"); | 329 | + hw_error("System reset"); |
| 331 | } | 330 | } |
| 332 | } | 331 | } |
| 333 | break; | 332 | break; |
| @@ -362,7 +361,7 @@ static void nvic_writel(void *opaque, uint32_t offset, uint32_t value) | @@ -362,7 +361,7 @@ static void nvic_writel(void *opaque, uint32_t offset, uint32_t value) | ||
| 362 | goto bad_reg; | 361 | goto bad_reg; |
| 363 | default: | 362 | default: |
| 364 | bad_reg: | 363 | bad_reg: |
| 365 | - cpu_abort(cpu_single_env, "NVIC: Bad write offset 0x%x\n", offset); | 364 | + hw_error("NVIC: Bad write offset 0x%x\n", offset); |
| 366 | } | 365 | } |
| 367 | } | 366 | } |
| 368 | 367 | ||
| @@ -402,7 +401,7 @@ qemu_irq *armv7m_nvic_init(CPUState *env) | @@ -402,7 +401,7 @@ qemu_irq *armv7m_nvic_init(CPUState *env) | ||
| 402 | s->gic->nvic = s; | 401 | s->gic->nvic = s; |
| 403 | s->systick.timer = qemu_new_timer(vm_clock, systick_timer_tick, s); | 402 | s->systick.timer = qemu_new_timer(vm_clock, systick_timer_tick, s); |
| 404 | if (env->v7m.nvic) | 403 | if (env->v7m.nvic) |
| 405 | - cpu_abort(env, "CPU can only have one NVIC\n"); | 404 | + hw_error("CPU can only have one NVIC\n"); |
| 406 | env->v7m.nvic = s; | 405 | env->v7m.nvic = s; |
| 407 | register_savevm("armv7m_nvic", -1, 1, nvic_save, nvic_load, s); | 406 | register_savevm("armv7m_nvic", -1, 1, nvic_save, nvic_load, s); |
| 408 | return s->gic->in; | 407 | return s->gic->in; |
hw/cbus.c
| @@ -63,8 +63,7 @@ static void cbus_io(struct cbus_priv_s *s) | @@ -63,8 +63,7 @@ static void cbus_io(struct cbus_priv_s *s) | ||
| 63 | s->slave[s->addr]->io(s->slave[s->addr]->opaque, | 63 | s->slave[s->addr]->io(s->slave[s->addr]->opaque, |
| 64 | s->rw, s->reg, &s->val); | 64 | s->rw, s->reg, &s->val); |
| 65 | else | 65 | else |
| 66 | - cpu_abort(cpu_single_env, "%s: bad slave address %i\n", | ||
| 67 | - __FUNCTION__, s->addr); | 66 | + hw_error("%s: bad slave address %i\n", __FUNCTION__, s->addr); |
| 68 | } | 67 | } |
| 69 | 68 | ||
| 70 | static void cbus_cycle(struct cbus_priv_s *s) | 69 | static void cbus_cycle(struct cbus_priv_s *s) |
| @@ -301,8 +300,7 @@ static inline uint16_t retu_read(struct cbus_retu_s *s, int reg) | @@ -301,8 +300,7 @@ static inline uint16_t retu_read(struct cbus_retu_s *s, int reg) | ||
| 301 | return 0x0000; | 300 | return 0x0000; |
| 302 | 301 | ||
| 303 | default: | 302 | default: |
| 304 | - cpu_abort(cpu_single_env, "%s: bad register %02x\n", | ||
| 305 | - __FUNCTION__, reg); | 303 | + hw_error("%s: bad register %02x\n", __FUNCTION__, reg); |
| 306 | } | 304 | } |
| 307 | } | 305 | } |
| 308 | 306 | ||
| @@ -375,8 +373,7 @@ static inline void retu_write(struct cbus_retu_s *s, int reg, uint16_t val) | @@ -375,8 +373,7 @@ static inline void retu_write(struct cbus_retu_s *s, int reg, uint16_t val) | ||
| 375 | break; | 373 | break; |
| 376 | 374 | ||
| 377 | default: | 375 | default: |
| 378 | - cpu_abort(cpu_single_env, "%s: bad register %02x\n", | ||
| 379 | - __FUNCTION__, reg); | 376 | + hw_error("%s: bad register %02x\n", __FUNCTION__, reg); |
| 380 | } | 377 | } |
| 381 | } | 378 | } |
| 382 | 379 | ||
| @@ -542,8 +539,7 @@ static inline uint16_t tahvo_read(struct cbus_tahvo_s *s, int reg) | @@ -542,8 +539,7 @@ static inline uint16_t tahvo_read(struct cbus_tahvo_s *s, int reg) | ||
| 542 | return 0x0000; | 539 | return 0x0000; |
| 543 | 540 | ||
| 544 | default: | 541 | default: |
| 545 | - cpu_abort(cpu_single_env, "%s: bad register %02x\n", | ||
| 546 | - __FUNCTION__, reg); | 542 | + hw_error("%s: bad register %02x\n", __FUNCTION__, reg); |
| 547 | } | 543 | } |
| 548 | } | 544 | } |
| 549 | 545 | ||
| @@ -593,8 +589,7 @@ static inline void tahvo_write(struct cbus_tahvo_s *s, int reg, uint16_t val) | @@ -593,8 +589,7 @@ static inline void tahvo_write(struct cbus_tahvo_s *s, int reg, uint16_t val) | ||
| 593 | break; | 589 | break; |
| 594 | 590 | ||
| 595 | default: | 591 | default: |
| 596 | - cpu_abort(cpu_single_env, "%s: bad register %02x\n", | ||
| 597 | - __FUNCTION__, reg); | 592 | + hw_error("%s: bad register %02x\n", __FUNCTION__, reg); |
| 598 | } | 593 | } |
| 599 | } | 594 | } |
| 600 | 595 |
hw/etraxfs_dma.c
| @@ -562,10 +562,7 @@ static inline int channel_in_run(struct fs_dma_ctrl *ctrl, int c) | @@ -562,10 +562,7 @@ static inline int channel_in_run(struct fs_dma_ctrl *ctrl, int c) | ||
| 562 | 562 | ||
| 563 | static uint32_t dma_rinvalid (void *opaque, target_phys_addr_t addr) | 563 | static uint32_t dma_rinvalid (void *opaque, target_phys_addr_t addr) |
| 564 | { | 564 | { |
| 565 | - struct fs_dma_ctrl *ctrl = opaque; | ||
| 566 | - CPUState *env = ctrl->env; | ||
| 567 | - cpu_abort(env, "Unsupported short access. reg=" TARGET_FMT_plx "\n", | ||
| 568 | - addr); | 565 | + hw_error("Unsupported short access. reg=" TARGET_FMT_plx "\n", addr); |
| 569 | return 0; | 566 | return 0; |
| 570 | } | 567 | } |
| 571 | 568 | ||
| @@ -600,10 +597,7 @@ dma_readl (void *opaque, target_phys_addr_t addr) | @@ -600,10 +597,7 @@ dma_readl (void *opaque, target_phys_addr_t addr) | ||
| 600 | static void | 597 | static void |
| 601 | dma_winvalid (void *opaque, target_phys_addr_t addr, uint32_t value) | 598 | dma_winvalid (void *opaque, target_phys_addr_t addr, uint32_t value) |
| 602 | { | 599 | { |
| 603 | - struct fs_dma_ctrl *ctrl = opaque; | ||
| 604 | - CPUState *env = ctrl->env; | ||
| 605 | - cpu_abort(env, "Unsupported short access. reg=" TARGET_FMT_plx "\n", | ||
| 606 | - addr); | 600 | + hw_error("Unsupported short access. reg=" TARGET_FMT_plx "\n", addr); |
| 607 | } | 601 | } |
| 608 | 602 | ||
| 609 | static void | 603 | static void |
hw/etraxfs_pic.c
| @@ -148,8 +148,7 @@ static void nmi_handler(void *opaque, int irq, int level) | @@ -148,8 +148,7 @@ static void nmi_handler(void *opaque, int irq, int level) | ||
| 148 | 148 | ||
| 149 | static void guru_handler(void *opaque, int irq, int level) | 149 | static void guru_handler(void *opaque, int irq, int level) |
| 150 | { | 150 | { |
| 151 | - struct fs_pic_state *fs = (void *)opaque; | ||
| 152 | - cpu_abort(fs->env, "%s unsupported exception\n", __func__); | 151 | + hw_error("%s unsupported exception\n", __func__); |
| 153 | } | 152 | } |
| 154 | 153 | ||
| 155 | struct etraxfs_pic *etraxfs_pic_init(CPUState *env, target_phys_addr_t base) | 154 | struct etraxfs_pic *etraxfs_pic_init(CPUState *env, target_phys_addr_t base) |
hw/integratorcp.c
| @@ -63,7 +63,7 @@ static uint32_t integratorcm_read(void *opaque, target_phys_addr_t offset) | @@ -63,7 +63,7 @@ static uint32_t integratorcm_read(void *opaque, target_phys_addr_t offset) | ||
| 63 | } | 63 | } |
| 64 | case 6: /* CM_LMBUSCNT */ | 64 | case 6: /* CM_LMBUSCNT */ |
| 65 | /* ??? High frequency timer. */ | 65 | /* ??? High frequency timer. */ |
| 66 | - cpu_abort(cpu_single_env, "integratorcm_read: CM_LMBUSCNT"); | 66 | + hw_error("integratorcm_read: CM_LMBUSCNT"); |
| 67 | case 7: /* CM_AUXOSC */ | 67 | case 7: /* CM_AUXOSC */ |
| 68 | return s->cm_auxosc; | 68 | return s->cm_auxosc; |
| 69 | case 8: /* CM_SDRAM */ | 69 | case 8: /* CM_SDRAM */ |
| @@ -72,7 +72,7 @@ static uint32_t integratorcm_read(void *opaque, target_phys_addr_t offset) | @@ -72,7 +72,7 @@ static uint32_t integratorcm_read(void *opaque, target_phys_addr_t offset) | ||
| 72 | return s->cm_init; | 72 | return s->cm_init; |
| 73 | case 10: /* CM_REFCT */ | 73 | case 10: /* CM_REFCT */ |
| 74 | /* ??? High frequency timer. */ | 74 | /* ??? High frequency timer. */ |
| 75 | - cpu_abort(cpu_single_env, "integratorcm_read: CM_REFCT"); | 75 | + hw_error("integratorcm_read: CM_REFCT"); |
| 76 | case 12: /* CM_FLAGS */ | 76 | case 12: /* CM_FLAGS */ |
| 77 | return s->cm_flags; | 77 | return s->cm_flags; |
| 78 | case 14: /* CM_NVFLAGS */ | 78 | case 14: /* CM_NVFLAGS */ |
| @@ -98,8 +98,8 @@ static uint32_t integratorcm_read(void *opaque, target_phys_addr_t offset) | @@ -98,8 +98,8 @@ static uint32_t integratorcm_read(void *opaque, target_phys_addr_t offset) | ||
| 98 | /* ??? Voltage control unimplemented. */ | 98 | /* ??? Voltage control unimplemented. */ |
| 99 | return 0; | 99 | return 0; |
| 100 | default: | 100 | default: |
| 101 | - cpu_abort (cpu_single_env, | ||
| 102 | - "integratorcm_read: Unimplemented offset 0x%x\n", (int)offset); | 101 | + hw_error("integratorcm_read: Unimplemented offset 0x%x\n", |
| 102 | + (int)offset); | ||
| 103 | return 0; | 103 | return 0; |
| 104 | } | 104 | } |
| 105 | } | 105 | } |
| @@ -117,7 +117,7 @@ static void integratorcm_do_remap(integratorcm_state *s, int flash) | @@ -117,7 +117,7 @@ static void integratorcm_do_remap(integratorcm_state *s, int flash) | ||
| 117 | static void integratorcm_set_ctrl(integratorcm_state *s, uint32_t value) | 117 | static void integratorcm_set_ctrl(integratorcm_state *s, uint32_t value) |
| 118 | { | 118 | { |
| 119 | if (value & 8) { | 119 | if (value & 8) { |
| 120 | - cpu_abort(cpu_single_env, "Board reset\n"); | 120 | + hw_error("Board reset\n"); |
| 121 | } | 121 | } |
| 122 | if ((s->cm_init ^ value) & 4) { | 122 | if ((s->cm_init ^ value) & 4) { |
| 123 | integratorcm_do_remap(s, (value & 4) == 0); | 123 | integratorcm_do_remap(s, (value & 4) == 0); |
| @@ -133,7 +133,7 @@ static void integratorcm_update(integratorcm_state *s) | @@ -133,7 +133,7 @@ static void integratorcm_update(integratorcm_state *s) | ||
| 133 | /* ??? The CPU irq/fiq is raised when either the core module or base PIC | 133 | /* ??? The CPU irq/fiq is raised when either the core module or base PIC |
| 134 | are active. */ | 134 | are active. */ |
| 135 | if (s->int_level & (s->irq_enabled | s->fiq_enabled)) | 135 | if (s->int_level & (s->irq_enabled | s->fiq_enabled)) |
| 136 | - cpu_abort(cpu_single_env, "Core module interrupt\n"); | 136 | + hw_error("Core module interrupt\n"); |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | static void integratorcm_write(void *opaque, target_phys_addr_t offset, | 139 | static void integratorcm_write(void *opaque, target_phys_addr_t offset, |
| @@ -205,8 +205,8 @@ static void integratorcm_write(void *opaque, target_phys_addr_t offset, | @@ -205,8 +205,8 @@ static void integratorcm_write(void *opaque, target_phys_addr_t offset, | ||
| 205 | /* ??? Voltage control unimplemented. */ | 205 | /* ??? Voltage control unimplemented. */ |
| 206 | break; | 206 | break; |
| 207 | default: | 207 | default: |
| 208 | - cpu_abort (cpu_single_env, | ||
| 209 | - "integratorcm_write: Unimplemented offset 0x%x\n", (int)offset); | 208 | + hw_error("integratorcm_write: Unimplemented offset 0x%x\n", |
| 209 | + (int)offset); | ||
| 210 | break; | 210 | break; |
| 211 | } | 211 | } |
| 212 | } | 212 | } |
| @@ -401,8 +401,7 @@ static uint32_t icp_control_read(void *opaque, target_phys_addr_t offset) | @@ -401,8 +401,7 @@ static uint32_t icp_control_read(void *opaque, target_phys_addr_t offset) | ||
| 401 | case 3: /* CP_DECODE */ | 401 | case 3: /* CP_DECODE */ |
| 402 | return 0x11; | 402 | return 0x11; |
| 403 | default: | 403 | default: |
| 404 | - cpu_abort (cpu_single_env, "icp_control_read: Bad offset %x\n", | ||
| 405 | - (int)offset); | 404 | + hw_error("icp_control_read: Bad offset %x\n", (int)offset); |
| 406 | return 0; | 405 | return 0; |
| 407 | } | 406 | } |
| 408 | } | 407 | } |
| @@ -417,8 +416,7 @@ static void icp_control_write(void *opaque, target_phys_addr_t offset, | @@ -417,8 +416,7 @@ static void icp_control_write(void *opaque, target_phys_addr_t offset, | ||
| 417 | /* Nothing interesting implemented yet. */ | 416 | /* Nothing interesting implemented yet. */ |
| 418 | break; | 417 | break; |
| 419 | default: | 418 | default: |
| 420 | - cpu_abort (cpu_single_env, "icp_control_write: Bad offset %x\n", | ||
| 421 | - (int)offset); | 419 | + hw_error("icp_control_write: Bad offset %x\n", (int)offset); |
| 422 | } | 420 | } |
| 423 | } | 421 | } |
| 424 | static CPUReadMemoryFunc *icp_control_readfn[] = { | 422 | static CPUReadMemoryFunc *icp_control_readfn[] = { |
hw/mcf5206.c
| @@ -61,11 +61,9 @@ static void m5206_timer_recalibrate(m5206_timer_state *s) | @@ -61,11 +61,9 @@ static void m5206_timer_recalibrate(m5206_timer_state *s) | ||
| 61 | prescale *= 16; | 61 | prescale *= 16; |
| 62 | 62 | ||
| 63 | if (mode == 3 || mode == 0) | 63 | if (mode == 3 || mode == 0) |
| 64 | - cpu_abort(cpu_single_env, | ||
| 65 | - "m5206_timer: mode %d not implemented\n", mode); | 64 | + hw_error("m5206_timer: mode %d not implemented\n", mode); |
| 66 | if ((s->tmr & TMR_FRR) == 0) | 65 | if ((s->tmr & TMR_FRR) == 0) |
| 67 | - cpu_abort(cpu_single_env, | ||
| 68 | - "m5206_timer: free running mode not implemented\n"); | 66 | + hw_error("m5206_timer: free running mode not implemented\n"); |
| 69 | 67 | ||
| 70 | /* Assume 66MHz system clock. */ | 68 | /* Assume 66MHz system clock. */ |
| 71 | ptimer_set_freq(s->timer, 66000000 / prescale); | 69 | ptimer_set_freq(s->timer, 66000000 / prescale); |
| @@ -296,7 +294,7 @@ static uint32_t m5206_mbar_read(m5206_mbar_state *s, uint32_t offset) | @@ -296,7 +294,7 @@ static uint32_t m5206_mbar_read(m5206_mbar_state *s, uint32_t offset) | ||
| 296 | case 0x170: return s->uivr[0]; | 294 | case 0x170: return s->uivr[0]; |
| 297 | case 0x1b0: return s->uivr[1]; | 295 | case 0x1b0: return s->uivr[1]; |
| 298 | } | 296 | } |
| 299 | - cpu_abort(cpu_single_env, "Bad MBAR read offset 0x%x", (int)offset); | 297 | + hw_error("Bad MBAR read offset 0x%x", (int)offset); |
| 300 | return 0; | 298 | return 0; |
| 301 | } | 299 | } |
| 302 | 300 | ||
| @@ -350,7 +348,7 @@ static void m5206_mbar_write(m5206_mbar_state *s, uint32_t offset, | @@ -350,7 +348,7 @@ static void m5206_mbar_write(m5206_mbar_state *s, uint32_t offset, | ||
| 350 | s->uivr[1] = value; | 348 | s->uivr[1] = value; |
| 351 | break; | 349 | break; |
| 352 | default: | 350 | default: |
| 353 | - cpu_abort(cpu_single_env, "Bad MBAR write offset 0x%x", (int)offset); | 351 | + hw_error("Bad MBAR write offset 0x%x", (int)offset); |
| 354 | break; | 352 | break; |
| 355 | } | 353 | } |
| 356 | } | 354 | } |
| @@ -377,7 +375,7 @@ static uint32_t m5206_mbar_readb(void *opaque, target_phys_addr_t offset) | @@ -377,7 +375,7 @@ static uint32_t m5206_mbar_readb(void *opaque, target_phys_addr_t offset) | ||
| 377 | m5206_mbar_state *s = (m5206_mbar_state *)opaque; | 375 | m5206_mbar_state *s = (m5206_mbar_state *)opaque; |
| 378 | offset &= 0x3ff; | 376 | offset &= 0x3ff; |
| 379 | if (offset > 0x200) { | 377 | if (offset > 0x200) { |
| 380 | - cpu_abort(cpu_single_env, "Bad MBAR read offset 0x%x", (int)offset); | 378 | + hw_error("Bad MBAR read offset 0x%x", (int)offset); |
| 381 | } | 379 | } |
| 382 | if (m5206_mbar_width[offset >> 2] > 1) { | 380 | if (m5206_mbar_width[offset >> 2] > 1) { |
| 383 | uint16_t val; | 381 | uint16_t val; |
| @@ -396,7 +394,7 @@ static uint32_t m5206_mbar_readw(void *opaque, target_phys_addr_t offset) | @@ -396,7 +394,7 @@ static uint32_t m5206_mbar_readw(void *opaque, target_phys_addr_t offset) | ||
| 396 | int width; | 394 | int width; |
| 397 | offset &= 0x3ff; | 395 | offset &= 0x3ff; |
| 398 | if (offset > 0x200) { | 396 | if (offset > 0x200) { |
| 399 | - cpu_abort(cpu_single_env, "Bad MBAR read offset 0x%x", (int)offset); | 397 | + hw_error("Bad MBAR read offset 0x%x", (int)offset); |
| 400 | } | 398 | } |
| 401 | width = m5206_mbar_width[offset >> 2]; | 399 | width = m5206_mbar_width[offset >> 2]; |
| 402 | if (width > 2) { | 400 | if (width > 2) { |
| @@ -420,7 +418,7 @@ static uint32_t m5206_mbar_readl(void *opaque, target_phys_addr_t offset) | @@ -420,7 +418,7 @@ static uint32_t m5206_mbar_readl(void *opaque, target_phys_addr_t offset) | ||
| 420 | int width; | 418 | int width; |
| 421 | offset &= 0x3ff; | 419 | offset &= 0x3ff; |
| 422 | if (offset > 0x200) { | 420 | if (offset > 0x200) { |
| 423 | - cpu_abort(cpu_single_env, "Bad MBAR read offset 0x%x", (int)offset); | 421 | + hw_error("Bad MBAR read offset 0x%x", (int)offset); |
| 424 | } | 422 | } |
| 425 | width = m5206_mbar_width[offset >> 2]; | 423 | width = m5206_mbar_width[offset >> 2]; |
| 426 | if (width < 4) { | 424 | if (width < 4) { |
| @@ -444,7 +442,7 @@ static void m5206_mbar_writeb(void *opaque, target_phys_addr_t offset, | @@ -444,7 +442,7 @@ static void m5206_mbar_writeb(void *opaque, target_phys_addr_t offset, | ||
| 444 | int width; | 442 | int width; |
| 445 | offset &= 0x3ff; | 443 | offset &= 0x3ff; |
| 446 | if (offset > 0x200) { | 444 | if (offset > 0x200) { |
| 447 | - cpu_abort(cpu_single_env, "Bad MBAR write offset 0x%x", (int)offset); | 445 | + hw_error("Bad MBAR write offset 0x%x", (int)offset); |
| 448 | } | 446 | } |
| 449 | width = m5206_mbar_width[offset >> 2]; | 447 | width = m5206_mbar_width[offset >> 2]; |
| 450 | if (width > 1) { | 448 | if (width > 1) { |
| @@ -468,7 +466,7 @@ static void m5206_mbar_writew(void *opaque, target_phys_addr_t offset, | @@ -468,7 +466,7 @@ static void m5206_mbar_writew(void *opaque, target_phys_addr_t offset, | ||
| 468 | int width; | 466 | int width; |
| 469 | offset &= 0x3ff; | 467 | offset &= 0x3ff; |
| 470 | if (offset > 0x200) { | 468 | if (offset > 0x200) { |
| 471 | - cpu_abort(cpu_single_env, "Bad MBAR write offset 0x%x", (int)offset); | 469 | + hw_error("Bad MBAR write offset 0x%x", (int)offset); |
| 472 | } | 470 | } |
| 473 | width = m5206_mbar_width[offset >> 2]; | 471 | width = m5206_mbar_width[offset >> 2]; |
| 474 | if (width > 2) { | 472 | if (width > 2) { |
| @@ -496,7 +494,7 @@ static void m5206_mbar_writel(void *opaque, target_phys_addr_t offset, | @@ -496,7 +494,7 @@ static void m5206_mbar_writel(void *opaque, target_phys_addr_t offset, | ||
| 496 | int width; | 494 | int width; |
| 497 | offset &= 0x3ff; | 495 | offset &= 0x3ff; |
| 498 | if (offset > 0x200) { | 496 | if (offset > 0x200) { |
| 499 | - cpu_abort(cpu_single_env, "Bad MBAR write offset 0x%x", (int)offset); | 497 | + hw_error("Bad MBAR write offset 0x%x", (int)offset); |
| 500 | } | 498 | } |
| 501 | width = m5206_mbar_width[offset >> 2]; | 499 | width = m5206_mbar_width[offset >> 2]; |
| 502 | if (width < 4) { | 500 | if (width < 4) { |
hw/mcf5208.c
| @@ -89,8 +89,7 @@ static void m5208_timer_write(void *opaque, target_phys_addr_t offset, | @@ -89,8 +89,7 @@ static void m5208_timer_write(void *opaque, target_phys_addr_t offset, | ||
| 89 | case 4: | 89 | case 4: |
| 90 | break; | 90 | break; |
| 91 | default: | 91 | default: |
| 92 | - cpu_abort(cpu_single_env, "m5208_timer_write: Bad offset 0x%x\n", | ||
| 93 | - (int)offset); | 92 | + hw_error("m5208_timer_write: Bad offset 0x%x\n", (int)offset); |
| 94 | break; | 93 | break; |
| 95 | } | 94 | } |
| 96 | m5208_timer_update(s); | 95 | m5208_timer_update(s); |
| @@ -114,8 +113,7 @@ static uint32_t m5208_timer_read(void *opaque, target_phys_addr_t addr) | @@ -114,8 +113,7 @@ static uint32_t m5208_timer_read(void *opaque, target_phys_addr_t addr) | ||
| 114 | case 4: | 113 | case 4: |
| 115 | return ptimer_get_count(s->timer); | 114 | return ptimer_get_count(s->timer); |
| 116 | default: | 115 | default: |
| 117 | - cpu_abort(cpu_single_env, "m5208_timer_read: Bad offset 0x%x\n", | ||
| 118 | - (int)addr); | 116 | + hw_error("m5208_timer_read: Bad offset 0x%x\n", (int)addr); |
| 119 | return 0; | 117 | return 0; |
| 120 | } | 118 | } |
| 121 | } | 119 | } |
| @@ -148,8 +146,7 @@ static uint32_t m5208_sys_read(void *opaque, target_phys_addr_t addr) | @@ -148,8 +146,7 @@ static uint32_t m5208_sys_read(void *opaque, target_phys_addr_t addr) | ||
| 148 | return 0; | 146 | return 0; |
| 149 | 147 | ||
| 150 | default: | 148 | default: |
| 151 | - cpu_abort(cpu_single_env, "m5208_sys_read: Bad offset 0x%x\n", | ||
| 152 | - (int)addr); | 149 | + hw_error("m5208_sys_read: Bad offset 0x%x\n", (int)addr); |
| 153 | return 0; | 150 | return 0; |
| 154 | } | 151 | } |
| 155 | } | 152 | } |
| @@ -157,8 +154,7 @@ static uint32_t m5208_sys_read(void *opaque, target_phys_addr_t addr) | @@ -157,8 +154,7 @@ static uint32_t m5208_sys_read(void *opaque, target_phys_addr_t addr) | ||
| 157 | static void m5208_sys_write(void *opaque, target_phys_addr_t addr, | 154 | static void m5208_sys_write(void *opaque, target_phys_addr_t addr, |
| 158 | uint32_t value) | 155 | uint32_t value) |
| 159 | { | 156 | { |
| 160 | - cpu_abort(cpu_single_env, "m5208_sys_write: Bad offset 0x%x\n", | ||
| 161 | - (int)addr); | 157 | + hw_error("m5208_sys_write: Bad offset 0x%x\n", (int)addr); |
| 162 | } | 158 | } |
| 163 | 159 | ||
| 164 | static CPUReadMemoryFunc *m5208_sys_readfn[] = { | 160 | static CPUReadMemoryFunc *m5208_sys_readfn[] = { |
hw/mcf_fec.c
| @@ -246,8 +246,7 @@ static uint32_t mcf_fec_read(void *opaque, target_phys_addr_t addr) | @@ -246,8 +246,7 @@ static uint32_t mcf_fec_read(void *opaque, target_phys_addr_t addr) | ||
| 246 | case 0x184: return s->etdsr; | 246 | case 0x184: return s->etdsr; |
| 247 | case 0x188: return s->emrbr; | 247 | case 0x188: return s->emrbr; |
| 248 | default: | 248 | default: |
| 249 | - cpu_abort(cpu_single_env, "mcf_fec_read: Bad address 0x%x\n", | ||
| 250 | - (int)addr); | 249 | + hw_error("mcf_fec_read: Bad address 0x%x\n", (int)addr); |
| 251 | return 0; | 250 | return 0; |
| 252 | } | 251 | } |
| 253 | } | 252 | } |
| @@ -343,8 +342,7 @@ static void mcf_fec_write(void *opaque, target_phys_addr_t addr, uint32_t value) | @@ -343,8 +342,7 @@ static void mcf_fec_write(void *opaque, target_phys_addr_t addr, uint32_t value) | ||
| 343 | s->emrbr = value & 0x7f0; | 342 | s->emrbr = value & 0x7f0; |
| 344 | break; | 343 | break; |
| 345 | default: | 344 | default: |
| 346 | - cpu_abort(cpu_single_env, "mcf_fec_write Bad address 0x%x\n", | ||
| 347 | - (int)addr); | 345 | + hw_error("mcf_fec_write Bad address 0x%x\n", (int)addr); |
| 348 | } | 346 | } |
| 349 | mcf_fec_update(s); | 347 | mcf_fec_update(s); |
| 350 | } | 348 | } |
hw/mcf_intc.c
| @@ -67,7 +67,7 @@ static uint32_t mcf_intc_read(void *opaque, target_phys_addr_t addr) | @@ -67,7 +67,7 @@ static uint32_t mcf_intc_read(void *opaque, target_phys_addr_t addr) | ||
| 67 | case 0xe1: case 0xe2: case 0xe3: case 0xe4: | 67 | case 0xe1: case 0xe2: case 0xe3: case 0xe4: |
| 68 | case 0xe5: case 0xe6: case 0xe7: | 68 | case 0xe5: case 0xe6: case 0xe7: |
| 69 | /* LnIACK */ | 69 | /* LnIACK */ |
| 70 | - cpu_abort(cpu_single_env, "mcf_intc_read: LnIACK not implemented\n"); | 70 | + hw_error("mcf_intc_read: LnIACK not implemented\n"); |
| 71 | default: | 71 | default: |
| 72 | return 0; | 72 | return 0; |
| 73 | } | 73 | } |
| @@ -99,8 +99,7 @@ static void mcf_intc_write(void *opaque, target_phys_addr_t addr, uint32_t val) | @@ -99,8 +99,7 @@ static void mcf_intc_write(void *opaque, target_phys_addr_t addr, uint32_t val) | ||
| 99 | s->imr = (s->imr & 0xffffffff00000000ull) | (uint32_t)val; | 99 | s->imr = (s->imr & 0xffffffff00000000ull) | (uint32_t)val; |
| 100 | break; | 100 | break; |
| 101 | default: | 101 | default: |
| 102 | - cpu_abort(cpu_single_env, "mcf_intc_write: Bad write offset %d\n", | ||
| 103 | - offset); | 102 | + hw_error("mcf_intc_write: Bad write offset %d\n", offset); |
| 104 | break; | 103 | break; |
| 105 | } | 104 | } |
| 106 | mcf_intc_update(s); | 105 | mcf_intc_update(s); |
hw/mpcore.c
| @@ -195,8 +195,7 @@ static uint32_t mpcore_priv_read(void *opaque, target_phys_addr_t offset) | @@ -195,8 +195,7 @@ static uint32_t mpcore_priv_read(void *opaque, target_phys_addr_t offset) | ||
| 195 | return mpcore_timer_read(&s->timer[id], offset & 0xf); | 195 | return mpcore_timer_read(&s->timer[id], offset & 0xf); |
| 196 | } | 196 | } |
| 197 | bad_reg: | 197 | bad_reg: |
| 198 | - cpu_abort(cpu_single_env, "mpcore_priv_read: Bad offset %x\n", | ||
| 199 | - (int)offset); | 198 | + hw_error("mpcore_priv_read: Bad offset %x\n", (int)offset); |
| 200 | return 0; | 199 | return 0; |
| 201 | } | 200 | } |
| 202 | 201 | ||
| @@ -241,8 +240,7 @@ static void mpcore_priv_write(void *opaque, target_phys_addr_t offset, | @@ -241,8 +240,7 @@ static void mpcore_priv_write(void *opaque, target_phys_addr_t offset, | ||
| 241 | } | 240 | } |
| 242 | return; | 241 | return; |
| 243 | bad_reg: | 242 | bad_reg: |
| 244 | - cpu_abort(cpu_single_env, "mpcore_priv_read: Bad offset %x\n", | ||
| 245 | - (int)offset); | 243 | + hw_error("mpcore_priv_read: Bad offset %x\n", (int)offset); |
| 246 | } | 244 | } |
| 247 | 245 | ||
| 248 | static CPUReadMemoryFunc *mpcore_priv_readfn[] = { | 246 | static CPUReadMemoryFunc *mpcore_priv_readfn[] = { |
hw/musicpal.c
| @@ -875,7 +875,7 @@ static void lcd_refresh(void *opaque) | @@ -875,7 +875,7 @@ static void lcd_refresh(void *opaque) | ||
| 875 | LCD_REFRESH(32, (is_surface_bgr(s->ds->surface) ? | 875 | LCD_REFRESH(32, (is_surface_bgr(s->ds->surface) ? |
| 876 | rgb_to_pixel32bgr : rgb_to_pixel32)) | 876 | rgb_to_pixel32bgr : rgb_to_pixel32)) |
| 877 | default: | 877 | default: |
| 878 | - cpu_abort(cpu_single_env, "unsupported colour depth %i\n", | 878 | + hw_error("unsupported colour depth %i\n", |
| 879 | ds_get_bits_per_pixel(s->ds)); | 879 | ds_get_bits_per_pixel(s->ds)); |
| 880 | } | 880 | } |
| 881 | 881 |
hw/nand.c
| @@ -445,8 +445,7 @@ struct nand_flash_s *nand_init(int manf_id, int chip_id) | @@ -445,8 +445,7 @@ struct nand_flash_s *nand_init(int manf_id, int chip_id) | ||
| 445 | int index; | 445 | int index; |
| 446 | 446 | ||
| 447 | if (nand_flash_ids[chip_id].size == 0) { | 447 | if (nand_flash_ids[chip_id].size == 0) { |
| 448 | - cpu_abort(cpu_single_env, "%s: Unsupported NAND chip ID.\n", | ||
| 449 | - __FUNCTION__); | 448 | + hw_error("%s: Unsupported NAND chip ID.\n", __FUNCTION__); |
| 450 | } | 449 | } |
| 451 | 450 | ||
| 452 | s = (struct nand_flash_s *) qemu_mallocz(sizeof(struct nand_flash_s)); | 451 | s = (struct nand_flash_s *) qemu_mallocz(sizeof(struct nand_flash_s)); |
| @@ -475,8 +474,7 @@ struct nand_flash_s *nand_init(int manf_id, int chip_id) | @@ -475,8 +474,7 @@ struct nand_flash_s *nand_init(int manf_id, int chip_id) | ||
| 475 | nand_init_2048(s); | 474 | nand_init_2048(s); |
| 476 | break; | 475 | break; |
| 477 | default: | 476 | default: |
| 478 | - cpu_abort(cpu_single_env, "%s: Unsupported NAND block size.\n", | ||
| 479 | - __FUNCTION__); | 477 | + hw_error("%s: Unsupported NAND block size.\n", __FUNCTION__); |
| 480 | } | 478 | } |
| 481 | 479 | ||
| 482 | pagesize = 1 << s->oob_shift; | 480 | pagesize = 1 << s->oob_shift; |
hw/nseries.c
| @@ -428,8 +428,7 @@ static uint32_t mipid_txrx(void *opaque, uint32_t cmd, int len) | @@ -428,8 +428,7 @@ static uint32_t mipid_txrx(void *opaque, uint32_t cmd, int len) | ||
| 428 | uint8_t ret; | 428 | uint8_t ret; |
| 429 | 429 | ||
| 430 | if (len > 9) | 430 | if (len > 9) |
| 431 | - cpu_abort(cpu_single_env, "%s: FIXME: bad SPI word width %i\n", | ||
| 432 | - __FUNCTION__, len); | 431 | + hw_error("%s: FIXME: bad SPI word width %i\n", __FUNCTION__, len); |
| 433 | 432 | ||
| 434 | if (s->p >= ARRAY_SIZE(s->resp)) | 433 | if (s->p >= ARRAY_SIZE(s->resp)) |
| 435 | ret = 0; | 434 | ret = 0; |
hw/omap1.c
| @@ -1531,7 +1531,7 @@ static uint32_t omap_id_read(void *opaque, target_phys_addr_t addr) | @@ -1531,7 +1531,7 @@ static uint32_t omap_id_read(void *opaque, target_phys_addr_t addr) | ||
| 1531 | case omap1510: | 1531 | case omap1510: |
| 1532 | return 0x03310115; | 1532 | return 0x03310115; |
| 1533 | default: | 1533 | default: |
| 1534 | - cpu_abort(cpu_single_env, "%s: bad mpu model\n", __FUNCTION__); | 1534 | + hw_error("%s: bad mpu model\n", __FUNCTION__); |
| 1535 | } | 1535 | } |
| 1536 | break; | 1536 | break; |
| 1537 | 1537 | ||
| @@ -1542,7 +1542,7 @@ static uint32_t omap_id_read(void *opaque, target_phys_addr_t addr) | @@ -1542,7 +1542,7 @@ static uint32_t omap_id_read(void *opaque, target_phys_addr_t addr) | ||
| 1542 | case omap1510: | 1542 | case omap1510: |
| 1543 | return 0xfb47002f; | 1543 | return 0xfb47002f; |
| 1544 | default: | 1544 | default: |
| 1545 | - cpu_abort(cpu_single_env, "%s: bad mpu model\n", __FUNCTION__); | 1545 | + hw_error("%s: bad mpu model\n", __FUNCTION__); |
| 1546 | } | 1546 | } |
| 1547 | break; | 1547 | break; |
| 1548 | } | 1548 | } |
| @@ -2775,15 +2775,14 @@ qemu_irq *omap_mpuio_in_get(struct omap_mpuio_s *s) | @@ -2775,15 +2775,14 @@ qemu_irq *omap_mpuio_in_get(struct omap_mpuio_s *s) | ||
| 2775 | void omap_mpuio_out_set(struct omap_mpuio_s *s, int line, qemu_irq handler) | 2775 | void omap_mpuio_out_set(struct omap_mpuio_s *s, int line, qemu_irq handler) |
| 2776 | { | 2776 | { |
| 2777 | if (line >= 16 || line < 0) | 2777 | if (line >= 16 || line < 0) |
| 2778 | - cpu_abort(cpu_single_env, "%s: No GPIO line %i\n", __FUNCTION__, line); | 2778 | + hw_error("%s: No GPIO line %i\n", __FUNCTION__, line); |
| 2779 | s->handler[line] = handler; | 2779 | s->handler[line] = handler; |
| 2780 | } | 2780 | } |
| 2781 | 2781 | ||
| 2782 | void omap_mpuio_key(struct omap_mpuio_s *s, int row, int col, int down) | 2782 | void omap_mpuio_key(struct omap_mpuio_s *s, int row, int col, int down) |
| 2783 | { | 2783 | { |
| 2784 | if (row >= 5 || row < 0) | 2784 | if (row >= 5 || row < 0) |
| 2785 | - cpu_abort(cpu_single_env, "%s: No key %i-%i\n", | ||
| 2786 | - __FUNCTION__, col, row); | 2785 | + hw_error("%s: No key %i-%i\n", __FUNCTION__, col, row); |
| 2787 | 2786 | ||
| 2788 | if (down) | 2787 | if (down) |
| 2789 | s->buttons[row] |= 1 << col; | 2788 | s->buttons[row] |= 1 << col; |
| @@ -2970,7 +2969,7 @@ qemu_irq *omap_gpio_in_get(struct omap_gpio_s *s) | @@ -2970,7 +2969,7 @@ qemu_irq *omap_gpio_in_get(struct omap_gpio_s *s) | ||
| 2970 | void omap_gpio_out_set(struct omap_gpio_s *s, int line, qemu_irq handler) | 2969 | void omap_gpio_out_set(struct omap_gpio_s *s, int line, qemu_irq handler) |
| 2971 | { | 2970 | { |
| 2972 | if (line >= 16 || line < 0) | 2971 | if (line >= 16 || line < 0) |
| 2973 | - cpu_abort(cpu_single_env, "%s: No GPIO line %i\n", __FUNCTION__, line); | 2972 | + hw_error("%s: No GPIO line %i\n", __FUNCTION__, line); |
| 2974 | s->handler[line] = handler; | 2973 | s->handler[line] = handler; |
| 2975 | } | 2974 | } |
| 2976 | 2975 |
hw/omap2.c
| @@ -1070,15 +1070,14 @@ struct omap_gpif_s *omap2_gpio_init(struct omap_target_agent_s *ta, | @@ -1070,15 +1070,14 @@ struct omap_gpif_s *omap2_gpio_init(struct omap_target_agent_s *ta, | ||
| 1070 | qemu_irq *omap2_gpio_in_get(struct omap_gpif_s *s, int start) | 1070 | qemu_irq *omap2_gpio_in_get(struct omap_gpif_s *s, int start) |
| 1071 | { | 1071 | { |
| 1072 | if (start >= s->modules * 32 || start < 0) | 1072 | if (start >= s->modules * 32 || start < 0) |
| 1073 | - cpu_abort(cpu_single_env, "%s: No GPIO line %i\n", | ||
| 1074 | - __FUNCTION__, start); | 1073 | + hw_error("%s: No GPIO line %i\n", __FUNCTION__, start); |
| 1075 | return s->module[start >> 5].in + (start & 31); | 1074 | return s->module[start >> 5].in + (start & 31); |
| 1076 | } | 1075 | } |
| 1077 | 1076 | ||
| 1078 | void omap2_gpio_out_set(struct omap_gpif_s *s, int line, qemu_irq handler) | 1077 | void omap2_gpio_out_set(struct omap_gpif_s *s, int line, qemu_irq handler) |
| 1079 | { | 1078 | { |
| 1080 | if (line >= s->modules * 32 || line < 0) | 1079 | if (line >= s->modules * 32 || line < 0) |
| 1081 | - cpu_abort(cpu_single_env, "%s: No GPIO line %i\n", __FUNCTION__, line); | 1080 | + hw_error("%s: No GPIO line %i\n", __FUNCTION__, line); |
| 1082 | s->module[line >> 5].handler[line & 31] = handler; | 1081 | s->module[line >> 5].handler[line & 31] = handler; |
| 1083 | } | 1082 | } |
| 1084 | 1083 | ||
| @@ -1399,8 +1398,7 @@ void omap_mcspi_attach(struct omap_mcspi_s *s, | @@ -1399,8 +1398,7 @@ void omap_mcspi_attach(struct omap_mcspi_s *s, | ||
| 1399 | int chipselect) | 1398 | int chipselect) |
| 1400 | { | 1399 | { |
| 1401 | if (chipselect < 0 || chipselect >= s->chnum) | 1400 | if (chipselect < 0 || chipselect >= s->chnum) |
| 1402 | - cpu_abort(cpu_single_env, "%s: Bad chipselect %i\n", | ||
| 1403 | - __FUNCTION__, chipselect); | 1401 | + hw_error("%s: Bad chipselect %i\n", __FUNCTION__, chipselect); |
| 1404 | 1402 | ||
| 1405 | s->ch[chipselect].txrx = txrx; | 1403 | s->ch[chipselect].txrx = txrx; |
| 1406 | s->ch[chipselect].opaque = opaque; | 1404 | s->ch[chipselect].opaque = opaque; |
| @@ -2642,7 +2640,7 @@ static uint32_t omap_tap_read(void *opaque, target_phys_addr_t addr) | @@ -2642,7 +2640,7 @@ static uint32_t omap_tap_read(void *opaque, target_phys_addr_t addr) | ||
| 2642 | case omap3430: | 2640 | case omap3430: |
| 2643 | return 0x1b7ae02f; /* ES 2 */ | 2641 | return 0x1b7ae02f; /* ES 2 */ |
| 2644 | default: | 2642 | default: |
| 2645 | - cpu_abort(cpu_single_env, "%s: Bad mpu model\n", __FUNCTION__); | 2643 | + hw_error("%s: Bad mpu model\n", __FUNCTION__); |
| 2646 | } | 2644 | } |
| 2647 | 2645 | ||
| 2648 | case 0x208: /* PRODUCTION_ID_reg for OMAP2 */ | 2646 | case 0x208: /* PRODUCTION_ID_reg for OMAP2 */ |
| @@ -2659,7 +2657,7 @@ static uint32_t omap_tap_read(void *opaque, target_phys_addr_t addr) | @@ -2659,7 +2657,7 @@ static uint32_t omap_tap_read(void *opaque, target_phys_addr_t addr) | ||
| 2659 | case omap3430: | 2657 | case omap3430: |
| 2660 | return 0x000000f0; | 2658 | return 0x000000f0; |
| 2661 | default: | 2659 | default: |
| 2662 | - cpu_abort(cpu_single_env, "%s: Bad mpu model\n", __FUNCTION__); | 2660 | + hw_error("%s: Bad mpu model\n", __FUNCTION__); |
| 2663 | } | 2661 | } |
| 2664 | 2662 | ||
| 2665 | case 0x20c: | 2663 | case 0x20c: |
| @@ -2673,7 +2671,7 @@ static uint32_t omap_tap_read(void *opaque, target_phys_addr_t addr) | @@ -2673,7 +2671,7 @@ static uint32_t omap_tap_read(void *opaque, target_phys_addr_t addr) | ||
| 2673 | case omap3430: | 2671 | case omap3430: |
| 2674 | return 0xcafeb7ae; /* ES 2 */ | 2672 | return 0xcafeb7ae; /* ES 2 */ |
| 2675 | default: | 2673 | default: |
| 2676 | - cpu_abort(cpu_single_env, "%s: Bad mpu model\n", __FUNCTION__); | 2674 | + hw_error("%s: Bad mpu model\n", __FUNCTION__); |
| 2677 | } | 2675 | } |
| 2678 | 2676 | ||
| 2679 | case 0x218: /* DIE_ID_reg */ | 2677 | case 0x218: /* DIE_ID_reg */ |
hw/omap_clk.c
| @@ -1105,7 +1105,7 @@ struct clk *omap_findclk(struct omap_mpu_state_s *mpu, const char *name) | @@ -1105,7 +1105,7 @@ struct clk *omap_findclk(struct omap_mpu_state_s *mpu, const char *name) | ||
| 1105 | for (i = mpu->clks; i->name; i ++) | 1105 | for (i = mpu->clks; i->name; i ++) |
| 1106 | if (!strcmp(i->name, name) || (i->alias && !strcmp(i->alias, name))) | 1106 | if (!strcmp(i->name, name) || (i->alias && !strcmp(i->alias, name))) |
| 1107 | return i; | 1107 | return i; |
| 1108 | - cpu_abort(mpu->env, "%s: %s not found\n", __FUNCTION__, name); | 1108 | + hw_error("%s: %s not found\n", __FUNCTION__, name); |
| 1109 | } | 1109 | } |
| 1110 | 1110 | ||
| 1111 | void omap_clk_get(struct clk *clk) | 1111 | void omap_clk_get(struct clk *clk) |
| @@ -1116,8 +1116,7 @@ void omap_clk_get(struct clk *clk) | @@ -1116,8 +1116,7 @@ void omap_clk_get(struct clk *clk) | ||
| 1116 | void omap_clk_put(struct clk *clk) | 1116 | void omap_clk_put(struct clk *clk) |
| 1117 | { | 1117 | { |
| 1118 | if (!(clk->usecount --)) | 1118 | if (!(clk->usecount --)) |
| 1119 | - cpu_abort(cpu_single_env, "%s: %s is not in use\n", | ||
| 1120 | - __FUNCTION__, clk->name); | 1119 | + hw_error("%s: %s is not in use\n", __FUNCTION__, clk->name); |
| 1121 | } | 1120 | } |
| 1122 | 1121 | ||
| 1123 | static void omap_clk_update(struct clk *clk) | 1122 | static void omap_clk_update(struct clk *clk) |
hw/omap_dss.c
| @@ -1064,6 +1064,6 @@ struct omap_dss_s *omap_dss_init(struct omap_target_agent_s *ta, | @@ -1064,6 +1064,6 @@ struct omap_dss_s *omap_dss_init(struct omap_target_agent_s *ta, | ||
| 1064 | void omap_rfbi_attach(struct omap_dss_s *s, int cs, struct rfbi_chip_s *chip) | 1064 | void omap_rfbi_attach(struct omap_dss_s *s, int cs, struct rfbi_chip_s *chip) |
| 1065 | { | 1065 | { |
| 1066 | if (cs < 0 || cs > 1) | 1066 | if (cs < 0 || cs > 1) |
| 1067 | - cpu_abort(cpu_single_env, "%s: wrong CS %i\n", __FUNCTION__, cs); | 1067 | + hw_error("%s: wrong CS %i\n", __FUNCTION__, cs); |
| 1068 | s->rfbi.chip[cs] = chip; | 1068 | s->rfbi.chip[cs] = chip; |
| 1069 | } | 1069 | } |
hw/onenand.c
| @@ -156,8 +156,7 @@ static void onenand_reset(struct onenand_s *s, int cold) | @@ -156,8 +156,7 @@ static void onenand_reset(struct onenand_s *s, int cold) | ||
| 156 | memset(s->blockwp, ONEN_LOCK_LOCKED, s->blocks); | 156 | memset(s->blockwp, ONEN_LOCK_LOCKED, s->blocks); |
| 157 | 157 | ||
| 158 | if (s->bdrv && bdrv_read(s->bdrv, 0, s->boot[0], 8) < 0) | 158 | if (s->bdrv && bdrv_read(s->bdrv, 0, s->boot[0], 8) < 0) |
| 159 | - cpu_abort(cpu_single_env, "%s: Loading the BootRAM failed.\n", | ||
| 160 | - __FUNCTION__); | 159 | + hw_error("%s: Loading the BootRAM failed.\n", __FUNCTION__); |
| 161 | } | 160 | } |
| 162 | } | 161 | } |
| 163 | 162 | ||
| @@ -500,7 +499,7 @@ static uint32_t onenand_read(void *opaque, target_phys_addr_t addr) | @@ -500,7 +499,7 @@ static uint32_t onenand_read(void *opaque, target_phys_addr_t addr) | ||
| 500 | case 0xff02: /* ECC Result of spare area data */ | 499 | case 0xff02: /* ECC Result of spare area data */ |
| 501 | case 0xff03: /* ECC Result of main area data */ | 500 | case 0xff03: /* ECC Result of main area data */ |
| 502 | case 0xff04: /* ECC Result of spare area data */ | 501 | case 0xff04: /* ECC Result of spare area data */ |
| 503 | - cpu_abort(cpu_single_env, "%s: imeplement ECC\n", __FUNCTION__); | 502 | + hw_error("%s: imeplement ECC\n", __FUNCTION__); |
| 504 | return 0x0000; | 503 | return 0x0000; |
| 505 | } | 504 | } |
| 506 | 505 |
hw/pl011.c
| @@ -103,7 +103,7 @@ static uint32_t pl011_read(void *opaque, target_phys_addr_t offset) | @@ -103,7 +103,7 @@ static uint32_t pl011_read(void *opaque, target_phys_addr_t offset) | ||
| 103 | case 18: /* UARTDMACR */ | 103 | case 18: /* UARTDMACR */ |
| 104 | return s->dmacr; | 104 | return s->dmacr; |
| 105 | default: | 105 | default: |
| 106 | - cpu_abort (cpu_single_env, "pl011_read: Bad offset %x\n", (int)offset); | 106 | + hw_error("pl011_read: Bad offset %x\n", (int)offset); |
| 107 | return 0; | 107 | return 0; |
| 108 | } | 108 | } |
| 109 | } | 109 | } |
| @@ -175,10 +175,10 @@ static void pl011_write(void *opaque, target_phys_addr_t offset, | @@ -175,10 +175,10 @@ static void pl011_write(void *opaque, target_phys_addr_t offset, | ||
| 175 | case 18: /* UARTDMACR */ | 175 | case 18: /* UARTDMACR */ |
| 176 | s->dmacr = value; | 176 | s->dmacr = value; |
| 177 | if (value & 3) | 177 | if (value & 3) |
| 178 | - cpu_abort(cpu_single_env, "PL011: DMA not implemented\n"); | 178 | + hw_error("PL011: DMA not implemented\n"); |
| 179 | break; | 179 | break; |
| 180 | default: | 180 | default: |
| 181 | - cpu_abort (cpu_single_env, "pl011_write: Bad offset %x\n", (int)offset); | 181 | + hw_error("pl011_write: Bad offset %x\n", (int)offset); |
| 182 | } | 182 | } |
| 183 | } | 183 | } |
| 184 | 184 |
hw/pl022.c
| @@ -168,8 +168,7 @@ static uint32_t pl022_read(void *opaque, target_phys_addr_t offset) | @@ -168,8 +168,7 @@ static uint32_t pl022_read(void *opaque, target_phys_addr_t offset) | ||
| 168 | /* Not implemented. */ | 168 | /* Not implemented. */ |
| 169 | return 0; | 169 | return 0; |
| 170 | default: | 170 | default: |
| 171 | - cpu_abort (cpu_single_env, "pl022_read: Bad offset %x\n", | ||
| 172 | - (int)offset); | 171 | + hw_error("pl022_read: Bad offset %x\n", (int)offset); |
| 173 | return 0; | 172 | return 0; |
| 174 | } | 173 | } |
| 175 | } | 174 | } |
| @@ -211,12 +210,12 @@ static void pl022_write(void *opaque, target_phys_addr_t offset, | @@ -211,12 +210,12 @@ static void pl022_write(void *opaque, target_phys_addr_t offset, | ||
| 211 | pl022_update(s); | 210 | pl022_update(s); |
| 212 | break; | 211 | break; |
| 213 | case 0x20: /* DMACR */ | 212 | case 0x20: /* DMACR */ |
| 214 | - if (value) | ||
| 215 | - cpu_abort (cpu_single_env, "pl022: DMA not implemented\n"); | 213 | + if (value) { |
| 214 | + hw_error("pl022: DMA not implemented\n"); | ||
| 215 | + } | ||
| 216 | break; | 216 | break; |
| 217 | default: | 217 | default: |
| 218 | - cpu_abort (cpu_single_env, "pl022_write: Bad offset %x\n", | ||
| 219 | - (int)offset); | 218 | + hw_error("pl022_write: Bad offset %x\n", (int)offset); |
| 220 | } | 219 | } |
| 221 | } | 220 | } |
| 222 | 221 |
hw/pl031.c
| @@ -119,8 +119,7 @@ static uint32_t pl031_read(void *opaque, target_phys_addr_t offset) | @@ -119,8 +119,7 @@ static uint32_t pl031_read(void *opaque, target_phys_addr_t offset) | ||
| 119 | (int)offset); | 119 | (int)offset); |
| 120 | break; | 120 | break; |
| 121 | default: | 121 | default: |
| 122 | - cpu_abort(cpu_single_env, "pl031_read: Bad offset 0x%x\n", | ||
| 123 | - (int)offset); | 122 | + hw_error("pl031_read: Bad offset 0x%x\n", (int)offset); |
| 124 | break; | 123 | break; |
| 125 | } | 124 | } |
| 126 | 125 | ||
| @@ -168,8 +167,7 @@ static void pl031_write(void * opaque, target_phys_addr_t offset, | @@ -168,8 +167,7 @@ static void pl031_write(void * opaque, target_phys_addr_t offset, | ||
| 168 | break; | 167 | break; |
| 169 | 168 | ||
| 170 | default: | 169 | default: |
| 171 | - cpu_abort(cpu_single_env, "pl031_write: Bad offset 0x%x\n", | ||
| 172 | - (int)offset); | 170 | + hw_error("pl031_write: Bad offset 0x%x\n", (int)offset); |
| 173 | break; | 171 | break; |
| 174 | } | 172 | } |
| 175 | } | 173 | } |
| @@ -195,8 +193,9 @@ void pl031_init(uint32_t base, qemu_irq irq) | @@ -195,8 +193,9 @@ void pl031_init(uint32_t base, qemu_irq irq) | ||
| 195 | s = qemu_mallocz(sizeof(pl031_state)); | 193 | s = qemu_mallocz(sizeof(pl031_state)); |
| 196 | 194 | ||
| 197 | iomemtype = cpu_register_io_memory(0, pl031_readfn, pl031_writefn, s); | 195 | iomemtype = cpu_register_io_memory(0, pl031_readfn, pl031_writefn, s); |
| 198 | - if (iomemtype == -1) | ||
| 199 | - cpu_abort(cpu_single_env, "pl031_init: Can't register I/O memory\n"); | 196 | + if (iomemtype == -1) { |
| 197 | + hw_error("pl031_init: Can't register I/O memory\n"); | ||
| 198 | + } | ||
| 200 | 199 | ||
| 201 | cpu_register_physical_memory(base, 0x00001000, iomemtype); | 200 | cpu_register_physical_memory(base, 0x00001000, iomemtype); |
| 202 | 201 |
hw/pl050.c
| @@ -79,7 +79,7 @@ static uint32_t pl050_read(void *opaque, target_phys_addr_t offset) | @@ -79,7 +79,7 @@ static uint32_t pl050_read(void *opaque, target_phys_addr_t offset) | ||
| 79 | case 4: /* KMIIR */ | 79 | case 4: /* KMIIR */ |
| 80 | return s->pending | 2; | 80 | return s->pending | 2; |
| 81 | default: | 81 | default: |
| 82 | - cpu_abort (cpu_single_env, "pl050_read: Bad offset %x\n", (int)offset); | 82 | + hw_error("pl050_read: Bad offset %x\n", (int)offset); |
| 83 | return 0; | 83 | return 0; |
| 84 | } | 84 | } |
| 85 | } | 85 | } |
| @@ -107,7 +107,7 @@ static void pl050_write(void *opaque, target_phys_addr_t offset, | @@ -107,7 +107,7 @@ static void pl050_write(void *opaque, target_phys_addr_t offset, | ||
| 107 | s->clk = value; | 107 | s->clk = value; |
| 108 | return; | 108 | return; |
| 109 | default: | 109 | default: |
| 110 | - cpu_abort (cpu_single_env, "pl050_write: Bad offset %x\n", (int)offset); | 110 | + hw_error("pl050_write: Bad offset %x\n", (int)offset); |
| 111 | } | 111 | } |
| 112 | } | 112 | } |
| 113 | static CPUReadMemoryFunc *pl050_readfn[] = { | 113 | static CPUReadMemoryFunc *pl050_readfn[] = { |
hw/pl061.c
| @@ -126,8 +126,7 @@ static uint32_t pl061_read(void *opaque, target_phys_addr_t offset) | @@ -126,8 +126,7 @@ static uint32_t pl061_read(void *opaque, target_phys_addr_t offset) | ||
| 126 | case 0x524: /* Commit */ | 126 | case 0x524: /* Commit */ |
| 127 | return s->cr; | 127 | return s->cr; |
| 128 | default: | 128 | default: |
| 129 | - cpu_abort (cpu_single_env, "pl061_read: Bad offset %x\n", | ||
| 130 | - (int)offset); | 129 | + hw_error("pl061_read: Bad offset %x\n", (int)offset); |
| 131 | return 0; | 130 | return 0; |
| 132 | } | 131 | } |
| 133 | } | 132 | } |
| @@ -199,8 +198,7 @@ static void pl061_write(void *opaque, target_phys_addr_t offset, | @@ -199,8 +198,7 @@ static void pl061_write(void *opaque, target_phys_addr_t offset, | ||
| 199 | s->cr = value; | 198 | s->cr = value; |
| 200 | break; | 199 | break; |
| 201 | default: | 200 | default: |
| 202 | - cpu_abort (cpu_single_env, "pl061_write: Bad offset %x\n", | ||
| 203 | - (int)offset); | 201 | + hw_error("pl061_write: Bad offset %x\n", (int)offset); |
| 204 | } | 202 | } |
| 205 | pl061_update(s); | 203 | pl061_update(s); |
| 206 | } | 204 | } |
hw/pl080.c
| @@ -93,7 +93,7 @@ static void pl080_run(pl080_state *s) | @@ -93,7 +93,7 @@ static void pl080_run(pl080_state *s) | ||
| 93 | if ((s->conf & PL080_CONF_E) == 0) | 93 | if ((s->conf & PL080_CONF_E) == 0) |
| 94 | return; | 94 | return; |
| 95 | 95 | ||
| 96 | -cpu_abort(cpu_single_env, "DMA active\n"); | 96 | +hw_error("DMA active\n"); |
| 97 | /* If we are already in the middle of a DMA operation then indicate that | 97 | /* If we are already in the middle of a DMA operation then indicate that |
| 98 | there may be new DMA requests and return immediately. */ | 98 | there may be new DMA requests and return immediately. */ |
| 99 | if (s->running) { | 99 | if (s->running) { |
| @@ -111,7 +111,7 @@ again: | @@ -111,7 +111,7 @@ again: | ||
| 111 | continue; | 111 | continue; |
| 112 | flow = (ch->conf >> 11) & 7; | 112 | flow = (ch->conf >> 11) & 7; |
| 113 | if (flow >= 4) { | 113 | if (flow >= 4) { |
| 114 | - cpu_abort(cpu_single_env, | 114 | + hw_error( |
| 115 | "pl080_run: Peripheral flow control not implemented\n"); | 115 | "pl080_run: Peripheral flow control not implemented\n"); |
| 116 | } | 116 | } |
| 117 | src_id = (ch->conf >> 1) & 0x1f; | 117 | src_id = (ch->conf >> 1) & 0x1f; |
| @@ -242,7 +242,7 @@ static uint32_t pl080_read(void *opaque, target_phys_addr_t offset) | @@ -242,7 +242,7 @@ static uint32_t pl080_read(void *opaque, target_phys_addr_t offset) | ||
| 242 | return s->sync; | 242 | return s->sync; |
| 243 | default: | 243 | default: |
| 244 | bad_offset: | 244 | bad_offset: |
| 245 | - cpu_abort(cpu_single_env, "pl080_read: Bad offset %x\n", (int)offset); | 245 | + hw_error("pl080_read: Bad offset %x\n", (int)offset); |
| 246 | return 0; | 246 | return 0; |
| 247 | } | 247 | } |
| 248 | } | 248 | } |
| @@ -288,13 +288,12 @@ static void pl080_write(void *opaque, target_phys_addr_t offset, | @@ -288,13 +288,12 @@ static void pl080_write(void *opaque, target_phys_addr_t offset, | ||
| 288 | case 10: /* SoftLBReq */ | 288 | case 10: /* SoftLBReq */ |
| 289 | case 11: /* SoftLSReq */ | 289 | case 11: /* SoftLSReq */ |
| 290 | /* ??? Implement these. */ | 290 | /* ??? Implement these. */ |
| 291 | - cpu_abort(cpu_single_env, "pl080_write: Soft DMA not implemented\n"); | 291 | + hw_error("pl080_write: Soft DMA not implemented\n"); |
| 292 | break; | 292 | break; |
| 293 | case 12: /* Configuration */ | 293 | case 12: /* Configuration */ |
| 294 | s->conf = value; | 294 | s->conf = value; |
| 295 | if (s->conf & (PL080_CONF_M1 | PL080_CONF_M1)) { | 295 | if (s->conf & (PL080_CONF_M1 | PL080_CONF_M1)) { |
| 296 | - cpu_abort(cpu_single_env, | ||
| 297 | - "pl080_write: Big-endian DMA not implemented\n"); | 296 | + hw_error("pl080_write: Big-endian DMA not implemented\n"); |
| 298 | } | 297 | } |
| 299 | pl080_run(s); | 298 | pl080_run(s); |
| 300 | break; | 299 | break; |
| @@ -303,7 +302,7 @@ static void pl080_write(void *opaque, target_phys_addr_t offset, | @@ -303,7 +302,7 @@ static void pl080_write(void *opaque, target_phys_addr_t offset, | ||
| 303 | break; | 302 | break; |
| 304 | default: | 303 | default: |
| 305 | bad_offset: | 304 | bad_offset: |
| 306 | - cpu_abort(cpu_single_env, "pl080_write: Bad offset %x\n", (int)offset); | 305 | + hw_error("pl080_write: Bad offset %x\n", (int)offset); |
| 307 | } | 306 | } |
| 308 | pl080_update(s); | 307 | pl080_update(s); |
| 309 | } | 308 | } |
hw/pl110.c
| @@ -267,7 +267,7 @@ static uint32_t pl110_read(void *opaque, target_phys_addr_t offset) | @@ -267,7 +267,7 @@ static uint32_t pl110_read(void *opaque, target_phys_addr_t offset) | ||
| 267 | case 12: /* LCDLPCURR */ | 267 | case 12: /* LCDLPCURR */ |
| 268 | return s->lpbase; | 268 | return s->lpbase; |
| 269 | default: | 269 | default: |
| 270 | - cpu_abort (cpu_single_env, "pl110_read: Bad offset %x\n", (int)offset); | 270 | + hw_error("pl110_read: Bad offset %x\n", (int)offset); |
| 271 | return 0; | 271 | return 0; |
| 272 | } | 272 | } |
| 273 | } | 273 | } |
| @@ -333,7 +333,7 @@ static void pl110_write(void *opaque, target_phys_addr_t offset, | @@ -333,7 +333,7 @@ static void pl110_write(void *opaque, target_phys_addr_t offset, | ||
| 333 | pl110_update(s); | 333 | pl110_update(s); |
| 334 | break; | 334 | break; |
| 335 | default: | 335 | default: |
| 336 | - cpu_abort (cpu_single_env, "pl110_write: Bad offset %x\n", (int)offset); | 336 | + hw_error("pl110_write: Bad offset %x\n", (int)offset); |
| 337 | } | 337 | } |
| 338 | } | 338 | } |
| 339 | 339 |
hw/pl181.c
| @@ -332,7 +332,7 @@ static uint32_t pl181_read(void *opaque, target_phys_addr_t offset) | @@ -332,7 +332,7 @@ static uint32_t pl181_read(void *opaque, target_phys_addr_t offset) | ||
| 332 | return value; | 332 | return value; |
| 333 | } | 333 | } |
| 334 | default: | 334 | default: |
| 335 | - cpu_abort (cpu_single_env, "pl181_read: Bad offset %x\n", (int)offset); | 335 | + hw_error("pl181_read: Bad offset %x\n", (int)offset); |
| 336 | return 0; | 336 | return 0; |
| 337 | } | 337 | } |
| 338 | } | 338 | } |
| @@ -403,7 +403,7 @@ static void pl181_write(void *opaque, target_phys_addr_t offset, | @@ -403,7 +403,7 @@ static void pl181_write(void *opaque, target_phys_addr_t offset, | ||
| 403 | } | 403 | } |
| 404 | break; | 404 | break; |
| 405 | default: | 405 | default: |
| 406 | - cpu_abort (cpu_single_env, "pl181_write: Bad offset %x\n", (int)offset); | 406 | + hw_error("pl181_write: Bad offset %x\n", (int)offset); |
| 407 | } | 407 | } |
| 408 | pl181_update(s); | 408 | pl181_update(s); |
| 409 | } | 409 | } |
hw/pl190.c
| @@ -137,7 +137,7 @@ static uint32_t pl190_read(void *opaque, target_phys_addr_t offset) | @@ -137,7 +137,7 @@ static uint32_t pl190_read(void *opaque, target_phys_addr_t offset) | ||
| 137 | case 13: /* DEFVECTADDR */ | 137 | case 13: /* DEFVECTADDR */ |
| 138 | return s->vect_addr[16]; | 138 | return s->vect_addr[16]; |
| 139 | default: | 139 | default: |
| 140 | - cpu_abort (cpu_single_env, "pl190_read: Bad offset %x\n", (int)offset); | 140 | + hw_error("pl190_read: Bad offset %x\n", (int)offset); |
| 141 | return 0; | 141 | return 0; |
| 142 | } | 142 | } |
| 143 | } | 143 | } |
| @@ -190,11 +190,12 @@ static void pl190_write(void *opaque, target_phys_addr_t offset, uint32_t val) | @@ -190,11 +190,12 @@ static void pl190_write(void *opaque, target_phys_addr_t offset, uint32_t val) | ||
| 190 | s->default_addr = val; | 190 | s->default_addr = val; |
| 191 | break; | 191 | break; |
| 192 | case 0xc0: /* ITCR */ | 192 | case 0xc0: /* ITCR */ |
| 193 | - if (val) | ||
| 194 | - cpu_abort(cpu_single_env, "pl190: Test mode not implemented\n"); | 193 | + if (val) { |
| 194 | + hw_error("pl190: Test mode not implemented\n"); | ||
| 195 | + } | ||
| 195 | break; | 196 | break; |
| 196 | default: | 197 | default: |
| 197 | - cpu_abort(cpu_single_env, "pl190_write: Bad offset %x\n", (int)offset); | 198 | + hw_error("pl190_write: Bad offset %x\n", (int)offset); |
| 198 | return; | 199 | return; |
| 199 | } | 200 | } |
| 200 | pl190_update(s); | 201 | pl190_update(s); |
hw/ppc_newworld.c
| @@ -146,7 +146,7 @@ static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size, | @@ -146,7 +146,7 @@ static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size, | ||
| 146 | /* Load OpenBIOS (ELF) */ | 146 | /* Load OpenBIOS (ELF) */ |
| 147 | bios_size = load_elf(buf, 0, NULL, NULL, NULL); | 147 | bios_size = load_elf(buf, 0, NULL, NULL, NULL); |
| 148 | if (bios_size < 0 || bios_size > BIOS_SIZE) { | 148 | if (bios_size < 0 || bios_size > BIOS_SIZE) { |
| 149 | - cpu_abort(env, "qemu: could not load PowerPC bios '%s'\n", buf); | 149 | + hw_error("qemu: could not load PowerPC bios '%s'\n", buf); |
| 150 | exit(1); | 150 | exit(1); |
| 151 | } | 151 | } |
| 152 | 152 | ||
| @@ -190,8 +190,7 @@ static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size, | @@ -190,8 +190,7 @@ static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size, | ||
| 190 | kernel_base, | 190 | kernel_base, |
| 191 | ram_size - kernel_base); | 191 | ram_size - kernel_base); |
| 192 | if (kernel_size < 0) { | 192 | if (kernel_size < 0) { |
| 193 | - cpu_abort(env, "qemu: could not load kernel '%s'\n", | ||
| 194 | - kernel_filename); | 193 | + hw_error("qemu: could not load kernel '%s'\n", kernel_filename); |
| 195 | exit(1); | 194 | exit(1); |
| 196 | } | 195 | } |
| 197 | /* load initrd */ | 196 | /* load initrd */ |
| @@ -200,8 +199,8 @@ static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size, | @@ -200,8 +199,8 @@ static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size, | ||
| 200 | initrd_size = load_image_targphys(initrd_filename, initrd_base, | 199 | initrd_size = load_image_targphys(initrd_filename, initrd_base, |
| 201 | ram_size - initrd_base); | 200 | ram_size - initrd_base); |
| 202 | if (initrd_size < 0) { | 201 | if (initrd_size < 0) { |
| 203 | - cpu_abort(env, "qemu: could not load initial ram disk '%s'\n", | ||
| 204 | - initrd_filename); | 202 | + hw_error("qemu: could not load initial ram disk '%s'\n", |
| 203 | + initrd_filename); | ||
| 205 | exit(1); | 204 | exit(1); |
| 206 | } | 205 | } |
| 207 | } else { | 206 | } else { |
| @@ -278,7 +277,7 @@ static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size, | @@ -278,7 +277,7 @@ static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size, | ||
| 278 | break; | 277 | break; |
| 279 | #endif /* defined(TARGET_PPC64) */ | 278 | #endif /* defined(TARGET_PPC64) */ |
| 280 | default: | 279 | default: |
| 281 | - cpu_abort(env, "Bus model not supported on mac99 machine\n"); | 280 | + hw_error("Bus model not supported on mac99 machine\n"); |
| 282 | exit(1); | 281 | exit(1); |
| 283 | } | 282 | } |
| 284 | } | 283 | } |
hw/ppc_oldworld.c
| @@ -179,7 +179,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, | @@ -179,7 +179,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, | ||
| 179 | /* Load OpenBIOS (ELF) */ | 179 | /* Load OpenBIOS (ELF) */ |
| 180 | bios_size = load_elf(buf, 0, NULL, NULL, NULL); | 180 | bios_size = load_elf(buf, 0, NULL, NULL, NULL); |
| 181 | if (bios_size < 0 || bios_size > BIOS_SIZE) { | 181 | if (bios_size < 0 || bios_size > BIOS_SIZE) { |
| 182 | - cpu_abort(env, "qemu: could not load PowerPC bios '%s'\n", buf); | 182 | + hw_error("qemu: could not load PowerPC bios '%s'\n", buf); |
| 183 | exit(1); | 183 | exit(1); |
| 184 | } | 184 | } |
| 185 | 185 | ||
| @@ -222,7 +222,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, | @@ -222,7 +222,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, | ||
| 222 | kernel_base, | 222 | kernel_base, |
| 223 | ram_size - kernel_base); | 223 | ram_size - kernel_base); |
| 224 | if (kernel_size < 0) { | 224 | if (kernel_size < 0) { |
| 225 | - cpu_abort(env, "qemu: could not load kernel '%s'\n", | 225 | + hw_error("qemu: could not load kernel '%s'\n", |
| 226 | kernel_filename); | 226 | kernel_filename); |
| 227 | exit(1); | 227 | exit(1); |
| 228 | } | 228 | } |
| @@ -232,8 +232,8 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, | @@ -232,8 +232,8 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, | ||
| 232 | initrd_size = load_image_targphys(initrd_filename, initrd_base, | 232 | initrd_size = load_image_targphys(initrd_filename, initrd_base, |
| 233 | ram_size - initrd_base); | 233 | ram_size - initrd_base); |
| 234 | if (initrd_size < 0) { | 234 | if (initrd_size < 0) { |
| 235 | - cpu_abort(env, "qemu: could not load initial ram disk '%s'\n", | ||
| 236 | - initrd_filename); | 235 | + hw_error("qemu: could not load initial ram disk '%s'\n", |
| 236 | + initrd_filename); | ||
| 237 | exit(1); | 237 | exit(1); |
| 238 | } | 238 | } |
| 239 | } else { | 239 | } else { |
| @@ -288,15 +288,13 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, | @@ -288,15 +288,13 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size, | ||
| 288 | ((qemu_irq *)env->irq_inputs)[PPC6xx_INPUT_INT]; | 288 | ((qemu_irq *)env->irq_inputs)[PPC6xx_INPUT_INT]; |
| 289 | break; | 289 | break; |
| 290 | default: | 290 | default: |
| 291 | - cpu_abort(env, "Bus model not supported on OldWorld Mac machine\n"); | ||
| 292 | - exit(1); | 291 | + hw_error("Bus model not supported on OldWorld Mac machine\n"); |
| 293 | } | 292 | } |
| 294 | } | 293 | } |
| 295 | 294 | ||
| 296 | /* init basic PC hardware */ | 295 | /* init basic PC hardware */ |
| 297 | if (PPC_INPUT(env) != PPC_FLAGS_INPUT_6xx) { | 296 | if (PPC_INPUT(env) != PPC_FLAGS_INPUT_6xx) { |
| 298 | - cpu_abort(env, "Only 6xx bus is supported on heathrow machine\n"); | ||
| 299 | - exit(1); | 297 | + hw_error("Only 6xx bus is supported on heathrow machine\n"); |
| 300 | } | 298 | } |
| 301 | pic = heathrow_pic_init(&pic_mem_index, 1, heathrow_irqs); | 299 | pic = heathrow_pic_init(&pic_mem_index, 1, heathrow_irqs); |
| 302 | pci_bus = pci_grackle_init(0xfec00000, pic); | 300 | pci_bus = pci_grackle_init(0xfec00000, pic); |
hw/ppc_prep.c
| @@ -595,11 +595,10 @@ static void ppc_prep_init (ram_addr_t ram_size, int vga_ram_size, | @@ -595,11 +595,10 @@ static void ppc_prep_init (ram_addr_t ram_size, int vga_ram_size, | ||
| 595 | bios_size = load_image_targphys(buf, bios_addr, bios_size); | 595 | bios_size = load_image_targphys(buf, bios_addr, bios_size); |
| 596 | } | 596 | } |
| 597 | if (bios_size < 0 || bios_size > BIOS_SIZE) { | 597 | if (bios_size < 0 || bios_size > BIOS_SIZE) { |
| 598 | - cpu_abort(env, "qemu: could not load PPC PREP bios '%s'\n", buf); | ||
| 599 | - exit(1); | 598 | + hw_error("qemu: could not load PPC PREP bios '%s'\n", buf); |
| 600 | } | 599 | } |
| 601 | if (env->nip < 0xFFF80000 && bios_size < 0x00100000) { | 600 | if (env->nip < 0xFFF80000 && bios_size < 0x00100000) { |
| 602 | - cpu_abort(env, "PowerPC 601 / 620 / 970 need a 1MB BIOS\n"); | 601 | + hw_error("PowerPC 601 / 620 / 970 need a 1MB BIOS\n"); |
| 603 | } | 602 | } |
| 604 | 603 | ||
| 605 | if (linux_boot) { | 604 | if (linux_boot) { |
| @@ -608,8 +607,7 @@ static void ppc_prep_init (ram_addr_t ram_size, int vga_ram_size, | @@ -608,8 +607,7 @@ static void ppc_prep_init (ram_addr_t ram_size, int vga_ram_size, | ||
| 608 | kernel_size = load_image_targphys(kernel_filename, kernel_base, | 607 | kernel_size = load_image_targphys(kernel_filename, kernel_base, |
| 609 | ram_size - kernel_base); | 608 | ram_size - kernel_base); |
| 610 | if (kernel_size < 0) { | 609 | if (kernel_size < 0) { |
| 611 | - cpu_abort(env, "qemu: could not load kernel '%s'\n", | ||
| 612 | - kernel_filename); | 610 | + hw_error("qemu: could not load kernel '%s'\n", kernel_filename); |
| 613 | exit(1); | 611 | exit(1); |
| 614 | } | 612 | } |
| 615 | /* load initrd */ | 613 | /* load initrd */ |
| @@ -618,9 +616,8 @@ static void ppc_prep_init (ram_addr_t ram_size, int vga_ram_size, | @@ -618,9 +616,8 @@ static void ppc_prep_init (ram_addr_t ram_size, int vga_ram_size, | ||
| 618 | initrd_size = load_image_targphys(initrd_filename, initrd_base, | 616 | initrd_size = load_image_targphys(initrd_filename, initrd_base, |
| 619 | ram_size - initrd_base); | 617 | ram_size - initrd_base); |
| 620 | if (initrd_size < 0) { | 618 | if (initrd_size < 0) { |
| 621 | - cpu_abort(env, "qemu: could not load initial ram disk '%s'\n", | 619 | + hw_error("qemu: could not load initial ram disk '%s'\n", |
| 622 | initrd_filename); | 620 | initrd_filename); |
| 623 | - exit(1); | ||
| 624 | } | 621 | } |
| 625 | } else { | 622 | } else { |
| 626 | initrd_base = 0; | 623 | initrd_base = 0; |
| @@ -648,8 +645,7 @@ static void ppc_prep_init (ram_addr_t ram_size, int vga_ram_size, | @@ -648,8 +645,7 @@ static void ppc_prep_init (ram_addr_t ram_size, int vga_ram_size, | ||
| 648 | 645 | ||
| 649 | isa_mem_base = 0xc0000000; | 646 | isa_mem_base = 0xc0000000; |
| 650 | if (PPC_INPUT(env) != PPC_FLAGS_INPUT_6xx) { | 647 | if (PPC_INPUT(env) != PPC_FLAGS_INPUT_6xx) { |
| 651 | - cpu_abort(env, "Only 6xx bus is supported on PREP machine\n"); | ||
| 652 | - exit(1); | 648 | + hw_error("Only 6xx bus is supported on PREP machine\n"); |
| 653 | } | 649 | } |
| 654 | i8259 = i8259_init(first_cpu->irq_inputs[PPC6xx_INPUT_INT]); | 650 | i8259 = i8259_init(first_cpu->irq_inputs[PPC6xx_INPUT_INT]); |
| 655 | pci_bus = pci_prep_init(i8259); | 651 | pci_bus = pci_prep_init(i8259); |
hw/pxa2xx_dma.c
| @@ -301,8 +301,7 @@ static uint32_t pxa2xx_dma_read(void *opaque, target_phys_addr_t offset) | @@ -301,8 +301,7 @@ static uint32_t pxa2xx_dma_read(void *opaque, target_phys_addr_t offset) | ||
| 301 | } | 301 | } |
| 302 | } | 302 | } |
| 303 | 303 | ||
| 304 | - cpu_abort(cpu_single_env, | ||
| 305 | - "%s: Bad offset 0x" TARGET_FMT_plx "\n", __FUNCTION__, offset); | 304 | + hw_error("%s: Bad offset 0x" TARGET_FMT_plx "\n", __FUNCTION__, offset); |
| 306 | return 7; | 305 | return 7; |
| 307 | } | 306 | } |
| 308 | 307 | ||
| @@ -321,8 +320,8 @@ static void pxa2xx_dma_write(void *opaque, | @@ -321,8 +320,8 @@ static void pxa2xx_dma_write(void *opaque, | ||
| 321 | 320 | ||
| 322 | if (value & DRCMR_MAPVLD) | 321 | if (value & DRCMR_MAPVLD) |
| 323 | if ((value & DRCMR_CHLNUM) > s->channels) | 322 | if ((value & DRCMR_CHLNUM) > s->channels) |
| 324 | - cpu_abort(cpu_single_env, "%s: Bad DMA channel %i\n", | ||
| 325 | - __FUNCTION__, value & DRCMR_CHLNUM); | 323 | + hw_error("%s: Bad DMA channel %i\n", |
| 324 | + __FUNCTION__, value & DRCMR_CHLNUM); | ||
| 326 | 325 | ||
| 327 | s->req[channel] = value; | 326 | s->req[channel] = value; |
| 328 | break; | 327 | break; |
| @@ -401,21 +400,20 @@ static void pxa2xx_dma_write(void *opaque, | @@ -401,21 +400,20 @@ static void pxa2xx_dma_write(void *opaque, | ||
| 401 | break; | 400 | break; |
| 402 | } | 401 | } |
| 403 | fail: | 402 | fail: |
| 404 | - cpu_abort(cpu_single_env, "%s: Bad offset " TARGET_FMT_plx "\n", | ||
| 405 | - __FUNCTION__, offset); | 403 | + hw_error("%s: Bad offset " TARGET_FMT_plx "\n", __FUNCTION__, offset); |
| 406 | } | 404 | } |
| 407 | } | 405 | } |
| 408 | 406 | ||
| 409 | static uint32_t pxa2xx_dma_readbad(void *opaque, target_phys_addr_t offset) | 407 | static uint32_t pxa2xx_dma_readbad(void *opaque, target_phys_addr_t offset) |
| 410 | { | 408 | { |
| 411 | - cpu_abort(cpu_single_env, "%s: Bad access width\n", __FUNCTION__); | 409 | + hw_error("%s: Bad access width\n", __FUNCTION__); |
| 412 | return 5; | 410 | return 5; |
| 413 | } | 411 | } |
| 414 | 412 | ||
| 415 | static void pxa2xx_dma_writebad(void *opaque, | 413 | static void pxa2xx_dma_writebad(void *opaque, |
| 416 | target_phys_addr_t offset, uint32_t value) | 414 | target_phys_addr_t offset, uint32_t value) |
| 417 | { | 415 | { |
| 418 | - cpu_abort(cpu_single_env, "%s: Bad access width\n", __FUNCTION__); | 416 | + hw_error("%s: Bad access width\n", __FUNCTION__); |
| 419 | } | 417 | } |
| 420 | 418 | ||
| 421 | static CPUReadMemoryFunc *pxa2xx_dma_readfn[] = { | 419 | static CPUReadMemoryFunc *pxa2xx_dma_readfn[] = { |
| @@ -530,8 +528,7 @@ void pxa2xx_dma_request(struct pxa2xx_dma_state_s *s, int req_num, int on) | @@ -530,8 +528,7 @@ void pxa2xx_dma_request(struct pxa2xx_dma_state_s *s, int req_num, int on) | ||
| 530 | { | 528 | { |
| 531 | int ch; | 529 | int ch; |
| 532 | if (req_num < 0 || req_num >= PXA2XX_DMA_NUM_REQUESTS) | 530 | if (req_num < 0 || req_num >= PXA2XX_DMA_NUM_REQUESTS) |
| 533 | - cpu_abort(cpu_single_env, | ||
| 534 | - "%s: Bad DMA request %i\n", __FUNCTION__, req_num); | 531 | + hw_error("%s: Bad DMA request %i\n", __FUNCTION__, req_num); |
| 535 | 532 | ||
| 536 | if (!(s->req[req_num] & DRCMR_MAPVLD)) | 533 | if (!(s->req[req_num] & DRCMR_MAPVLD)) |
| 537 | return; | 534 | return; |
hw/pxa2xx_gpio.c
| @@ -179,8 +179,7 @@ static uint32_t pxa2xx_gpio_read(void *opaque, target_phys_addr_t offset) | @@ -179,8 +179,7 @@ static uint32_t pxa2xx_gpio_read(void *opaque, target_phys_addr_t offset) | ||
| 179 | return s->status[bank]; | 179 | return s->status[bank]; |
| 180 | 180 | ||
| 181 | default: | 181 | default: |
| 182 | - cpu_abort(cpu_single_env, | ||
| 183 | - "%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); | 182 | + hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); |
| 184 | } | 183 | } |
| 185 | 184 | ||
| 186 | return 0; | 185 | return 0; |
| @@ -234,8 +233,7 @@ static void pxa2xx_gpio_write(void *opaque, | @@ -234,8 +233,7 @@ static void pxa2xx_gpio_write(void *opaque, | ||
| 234 | break; | 233 | break; |
| 235 | 234 | ||
| 236 | default: | 235 | default: |
| 237 | - cpu_abort(cpu_single_env, | ||
| 238 | - "%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); | 236 | + hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); |
| 239 | } | 237 | } |
| 240 | } | 238 | } |
| 241 | 239 |
hw/pxa2xx_keypad.c
| @@ -209,8 +209,7 @@ static uint32_t pxa2xx_keypad_read(void *opaque, target_phys_addr_t offset) | @@ -209,8 +209,7 @@ static uint32_t pxa2xx_keypad_read(void *opaque, target_phys_addr_t offset) | ||
| 209 | return s->kpkdi; | 209 | return s->kpkdi; |
| 210 | break; | 210 | break; |
| 211 | default: | 211 | default: |
| 212 | - cpu_abort(cpu_single_env, "%s: Bad offset " REG_FMT "\n", | ||
| 213 | - __FUNCTION__, offset); | 212 | + hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); |
| 214 | } | 213 | } |
| 215 | 214 | ||
| 216 | return 0; | 215 | return 0; |
| @@ -254,8 +253,7 @@ static void pxa2xx_keypad_write(void *opaque, | @@ -254,8 +253,7 @@ static void pxa2xx_keypad_write(void *opaque, | ||
| 254 | break; | 253 | break; |
| 255 | 254 | ||
| 256 | default: | 255 | default: |
| 257 | - cpu_abort(cpu_single_env, "%s: Bad offset " REG_FMT "\n", | ||
| 258 | - __FUNCTION__, offset); | 256 | + hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); |
| 259 | } | 257 | } |
| 260 | } | 258 | } |
| 261 | 259 |
hw/pxa2xx_lcd.c
| @@ -400,8 +400,7 @@ static uint32_t pxa2xx_lcdc_read(void *opaque, target_phys_addr_t offset) | @@ -400,8 +400,7 @@ static uint32_t pxa2xx_lcdc_read(void *opaque, target_phys_addr_t offset) | ||
| 400 | 400 | ||
| 401 | default: | 401 | default: |
| 402 | fail: | 402 | fail: |
| 403 | - cpu_abort(cpu_single_env, | ||
| 404 | - "%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); | 403 | + hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); |
| 405 | } | 404 | } |
| 406 | 405 | ||
| 407 | return 0; | 406 | return 0; |
| @@ -556,8 +555,7 @@ static void pxa2xx_lcdc_write(void *opaque, | @@ -556,8 +555,7 @@ static void pxa2xx_lcdc_write(void *opaque, | ||
| 556 | 555 | ||
| 557 | default: | 556 | default: |
| 558 | fail: | 557 | fail: |
| 559 | - cpu_abort(cpu_single_env, | ||
| 560 | - "%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); | 558 | + hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); |
| 561 | } | 559 | } |
| 562 | } | 560 | } |
| 563 | 561 |
hw/pxa2xx_mmci.c
| @@ -266,8 +266,7 @@ static uint32_t pxa2xx_mmci_read(void *opaque, target_phys_addr_t offset) | @@ -266,8 +266,7 @@ static uint32_t pxa2xx_mmci_read(void *opaque, target_phys_addr_t offset) | ||
| 266 | case MMC_BLKS_REM: | 266 | case MMC_BLKS_REM: |
| 267 | return s->numblk; | 267 | return s->numblk; |
| 268 | default: | 268 | default: |
| 269 | - cpu_abort(cpu_single_env, "%s: Bad offset " REG_FMT "\n", | ||
| 270 | - __FUNCTION__, offset); | 269 | + hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); |
| 271 | } | 270 | } |
| 272 | 271 | ||
| 273 | return 0; | 272 | return 0; |
| @@ -379,8 +378,7 @@ static void pxa2xx_mmci_write(void *opaque, | @@ -379,8 +378,7 @@ static void pxa2xx_mmci_write(void *opaque, | ||
| 379 | break; | 378 | break; |
| 380 | 379 | ||
| 381 | default: | 380 | default: |
| 382 | - cpu_abort(cpu_single_env, "%s: Bad offset " REG_FMT "\n", | ||
| 383 | - __FUNCTION__, offset); | 381 | + hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); |
| 384 | } | 382 | } |
| 385 | } | 383 | } |
| 386 | 384 |
hw/pxa2xx_timer.c
| @@ -205,8 +205,7 @@ static uint32_t pxa2xx_timer_read(void *opaque, target_phys_addr_t offset) | @@ -205,8 +205,7 @@ static uint32_t pxa2xx_timer_read(void *opaque, target_phys_addr_t offset) | ||
| 205 | return s->snapshot; | 205 | return s->snapshot; |
| 206 | default: | 206 | default: |
| 207 | badreg: | 207 | badreg: |
| 208 | - cpu_abort(cpu_single_env, "pxa2xx_timer_read: Bad offset " | ||
| 209 | - REG_FMT "\n", offset); | 208 | + hw_error("pxa2xx_timer_read: Bad offset " REG_FMT "\n", offset); |
| 210 | } | 209 | } |
| 211 | 210 | ||
| 212 | return 0; | 211 | return 0; |
| @@ -315,8 +314,7 @@ static void pxa2xx_timer_write(void *opaque, target_phys_addr_t offset, | @@ -315,8 +314,7 @@ static void pxa2xx_timer_write(void *opaque, target_phys_addr_t offset, | ||
| 315 | break; | 314 | break; |
| 316 | default: | 315 | default: |
| 317 | badreg: | 316 | badreg: |
| 318 | - cpu_abort(cpu_single_env, "pxa2xx_timer_write: Bad offset " | ||
| 319 | - REG_FMT "\n", offset); | 317 | + hw_error("pxa2xx_timer_write: Bad offset " REG_FMT "\n", offset); |
| 320 | } | 318 | } |
| 321 | } | 319 | } |
| 322 | 320 |
hw/sh_timer.c
| @@ -72,8 +72,7 @@ static uint32_t sh_timer_read(void *opaque, target_phys_addr_t offset) | @@ -72,8 +72,7 @@ static uint32_t sh_timer_read(void *opaque, target_phys_addr_t offset) | ||
| 72 | if (s->feat & TIMER_FEAT_CAPT) | 72 | if (s->feat & TIMER_FEAT_CAPT) |
| 73 | return s->tcpr; | 73 | return s->tcpr; |
| 74 | default: | 74 | default: |
| 75 | - cpu_abort (cpu_single_env, "sh_timer_read: Bad offset %x\n", | ||
| 76 | - (int)offset); | 75 | + hw_error("sh_timer_read: Bad offset %x\n", (int)offset); |
| 77 | return 0; | 76 | return 0; |
| 78 | } | 77 | } |
| 79 | } | 78 | } |
| @@ -110,23 +109,20 @@ static void sh_timer_write(void *opaque, target_phys_addr_t offset, | @@ -110,23 +109,20 @@ static void sh_timer_write(void *opaque, target_phys_addr_t offset, | ||
| 110 | case 4: freq >>= 10; break; | 109 | case 4: freq >>= 10; break; |
| 111 | case 6: | 110 | case 6: |
| 112 | case 7: if (s->feat & TIMER_FEAT_EXTCLK) break; | 111 | case 7: if (s->feat & TIMER_FEAT_EXTCLK) break; |
| 113 | - default: cpu_abort (cpu_single_env, | ||
| 114 | - "sh_timer_write: Reserved TPSC value\n"); break; | 112 | + default: hw_error("sh_timer_write: Reserved TPSC value\n"); break; |
| 115 | } | 113 | } |
| 116 | switch ((value & TIMER_TCR_CKEG) >> 3) { | 114 | switch ((value & TIMER_TCR_CKEG) >> 3) { |
| 117 | case 0: break; | 115 | case 0: break; |
| 118 | case 1: | 116 | case 1: |
| 119 | case 2: | 117 | case 2: |
| 120 | case 3: if (s->feat & TIMER_FEAT_EXTCLK) break; | 118 | case 3: if (s->feat & TIMER_FEAT_EXTCLK) break; |
| 121 | - default: cpu_abort (cpu_single_env, | ||
| 122 | - "sh_timer_write: Reserved CKEG value\n"); break; | 119 | + default: hw_error("sh_timer_write: Reserved CKEG value\n"); break; |
| 123 | } | 120 | } |
| 124 | switch ((value & TIMER_TCR_ICPE) >> 6) { | 121 | switch ((value & TIMER_TCR_ICPE) >> 6) { |
| 125 | case 0: break; | 122 | case 0: break; |
| 126 | case 2: | 123 | case 2: |
| 127 | case 3: if (s->feat & TIMER_FEAT_CAPT) break; | 124 | case 3: if (s->feat & TIMER_FEAT_CAPT) break; |
| 128 | - default: cpu_abort (cpu_single_env, | ||
| 129 | - "sh_timer_write: Reserved ICPE value\n"); break; | 125 | + default: hw_error("sh_timer_write: Reserved ICPE value\n"); break; |
| 130 | } | 126 | } |
| 131 | if ((value & TIMER_TCR_UNF) == 0) | 127 | if ((value & TIMER_TCR_UNF) == 0) |
| 132 | s->int_level = 0; | 128 | s->int_level = 0; |
| @@ -134,14 +130,12 @@ static void sh_timer_write(void *opaque, target_phys_addr_t offset, | @@ -134,14 +130,12 @@ static void sh_timer_write(void *opaque, target_phys_addr_t offset, | ||
| 134 | value &= ~TIMER_TCR_UNF; | 130 | value &= ~TIMER_TCR_UNF; |
| 135 | 131 | ||
| 136 | if ((value & TIMER_TCR_ICPF) && (!(s->feat & TIMER_FEAT_CAPT))) | 132 | if ((value & TIMER_TCR_ICPF) && (!(s->feat & TIMER_FEAT_CAPT))) |
| 137 | - cpu_abort (cpu_single_env, | ||
| 138 | - "sh_timer_write: Reserved ICPF value\n"); | 133 | + hw_error("sh_timer_write: Reserved ICPF value\n"); |
| 139 | 134 | ||
| 140 | value &= ~TIMER_TCR_ICPF; /* capture not supported */ | 135 | value &= ~TIMER_TCR_ICPF; /* capture not supported */ |
| 141 | 136 | ||
| 142 | if (value & TIMER_TCR_RESERVED) | 137 | if (value & TIMER_TCR_RESERVED) |
| 143 | - cpu_abort (cpu_single_env, | ||
| 144 | - "sh_timer_write: Reserved TCR bits set\n"); | 138 | + hw_error("sh_timer_write: Reserved TCR bits set\n"); |
| 145 | s->tcr = value; | 139 | s->tcr = value; |
| 146 | ptimer_set_limit(s->timer, s->tcor, 0); | 140 | ptimer_set_limit(s->timer, s->tcor, 0); |
| 147 | ptimer_set_freq(s->timer, freq); | 141 | ptimer_set_freq(s->timer, freq); |
| @@ -156,8 +150,7 @@ static void sh_timer_write(void *opaque, target_phys_addr_t offset, | @@ -156,8 +150,7 @@ static void sh_timer_write(void *opaque, target_phys_addr_t offset, | ||
| 156 | break; | 150 | break; |
| 157 | } | 151 | } |
| 158 | default: | 152 | default: |
| 159 | - cpu_abort (cpu_single_env, "sh_timer_write: Bad offset %x\n", | ||
| 160 | - (int)offset); | 153 | + hw_error("sh_timer_write: Bad offset %x\n", (int)offset); |
| 161 | } | 154 | } |
| 162 | sh_timer_update(s); | 155 | sh_timer_update(s); |
| 163 | } | 156 | } |
| @@ -234,8 +227,7 @@ static uint32_t tmu012_read(void *opaque, target_phys_addr_t offset) | @@ -234,8 +227,7 @@ static uint32_t tmu012_read(void *opaque, target_phys_addr_t offset) | ||
| 234 | 227 | ||
| 235 | if (offset >= 0x20) { | 228 | if (offset >= 0x20) { |
| 236 | if (!(s->feat & TMU012_FEAT_3CHAN)) | 229 | if (!(s->feat & TMU012_FEAT_3CHAN)) |
| 237 | - cpu_abort (cpu_single_env, "tmu012_write: Bad channel offset %x\n", | ||
| 238 | - (int)offset); | 230 | + hw_error("tmu012_write: Bad channel offset %x\n", (int)offset); |
| 239 | return sh_timer_read(s->timer[2], offset - 0x20); | 231 | return sh_timer_read(s->timer[2], offset - 0x20); |
| 240 | } | 232 | } |
| 241 | 233 | ||
| @@ -251,8 +243,7 @@ static uint32_t tmu012_read(void *opaque, target_phys_addr_t offset) | @@ -251,8 +243,7 @@ static uint32_t tmu012_read(void *opaque, target_phys_addr_t offset) | ||
| 251 | if ((s->feat & TMU012_FEAT_TOCR) && offset == 0) | 243 | if ((s->feat & TMU012_FEAT_TOCR) && offset == 0) |
| 252 | return s->tocr; | 244 | return s->tocr; |
| 253 | 245 | ||
| 254 | - cpu_abort (cpu_single_env, "tmu012_write: Bad offset %x\n", | ||
| 255 | - (int)offset); | 246 | + hw_error("tmu012_write: Bad offset %x\n", (int)offset); |
| 256 | return 0; | 247 | return 0; |
| 257 | } | 248 | } |
| 258 | 249 | ||
| @@ -267,8 +258,7 @@ static void tmu012_write(void *opaque, target_phys_addr_t offset, | @@ -267,8 +258,7 @@ static void tmu012_write(void *opaque, target_phys_addr_t offset, | ||
| 267 | 258 | ||
| 268 | if (offset >= 0x20) { | 259 | if (offset >= 0x20) { |
| 269 | if (!(s->feat & TMU012_FEAT_3CHAN)) | 260 | if (!(s->feat & TMU012_FEAT_3CHAN)) |
| 270 | - cpu_abort (cpu_single_env, "tmu012_write: Bad channel offset %x\n", | ||
| 271 | - (int)offset); | 261 | + hw_error("tmu012_write: Bad channel offset %x\n", (int)offset); |
| 272 | sh_timer_write(s->timer[2], offset - 0x20, value); | 262 | sh_timer_write(s->timer[2], offset - 0x20, value); |
| 273 | return; | 263 | return; |
| 274 | } | 264 | } |
| @@ -290,7 +280,7 @@ static void tmu012_write(void *opaque, target_phys_addr_t offset, | @@ -290,7 +280,7 @@ static void tmu012_write(void *opaque, target_phys_addr_t offset, | ||
| 290 | sh_timer_start_stop(s->timer[2], value & (1 << 2)); | 280 | sh_timer_start_stop(s->timer[2], value & (1 << 2)); |
| 291 | else | 281 | else |
| 292 | if (value & (1 << 2)) | 282 | if (value & (1 << 2)) |
| 293 | - cpu_abort (cpu_single_env, "tmu012_write: Bad channel\n"); | 283 | + hw_error("tmu012_write: Bad channel\n"); |
| 294 | 284 | ||
| 295 | s->tstr = value; | 285 | s->tstr = value; |
| 296 | return; | 286 | return; |
hw/smc91c111.c
| @@ -413,8 +413,7 @@ static void smc91c111_writeb(void *opaque, target_phys_addr_t offset, | @@ -413,8 +413,7 @@ static void smc91c111_writeb(void *opaque, target_phys_addr_t offset, | ||
| 413 | } | 413 | } |
| 414 | break; | 414 | break; |
| 415 | } | 415 | } |
| 416 | - cpu_abort (cpu_single_env, "smc91c111_write: Bad reg %d:%x\n", | ||
| 417 | - s->bank, (int)offset); | 416 | + hw_error("smc91c111_write: Bad reg %d:%x\n", s->bank, (int)offset); |
| 418 | } | 417 | } |
| 419 | 418 | ||
| 420 | static uint32_t smc91c111_readb(void *opaque, target_phys_addr_t offset) | 419 | static uint32_t smc91c111_readb(void *opaque, target_phys_addr_t offset) |
| @@ -554,8 +553,7 @@ static uint32_t smc91c111_readb(void *opaque, target_phys_addr_t offset) | @@ -554,8 +553,7 @@ static uint32_t smc91c111_readb(void *opaque, target_phys_addr_t offset) | ||
| 554 | } | 553 | } |
| 555 | break; | 554 | break; |
| 556 | } | 555 | } |
| 557 | - cpu_abort (cpu_single_env, "smc91c111_read: Bad reg %d:%x\n", | ||
| 558 | - s->bank, (int)offset); | 556 | + hw_error("smc91c111_read: Bad reg %d:%x\n", s->bank, (int)offset); |
| 559 | return 0; | 557 | return 0; |
| 560 | } | 558 | } |
| 561 | 559 |
hw/stellaris.c
| @@ -94,8 +94,7 @@ static void gptm_reload(gptm_state *s, int n, int reset) | @@ -94,8 +94,7 @@ static void gptm_reload(gptm_state *s, int n, int reset) | ||
| 94 | } else if (s->mode[n] == 0xa) { | 94 | } else if (s->mode[n] == 0xa) { |
| 95 | /* PWM mode. Not implemented. */ | 95 | /* PWM mode. Not implemented. */ |
| 96 | } else { | 96 | } else { |
| 97 | - cpu_abort(cpu_single_env, "TODO: 16-bit timer mode 0x%x\n", | ||
| 98 | - s->mode[n]); | 97 | + hw_error("TODO: 16-bit timer mode 0x%x\n", s->mode[n]); |
| 99 | } | 98 | } |
| 100 | s->tick[n] = tick; | 99 | s->tick[n] = tick; |
| 101 | qemu_mod_timer(s->timer[n], tick); | 100 | qemu_mod_timer(s->timer[n], tick); |
| @@ -137,8 +136,7 @@ static void gptm_tick(void *opaque) | @@ -137,8 +136,7 @@ static void gptm_tick(void *opaque) | ||
| 137 | } else if (s->mode[n] == 0xa) { | 136 | } else if (s->mode[n] == 0xa) { |
| 138 | /* PWM mode. Not implemented. */ | 137 | /* PWM mode. Not implemented. */ |
| 139 | } else { | 138 | } else { |
| 140 | - cpu_abort(cpu_single_env, "TODO: 16-bit timer mode 0x%x\n", | ||
| 141 | - s->mode[n]); | 139 | + hw_error("TODO: 16-bit timer mode 0x%x\n", s->mode[n]); |
| 142 | } | 140 | } |
| 143 | gptm_update_irq(s); | 141 | gptm_update_irq(s); |
| 144 | } | 142 | } |
| @@ -184,9 +182,9 @@ static uint32_t gptm_read(void *opaque, target_phys_addr_t offset) | @@ -184,9 +182,9 @@ static uint32_t gptm_read(void *opaque, target_phys_addr_t offset) | ||
| 184 | if (s->control == 1) | 182 | if (s->control == 1) |
| 185 | return s->rtc; | 183 | return s->rtc; |
| 186 | case 0x4c: /* TBR */ | 184 | case 0x4c: /* TBR */ |
| 187 | - cpu_abort(cpu_single_env, "TODO: Timer value read\n"); | 185 | + hw_error("TODO: Timer value read\n"); |
| 188 | default: | 186 | default: |
| 189 | - cpu_abort(cpu_single_env, "gptm_read: Bad offset 0x%x\n", (int)offset); | 187 | + hw_error("gptm_read: Bad offset 0x%x\n", (int)offset); |
| 190 | return 0; | 188 | return 0; |
| 191 | } | 189 | } |
| 192 | } | 190 | } |
| @@ -266,7 +264,7 @@ static void gptm_write(void *opaque, target_phys_addr_t offset, uint32_t value) | @@ -266,7 +264,7 @@ static void gptm_write(void *opaque, target_phys_addr_t offset, uint32_t value) | ||
| 266 | s->match_prescale[0] = value; | 264 | s->match_prescale[0] = value; |
| 267 | break; | 265 | break; |
| 268 | default: | 266 | default: |
| 269 | - cpu_abort(cpu_single_env, "gptm_write: Bad offset 0x%x\n", (int)offset); | 267 | + hw_error("gptm_write: Bad offset 0x%x\n", (int)offset); |
| 270 | } | 268 | } |
| 271 | gptm_update_irq(s); | 269 | gptm_update_irq(s); |
| 272 | } | 270 | } |
| @@ -500,7 +498,7 @@ static uint32_t ssys_read(void *opaque, target_phys_addr_t offset) | @@ -500,7 +498,7 @@ static uint32_t ssys_read(void *opaque, target_phys_addr_t offset) | ||
| 500 | case 0x1e4: /* USER1 */ | 498 | case 0x1e4: /* USER1 */ |
| 501 | return s->user1; | 499 | return s->user1; |
| 502 | default: | 500 | default: |
| 503 | - cpu_abort(cpu_single_env, "ssys_read: Bad offset 0x%x\n", (int)offset); | 501 | + hw_error("ssys_read: Bad offset 0x%x\n", (int)offset); |
| 504 | return 0; | 502 | return 0; |
| 505 | } | 503 | } |
| 506 | } | 504 | } |
| @@ -577,7 +575,7 @@ static void ssys_write(void *opaque, target_phys_addr_t offset, uint32_t value) | @@ -577,7 +575,7 @@ static void ssys_write(void *opaque, target_phys_addr_t offset, uint32_t value) | ||
| 577 | s->ldoarst = value; | 575 | s->ldoarst = value; |
| 578 | break; | 576 | break; |
| 579 | default: | 577 | default: |
| 580 | - cpu_abort(cpu_single_env, "ssys_write: Bad offset 0x%x\n", (int)offset); | 578 | + hw_error("ssys_write: Bad offset 0x%x\n", (int)offset); |
| 581 | } | 579 | } |
| 582 | ssys_update(s); | 580 | ssys_update(s); |
| 583 | } | 581 | } |
| @@ -724,8 +722,7 @@ static uint32_t stellaris_i2c_read(void *opaque, target_phys_addr_t offset) | @@ -724,8 +722,7 @@ static uint32_t stellaris_i2c_read(void *opaque, target_phys_addr_t offset) | ||
| 724 | case 0x20: /* MCR */ | 722 | case 0x20: /* MCR */ |
| 725 | return s->mcr; | 723 | return s->mcr; |
| 726 | default: | 724 | default: |
| 727 | - cpu_abort(cpu_single_env, "strllaris_i2c_read: Bad offset 0x%x\n", | ||
| 728 | - (int)offset); | 725 | + hw_error("strllaris_i2c_read: Bad offset 0x%x\n", (int)offset); |
| 729 | return 0; | 726 | return 0; |
| 730 | } | 727 | } |
| 731 | } | 728 | } |
| @@ -801,15 +798,15 @@ static void stellaris_i2c_write(void *opaque, target_phys_addr_t offset, | @@ -801,15 +798,15 @@ static void stellaris_i2c_write(void *opaque, target_phys_addr_t offset, | ||
| 801 | break; | 798 | break; |
| 802 | case 0x20: /* MCR */ | 799 | case 0x20: /* MCR */ |
| 803 | if (value & 1) | 800 | if (value & 1) |
| 804 | - cpu_abort(cpu_single_env, | 801 | + hw_error( |
| 805 | "stellaris_i2c_write: Loopback not implemented\n"); | 802 | "stellaris_i2c_write: Loopback not implemented\n"); |
| 806 | if (value & 0x20) | 803 | if (value & 0x20) |
| 807 | - cpu_abort(cpu_single_env, | 804 | + hw_error( |
| 808 | "stellaris_i2c_write: Slave mode not implemented\n"); | 805 | "stellaris_i2c_write: Slave mode not implemented\n"); |
| 809 | s->mcr = value & 0x31; | 806 | s->mcr = value & 0x31; |
| 810 | break; | 807 | break; |
| 811 | default: | 808 | default: |
| 812 | - cpu_abort(cpu_single_env, "stellaris_i2c_write: Bad offset 0x%x\n", | 809 | + hw_error("stellaris_i2c_write: Bad offset 0x%x\n", |
| 813 | (int)offset); | 810 | (int)offset); |
| 814 | } | 811 | } |
| 815 | stellaris_i2c_update(s); | 812 | stellaris_i2c_update(s); |
| @@ -1036,7 +1033,7 @@ static uint32_t stellaris_adc_read(void *opaque, target_phys_addr_t offset) | @@ -1036,7 +1033,7 @@ static uint32_t stellaris_adc_read(void *opaque, target_phys_addr_t offset) | ||
| 1036 | case 0x30: /* SAC */ | 1033 | case 0x30: /* SAC */ |
| 1037 | return s->sac; | 1034 | return s->sac; |
| 1038 | default: | 1035 | default: |
| 1039 | - cpu_abort(cpu_single_env, "strllaris_adc_read: Bad offset 0x%x\n", | 1036 | + hw_error("strllaris_adc_read: Bad offset 0x%x\n", |
| 1040 | (int)offset); | 1037 | (int)offset); |
| 1041 | return 0; | 1038 | return 0; |
| 1042 | } | 1039 | } |
| @@ -1057,7 +1054,7 @@ static void stellaris_adc_write(void *opaque, target_phys_addr_t offset, | @@ -1057,7 +1054,7 @@ static void stellaris_adc_write(void *opaque, target_phys_addr_t offset, | ||
| 1057 | return; | 1054 | return; |
| 1058 | case 0x04: /* SSCTL */ | 1055 | case 0x04: /* SSCTL */ |
| 1059 | if (value != 6) { | 1056 | if (value != 6) { |
| 1060 | - cpu_abort(cpu_single_env, "ADC: Unimplemented sequence %x\n", | 1057 | + hw_error("ADC: Unimplemented sequence %x\n", |
| 1061 | value); | 1058 | value); |
| 1062 | } | 1059 | } |
| 1063 | s->ssctl[n] = value; | 1060 | s->ssctl[n] = value; |
| @@ -1070,8 +1067,7 @@ static void stellaris_adc_write(void *opaque, target_phys_addr_t offset, | @@ -1070,8 +1067,7 @@ static void stellaris_adc_write(void *opaque, target_phys_addr_t offset, | ||
| 1070 | case 0x00: /* ACTSS */ | 1067 | case 0x00: /* ACTSS */ |
| 1071 | s->actss = value & 0xf; | 1068 | s->actss = value & 0xf; |
| 1072 | if (value & 0xe) { | 1069 | if (value & 0xe) { |
| 1073 | - cpu_abort(cpu_single_env, | ||
| 1074 | - "Not implemented: ADC sequencers 1-3\n"); | 1070 | + hw_error("Not implemented: ADC sequencers 1-3\n"); |
| 1075 | } | 1071 | } |
| 1076 | break; | 1072 | break; |
| 1077 | case 0x08: /* IM */ | 1073 | case 0x08: /* IM */ |
| @@ -1093,14 +1089,13 @@ static void stellaris_adc_write(void *opaque, target_phys_addr_t offset, | @@ -1093,14 +1089,13 @@ static void stellaris_adc_write(void *opaque, target_phys_addr_t offset, | ||
| 1093 | s->sspri = value; | 1089 | s->sspri = value; |
| 1094 | break; | 1090 | break; |
| 1095 | case 0x28: /* PSSI */ | 1091 | case 0x28: /* PSSI */ |
| 1096 | - cpu_abort(cpu_single_env, "Not implemented: ADC sample initiate\n"); | 1092 | + hw_error("Not implemented: ADC sample initiate\n"); |
| 1097 | break; | 1093 | break; |
| 1098 | case 0x30: /* SAC */ | 1094 | case 0x30: /* SAC */ |
| 1099 | s->sac = value; | 1095 | s->sac = value; |
| 1100 | break; | 1096 | break; |
| 1101 | default: | 1097 | default: |
| 1102 | - cpu_abort(cpu_single_env, "stellaris_adc_write: Bad offset 0x%x\n", | ||
| 1103 | - (int)offset); | 1098 | + hw_error("stellaris_adc_write: Bad offset 0x%x\n", (int)offset); |
| 1104 | } | 1099 | } |
| 1105 | stellaris_adc_update(s); | 1100 | stellaris_adc_update(s); |
| 1106 | } | 1101 | } |
hw/stellaris_enet.c
| @@ -190,8 +190,7 @@ static uint32_t stellaris_enet_read(void *opaque, target_phys_addr_t offset) | @@ -190,8 +190,7 @@ static uint32_t stellaris_enet_read(void *opaque, target_phys_addr_t offset) | ||
| 190 | case 0x3c: /* Undocuented: Timestamp? */ | 190 | case 0x3c: /* Undocuented: Timestamp? */ |
| 191 | return 0; | 191 | return 0; |
| 192 | default: | 192 | default: |
| 193 | - cpu_abort (cpu_single_env, "stellaris_enet_read: Bad offset %x\n", | ||
| 194 | - (int)offset); | 193 | + hw_error("stellaris_enet_read: Bad offset %x\n", (int)offset); |
| 195 | return 0; | 194 | return 0; |
| 196 | } | 195 | } |
| 197 | } | 196 | } |
| @@ -298,8 +297,7 @@ static void stellaris_enet_write(void *opaque, target_phys_addr_t offset, | @@ -298,8 +297,7 @@ static void stellaris_enet_write(void *opaque, target_phys_addr_t offset, | ||
| 298 | /* Ignored. */ | 297 | /* Ignored. */ |
| 299 | break; | 298 | break; |
| 300 | default: | 299 | default: |
| 301 | - cpu_abort (cpu_single_env, "stellaris_enet_write: Bad offset %x\n", | ||
| 302 | - (int)offset); | 300 | + hw_error("stellaris_enet_write: Bad offset %x\n", (int)offset); |
| 303 | } | 301 | } |
| 304 | } | 302 | } |
| 305 | 303 |
hw/tsc210x.c
| @@ -893,7 +893,7 @@ static uint16_t tsc210x_read(struct tsc210x_state_s *s) | @@ -893,7 +893,7 @@ static uint16_t tsc210x_read(struct tsc210x_state_s *s) | ||
| 893 | ret = tsc2102_audio_register_read(s, s->offset); | 893 | ret = tsc2102_audio_register_read(s, s->offset); |
| 894 | break; | 894 | break; |
| 895 | default: | 895 | default: |
| 896 | - cpu_abort(cpu_single_env, "tsc210x_read: wrong memory page\n"); | 896 | + hw_error("tsc210x_read: wrong memory page\n"); |
| 897 | } | 897 | } |
| 898 | 898 | ||
| 899 | tsc210x_pin_update(s); | 899 | tsc210x_pin_update(s); |
| @@ -930,8 +930,7 @@ static void tsc210x_write(struct tsc210x_state_s *s, uint16_t value) | @@ -930,8 +930,7 @@ static void tsc210x_write(struct tsc210x_state_s *s, uint16_t value) | ||
| 930 | tsc2102_audio_register_write(s, s->offset, value); | 930 | tsc2102_audio_register_write(s, s->offset, value); |
| 931 | break; | 931 | break; |
| 932 | default: | 932 | default: |
| 933 | - cpu_abort(cpu_single_env, | ||
| 934 | - "tsc210x_write: wrong memory page\n"); | 933 | + hw_error("tsc210x_write: wrong memory page\n"); |
| 935 | } | 934 | } |
| 936 | 935 | ||
| 937 | tsc210x_pin_update(s); | 936 | tsc210x_pin_update(s); |
| @@ -945,8 +944,7 @@ uint32_t tsc210x_txrx(void *opaque, uint32_t value, int len) | @@ -945,8 +944,7 @@ uint32_t tsc210x_txrx(void *opaque, uint32_t value, int len) | ||
| 945 | uint32_t ret = 0; | 944 | uint32_t ret = 0; |
| 946 | 945 | ||
| 947 | if (len != 16) | 946 | if (len != 16) |
| 948 | - cpu_abort(cpu_single_env, "%s: FIXME: bad SPI word width %i\n", | ||
| 949 | - __FUNCTION__, len); | 947 | + hw_error("%s: FIXME: bad SPI word width %i\n", __FUNCTION__, len); |
| 950 | 948 | ||
| 951 | /* TODO: sequential reads etc - how do we make sure the host doesn't | 949 | /* TODO: sequential reads etc - how do we make sure the host doesn't |
| 952 | * unintentionally read out a conversion result from a register while | 950 | * unintentionally read out a conversion result from a register while |
hw/tusb6010.c
| @@ -513,8 +513,7 @@ static void tusb_async_writew(void *opaque, target_phys_addr_t addr, | @@ -513,8 +513,7 @@ static void tusb_async_writew(void *opaque, target_phys_addr_t addr, | ||
| 513 | s->dev_config = value; | 513 | s->dev_config = value; |
| 514 | s->host_mode = (value & TUSB_DEV_CONF_USB_HOST_MODE); | 514 | s->host_mode = (value & TUSB_DEV_CONF_USB_HOST_MODE); |
| 515 | if (value & TUSB_DEV_CONF_PROD_TEST_MODE) | 515 | if (value & TUSB_DEV_CONF_PROD_TEST_MODE) |
| 516 | - cpu_abort(cpu_single_env, "%s: Product Test mode not allowed\n", | ||
| 517 | - __FUNCTION__); | 516 | + hw_error("%s: Product Test mode not allowed\n", __FUNCTION__); |
| 518 | break; | 517 | break; |
| 519 | 518 | ||
| 520 | case TUSB_PHY_OTG_CTRL_ENABLE: | 519 | case TUSB_PHY_OTG_CTRL_ENABLE: |
hw/usb-musb.c
| @@ -556,7 +556,7 @@ static int musb_timeout(int ttype, int speed, int val) | @@ -556,7 +556,7 @@ static int musb_timeout(int ttype, int speed, int val) | ||
| 556 | /* TODO: what with low-speed Bulk and Isochronous? */ | 556 | /* TODO: what with low-speed Bulk and Isochronous? */ |
| 557 | } | 557 | } |
| 558 | 558 | ||
| 559 | - cpu_abort(cpu_single_env, "bad interval\n"); | 559 | + hw_error("bad interval\n"); |
| 560 | } | 560 | } |
| 561 | 561 | ||
| 562 | static inline void musb_packet(struct musb_s *s, struct musb_ep_s *ep, | 562 | static inline void musb_packet(struct musb_s *s, struct musb_ep_s *ep, |