[U-Boot-Users] MPC5121 (and MPC5200) ethernet initialization delay

Wolfgang Denk
2007-12-18T08:16:44Z

In message <200712180620.44690.sr@denx.de> you wrote:
>
> Let me check if I understand this correctly. Your U-Boot has a delay of
> approx. 2 seconds upon booting (most likely waiting for autonegotiation to
> complete), even when you don't use ethernet in U-Boot at all?

Yes. Depending on CPU and board there may be several such delays.

> This is not what should happen. The targets I know best (PPC4xx) initiate the

You are right, it shouldnot happen.

> autonegotiation only when the ethernet interface is used. Upon TFTP download
> or something like this. So there should be no delay at all in U-Boot related
> to this ethernet initialization when you don't use ethernet.

Right, that's how it should be in an ideal world.

However, things are not that simple.

First, the perception that this is how things should work has not been
there forever. It has riped over time, and older boards / ports do
things differently.

Second, there are some CPUs / boards where "initializing" the ether-
net just requires to whack a PY reset or simply take the PHT out of
reset etc. Autonegotiation then takes place while U-Boot is doing
other things, and by the time you want to use the Ethernet for a TFTP
download or so it will be available with no or at least with greatly
reduced delay. But there are other implementations which wait for
autonegotiation to complete.

There are similar problems in other areas - for example, many boards
suffer from delays due to IDE intialization even if you don't use it.
Again the MPC5200 is a bad example for such behaviour - especially on
some boards which are missing a pull-down resistor at IDE5V_DD7; on
such boards you will suffer from a 2 minutes timeout (IIRC this is
the value defined by the ATA spec) if no IDE device is connected.

So yes, devices *should* only be initialized when really used, but the
current implementation is differently, at least on some processors or
boards.

And optimizing boot time is a perfectly valid requirement (and a
frequent one, too), and sometimes it may require a different init
sequence.

We should be able to provide both - the "clean" approach for "stan-
dard" systems and the optimized one for systems requiting it.

This is yet another are where code cleanup is needed.

Volunteers and patches welcome.

Best regards,

Wolfgang Denk

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
As of 1992, they're called European Economic Community fries.