Skip to content
Snippets Groups Projects
Commit 822bd70d authored by Alessandro Rubini's avatar Alessandro Rubini Committed by Tom Rix
Browse files

edb93xx: change calculation un early_udelay.h


Previous code compiled with gcc-4.2.2 makes a call to
__aeabi_uidiv to divide by 20. As a side effect it was
not inline any more, and so sdram_cfg used the stack
as well, but this is early code that has no stack yet.
The patch explicitly removes the division, so no stack is used.

The calculation of the counter calls a division by 20

Signed-off-by: default avatarAlessandro Rubini <rubini@gnudd.com>
parent c50a0f50
No related branches found
No related tags found
No related merge requests found
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
static inline void early_udelay(uint32_t usecs) static inline void early_udelay(uint32_t usecs)
{ {
/* loop takes 4 cycles at 5.0ns (fastest case, running at 200MHz) */ /* loop takes 4 cycles at 5.0ns (fastest case, running at 200MHz) */
register uint32_t loops = (usecs * 1000) / 20; register uint32_t loops = usecs * (1000 / 20);
__asm__ volatile ("1:\n" __asm__ volatile ("1:\n"
"subs %0, %1, #1\n" "subs %0, %1, #1\n"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment