|
@@ -26,9 +26,6 @@
|
|
|
#include <asm/arch/wdt.h>
|
|
|
#include "../drivers/mmc/arm_pl180_mmci.h"
|
|
|
|
|
|
-static ulong timestamp;
|
|
|
-static ulong lastdec;
|
|
|
-
|
|
|
static struct systimer *systimer_base = (struct systimer *)V2M_TIMER01;
|
|
|
static struct sysctrl *sysctrl_base = (struct sysctrl *)SCTL_BASE;
|
|
|
|
|
@@ -152,8 +149,6 @@ static void vexpress_timer_init(void)
|
|
|
writel(SYSTIMER_EN | SYSTIMER_32BIT |
|
|
|
readl(&systimer_base->timer0control),
|
|
|
&systimer_base->timer0control);
|
|
|
-
|
|
|
- reset_timer_masked();
|
|
|
}
|
|
|
|
|
|
int v2m_cfg_write(u32 devfn, u32 data)
|
|
@@ -183,62 +178,6 @@ void reset_cpu(ulong addr)
|
|
|
printf("Unable to reboot\n");
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * Delay x useconds AND perserve advance timstamp value
|
|
|
- * assumes timer is ticking at 1 msec
|
|
|
- */
|
|
|
-void __udelay(ulong usec)
|
|
|
-{
|
|
|
- ulong tmo, tmp;
|
|
|
-
|
|
|
- tmo = usec / 1000;
|
|
|
- tmp = get_timer(0); /* get current timestamp */
|
|
|
-
|
|
|
- /*
|
|
|
- * If setting this forward will roll time stamp then
|
|
|
- * reset "advancing" timestamp to 0 and set lastdec value
|
|
|
- * otherwise set the advancing stamp to the wake up time
|
|
|
- */
|
|
|
- if ((tmo + tmp + 1) < tmp)
|
|
|
- reset_timer_masked();
|
|
|
- else
|
|
|
- tmo += tmp;
|
|
|
-
|
|
|
- while (get_timer_masked() < tmo)
|
|
|
- ; /* loop till wakeup event */
|
|
|
-}
|
|
|
-
|
|
|
-ulong get_timer(ulong base)
|
|
|
-{
|
|
|
- return get_timer_masked() - base;
|
|
|
-}
|
|
|
-
|
|
|
-void reset_timer_masked(void)
|
|
|
-{
|
|
|
- lastdec = readl(&systimer_base->timer0value) / 1000;
|
|
|
- timestamp = 0;
|
|
|
-}
|
|
|
-
|
|
|
-ulong get_timer_masked(void)
|
|
|
-{
|
|
|
- ulong now = readl(&systimer_base->timer0value) / 1000;
|
|
|
-
|
|
|
- if (lastdec >= now) { /* normal mode (non roll) */
|
|
|
- timestamp += lastdec - now;
|
|
|
- } else { /* count down timer overflowed */
|
|
|
- /*
|
|
|
- * nts = ts + ld - now
|
|
|
- * ts = old stamp, ld = time before passing through - 1
|
|
|
- * now = amount of time after passing though - 1
|
|
|
- * nts = new "advancing time stamp"
|
|
|
- */
|
|
|
- timestamp += lastdec + SYSTIMER_RELOAD - now;
|
|
|
- }
|
|
|
- lastdec = now;
|
|
|
-
|
|
|
- return timestamp;
|
|
|
-}
|
|
|
-
|
|
|
void lowlevel_init(void)
|
|
|
{
|
|
|
}
|
|
@@ -247,16 +186,6 @@ ulong get_board_rev(void){
|
|
|
return readl((u32 *)SYS_ID);
|
|
|
}
|
|
|
|
|
|
-unsigned long long get_ticks(void)
|
|
|
-{
|
|
|
- return get_timer(0);
|
|
|
-}
|
|
|
-
|
|
|
-ulong get_tbclk(void)
|
|
|
-{
|
|
|
- return (ulong)CONFIG_SYS_HZ;
|
|
|
-}
|
|
|
-
|
|
|
#if defined(CONFIG_ARMV7_NONSEC) || defined(CONFIG_ARMV7_VIRT)
|
|
|
/* Setting the address at which secondary cores start from.
|
|
|
* Versatile Express uses one address for all cores, so ignore corenr
|