aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/ports/STM32/LLD/mac_lld.c
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2015-06-13 17:49:39 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2015-06-13 17:49:39 +0000
commit02a30eeeaca3c2887cc674e54018a55fce53e6e2 (patch)
treeafc2658766fed458d6ef4b833eecf61525d5a913 /os/hal/ports/STM32/LLD/mac_lld.c
parentf1b303a99708536ed0adc00650ecc3582f277c9c (diff)
downloadChibiOS-02a30eeeaca3c2887cc674e54018a55fce53e6e2.tar.gz
ChibiOS-02a30eeeaca3c2887cc674e54018a55fce53e6e2.tar.bz2
ChibiOS-02a30eeeaca3c2887cc674e54018a55fce53e6e2.zip
Fixed bug #606.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8032 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/ports/STM32/LLD/mac_lld.c')
-rw-r--r--os/hal/ports/STM32/LLD/mac_lld.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/os/hal/ports/STM32/LLD/mac_lld.c b/os/hal/ports/STM32/LLD/mac_lld.c
index 73c699062..5142df163 100644
--- a/os/hal/ports/STM32/LLD/mac_lld.c
+++ b/os/hal/ports/STM32/LLD/mac_lld.c
@@ -123,22 +123,20 @@ static void mii_find_phy(MACDriver *macp) {
uint32_t i;
#if STM32_MAC_PHY_TIMEOUT > 0
- rtcnt_t start = chSysGetRealtimeCounterX();
- rtcnt_t timeout = start + MS2RTC(STM32_HCLK,STM32_MAC_PHY_TIMEOUT);
- rtcnt_t time = start;
- while (chSysIsCounterWithinX(time, start, timeout)) {
+ unsigned n = STM32_MAC_PHY_TIMEOUT;
+ do {
#endif
- for (i = 0; i < 31; i++) {
- macp->phyaddr = i << 11;
- ETH->MACMIIDR = (i << 6) | MACMIIDR_CR;
- if ((mii_read(macp, MII_PHYSID1) == (BOARD_PHY_ID >> 16)) &&
- ((mii_read(macp, MII_PHYSID2) & 0xFFF0) == (BOARD_PHY_ID & 0xFFF0))) {
+ for (i = 0U; i < 31U; i++) {
+ macp->phyaddr = i << 11U;
+ ETH->MACMIIDR = (i << 6U) | MACMIIDR_CR;
+ if ((mii_read(macp, MII_PHYSID1) == (BOARD_PHY_ID >> 16U)) &&
+ ((mii_read(macp, MII_PHYSID2) & 0xFFF0U) == (BOARD_PHY_ID & 0xFFF0U))) {
return;
}
}
#if STM32_MAC_PHY_TIMEOUT > 0
- time = chSysGetRealtimeCounterX();
- }
+ n--;
+ } while (n > 0U);
#endif
/* Wrong or defective board.*/
osalSysHalt("MAC failure");