diff options
author | Till Straumann <strauman@slac.stanford.edu> | 2009-09-16 00:04:44 +0000 |
---|---|---|
committer | Till Straumann <strauman@slac.stanford.edu> | 2009-09-16 00:04:44 +0000 |
commit | 446a1e81233a29d0ce4afd80008eb5c5019979c0 (patch) | |
tree | 00abb7b8cb02f1ecd742327f091ebe7a6afc4958 /c/src | |
parent | 2009-09-15 Ralf Corsépius <ralf.corsepius@rtems.org> (diff) | |
download | rtems-446a1e81233a29d0ce4afd80008eb5c5019979c0.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.
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/ChangeLog | 7 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/clock/ckinit.c | 14 |
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 16165eb7c4..aa607e5081 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. + 2009-09-15 Ralf Corsépius <ralf.corsepius@rtems.org> * configure.ac: Remove RTEMS_BSP_BOOTCARD_OPTIONS. diff --git a/c/src/lib/libbsp/i386/pc386/clock/ckinit.c b/c/src/lib/libbsp/i386/pc386/clock/ckinit.c index a35f0e63e7..328844ed6c 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() \ |