[U-Boot-Users] v1.1.0, omap boards and udelay()

Gupta, Kshitij kshitij at ti.com
Wed Apr 21 09:23:04 CEST 2004

Hi Nishant,
	The timers are working properly for both 1510 and 1610 innovator.
Only thing is that #if loop has to be removed with hardcoded spin.
warm regards

-----Original Message-----
From: u-boot-users-admin at lists.sourceforge.net
[mailto:u-boot-users-admin at lists.sourceforge.net]On Behalf Of Kamat,
Sent: Tuesday, April 20, 2004 10:00 PM
To: Dave Peverley; u-boot-users at lists.sourceforge.net
Subject: RE: [U-Boot-Users] v1.1.0, omap boards and udelay()


In versions prior 1.1.0, there was a small bug in the omap1610 port, in
that the timer was not enabled. Obviously the udelay wouldn't function
normally and so there was this busy loop to make for it. In 1.1.0 this
is fixed by enabling the MPU timers, and there is no need for the loop.
See board/omap1610inn/platform.S where MPU Timer 1 is now enabled. You
might be missing similar code in the 730's port. 

That said, the same bug in 1510 is not yet fixed, and it still uses the
busy loop (in cpu/arm925t/interrupts.c). I'll send a little patch to fix
that soon.


-----Original Message-----
From: u-boot-users-admin at lists.sourceforge.net
[mailto:u-boot-users-admin at lists.sourceforge.net] On Behalf Of Dave
Sent: Monday, April 19, 2004 7:00 AM
To: u-boot-users at lists.sourceforge.net
Subject: [U-Boot-Users] v1.1.0, omap boards and udelay()

Hi all,

  I'm just merging my omap730p2 port into the 1.1.0 codebase, and have
hit a snag that I would have thought would affect the omap1510 and 1610
code as well ; can anyone confirm this? The problem is as follows :
  in boards/omapXXXX/omapXXXX.c, the function ether__init() uses the 
udelay() call. Prior to version 1.1.0, this was implemented using :
  #if defined(CONFIG_INNOVATOROMAP1610) || defined(CONFIG_P2OMAP730)
  #define LOOPS_PER_MSEC 100		/* tuned on omap1610 */
      volatile int i, time_remaining = LOOPS_PER_MSEC * usec;
      for (i = time_remaining; i > 0; i--) {
so that the omap's wouldn't use the MPU timer, as this does not work (at

least at that point in the startup) This means that u-boot hangs on my 
board during ether__init() now as the timer never gets incremented. 

  Can anyone tell me why this code was removed? Looking at it, I can't
see a reason why it shouldn't break the 1510/1610 omap support as well.
tested moving the code back as it was (using the 1.1.0 CONFIG_OMAP
instead) and this fixes the problem once more. 

Best Wishes,

Dave Peverley

             Dave Peverley, Software Engineer, MPC Data Limited.
Phone : [+44] (0) 1225 868 228              Web :

This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
U-Boot-Users mailing list
U-Boot-Users at lists.sourceforge.net

More information about the U-Boot mailing list