summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-04-02 11:32:11 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-04-02 13:40:15 +0200
commit8bb00ace5090804804f6011a02e097176fa63bb8 (patch)
tree53efdb2189daab1802eb62a11f879ce787ddf03c /c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c
parentbsp/gen83xx: Support cache BSP options (diff)
downloadrtems-8bb00ace5090804804f6011a02e097176fa63bb8.tar.bz2
bsps: More accurate PowerPC clock driver
The clock driver used previously the bsp_clicks_per_usec value. For a 33333333Hz time base frequency this leads to a relative error of one per cent for example due to integer truncation.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c')
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c b/c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c
index 3a9772d165..3261617e39 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c
@@ -34,7 +34,10 @@
/* Configuration parameters for console driver, ... */
unsigned int BSP_bus_frequency;
-/* Configuration parameters for clock driver, ... */
+/* Configuration parameter for clock driver */
+uint32_t bsp_time_base_frequency;
+
+/* Legacy */
uint32_t bsp_clicks_per_usec;
/* Default decrementer exception handler */
@@ -113,11 +116,11 @@ void bsp_start( void)
#ifdef HAS_UBOOT
BSP_bus_frequency = bsp_uboot_board_info.bi_busfreq;
- bsp_clicks_per_usec = bsp_uboot_board_info.bi_busfreq / 4000000;
#else /* HAS_UBOOT */
BSP_bus_frequency = BSP_CLKIN_FRQ * BSP_SYSPLL_MF / BSP_SYSPLL_CKID;
- bsp_clicks_per_usec = BSP_bus_frequency / 4000000;
#endif /* HAS_UBOOT */
+ bsp_time_base_frequency = BSP_bus_frequency / 4;
+ bsp_clicks_per_usec = bsp_time_base_frequency / 1000000;
/* Initialize some console parameters */
for (i = 0; i < Console_Port_Count; ++i) {