diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1998-09-24 13:55:18 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1998-09-24 13:55:18 +0000 |
commit | 32f3e34d4d275c4a0ec45e4ee164eeb82cde520f (patch) | |
tree | b72a8dec025416839f7ca1bf30beb6dcfb1fc685 /c/src/lib/libbsp/i386/i386ex/timer/timer.c | |
parent | New version from Erik Ivanenko <erik.ivanenko@utoronto.ca>. (diff) | |
download | rtems-32f3e34d4d275c4a0ec45e4ee164eeb82cde520f.tar.bz2 |
Patch from Erik Ivanenko <erik.ivanenko@utoronto.ca>:
Please find attached a start.s that includes a cli prior to the hlt
instruction. This ensures that external interrupts cannot restart
the system after returning to the startup code. ( According to the hlt
docs, they will! )
Also find a new timer.c. ( I forgot to update the countdowm value
in the timer when I changed the PSCLK frequency in start.s) . This
improves timer accuracy.
The raw_idt_notify messages are no longer infinite, I tested sp11 and
sp05, both which were bad, and I have seen the message print once in
one test. I think it's ok if it prints out once. In fact, I don't
think you can effectively stop it!
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libbsp/i386/i386ex/timer/timer.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/c/src/lib/libbsp/i386/i386ex/timer/timer.c b/c/src/lib/libbsp/i386/i386ex/timer/timer.c index 4c29d6c57f..954bd7f6dd 100644 --- a/c/src/lib/libbsp/i386/i386ex/timer/timer.c +++ b/c/src/lib/libbsp/i386/i386ex/timer/timer.c @@ -47,7 +47,7 @@ void TimerOn(const rtems_raw_irq_connect_data* used) Ttimer_val = 0; /* clear timer ISR count */ outport_byte ( TMRCON , 0xb0 ); /* select tmr2, stay in mode 0 */ - outport_byte ( TMR1 , 0xd2 ); /* set to 250 usec interval */ + outport_byte ( TMR1 , 0xfa ); /* set to 250 usec interval */ outport_byte ( TMR1 , 0x00 ); outport_byte ( TMRCON , 0x64 ); /* change to mode 2 ( starts timer ) */ /* interrupts ARE enabled */ @@ -78,7 +78,7 @@ static rtems_raw_irq_connect_data timer_raw_irq_data = { void Timer_exit() { if (!i386_delete_idt_entry(&timer_raw_irq_data)) { - printk("Timer raw handler deconnexion failed\n"); + printk("Timer_exit:Timer raw handler removal failed\n"); rtems_fatal_error_occurred(1); } } @@ -94,7 +94,7 @@ void Timer_initialize() atexit(Timer_exit); /* Try not to hose the system at exit. */ if (!i386_set_idt_entry (&timer_raw_irq_data)) { - printk("raw handler connexion failed\n"); + printk("Timer_initialize: raw handler installation failed\n"); rtems_fatal_error_occurred(1); } } |