summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2009-09-16 00:03:35 +0000
committerTill Straumann <strauman@slac.stanford.edu>2009-09-16 00:03:35 +0000
commit51022e34d7b6dcb747a3b7427e6889583ffcd3b0 (patch)
tree3dc8bab28dd9b2f6eb0c2db711762d620b9efd5f
parent2009-09-15 Ralf Corsépius <ralf.corsepius@rtems.org> (diff)
downloadrtems-51022e34d7b6dcb747a3b7427e6889583ffcd3b0.tar.bz2
2009-09-15 Till Straumann <strauman@slac.stanford.edu>
PR 1344/bsps: * clock/ckinit.c: Fix more bugs (applied PR1344/attachment 702): TSC handler was used when 8254 was requested and vice versa. Also, nanosecond handler was never installed to RTEMS clock.
-rw-r--r--c/src/lib/libbsp/i386/pc386/ChangeLog7
-rw-r--r--c/src/lib/libbsp/i386/pc386/clock/ckinit.c14
2 files changed, 18 insertions, 3 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/ChangeLog b/c/src/lib/libbsp/i386/pc386/ChangeLog
index cfeff93ce7..c45515ef08 100644
--- a/c/src/lib/libbsp/i386/pc386/ChangeLog
+++ b/c/src/lib/libbsp/i386/pc386/ChangeLog
@@ -1,3 +1,10 @@
+2009-09-15 Till Straumann <strauman@slac.stanford.edu>
+
+ PR 1344/bsps:
+ * clock/ckinit.c: Fix more bugs (applied PR1344/attachment 702):
+ TSC handler was used when 8254 was requested and vice versa.
+ Also, nanosecond handler was never installed to RTEMS clock.
+
2008-12-08 Ralf Corsépius <ralf.corsepius@rtems.org>
* bsp_specs: Backport from CVS-HEAD.
diff --git a/c/src/lib/libbsp/i386/pc386/clock/ckinit.c b/c/src/lib/libbsp/i386/pc386/clock/ckinit.c
index 45b66a2734..ff5b9c46c1 100644
--- a/c/src/lib/libbsp/i386/pc386/clock/ckinit.c
+++ b/c/src/lib/libbsp/i386/pc386/clock/ckinit.c
@@ -285,19 +285,27 @@ void Clock_driver_support_initialize_hardware(void)
/* printk( "Use 8254\n" ); */
Clock_driver_support_at_tick = Clock_driver_support_at_tick_empty;
Clock_driver_nanoseconds_since_last_tick =
- bsp_clock_nanoseconds_since_last_tick_tsc;
-
+ bsp_clock_nanoseconds_since_last_tick_i8254;
} else {
/* printk( "Use TSC\n" ); */
Clock_driver_support_at_tick = Clock_driver_support_at_tick_tsc;
Clock_driver_nanoseconds_since_last_tick =
- bsp_clock_nanoseconds_since_last_tick_i8254;
+ bsp_clock_nanoseconds_since_last_tick_tsc;
}
+ /* Shell installs nanosecond handler before calling
+ * Clock_driver_support_initialize_hardware() :-(
+ * so we do it again now that we're ready.
+ */
+ rtems_clock_set_nanoseconds_extension(
+ Clock_driver_nanoseconds_since_last_tick
+ );
+
if (!BSP_install_rtems_irq_handler (&clockIrqData)) {
printk("Unable to initialize system clock\n");
rtems_fatal_error_occurred(1);
}
+
}
#define Clock_driver_support_shutdown_hardware() \