diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1997-04-29 21:13:14 +0000 |
---|---|---|
committer | <ralf@linux-mips.org> | 1997-04-29 21:13:14 +0000 |
commit | 19c9bba94152148523ba0f7ef7cffe3d45656b11 (patch) | |
tree | 40b1cb534496a7f1ca0f5c314a523c69f1fee464 /arch/mips/jazz | |
parent | 7206675c40394c78a90e74812bbdbf8cf3cca1be (diff) |
Import of Linux/MIPS 2.1.36
Diffstat (limited to 'arch/mips/jazz')
-rw-r--r-- | arch/mips/jazz/int-handler.S | 47 | ||||
-rw-r--r-- | arch/mips/jazz/reset.c | 17 | ||||
-rw-r--r-- | arch/mips/jazz/setup.c | 13 |
3 files changed, 31 insertions, 46 deletions
diff --git a/arch/mips/jazz/int-handler.S b/arch/mips/jazz/int-handler.S index 7be6b8457..87fd335db 100644 --- a/arch/mips/jazz/int-handler.S +++ b/arch/mips/jazz/int-handler.S @@ -105,8 +105,6 @@ ll_isa_irq: lw a0,JAZZ_EISA_IRQ_ACK or t0,s1 sb t0,%lo(cache_21)(s4) sb t0,%lo(JAZZ_PORT_BASE)+0x21(s0) - lui s3,%hi(intr_count) - lw t0,%lo(intr_count)(s3) li t2,0x20 sb t2,%lo(JAZZ_PORT_BASE)+0x20(s0) /* @@ -116,17 +114,13 @@ ll_isa_irq: lw a0,JAZZ_EISA_IRQ_ACK sll t2,a0,PTRLOG addu t3,t2 LONG_L t3,(t3) - addiu t0,1 jalr t3 - sw t0,%lo(intr_count)(s3) # delay slot - lw t0,%lo(intr_count)(s3) + nop # delay slot /* * Unblock first pic */ lbu a0,%lo(JAZZ_PORT_BASE)+0x21(s0) lb a0,%lo(cache_21)(s4) - subu t0,1 - sw t0,%lo(intr_count)(s3) nor s1,zero,s1 and a0,s1 sb a0,%lo(cache_21)(s4) @@ -146,8 +140,6 @@ ack_second: /* sb t3,%lo(JAZZ_PORT_BASE)+0xa1(s0) li t3,0x20 sb t3,%lo(JAZZ_PORT_BASE)+0xa0(s0) - lui s3,%hi(intr_count) - lw t0,%lo(intr_count)(s3) sb t3,%lo(JAZZ_PORT_BASE)+0x20(s0) /* * Now call the real handler @@ -157,18 +149,14 @@ ack_second: /* sll t2,a0,PTRLOG addu t3,t2 LONG_L t3,(t3) - addiu t0,1 jalr t3 - sw t0,%lo(intr_count)(s3) # delay slot + nop # delay slot - lw t0,%lo(intr_count)(s3) /* * Unblock second pic */ lb a0,%lo(JAZZ_PORT_BASE)+0xa1(s0) lb a0,%lo(cache_A1)(s4) - subu t0,1 - sw t0,%lo(intr_count)(s3) nor s1,zero,s1 and a0,s1 sb a0,%lo(cache_A1)(s4) @@ -197,11 +185,6 @@ ll_isa_nmi: li s1,~IE_IRQ3 ll_timer: lw zero,JAZZ_TIMER_REGISTER # timer irq cleared on read li s1,~IE_IRQ4 - lui s3,%hi(intr_count) - lw t2,%lo(intr_count)(s3) - addiu t2,1 - sw t2,%lo(intr_count)(s3) - li a0,0 jal do_IRQ move a1,sp # delay slot @@ -211,11 +194,8 @@ ll_timer: lw zero,JAZZ_TIMER_REGISTER # timer irq cleared on read xori t0,1 mtc0 t0,CP0_STATUS - lw t2,%lo(intr_count)(s3) - subu t2,1 - j ret_from_sys_call - sw t2,%lo(intr_count)(s3) # delay slot + nop # delay slot /* * CPU count/compare IRQ (unused) @@ -228,11 +208,7 @@ ll_count: j return * Call the handler for the interrupt * (Currently unused) */ -call_real: lui s3,%hi(intr_count) - lw t2,%lo(intr_count)(s3) - la t0,IRQ_vectors - addiu t2,1 - sw t2,%lo(intr_count)(s3) +call_real: la t0,IRQ_vectors /* * temporarily disable interrupt @@ -253,11 +229,8 @@ call_real: lui s3,%hi(intr_count) or t2,s1 mtc0 t2,CP0_STATUS - lw t2,%lo(intr_count)(s3) - subu t2,1 - jr v0 - sw t2,%lo(intr_count)(s3) + nop # delay slot #endif .data @@ -337,11 +310,7 @@ loc_serial2: li s1,~JAZZ_IE_SERIAL2 * Call the interrupt handler for an interrupt generated by a * local device. */ -loc_call: lui s3,%hi(intr_count) - lw t2,%lo(intr_count)(s3) - la t0,IRQ_vectors # delay slot - addiu t2,1 - sw t2,%lo(intr_count)(s3) +loc_call: la t0,IRQ_vectors # delay slot /* * Temporarily disable interrupt source @@ -358,13 +327,11 @@ loc_call: lui s3,%hi(intr_count) * Reenable interrupt */ lhu t2,JAZZ_IO_IRQ_ENABLE - lw t1,%lo(intr_count)(s3) # delay slot or t2,s1 sh t2,JAZZ_IO_IRQ_ENABLE - subu t1,1 jr v0 - sw t1,%lo(intr_count)(s3) # delay slot + nop # delay slot /* * "Jump extender" to reach spurious_interrupt diff --git a/arch/mips/jazz/reset.c b/arch/mips/jazz/reset.c index a0accc3f6..ccc7a7c8a 100644 --- a/arch/mips/jazz/reset.c +++ b/arch/mips/jazz/reset.c @@ -1,15 +1,24 @@ /* - * linux/arch/mips/acn/process.c + * linux/arch/mips/jazz/process.c * * Reset a Jazz machine. */ #include <asm/io.h> #include <asm/system.h> +#include <asm/reboot.h> -void -jazz_hard_reset_now(void) +void jazz_machine_restart(char *command) { - printk("Implement jazz_hard_reset_now().\n"); + printk("Implement jazz_machine_restart().\n"); printk("Press reset to continue.\n"); while(1); } + +void jazz_machine_halt(void) +{ +} + +void jazz_machine_power_off(void) +{ + /* Jazz machines don't have a software power switch */ +} diff --git a/arch/mips/jazz/setup.c b/arch/mips/jazz/setup.c index 6aaa2af75..1b137cf85 100644 --- a/arch/mips/jazz/setup.c +++ b/arch/mips/jazz/setup.c @@ -13,6 +13,7 @@ #include <linux/interrupt.h> #include <asm/irq.h> #include <asm/jazz.h> +#include <asm/reboot.h> #include <asm/vector.h> #include <asm/io.h> @@ -29,7 +30,10 @@ static struct irqaction irq2 = { no_action, 0, 0, "cascade", NULL, NULL}; extern asmlinkage void jazz_handle_int(void); extern asmlinkage void jazz_fd_cacheflush(const void *addr, size_t size); extern struct feature jazz_feature; -extern void jazz_hard_reset_now(void); + +extern void jazz_machine_restart(char *command); +extern void jazz_machine_halt(void); +extern void jazz_machine_power_off(void); static void jazz_irq_setup(void) @@ -60,6 +64,11 @@ jazz_setup(void) isa_slot_offset = 0xe3000000; request_region(0x00,0x20,"dma1"); request_region(0x40,0x20,"timer"); + request_region(0x80,0x10,"dma page reg"); + request_region(0xc0,0x20,"dma2"); /* The RTC is outside the port address space */ - hard_reset_now = jazz_hard_reset_now; + + _machine_restart = jazz_machine_restart; + _machine_halt = jazz_machine_halt; + _machine_power_off = jazz_machine_power_off; } |