changeset 974:e432f748c9e1

* include/idt79rc233x.h (INTR_CLEAR_REG): Define (needed for serial). * include/platform.inc: updated ROMRAM support for gdb. * src/ser16c550c.c (SIO_IER_ERDAI): updated value for errata.
author jlarmour
date Tue, 29 Apr 2003 02:39:30 +0000
parents 468a48fe0e01
children 04b3d562c506
files packages/hal/mips/idt79s334a/current/ChangeLog packages/hal/mips/idt79s334a/current/include/idt79rc233x.h packages/hal/mips/idt79s334a/current/include/platform.inc packages/hal/mips/idt79s334a/current/include/plf_intr.h packages/hal/mips/idt79s334a/current/src/ser16c550c.c
diffstat 5 files changed, 38 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/packages/hal/mips/idt79s334a/current/ChangeLog
+++ b/packages/hal/mips/idt79s334a/current/ChangeLog
@@ -1,3 +1,9 @@
+2003-04-29  Tim Michals  <t.michals@attbi.com>
+
+	* include/idt79rc233x.h (INTR_CLEAR_REG): Define (needed for serial).
+	* include/platform.inc: updated ROMRAM support for gdb.
+	* src/ser16c550c.c (SIO_IER_ERDAI): updated value for errata.
+
 2003-02-13  Tim Michals  <t.michals@attbi.com>
 2003-02-13  Jonathan Larmour  <jifl@eCosCentric.com>
 
--- a/packages/hal/mips/idt79s334a/current/include/idt79rc233x.h
+++ b/packages/hal/mips/idt79s334a/current/include/idt79rc233x.h
@@ -425,6 +425,7 @@
 /* Rc32134 Interrupt controller settings for Uart */
 #define INTR_STATUS_PTR         0xb8000500
 #define INTR_MASK_REG           0xb8000504
+#define INTR_CLEAR_REG          0xb8000508
 
 #define INTR_COM0_REG           0xb8000554
 #define INTR_COM1_REG           0xb8000564
--- a/packages/hal/mips/idt79s334a/current/include/platform.inc
+++ b/packages/hal/mips/idt79s334a/current/include/platform.inc
@@ -45,7 +45,7 @@
 ## Author(s): 	 tmichals
 ## Contributors: nickg
 ## Date:	 2003-02-13
-## Purpose:	 CT1608-IDT32334 board definitions.
+## Purpose:	 IDT32334 board definitions.
 ## Description:	 This file contains various definitions and macros that are
 ##               useful for writing assembly code for the IDT32334 reference
 ##               board.
@@ -164,6 +164,34 @@ 1:
 	bne	t0,t3,1b
 	nop
 
+/* set up and move interrupts */
+
+/* setup and move the vector table into ram */
+/* This allows execptions to happen in ROM first
+** then when running in RAM, they are switched */
+        mfc0    v0, status
+        nop
+        li      v1, ~0x00400000
+        and   v0, v0,v1
+        mtc0    v0, status
+        nop
+
+
+        la      t0, hal_vsr_table
+        la      t1,__default_interrupt_vsr
+
+        sw      t1, 0(t0)
+
+        la      t1,__default_exception_vsr
+        li      t2, 62
+        li      t3, 0
+        addi    t0,t0,4
+12:
+        sw      t1,0(t0)
+        addi    t3,t3,1
+        addi    t0,t0,4
+        bne     t3,t2, 12b
+        nop
 
 	la	v0,2f			# RAM address to go to
 	jr	v0
--- a/packages/hal/mips/idt79s334a/current/include/plf_intr.h
+++ b/packages/hal/mips/idt79s334a/current/include/plf_intr.h
@@ -76,6 +76,7 @@
 // the default for all MIPS variants is to use the 6 bits
 // in the cause register.
 
+// These are only HW interrupts
 #define CYGNUM_HAL_INTERRUPT_0                0
 #define CYGNUM_HAL_INTERRUPT_1                1
 #define CYGNUM_HAL_INTERRUPT_2                2
--- a/packages/hal/mips/idt79s334a/current/src/ser16c550c.c
+++ b/packages/hal/mips/idt79s334a/current/src/ser16c550c.c
@@ -84,7 +84,7 @@
 #define SER_16550_SCR 0x1c   // scratch pad register
 
 // The interrupt enable register bits.
-#define SIO_IER_ERDAI   0x01            // enable received data available irq
+#define SIO_IER_ERDAI   0x04            // enable received data available irq
 #define SIO_IER_ETHREI  0x02            // enable THR empty interrupt
 #define SIO_IER_ELSI    0x04            // enable receiver line status irq
 #define SIO_IER_EMSI    0x08            // enable modem status interrupt