[U-Boot] [PATCH] ARM: mxs: Do not reconfigure FEC clock in FEC init
Hector Palacios
hector.palacios at digi.com
Mon Oct 14 09:46:41 CEST 2013
Dear Marek,
On 10/13/2013 05:20 PM, Marek Vasut wrote:
> Do not reconfigure the FEC clock during board_eth_init(), otherwise
> the FEC might have stability issues, refuse to autonegotiate link
> entirely or even corrupt packets while indicating correct checksum
> on them. Instead, move the FEC clock init to board_early_init_f(),
> where all the other upstream clock are initialized and also make
> sure there is proper stabilization delay.
Do you have any means to reproduce the problem?
I have seldom seen times when the Ethernet did not work, but it was so infrequent that
it was impossible to know where it came from or how to reproduce it.
[...]
> diff --git a/board/denx/m28evk/m28evk.c b/board/denx/m28evk/m28evk.c
> index 33d38cf..5065ee8 100644
> --- a/board/denx/m28evk/m28evk.c
> +++ b/board/denx/m28evk/m28evk.c
> @@ -26,6 +26,9 @@ DECLARE_GLOBAL_DATA_PTR;
> */
> int board_early_init_f(void)
> {
> + struct mxs_clkctrl_regs *clkctrl_regs =
> + (struct mxs_clkctrl_regs *)MXS_CLKCTRL_BASE;
> +
You may want to wrap these within #ifdef CONFIG_CMD_NET to avoid a warning if not defined.
> diff --git a/board/schulercontrol/sc_sps_1/sc_sps_1.c b/board/schulercontrol/sc_sps_1/sc_sps_1.c
> index 7f0b591..9d3c970 100644
> --- a/board/schulercontrol/sc_sps_1/sc_sps_1.c
> +++ b/board/schulercontrol/sc_sps_1/sc_sps_1.c
> @@ -26,6 +26,9 @@ DECLARE_GLOBAL_DATA_PTR;
> */
> int board_early_init_f(void)
> {
> + struct mxs_clkctrl_regs *clkctrl_regs =
> + (struct mxs_clkctrl_regs *)MXS_CLKCTRL_BASE;
> +
And the same here.
It works ok, but I can't say if it fixes exactly those seldom initialization problems
because I don't have a reliable way to reproduce them.
Tested-by: Hector Palacios <hector.palacios at digi.com>
Best regards,
--
Hector Palacios
More information about the U-Boot
mailing list