changeset 973:468a48fe0e01

* include/variant.inc (hal_intc_translation_table): Updated. * src/var_intr.c (hal_extended_isr): fix loop bug. (cyg_hal_interrupt_acknowledge): Handle interrupts for serial ports.
author jlarmour
date Tue, 29 Apr 2003 02:33:05 +0000
parents 2dc2a33635aa
children e432f748c9e1
files packages/hal/mips/idt32334/current/ChangeLog packages/hal/mips/idt32334/current/include/variant.inc packages/hal/mips/idt32334/current/src/var_intr.c
diffstat 3 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/packages/hal/mips/idt32334/current/ChangeLog
+++ b/packages/hal/mips/idt32334/current/ChangeLog
@@ -1,3 +1,10 @@
+2003-04-29  Tim Michals  <t.michals@attbi.com>
+
+	* include/variant.inc (hal_intc_translation_table): Updated.
+	* src/var_intr.c (hal_extended_isr): fix loop bug.
+	(cyg_hal_interrupt_acknowledge):  Handle interrupts for serial
+	ports.
+
 2003-04-10  Nick Garnett  <nickg@balti.calivar.com>
 
 	* src/mips_idt32334.ld: 
--- a/packages/hal/mips/idt32334/current/include/variant.inc
+++ b/packages/hal/mips/idt32334/current/include/variant.inc
@@ -216,7 +216,7 @@ hal_intc_translation_table:
 
 	.byte	0,1,0,0,3,3,0,0
 	.byte   0,0,0,0,0,0,0,0
-	.byte   5,5,0,0,0,5,0,0
+	.byte   5,5,0,0,3,5,0,0
 	.byte   0,0,0,0,0,0,0,0
 	.byte	0,0,0,0,0,0,0,0
 	.byte   0,0,0,0,0,0,0,0
--- a/packages/hal/mips/idt32334/current/src/var_intr.c
+++ b/packages/hal/mips/idt32334/current/src/var_intr.c
@@ -166,10 +166,12 @@ void cyg_hal_interrupt_acknowledge (cyg_
 	{
         case CYGNUM_HAL_INTERRUPT_SIO_0:
             HAL_WRITE_UINT32(INTR_CLEAR_COM0, 1);
+            HAL_WRITE_UINT32(INTR_CLEAR_REG, (reg | ((1 << SERIAL_PORT0_GROUP))));
             break;
 
         case CYGNUM_HAL_INTERRUPT_SIO_1:
             HAL_WRITE_UINT32(INTR_CLEAR_COM1, 1);
+            HAL_WRITE_UINT32(INTR_CLEAR_REG, (reg | ((1 << SERIAL_PORT1_GROUP))));
             break;
 
         default:
@@ -187,7 +189,7 @@ hal_extended_isr(CYG_ADDRWORD vector, CY
     
     HAL_READ_UINT32 (INTR_STATUS_PTR, pendingIsr);
 
-    for (isrNum=0; isrNum <=31; isrNum)
+    for (isrNum=0; isrNum <=31; isrNum++)
         if ( (1 << isrNum) & pendingIsr)
             break;