[U-Boot-Users] DaVinci DM644x timer problem (divided by 16)

Hello,
Some months ago, a patch was submitted ([ARM] fix timer overflow in DaVinci). The result was that in /cpu/arm926ejs/davinci/timer.c read_timer was divided by 16.
http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=ea686f52e4 5b3df2938866d3f5a98bb2556dfe2b
Right now, when I have my bootdelay variable (on a DVEVM) set to 2, and countdown takes 32 seconds... Also iprobe got very very very slow. Maybe more items are affected by this timer division.
Is anybody else seeing this? Clearly when the timer is used by several blocks, it cannot be easily divided by 16. I think we need something else to work with the wrap around of the timer...
Best regards, Pieter
Pieter Voorthuijsen Prodrive B.V. Science Park Eindhoven P.O. box 28030 5602 JA Eindhoven The Netherlands
Email pieter.voorthuijsen@prodrive.nl Tel: +31-40-2676258 Fax: +31-40-2676201

Pieter Voorthuijsen wrote:
Hello,
Some months ago, a patch was submitted ([ARM] fix timer overflow in DaVinci). The result was that in /cpu/arm926ejs/davinci/timer.c read_timer was divided by 16.
http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=ea686f52e4 5b3df2938866d3f5a98bb2556dfe2b
Right now, when I have my bootdelay variable (on a DVEVM) set to 2, and countdown takes 32 seconds... Also iprobe got very very very slow. Maybe more items are affected by this timer division.
Is anybody else seeing this? Clearly when the timer is used by several blocks, it cannot be easily divided by 16. I think we need something else to work with the wrap around of the timer...
Thanks for the report!
Any idea what might be better?
Thanks
Dirk

Hi Dirk,
If I understand correctly: When the timer wraps around, flash writes or other long lasting actions get timed-out.
Currently the timer is in 32 bit unchained mode, why not place it 64 bit mode?
Best regards, Pieter
-----Original Message----- From: Dirk Behme [mailto:dirk.behme@googlemail.com] Sent: donderdag 20 maart 2008 15:25 To: Pieter Voorthuijsen Cc: u-boot-users@lists.sourceforge.net Subject: Re: [U-Boot-Users] DaVinci DM644x timer problem (divided by 16)
Pieter Voorthuijsen wrote:
Hello,
Some months ago, a patch was submitted ([ARM] fix timer overflow in DaVinci). The result was that in /cpu/arm926ejs/davinci/timer.c read_timer was divided by 16.
http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=ea686f52 e4 5b3df2938866d3f5a98bb2556dfe2b
Right now, when I have my bootdelay variable (on a DVEVM) set to 2, and countdown takes 32 seconds... Also iprobe got very very very
slow.
Maybe more items are affected by this timer division.
Is anybody else seeing this? Clearly when the timer is used by several
blocks, it cannot be easily divided by 16. I think we need something else to work with the wrap around of the timer...
Thanks for the report!
Any idea what might be better?
Thanks
Dirk

Pieter Voorthuijsen wrote:
Hi Dirk,
If I understand correctly: When the timer wraps around, flash writes or other long lasting actions get timed-out.
Yes. I never observed it myself. The inital report is
http://article.gmane.org/gmane.comp.boot-loaders.u-boot/32563/match=patch+fi...
but the patch was rejected by Wolfgang.
I then tried to fix it with a better patch, but seems that I failed ;) Sorry for that.
Currently the timer is in 32 bit unchained mode, why not place it 64 bit mode?
Good idea! I'm not so familiar with DaVinci timer, but sounds like an option. This will need some changes to davinci/timer.c to handle 64bit timer, but this shouldn't be to hard, right?
Do you like to send a patch?
Many thanks
Dirk
-----Original Message----- From: Dirk Behme [mailto:dirk.behme@googlemail.com] Sent: donderdag 20 maart 2008 15:25 To: Pieter Voorthuijsen Cc: u-boot-users@lists.sourceforge.net Subject: Re: [U-Boot-Users] DaVinci DM644x timer problem (divided by 16)
Pieter Voorthuijsen wrote:
Hello,
Some months ago, a patch was submitted ([ARM] fix timer overflow in DaVinci). The result was that in /cpu/arm926ejs/davinci/timer.c read_timer was divided by 16.
http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=ea686f52 e4 5b3df2938866d3f5a98bb2556dfe2b
Right now, when I have my bootdelay variable (on a DVEVM) set to 2, and countdown takes 32 seconds... Also iprobe got very very very
slow.
Maybe more items are affected by this timer division.
Is anybody else seeing this? Clearly when the timer is used by several
blocks, it cannot be easily divided by 16. I think we need something else to work with the wrap around of the timer...
Thanks for the report!
Any idea what might be better?
Thanks
Dirk
participants (2)
-
Dirk Behme
-
Pieter Voorthuijsen