summaryrefslogtreecommitdiffstats
path: root/arch/mips/jazz
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1997-04-29 21:13:14 +0000
committer <ralf@linux-mips.org>1997-04-29 21:13:14 +0000
commit19c9bba94152148523ba0f7ef7cffe3d45656b11 (patch)
tree40b1cb534496a7f1ca0f5c314a523c69f1fee464 /arch/mips/jazz
parent7206675c40394c78a90e74812bbdbf8cf3cca1be (diff)
Import of Linux/MIPS 2.1.36
Diffstat (limited to 'arch/mips/jazz')
-rw-r--r--arch/mips/jazz/int-handler.S47
-rw-r--r--arch/mips/jazz/reset.c17
-rw-r--r--arch/mips/jazz/setup.c13
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;
}