Changeset 05d9dd89 in mainline for arch/ia64/src
- Timestamp:
- 2005-11-03T21:55:52Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- dd118f0
- Parents:
- 0259524
- Location:
- arch/ia64/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia64/src/ia64.c
r0259524 r05d9dd89 29 29 #include <arch.h> 30 30 #include <arch/ski/ski.h> 31 #include <arch/asm.h> 32 #include <arch/register.h> 33 #include <arch/barrier.h> 34 #include <arch/interrupt.h> 35 36 /** TODO: read ticks per second from firmware */ 37 #define IT_DELTA 50000000 31 38 32 39 void arch_pre_mm_init(void) … … 37 44 void arch_post_mm_init(void) 38 45 { 46 cr_itv_t itv; 47 48 /* initialize Interval Timer external interrupt vector */ 49 itv.value = itv_read(); 50 itv.vector = INTERRUPT_TIMER; 51 itv.m = 0; 52 itv_write(itv.value); 53 srlz_d(); 54 55 /* set Interval Timer Counter to zero */ 56 itc_write(0); 57 srlz_d(); 58 59 /* generate first Interval Timer interrupt in IT_DELTA ticks */ 60 itm_write(IT_DELTA); 61 srlz_d(); 39 62 } -
arch/ia64/src/interrupt.c
r0259524 r05d9dd89 30 30 #include <arch/interrupt.h> 31 31 #include <panic.h> 32 #include <print.h> 32 33 #include <arch/types.h> 33 34 #include <arch/asm.h> 34 35 #include <arch/barrier.h> 35 36 #include <arch/register.h> 37 #include <arch.h> 36 38 37 39 void external_interrupt(void) 38 40 { 39 __u8ivr;41 cr_ivr_t ivr; 40 42 41 srlz_d(); 42 ivr = ivr_read() & CR_IVR_MASK; 43 ivr.value = ivr_read(); 43 44 srlz_d(); 44 45 45 switch(ivr) { 46 switch(ivr.value) { 47 case INTERRUPT_TIMER: 48 panic("cpu%d: timer interrupt\n", CPU->id); 49 break; 50 case INTERRUPT_SPURIOUS: 51 printf("cpu%d: spurious interrupt\n", CPU->id); 52 break; 46 53 default: 47 panic("\nUnhandled External Interrupt Vector %d\n", ivr); 54 panic("\nUnhandled External Interrupt Vector %d\n", ivr.vector); 55 break; 48 56 } 49 57 }
Note:
See TracChangeset
for help on using the changeset viewer.