From e463ac52a36559397293a23b8724dfb06a4db2fb Mon Sep 17 00:00:00 2001 From: gdisirio Date: Mon, 18 Jun 2012 17:47:16 +0000 Subject: [PATCH] Fixed bugs 3531290 and 3534819. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/stable_2.4.x@4302 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/platforms/STM32/mac_lld.c | 9 ++++++++- readme.txt | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/os/hal/platforms/STM32/mac_lld.c b/os/hal/platforms/STM32/mac_lld.c index becac9d33..50255f73c 100644 --- a/os/hal/platforms/STM32/mac_lld.c +++ b/os/hal/platforms/STM32/mac_lld.c @@ -48,7 +48,11 @@ #define BUFFER_SIZE ((((STM32_MAC_BUFFERS_SIZE - 1) | 3) + 1) / 4) /* MII divider optimal value.*/ -#if (STM32_HCLK >= 60000000) +#if (STM32_HCLK >= 150000000) +#define MACMIIDR_CR ETH_MACMIIAR_CR_Div102 +#elif (STM32_HCLK >= 100000000) +#define MACMIIDR_CR ETH_MACMIIAR_CR_Div62 +#elif (STM32_HCLK >= 60000000) #define MACMIIDR_CR ETH_MACMIIAR_CR_Div42 #elif (STM32_HCLK >= 35000000) #define MACMIIDR_CR ETH_MACMIIAR_CR_Div26 @@ -268,6 +272,9 @@ void mac_lld_init(void) { #else /* PHY soft reset procedure.*/ mii_write(ÐD1, MII_BMCR, BMCR_RESET); +#if defined(BOARD_PHY_RESET_DELAY) + halPolledDelay(BOARD_PHY_RESET_DELAY); +#endif while (mii_read(ÐD1, MII_BMCR) & BMCR_RESET) ; #endif diff --git a/readme.txt b/readme.txt index 9f28de7bc..dafb7190e 100644 --- a/readme.txt +++ b/readme.txt @@ -81,8 +81,12 @@ *** 2.4.2 *** - FIX: Fixed wrong DMA channels on USART2 in STM32F10X_MD_VL devices (bug 3536070). + +- FIX: Fixed unreliable PHY initialization (bug 3534819)(backported to 2.4.2). + - FIX: Fixed lwIP-related files missing from version 2.4.1 (bug 3533887). +- FIX: Fixed wrong MAC divider setting in STM32 MAC driver (bug 3531290). - FIX: Fixed wrong MCO1 divider in STM32F2/F4 HAL (bug 3531289). - FIX: Fixed missing "break" in AVR PAL driver (bug 3530924). - FIX: Fixed timeout related race condition in STM32 I2C driver (bug 3530043).