From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wolfgang Denk Date: Tue, 18 Dec 2007 09:16:44 +0100 Subject: [U-Boot-Users] MPC5121 (and MPC5200) ethernet initialization delay In-Reply-To: Your message of "Tue, 18 Dec 2007 06:20:44 +0100." <200712180620.44690.sr@denx.de> Message-ID: <20071218081644.BE34C248AC@gemini.denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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.