summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Simek <monstr@monstr.eu>2007-09-24 00:21:19 +0200
committerMichal Simek <monstr@monstr.eu>2007-09-24 00:21:19 +0200
commit1c1100d2fcf46b9d11dcf78d6e5aea75e2e8b716 (patch)
tree773dcc416d5026f97ca891b8598754e839086261
parent0731933ec8ec45d02ba89b52df673d526873cdde (diff)
downloaddevice_goldelico_gta04_u-boot-1c1100d2fcf46b9d11dcf78d6e5aea75e2e8b716.tar.gz
device_goldelico_gta04_u-boot-1c1100d2fcf46b9d11dcf78d6e5aea75e2e8b716.tar.bz2
device_goldelico_gta04_u-boot-1c1100d2fcf46b9d11dcf78d6e5aea75e2e8b716.zip
[PATCH] Add support for design without interrupt controller
Polling timer
-rw-r--r--cpu/microblaze/timer.c7
-rw-r--r--lib_microblaze/time.c8
2 files changed, 15 insertions, 0 deletions
diff --git a/cpu/microblaze/timer.c b/cpu/microblaze/timer.c
index ab1cb1274..b35045344 100644
--- a/cpu/microblaze/timer.c
+++ b/cpu/microblaze/timer.c
@@ -33,10 +33,17 @@ void reset_timer (void)
timestamp = 0;
}
+#ifdef CFG_TIMER_0
ulong get_timer (ulong base)
{
return (timestamp - base);
}
+#else
+ulong get_timer (ulong base)
+{
+ return (timestamp++ - base);
+}
+#endif
void set_timer (ulong t)
{
diff --git a/lib_microblaze/time.c b/lib_microblaze/time.c
index 3fa1b1126..b5d8f1937 100644
--- a/lib_microblaze/time.c
+++ b/lib_microblaze/time.c
@@ -26,9 +26,17 @@
#include <common.h>
+#ifdef CFG_TIMER_0
void udelay (unsigned long usec)
{
int i;
i = get_timer (0);
while ((get_timer (0) - i) < (usec / 1000)) ;
}
+#else
+void udelay (unsigned long usec)
+{
+ unsigned int i;
+ for (i = 0; i < (usec * CONFIG_XILINX_CLOCK_FREQ / 10000000); i++);
+}
+#endif