[U-Boot] Possible Denx m28evk ethernet problem + solution

Robert Deliën robert at delien.nl
Fri Jan 6 21:05:16 CET 2012


>> I'm currently working on U-Boot support for the Freescale i.mx28evk board.
> 
> This is already supported mainline.

Hm; my workspace is quite up-to-date, but I didn't find it. What configuration
should I use for the Freescale i.mx28evk board? m28evk_config boots the
board, but not much more. The difference between the Freescale i.mx28evk
board and the Denx m28evk modules are too big (eg. ssp2 for mmc1, etc.)

> The DENX board is actually ok, working properly,

I don't doubt the working of the Denx module; I'm sure it works fine, but I don't
have one laying around, so I cannot check. However, the configuration for the
Denx m28evk module doesn't work very well on the Freescale i.mx28evk board.

> you don't understand what's 
> going on in there.

No need to be harsh; I don't have a diagram of the Denx board, so I don't
know what clock configuration was chosen for it's design.

> The RMII mode of PHY supplies clock to CPU. Read the manual 
> before you start doing some wild acusations please :-)

On my board, there wasn't any clock signal between the SoC and the PHYs,
regardless of who's supposed to source it. I can lift R171 and check who's
supplying it after my modification, but I'm pretty sure it's the SoC. This situation
works, but may still be wrong; No argument there. But this is the same
situation as the old Freescale supplied u-boot 2009.08 does it.

I don't see how the LAN8720 PHY can supply a clock to the SoC. XTAL1 is
an output only and XTAL2 is only intended to drive a chrystal, and not
connected anyway. Are we talking about the same board?

>> The Ethernet clock is configured properly by
>> cpu_eth_init in ./arch/arm/cpu/arm926ejs/mx28/mx28.c. But later in the
>> boot process, board_eth_init in board/denx/m28evk/m28evk.c tries to
>> configure the Ethernet clock again. Unfortunately that second
>> configuration is just disabling the clock:
>> 	clrsetbits_le32(&clkctrl_regs->hw_clkctrl_enet,
>> 		CLKCTRL_ENET_TIME_SEL_MASK | CLKCTRL_ENET_CLK_OUT_EN,
>> 		CLKCTRL_ENET_TIME_SEL_RMII_CLK);
>> After removing this line, I measured a 25MHz clock, communication with the
>> PHYs worked and I successfully tftp'ed a kernel from my server.
> 
> It's different -- M28EVK and MX28EVK are.

Yes, I know. I'm working with the MX28EVK, not the M28EVK.

>> Does you board have an external clock
>> oscillator for the PHYs?
> 
> Yes.

Aha, so we are talking about different boards.

>> If not, do you agree with removing this line?
> 
> No.

I'm sorry; I asked the wrong question. What I should have asked was: Do you agree
with not copying this line to the MX28EVK configuration?


More information about the U-Boot mailing list