summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2011-11-10 08:44:37 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2011-11-10 08:44:37 +0000
commitf0e748cc6181d78f54939d24c5b4cc372052b770 (patch)
tree16a72b3d26a8e1aa70f15b436d286f82a8342f7a /c
parent2011-11-10 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-f0e748cc6181d78f54939d24c5b4cc372052b770.tar.bz2
2011-11-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1927/bsps: * mpc83xx/network/tsec.c: Fixed integer truncation.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libcpu/powerpc/ChangeLog5
-rw-r--r--c/src/lib/libcpu/powerpc/mpc83xx/network/tsec.c9
2 files changed, 10 insertions, 4 deletions
diff --git a/c/src/lib/libcpu/powerpc/ChangeLog b/c/src/lib/libcpu/powerpc/ChangeLog
index d146dde835..9f78c14b3e 100644
--- a/c/src/lib/libcpu/powerpc/ChangeLog
+++ b/c/src/lib/libcpu/powerpc/ChangeLog
@@ -1,3 +1,8 @@
+2011-11-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ PR 1927/bsps:
+ * mpc83xx/network/tsec.c: Fixed integer truncation.
+
2011-11-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
* new-exceptions/bspsupport/ppc_exc_async_normal.S: Bugfix for
diff --git a/c/src/lib/libcpu/powerpc/mpc83xx/network/tsec.c b/c/src/lib/libcpu/powerpc/mpc83xx/network/tsec.c
index 597cf4ee8d..8b740ada02 100644
--- a/c/src/lib/libcpu/powerpc/mpc83xx/network/tsec.c
+++ b/c/src/lib/libcpu/powerpc/mpc83xx/network/tsec.c
@@ -331,18 +331,19 @@ static void tsec_mdio_init
| <none> |
\*=========================================================================*/
{
- static const uint8_t divider [] = { 64, 64, 96, 128, 160, 224, 320, 448 };
+ static const uint8_t divider [] = { 32, 32, 48, 64, 80, 112, 160, 224 };
size_t n = sizeof(divider) / sizeof(divider [0]);
size_t i = 0;
- uint32_t clock = UINT32_MAX;
+ uint32_t mii_clock = UINT32_MAX;
+ uint32_t tsec_system_clock = BSP_bus_frequency / 2;
/* Set TSEC registers for MDIO communication */
/*
* set clock divider
*/
- for (i = 0; i < n && clock > 2500000; ++i) {
- clock = BSP_bus_frequency / divider [i];
+ for (i = 0; i < n && mii_clock > 2500000; ++i) {
+ mii_clock = tsec_system_clock / divider [i];
}
sc->mdio_ptr->miimcfg = i;