All of lore.kernel.org
 help / color / mirror / Atom feed
From: Graeme Russ <graeme.russ@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v1 (WIP) 15/16] [Timer]Replace get_timer() usage in board/
Date: Tue, 28 Jun 2011 21:41:08 +1000	[thread overview]
Message-ID: <1309261269-4363-16-git-send-email-graeme.russ@gmail.com> (raw)
In-Reply-To: <1309261269-4363-1-git-send-email-graeme.russ@gmail.com>


Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
---
 board/BuS/EB+MCF-EV123/flash.c       |    8 +++---
 board/LEOX/elpt860/flash.c           |   12 +++++-----
 board/Marvell/common/flash.c         |   16 ++++++------
 board/Marvell/common/intel_flash.c   |   19 ++++++---------
 board/RPXClassic/flash.c             |    8 +++---
 board/RPXlite/flash.c                |    8 +++---
 board/RPXlite_dw/flash.c             |    8 +++---
 board/RRvision/flash.c               |    8 +++---
 board/a3000/flash.c                  |    8 +++---
 board/alaska/flash.c                 |   34 ++++++++++++++--------------
 board/altera/common/AMDLV065D.c      |    8 +++---
 board/altera/common/flash.c          |   10 ++++----
 board/amcc/common/flash.c            |   16 ++++++------
 board/amcc/taihu/flash.c             |   16 ++++++------
 board/amcc/yucca/flash.c             |   16 ++++++------
 board/amirix/ap1000/flash.c          |    4 +-
 board/armadillo/flash.c              |    4 +-
 board/astro/mcf5373l/mcf5373l.c      |    4 +-
 board/atc/flash.c                    |   22 +++++++++---------
 board/atmel/at91rm9200dk/flash.c     |    8 +++---
 board/atmel/atstk1000/flash.c        |    2 +-
 board/bmw/flash.c                    |    8 +++---
 board/c2mon/flash.c                  |    8 +++---
 board/cerf250/flash.c                |    8 +++---
 board/cm4008/flash.c                 |    8 +++---
 board/cm41xx/flash.c                 |    8 +++---
 board/cmc_pu2/flash.c                |    8 +++---
 board/cmi/flash.c                    |   12 +++++-----
 board/cobra5272/flash.c              |    8 +++---
 board/cogent/flash.c                 |   14 ++++++------
 board/cpc45/flash.c                  |    8 +++---
 board/cpu86/flash.c                  |   16 ++++++------
 board/cpu87/flash.c                  |   16 ++++++------
 board/cradle/flash.c                 |    8 +++---
 board/cray/L1/flash.c                |    8 +++---
 board/csb226/flash.c                 |    8 +++---
 board/cu824/flash.c                  |    8 +++---
 board/dave/common/flash.c            |    8 +++---
 board/dnp1110/flash.c                |    8 +++---
 board/earthlcd/favr-32-ezkit/flash.c |    2 +-
 board/eltec/bab7xx/flash.c           |    8 +++---
 board/eltec/elppc/flash.c            |    8 +++---
 board/eltec/mhpc/flash.c             |    8 +++---
 board/emk/common/flash.c             |   18 +++++++-------
 board/ep7312/flash.c                 |    8 +++---
 board/ep8260/flash.c                 |    8 +++---
 board/esd/common/flash.c             |    8 +++---
 board/esd/cpci5200/strataflash.c     |    4 +-
 board/esd/pf5200/flash.c             |   18 +++++++-------
 board/esteem192e/flash.c             |   18 +++++++-------
 board/etin/debris/flash.c            |   16 ++++++------
 board/etx094/flash.c                 |   12 +++++-----
 board/evb4510/flash.c                |    4 +-
 board/evb64260/flash.c               |    8 +++---
 board/evb64260/intel_flash.c         |   18 ++++++--------
 board/fads/flash.c                   |    8 +++---
 board/flagadm/flash.c                |   22 +++++++++---------
 board/freescale/m5253demo/flash.c    |   14 ++++++------
 board/freescale/mpc8260ads/flash.c   |   12 +++++-----
 board/freescale/mpc8266ads/flash.c   |   12 +++++-----
 board/funkwerk/vovpn-gw/flash.c      |   16 ++++++------
 board/g2000/strataflash.c            |    4 +-
 board/gcplus/flash.c                 |    8 +++---
 board/gen860t/flash.c                |   16 ++++++------
 board/genietv/flash.c                |    8 +++---
 board/gw8260/flash.c                 |    8 +++---
 board/hermes/flash.c                 |    8 +++---
 board/hidden_dragon/flash.c          |    8 +++---
 board/hymod/flash.c                  |   10 ++++----
 board/icecube/flash.c                |   18 +++++++-------
 board/icu862/flash.c                 |    8 +++---
 board/idmr/flash.c                   |    8 +++---
 board/impa7/flash.c                  |    8 +++---
 board/incaip/flash.c                 |   22 +++++++++---------
 board/innokom/flash.c                |    8 +++---
 board/ip860/flash.c                  |    8 +++---
 board/iphase4539/flash.c             |    8 +++---
 board/ivm/flash.c                    |    8 +++---
 board/ixdp425/flash.c                |    8 +++---
 board/jse/flash.c                    |    8 +++---
 board/kup/common/flash.c             |   12 +++++-----
 board/lantec/flash.c                 |    8 +++---
 board/lart/flash.c                   |    8 +++---
 board/linkstation/avr.c              |   40 +++++++++++++++++-----------------
 board/lpd7a40x/flash.c               |    8 +++---
 board/lubbock/flash.c                |    8 +++---
 board/lwmon/flash.c                  |   10 ++++----
 board/mbx8xx/flash.c                 |    8 +++---
 board/modnet50/flash.c               |   12 +++++-----
 board/mpl/common/flash.c             |   16 ++++++------
 board/mpl/mip405/mip405.c            |   11 ++++-----
 board/mpl/vcma9/flash.c              |    8 +++---
 board/musenki/flash.c                |    8 +++---
 board/mvblue/flash.c                 |    8 +++---
 board/mx1ads/syncflash.c             |    2 +-
 board/mx1fs2/flash.c                 |   16 ++++++------
 board/netphone/flash.c               |    8 +++---
 board/netta/flash.c                  |    8 +++---
 board/netta2/flash.c                 |    8 +++---
 board/netvia/flash.c                 |    8 +++---
 board/ns9750dev/flash.c              |    8 +++---
 board/nx823/flash.c                  |    8 +++---
 board/o2dnt/flash.c                  |   26 +++++++++++-----------
 board/oxc/flash.c                    |    8 +++---
 board/pcippc2/flash.c                |    8 +++---
 board/pcs440ep/flash.c               |   12 +++++-----
 board/pleb2/flash.c                  |   12 +++++-----
 board/pm520/flash.c                  |   22 +++++++++---------
 board/pm826/flash.c                  |    8 +++---
 board/pm828/flash.c                  |    8 +++---
 board/ppmc7xx/flash.c                |    8 +++---
 board/ppmc8260/strataflash.c         |    4 +-
 board/prodrive/common/flash.c        |   12 +++++-----
 board/psyent/common/AMDLV065D.c      |    8 +++---
 board/r360mpi/flash.c                |    8 +++---
 board/rbc823/flash.c                 |    8 +++---
 board/rmu/flash.c                    |    8 +++---
 board/rpxsuper/flash.c               |    8 +++---
 board/rsdproto/flash.c               |    8 +++---
 board/sacsng/flash.c                 |    8 +++---
 board/samsung/smdk2400/flash.c       |    8 +++---
 board/sandburst/common/flash.c       |    8 +++---
 board/sandpoint/flash.c              |    8 +++---
 board/sbc2410x/flash.c               |    8 +++---
 board/sbc405/strataflash.c           |    4 +-
 board/sbc8240/flash.c                |    8 +++---
 board/sbc8260/flash.c                |    8 +++---
 board/scb9328/flash.c                |    4 +-
 board/shannon/flash.c                |    8 +++---
 board/siemens/IAD210/flash.c         |    8 +++---
 board/siemens/SCM/flash.c            |    8 +++---
 board/siemens/SMN42/flash.c          |    8 +++---
 board/sixnet/flash.c                 |   12 +++++-----
 board/snmc/qs850/flash.c             |    8 +++---
 board/snmc/qs860t/flash.c            |   18 +++++++-------
 board/stx/stxgp3/flash.c             |   12 +++++-----
 board/svm_sc8xx/flash.c              |   16 ++++++------
 board/tb0229/flash.c                 |   18 +++++++-------
 board/ti/omap1610inn/flash.c         |    8 +++---
 board/ti/omap730p2/flash.c           |    8 +++---
 board/tqc/tqm5200/cam5200_flash.c    |   16 ++++++------
 board/trab/cmd_trab.c                |    6 ++--
 board/trab/flash.c                   |    8 +++---
 board/utx8245/flash.c                |    8 +++---
 board/v37/flash.c                    |   12 +++++-----
 board/w7o/flash.c                    |   20 ++++++++--------
 board/w7o/fpga.c                     |   10 ++++----
 board/westel/amx860/flash.c          |    8 +++---
 board/xaeniax/flash.c                |    8 +++---
 board/xm250/flash.c                  |   16 ++++++------
 board/zeus/zeus.c                    |    4 +-
 board/zylonite/flash.c               |    8 +++---
 152 files changed, 781 insertions(+), 787 deletions(-)

diff --git a/board/BuS/EB+MCF-EV123/flash.c b/board/BuS/EB+MCF-EV123/flash.c
index 8b7f957..e2fb44b 100644
--- a/board/BuS/EB+MCF-EV123/flash.c
+++ b/board/BuS/EB+MCF-EV123/flash.c
@@ -172,13 +172,13 @@ int amd_flash_erase_sector(flash_info_t * info, int sector)
 
 	/* wait until flash is ready */
 	state = 0;
-	start = get_timer(0);
+	start = time_now_ms();
 
 	do {
 		result = *addr;
 
 		/* check timeout */
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
 			state = ERR_TIMOUT;
 		}
@@ -297,7 +297,7 @@ volatile static int amd_write_word (flash_info_t * info, ulong dest, u16 data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait until flash is ready */
 	state = 0;
@@ -305,7 +305,7 @@ volatile static int amd_write_word (flash_info_t * info, ulong dest, u16 data)
 		result = *addr;
 
 		/* check timeout */
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				state = ERR_TIMOUT;
 		}
 		if (!state && ((result & BIT_RDY_MASK) == (data & BIT_RDY_MASK)))
diff --git a/board/LEOX/elpt860/flash.c b/board/LEOX/elpt860/flash.c
index 9a75aad..f8a86e6 100644
--- a/board/LEOX/elpt860/flash.c
+++ b/board/LEOX/elpt860/flash.c
@@ -378,12 +378,12 @@ flash_erase (flash_info_t  *info,
   if ( l_sect < 0 )
     goto DONE;
 
-  start = get_timer (0);
+  start = time_now_ms();
   last  = start;
   addr = (volatile unsigned char *)(info->start[l_sect]);
   while ( (addr[0] & 0x80) != 0x80 )
     {
-      if ( (now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT )
+      if ( (now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT )
 	{
 	  printf ("Timeout\n");
 	  return ( 1 );
@@ -553,10 +553,10 @@ write_word (flash_info_t  *info,
     enable_interrupts();
 
   /* data polling for D7 */
-  start = get_timer (0);
+  start = time_now_ms();
   while ( (*((vu_long *)dest) & 0x00800080) != (data & 0x00800080) )
     {
-      if ( get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT )
+      if ( time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT )
 	{
 	  return (1);
 	}
@@ -599,10 +599,10 @@ write_byte (flash_info_t  *info,
     enable_interrupts();
 
   /* data polling for D7 */
-  start = get_timer (0);
+  start = time_now_ms();
   while ( (*((volatile unsigned char *)dest) & 0x80) != (data & 0x80) )
     {
-      if ( get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT )
+      if ( time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT )
 	{
 	  return (1);
 	}
diff --git a/board/Marvell/common/flash.c b/board/Marvell/common/flash.c
index 21eae0e..99acc1b 100644
--- a/board/Marvell/common/flash.c
+++ b/board/Marvell/common/flash.c
@@ -604,7 +604,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 						mask = CHIP_STAT_RDY |
 							(CHIP_STAT_RDY << 16);
 						/* init. the timeout counter */
-						start = get_timer (0);
+						start = time_now_ms();
 						/* keep looping while the flash is not ready */
 						/* exit the loop by timing out or the flash */
 						/* becomes ready again */
@@ -615,7 +615,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 							start[sect] & mask) !=
 						       mask) {
 							/* has the timeout limit been reached? */
-							if (get_timer (start)
+							if (time_since_ms(start)
 							    >
 							    CONFIG_SYS_FLASH_ERASE_TOUT)
 							{
@@ -771,12 +771,12 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = start;
 	addr = (volatile unsigned char *) (info->start[l_sect]);
 	/* broken for 2x16: TODO */
 	while ((addr[0] & 0x80) != 0x80) {
-		if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -940,7 +940,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 				flash_cmd (info->portwidth, addr, 0,
 					   CHIP_CMD_RD_STAT);
 				/* init. the timeout counter */
-				start = get_timer (0);
+				start = time_now_ms();
 				/* keep looping while the flash is not ready */
 				/* exit the loop by timing out or the flash */
 				/* becomes ready again */
@@ -955,7 +955,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 /* while (addr[0] & mask) != mask) */
 				{
 					/* has the timeout limit been reached? */
-					if (get_timer (start) >
+					if (time_since_ms(start) >
 					    CONFIG_SYS_FLASH_WRITE_TOUT) {
 						/* timeout limit reached */
 						printf ("Time out limit reached programming address %08lx with data %08lx\n", dest, data);
@@ -1062,9 +1062,9 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 		enable_interrupts ();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_long *) dest) & 0x00800080) != (data & 0x00800080)) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/Marvell/common/intel_flash.c b/board/Marvell/common/intel_flash.c
index 42b3ee1..d25c270 100644
--- a/board/Marvell/common/intel_flash.c
+++ b/board/Marvell/common/intel_flash.c
@@ -150,9 +150,9 @@ int write_word_intel (bank_addr_t addr, bank_word_t value)
 	retval = 0;
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	do {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			retval = 1;
 			goto done;
 		}
@@ -208,13 +208,12 @@ int flash_erase_intel (flash_info_t * info, int s_first, int s_last)
 		printf ("- Warning: %d protected sector%s will not be erased!\n", prot, (prot > 1 ? "s" : ""));
 	}
 
-	start = get_timer (0);
-	last = 0;
+	start = time_ms_now();
+	last = start;
 	haderr = 0;
 
 	for (sect = s_first; sect <= s_last; sect++) {
 		if (info->protect[sect] == 0) {	/* not protected */
-			ulong estart;
 			int sectdone;
 
 			bank_erase_init (info, sect);
@@ -222,21 +221,19 @@ int flash_erase_intel (flash_info_t * info, int s_first, int s_last)
 			/* wait at least 80us - let's wait 1 ms */
 			udelay (1000);
 
-			estart = get_timer (start);
+			start = time_now_ms();
 
 			do {
-				now = get_timer (start);
-
-				if (now - estart > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout (sect %d)\n", sect);
 					haderr = 1;
 					break;
 				}
 #ifndef FLASH_DEBUG
 				/* show that we're waiting */
-				if ((now - last) > 1000) {	/* every second */
+				if (time_since_ms(last) > 1000) {	/* every second */
 					putc ('.');
-					last = now;
+					last = time_now_ms();
 				}
 #endif
 
diff --git a/board/RPXClassic/flash.c b/board/RPXClassic/flash.c
index f07d960..1fd2073 100644
--- a/board/RPXClassic/flash.c
+++ b/board/RPXClassic/flash.c
@@ -309,11 +309,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (vu_long *)(info->start[l_sect]);
 	while ((addr[0] & 0x80808080) != 0x80808080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -434,9 +434,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_long *)dest) & 0x80808080) != (data & 0x80808080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/RPXlite/flash.c b/board/RPXlite/flash.c
index 788fcdf..4032e11 100644
--- a/board/RPXlite/flash.c
+++ b/board/RPXlite/flash.c
@@ -386,11 +386,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (vu_long *)(info->start[l_sect]);
 	while ((addr[0] & 0x80808080) != 0x80808080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -511,9 +511,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_long *)dest) & 0x80808080) != (data & 0x80808080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/RPXlite_dw/flash.c b/board/RPXlite_dw/flash.c
index 91788af..9914a36 100644
--- a/board/RPXlite_dw/flash.c
+++ b/board/RPXlite_dw/flash.c
@@ -356,11 +356,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (vu_long *)(info->start[l_sect]);
 	while ((addr[0] & 0x80808080) != 0x80808080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -480,9 +480,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_long *)dest) & 0x80808080) != (data & 0x80808080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/RRvision/flash.c b/board/RRvision/flash.c
index fdbe928..2907d1f 100644
--- a/board/RRvision/flash.c
+++ b/board/RRvision/flash.c
@@ -384,11 +384,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (vu_long*)(info->start[l_sect]);
 	while ((addr[0] & 0x00800080) != 0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			puts ("Timeout\n");
 			return 1;
 		}
@@ -509,9 +509,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_long *)dest) & 0x00800080) != (data & 0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/a3000/flash.c b/board/a3000/flash.c
index b671ce7..7320c8d 100644
--- a/board/a3000/flash.c
+++ b/board/a3000/flash.c
@@ -332,7 +332,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect<=s_last; sect++) {
@@ -356,7 +356,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 			udelay (1000);
 
 			while (((status = BS(*addr)) & BYTEME(0x00800080)) != BYTEME(0x00800080)) {
-				if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = BS(0xB0); /* suspend erase	  */
 					*addr = BS(0xFF); /* reset to read mode */
@@ -436,10 +436,10 @@ static int write_data (flash_info_t *info, uchar *dest, uchar data)
 		enable_interrupts();
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	while (((status = BS(*addr)) & BYTEME(0x00800080)) != BYTEME(0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = BS(0xFF);	/* restore read mode */
 			return 1;
 		}
diff --git a/board/alaska/flash.c b/board/alaska/flash.c
index aed3b6f..90f63c3 100644
--- a/board/alaska/flash.c
+++ b/board/alaska/flash.c
@@ -359,9 +359,9 @@ static unsigned char intel_sector_protected (flash_info_t *info, ushort sector)
 	addr = (FPWV *) info->start[sector];
 	*addr = (FPW) INTEL_STATUS;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*addr & (FPW) INTEL_FINISHED) != (FPW) INTEL_FINISHED) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			*addr = (FPW) INTEL_RESET; /* restore read mode */
 			printf("WSM busy too long, can't get prot status\n");
 			return 1;
@@ -443,7 +443,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = start;
 
 	/* Disable interrupts which might cause a timeout here */
@@ -458,7 +458,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			printf ("Erasing sector %2d ... ", sect);
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer (0);
+			start = time_now_ms();
 
 			if (intel) {
 				*addr = (FPW) 0x00500050;	/* clear status register */
@@ -479,7 +479,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			while (((status =
 				 *addr) & (FPW) 0x00800080) !=
 			       (FPW) 0x00800080) {
-				if (get_timer (start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					if (intel) {
 						*addr = (FPW) 0x00B000B0;	/* suspend erase     */
@@ -680,11 +680,11 @@ static int write_data (flash_info_t * info, ulong dest, FPW data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer (0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while ((*addr & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
@@ -724,11 +724,11 @@ static int write_data_block (flash_info_t * info, ulong src, ulong dest)
 	*dstaddr = (FPW) 0x00e800e8;	/* write block setup */
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer (0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while ((*dstaddr & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*dstaddr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
@@ -742,11 +742,11 @@ static int write_data_block (flash_info_t * info, ulong src, ulong dest)
 	*dstaddr = (FPW) 0x00d000d0;	/* write 32 to buffer */
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer (0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while ((*dstaddr & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*dstaddr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
@@ -794,12 +794,12 @@ static int write_word_amd (flash_info_t * info, FPWV * dest, FPW data)
 	if (flag)
 		enable_interrupts ();
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	/* data polling for D7 */
 	while (res == 0
 	       && (*dest & (FPW) 0x00800080) != (data & (FPW) 0x00800080)) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*dest = (FPW) 0x00F000F0;	/* reset bank */
 			res = 1;
 		}
@@ -853,10 +853,10 @@ int flash_real_protect (flash_info_t * info, long sector, int prot)
 		*addr = INTEL_CONFIRM;	/* clear                    */
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	while ((*addr & INTEL_FINISHED) != INTEL_FINISHED) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_UNLOCK_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_UNLOCK_TOUT) {
 			printf ("Flash lock bit operation timed out\n");
 			rc = 1;
 			break;
@@ -903,13 +903,13 @@ int flash_real_protect (flash_info_t * info, long sector, int prot)
 			info = &flash_info[bank];
 			for (i = 0; i < info->sector_count; i++) {
 				if (info->protect[i]) {
-					start = get_timer (0);
+					start = time_now_ms();
 					addr = (FPWV *) (info->start[i]);
 					*addr = INTEL_LOCKBIT;	/* Sector lock bit  */
 					*addr = INTEL_PROTECT;	/* set              */
 					while ((*addr & INTEL_FINISHED) !=
 					       INTEL_FINISHED) {
-						if (get_timer (start) >
+						if (time_since_ms(start) >
 						    CONFIG_SYS_FLASH_UNLOCK_TOUT) {
 							printf ("Flash lock bit operation timed out\n");
 							rc = 1;
diff --git a/board/altera/common/AMDLV065D.c b/board/altera/common/AMDLV065D.c
index 7a1b4d3..416a4eb 100644
--- a/board/altera/common/AMDLV065D.c
+++ b/board/altera/common/AMDLV065D.c
@@ -131,11 +131,11 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			/* Now just wait for 0xff & provide some user
 			 * feedback while we wait.
 			 */
-			start = get_timer (0);
+			start = time_now_ms();
 			while ( readb (addr2) != 0xff) {
 				udelay (1000 * 1000);
 				putc ('.');
-				if (get_timer (start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("timeout\n");
 					return 1;
 				}
@@ -175,9 +175,9 @@ int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
 		writeb (b, dst);
 
 		/* Verify write */
-		start = get_timer (0);
+		start = time_now_ms();
 		while (readb (dst) != b) {
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return 1;
 			}
 		}
diff --git a/board/altera/common/flash.c b/board/altera/common/flash.c
index 83bb7c2..53a713a 100644
--- a/board/altera/common/flash.c
+++ b/board/altera/common/flash.c
@@ -121,14 +121,14 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			*addr2 = 0x30;
 			/* Now just wait for 0xff & provide some user
 			 * feedback while we wait. Here we have to grant
-			 * timer interrupts. Otherwise get_timer() can't
+			 * timer interrupts. Otherwise time_*() can't
 			 * work right. */
 			ipri(oldpri);
-			start = get_timer (0);
+			start = time_now_ms();
 			while (*addr2 != 0xff) {
 				udelay (1000 * 1000);
 				putc ('.');
-				if (get_timer (start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("timeout\n");
 					return 1;
 				}
@@ -179,9 +179,9 @@ int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
 		*dst = b;
 
 		/* Verify write */
-		start = get_timer (0);
+		start = time_now_ms();
 		while (*dst != b) {
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				ipri (oldpri);
 				return 1;
 			}
diff --git a/board/amcc/common/flash.c b/board/amcc/common/flash.c
index 8f23375..ba2df44 100644
--- a/board/amcc/common/flash.c
+++ b/board/amcc/common/flash.c
@@ -359,11 +359,11 @@ static int wait_for_DQ7_1(flash_info_t * info, int sect)
 	volatile CONFIG_SYS_FLASH_WORD_SIZE *addr =
 	    (CONFIG_SYS_FLASH_WORD_SIZE *) (info->start[sect]);
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 	while ((addr[0] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) !=
 	       (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Timeout\n");
 			return -1;
 		}
@@ -603,11 +603,11 @@ static int write_word(flash_info_t * info, ulong dest, ulong data)
 			enable_interrupts();
 
 		/* data polling for D7 */
-		start = get_timer(0);
+		start = time_now_ms();
 		while ((dest2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) !=
 		       (data2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080)) {
 
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
@@ -804,11 +804,11 @@ static int wait_for_DQ7_2(flash_info_t * info, int sect)
 	volatile CONFIG_SYS_FLASH_WORD_SIZE *addr =
 	    (CONFIG_SYS_FLASH_WORD_SIZE *) (info->start[sect]);
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 	while ((addr[0] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) !=
 	       (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Timeout\n");
 			return -1;
 		}
@@ -941,11 +941,11 @@ static int write_word_2(flash_info_t * info, ulong dest, ulong data)
 			enable_interrupts();
 
 		/* data polling for D7 */
-		start = get_timer(0);
+		start = time_now_ms();
 		while ((dest2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) !=
 		       (data2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080)) {
 
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
diff --git a/board/amcc/taihu/flash.c b/board/amcc/taihu/flash.c
index e9fbbb1..15651a9 100644
--- a/board/amcc/taihu/flash.c
+++ b/board/amcc/taihu/flash.c
@@ -473,11 +473,11 @@ static int wait_for_DQ7_1(flash_info_t * info, int sect)
 	volatile CONFIG_SYS_FLASH_WORD_SIZE *addr =
 	    (CONFIG_SYS_FLASH_WORD_SIZE *) (info->start[sect]);
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 	while ((addr[0] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) !=
 	       (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Timeout\n");
 			return -1;
 		}
@@ -720,11 +720,11 @@ static int write_word(flash_info_t * info, ulong dest, ulong data)
 			enable_interrupts();
 
 		/* data polling for D7 */
-		start = get_timer(0);
+		start = time_now_ms();
 		while ((dest2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) !=
 		       (data2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080)) {
 
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return 1;
 			}
 		}
@@ -932,11 +932,11 @@ static int wait_for_DQ7_2(flash_info_t * info, int sect)
 	volatile CONFIG_SYS_FLASH_WORD_SIZE *addr =
 	    (CONFIG_SYS_FLASH_WORD_SIZE *) (info->start[sect]);
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 	while (((CONFIG_SYS_FLASH_WORD_SIZE)addr[0] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x80808080) !=
 	       (CONFIG_SYS_FLASH_WORD_SIZE) 0x80808080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Timeout\n");
 			return -1;
 		}
@@ -1069,11 +1069,11 @@ static int write_word_2(flash_info_t * info, ulong dest, ulong data)
 			enable_interrupts();
 
 		/* data polling for D7 */
-		start = get_timer(0);
+		start = time_now_ms();
 		while ((dest2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x80808080) !=
 		       (data2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x80808080)) {
 
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return 1;
 			}
 		}
diff --git a/board/amcc/yucca/flash.c b/board/amcc/yucca/flash.c
index 20b6af9..f7fbccb 100644
--- a/board/amcc/yucca/flash.c
+++ b/board/amcc/yucca/flash.c
@@ -385,11 +385,11 @@ static int wait_for_DQ7_1(flash_info_t * info, int sect)
 	volatile CONFIG_SYS_FLASH_WORD_SIZE *addr =
 		(CONFIG_SYS_FLASH_WORD_SIZE *) (info->start[sect]);
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 	while ((addr[0] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) !=
 			(CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Timeout\n");
 			return -1;
 		}
@@ -620,11 +620,11 @@ static int write_word(flash_info_t * info, ulong dest, ulong data)
 			enable_interrupts();
 
 		/* data polling for D7 */
-		start = get_timer(0);
+		start = time_now_ms();
 		while ((dest2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) !=
 				(data2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080)) {
 
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
 				return (1);
 		}
 	}
@@ -810,11 +810,11 @@ static int wait_for_DQ7_2(flash_info_t * info, int sect)
 	volatile CONFIG_SYS_FLASH_WORD_SIZE *addr =
 		(CONFIG_SYS_FLASH_WORD_SIZE *) (info->start[sect]);
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 	while ((addr[0] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) !=
 			(CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Timeout\n");
 			return -1;
 		}
@@ -942,11 +942,11 @@ static int write_word_2(flash_info_t * info, ulong dest, ulong data)
 			enable_interrupts();
 
 		/* data polling for D7 */
-		start = get_timer(0);
+		start = time_now_ms();
 		while ((dest2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) !=
 				(data2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080)) {
 
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
 				return (1);
 		}
 	}
diff --git a/board/amirix/ap1000/flash.c b/board/amirix/ap1000/flash.c
index 1e742e5..588cec6 100644
--- a/board/amirix/ap1000/flash.c
+++ b/board/amirix/ap1000/flash.c
@@ -481,9 +481,9 @@ static int flash_status_check (flash_info_t * info, ulong sector, ulong tout,
 	ulong start;
 
 	/* Wait for command completion */
-	start = get_timer (0);
+	start = time_now_ms();
 	while (!flash_isset (info, sector, 0, FLASH_STATUS_DONE)) {
-		if (get_timer (start) > info->erase_blk_tout) {
+		if (time_since_ms(start) > info->erase_blk_tout) {
 			printf ("Flash %s timeout at address %lx\n", prompt,
 				info->start[sector]);
 			flash_write_cmd (info, sector, 0, FLASH_CMD_RESET);
diff --git a/board/armadillo/flash.c b/board/armadillo/flash.c
index cf7d7f6..5219a6e 100644
--- a/board/armadillo/flash.c
+++ b/board/armadillo/flash.c
@@ -193,7 +193,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect <= s_last && !ctrlc (); sect++) {
 		/* ARM simple, non interrupt dependent timer */
-		start = get_timer(0);
+		start = time_now_ms();
 
 		if (info->protect[sect] == 0) {	/* not protected */
 
@@ -252,7 +252,7 @@ static int write_word (flash_info_t * info, ulong dest, ushort data)
 	flag = disable_interrupts ();
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	base = dest & 0xF0000000;
 	FL_WORD (base + (0x555 << 1)) = 0xAA;
diff --git a/board/astro/mcf5373l/mcf5373l.c b/board/astro/mcf5373l/mcf5373l.c
index 3c09a21..3829702 100644
--- a/board/astro/mcf5373l/mcf5373l.c
+++ b/board/astro/mcf5373l/mcf5373l.c
@@ -160,8 +160,8 @@ void astro_put_char(char ch)
 	 * Wait for last character to go. Timeout of 6ms should
 	 * be enough for our lowest baud rate of 2400.
 	 */
-	timer = get_timer(0);
-	while (get_timer(timer) < 6) {
+	timer = time_now_ms();
+	while (time_since_ms(timer) < 6) {
 		if (readb(&uart->usr) & UART_USR_TXRDY)
 			break;
 	}
diff --git a/board/atc/flash.c b/board/atc/flash.c
index fd76723..d6b8c3e 100644
--- a/board/atc/flash.c
+++ b/board/atc/flash.c
@@ -434,7 +434,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	last  = get_timer(0);
+	last  = time_now_ms();
 
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect<=s_last && rcode == 0; sect++) {
@@ -468,7 +468,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		if (flag)
 			enable_interrupts();
 
-		start = get_timer(0);
+		start = time_now_ms();
 
 		/* wait@least 50us for AMD, 80us for Intel.
 		 * Let's wait 1 ms.
@@ -476,7 +476,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		udelay (1000);
 
 		while ((*addr & (FPW)0x00800080) != (FPW)0x00800080) {
-			if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf ("Timeout\n");
 
 				if (intel) {
@@ -490,16 +490,16 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 			}
 
 			/* show that we're waiting */
-			if ((get_timer(last)) > CONFIG_SYS_HZ) {/* every second */
+			if ((time_since_ms(last)) > CONFIG_SYS_HZ) {/* every second */
 				putc ('.');
-				last = get_timer(0);
+				last = time_now_ms();
 			}
 		}
 
 		/* show that we're waiting */
-		if ((get_timer(last)) > CONFIG_SYS_HZ) {	/* every second */
+		if ((time_since_ms(last)) > CONFIG_SYS_HZ) {	/* every second */
 			putc ('.');
-			last = get_timer(0);
+			last = time_now_ms();
 		}
 
 		flash_reset(info);	/* reset to read mode	*/
@@ -597,11 +597,11 @@ static int write_word_amd (flash_info_t *info, FPWV *dest, FPW data)
 	if (flag)
 		enable_interrupts();
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	/* data polling for D7 */
 	while (res == 0 && (*dest & (FPW)0x00800080) != (data & (FPW)0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*dest = (FPW)0x00F000F0;	/* reset bank */
 			res = 1;
 		}
@@ -644,10 +644,10 @@ static int write_word_intel (flash_info_t *info, FPWV *dest, FPW data)
 	if (flag)
 		enable_interrupts();
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	while (res == 0 && (*dest & (FPW)0x00800080) != (FPW)0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*dest = (FPW)0x00B000B0;	/* Suspend program	*/
 			res = 1;
 		}
diff --git a/board/atmel/at91rm9200dk/flash.c b/board/atmel/at91rm9200dk/flash.c
index be22743..ff7f20c 100644
--- a/board/atmel/at91rm9200dk/flash.c
+++ b/board/atmel/at91rm9200dk/flash.c
@@ -326,7 +326,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		printf ("Erasing sector %2d ... ", sect);
 
 		/* arm simple, non interrupt dependent timer */
-		start = get_timer(0);
+		start = time_now_ms();
 
 		if (info->protect[sect] == 0) {	/* not protected */
 			volatile u16 *addr = (volatile u16 *) (info->start[sect]);
@@ -346,7 +346,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 				result = *addr;
 
 				/* check timeout */
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
 					chip1 = TMO;
 					break;
@@ -427,7 +427,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait until flash is ready */
 	chip1 = 0;
@@ -435,7 +435,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 		result = *addr;
 
 		/* check timeout */
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			chip1 = ERR | TMO;
 			break;
 		}
diff --git a/board/atmel/atstk1000/flash.c b/board/atmel/atstk1000/flash.c
index 0ba06dd..0ecea9c 100644
--- a/board/atmel/atstk1000/flash.c
+++ b/board/atmel/atstk1000/flash.c
@@ -108,7 +108,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
 
 		flags = disable_interrupts();
 
-		start_time = get_timer(0);
+		start_time = time_now_ms();
 
 		/* Unlock sector */
 		writew(0xaa, fb + 0x555);
diff --git a/board/bmw/flash.c b/board/bmw/flash.c
index 57ffe08..12eceaa 100644
--- a/board/bmw/flash.c
+++ b/board/bmw/flash.c
@@ -620,14 +620,14 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = start;
 	addr = (FLASH_WORD_SIZE *) (info->start[0] + ((info->start[l_sect] -
 						       info->
 						       start[0]) << sh8b));
 	while ((addr[0] & (FLASH_WORD_SIZE) 0x00800080) !=
 	       (FLASH_WORD_SIZE) 0x00800080) {
-		if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -763,10 +763,10 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 			enable_interrupts ();
 
 		/* data polling for D7 */
-		start = get_timer (0);
+		start = time_now_ms();
 		while ((dest2[i << sh8b] & (FLASH_WORD_SIZE) 0x00800080) !=
 		       (data2[i] & (FLASH_WORD_SIZE) 0x00800080)) {
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
diff --git a/board/c2mon/flash.c b/board/c2mon/flash.c
index d33cb6c..e9dda80 100644
--- a/board/c2mon/flash.c
+++ b/board/c2mon/flash.c
@@ -432,11 +432,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (vu_long*)(info->start[l_sect]);
 	while ((addr[0] & 0x00800080) != 0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -557,9 +557,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_long *)dest) & 0x00800080) != (data & 0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/cerf250/flash.c b/board/cerf250/flash.c
index e1e7807..0055dcc 100644
--- a/board/cerf250/flash.c
+++ b/board/cerf250/flash.c
@@ -266,14 +266,14 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 			printf ("Erasing sector %2d ... ", sect);
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer(0);
+			start = time_now_ms();
 
 			*addr = (FPW) 0x00500050;	/* clear status register */
 			*addr = (FPW) 0x00200020;	/* erase setup */
 			*addr = (FPW) 0x00D000D0;	/* erase confirm */
 
 			while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = (FPW) 0x00B000B0;	/* suspend erase     */
 					*addr = (FPW) 0x00FF00FF;	/* reset to read mode */
@@ -404,11 +404,11 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/cm4008/flash.c b/board/cm4008/flash.c
index d6fd519..459721e 100644
--- a/board/cm4008/flash.c
+++ b/board/cm4008/flash.c
@@ -251,7 +251,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			printf ("Erasing sector %2d ... ", sect);
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer(0);
+			start = time_now_ms();
 
 			addr = (volatile unsigned char *) (info->start[sect]);
 			*addr = 0x50;	/* clear status register */
@@ -259,7 +259,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			*addr = 0xD0;	/* erase confirm */
 
 			while (((status = *addr) & 0x80) != 0x80) {
-				if (get_timer(start) >
+				if (time_since_ms(start) >
 				    CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = 0xB0;	/* suspend erase */
@@ -386,11 +386,11 @@ static int write_data (flash_info_t * info, ulong dest, unsigned char data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & 0x80) != 0x80) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = 0xFF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/cm41xx/flash.c b/board/cm41xx/flash.c
index d6fd519..459721e 100644
--- a/board/cm41xx/flash.c
+++ b/board/cm41xx/flash.c
@@ -251,7 +251,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			printf ("Erasing sector %2d ... ", sect);
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer(0);
+			start = time_now_ms();
 
 			addr = (volatile unsigned char *) (info->start[sect]);
 			*addr = 0x50;	/* clear status register */
@@ -259,7 +259,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			*addr = 0xD0;	/* erase confirm */
 
 			while (((status = *addr) & 0x80) != 0x80) {
-				if (get_timer(start) >
+				if (time_since_ms(start) >
 				    CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = 0xB0;	/* suspend erase */
@@ -386,11 +386,11 @@ static int write_data (flash_info_t * info, ulong dest, unsigned char data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & 0x80) != 0x80) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = 0xFF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/cmc_pu2/flash.c b/board/cmc_pu2/flash.c
index d10faab..3209266 100644
--- a/board/cmc_pu2/flash.c
+++ b/board/cmc_pu2/flash.c
@@ -335,11 +335,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		if (l_sect < 0)
 			goto DONE;
 
-		start = get_timer(0);
+		start = time_now_ms();
 		last  = 0;
 		addr = (vu_short *)(info->start[l_sect]);
 		while ((addr[0] & 0x0080) != 0x0080) {
-			if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf ("Timeout\n");
 				return 1;
 			}
@@ -456,11 +456,11 @@ static int write_word_amd (flash_info_t *info, vu_short *dest, ushort data)
 	if (flag)
 		enable_interrupts();
 
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* data polling for D7 */
 	while ((*dest & 0x0080) != (data & 0x0080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*dest = 0x00F0;	/* reset bank */
 			return (1);
 		}
diff --git a/board/cmi/flash.c b/board/cmi/flash.c
index 630c330..cda5fda 100644
--- a/board/cmi/flash.c
+++ b/board/cmi/flash.c
@@ -317,7 +317,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 
 	/* Start erase on unprotected sectors */
@@ -345,7 +345,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 			udelay (1000);
 
 			while (((status = *addr) & FLASH_STATUS_DONE) != FLASH_STATUS_DONE) {
-				if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf("Flash erase timeout at address %lx\n", info->start[sect]);
 					*addr = FLASH_CMD_SUSPEND_ERASE;
 					*addr = FLASH_CMD_RESET;
@@ -469,11 +469,11 @@ static int write_short (flash_info_t *info, ulong dest, ushort data)
 	}
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 
 	/* wait for error or finish */
 	while(!(addr[0] & FLASH_STATUS_DONE)){
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			addr[0] = FLASH_CMD_RESET;
 			return (1);
 		}
@@ -502,9 +502,9 @@ int flash_real_protect(flash_info_t *info, long sector, int prot)
 	}
 
 	/* wait for error or finish */
-	start = get_timer (0);
+	start = time_now_ms();
 	while(!(addr[0] & FLASH_STATUS_DONE)){
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Flash protect timeout at address %lx\n",  info->start[sector]);
 			addr[0] = FLASH_CMD_RESET;
 			return (1);
diff --git a/board/cobra5272/flash.c b/board/cobra5272/flash.c
index e8f02eb..b25da1c 100644
--- a/board/cobra5272/flash.c
+++ b/board/cobra5272/flash.c
@@ -191,7 +191,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		printf ("Erasing sector %2d ... ", sect);
 
 		/* arm simple, non interrupt dependent timer */
-		start = get_timer(0);
+		start = time_now_ms();
 
 		if (info->protect[sect] == 0) {	/* not protected */
 			volatile u16 *addr =
@@ -212,7 +212,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 				result = *addr;
 
 				/* check timeout */
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
 					chip1 = TMO;
 					break;
@@ -293,7 +293,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait until flash is ready */
 	chip1 = 0;
@@ -301,7 +301,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 		result = *addr;
 
 		/* check timeout */
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			chip1 = ERR | TMO;
 			break;
 		}
diff --git a/board/cogent/flash.c b/board/cogent/flash.c
index e6c85b6..21660aa 100644
--- a/board/cogent/flash.c
+++ b/board/cogent/flash.c
@@ -262,9 +262,9 @@ c302f_write_word(c302f_addr_t addr, c302f_word_t value)
 	retval = 0;
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	do {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			retval = 1;
 			goto done;
 		}
@@ -453,7 +453,7 @@ flash_erase(flash_info_t *info, int s_first, int s_last)
 			prot, (prot > 1 ? "s" : ""));
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = 0;
 	haderr = 0;
 
@@ -467,10 +467,10 @@ flash_erase(flash_info_t *info, int s_first, int s_last)
 			/* wait at least 80us - let's wait 1 ms */
 			udelay (1000);
 
-			estart = get_timer(start);
+			estart = time_since_ms(start);
 
 			do {
-				now = get_timer(start);
+				now = time_since_ms(start);
 
 				if (now - estart > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout (sect %d)\n", sect);
@@ -559,7 +559,7 @@ write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
 	/*
 	 * handle word aligned part
 	 */
-	start = get_timer (0);
+	start = time_now_ms();
 	last = 0;
 	while (cnt >= 4) {
 		data = 0;
@@ -573,7 +573,7 @@ write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
 		cnt -= 4;
 
 		/* show that we're waiting */
-		now = get_timer(start);
+		now = time_since_ms(start);
 		if ((now - last) > 1000) {	/* every second */
 			putc ('.');
 			last = now;
diff --git a/board/cpc45/flash.c b/board/cpc45/flash.c
index 8fe7584..5847f95 100644
--- a/board/cpc45/flash.c
+++ b/board/cpc45/flash.c
@@ -276,7 +276,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = start;
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect <= s_last; sect++) {
@@ -308,7 +308,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 
 			while (((addr[0] & 0x00800080) != 0x00800080) ||
 			       ((addr[1] & 0x00800080) != 0x00800080)) {
-				if ((now = get_timer (start)) >
+				if ((now = time_since_ms(start)) >
 				    CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					addr[0] = 0x00B000B0;	/* suspend erase */
@@ -482,11 +482,11 @@ static int write_data (flash_info_t * info, ulong dest, ulong * data)
 	if (flag)
 		enable_interrupts ();
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	while (((addr[0] & 0x00800080) != 0x00800080) ||
 	       ((addr[1] & 0x00800080) != 0x00800080)) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			addr[0] = 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/cpu86/flash.c b/board/cpu86/flash.c
index 8135780..29cd5c6 100644
--- a/board/cpu86/flash.c
+++ b/board/cpu86/flash.c
@@ -378,11 +378,11 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		if (l_sect < 0)
 			goto AMD_DONE;
 
-		start = get_timer (0);
+		start = time_now_ms();
 		last  = start;
 		addr = (vu_char *)(info->start[l_sect]);
 		while ((addr[0] & 0x80) != 0x80) {
-			if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf ("Timeout\n");
 				return 1;
 			}
@@ -408,7 +408,7 @@ AMD_DONE:
 			volatile ulong *addr =
 				(volatile unsigned long *) info->start[sect];
 
-			start = get_timer (0);
+			start = time_now_ms();
 			last = start;
 			if (info->protect[sect] == 0) {
 			/* Disable interrupts which might cause a timeout here
@@ -434,7 +434,7 @@ AMD_DONE:
 				last = start;
 				while ((addr[0] & 0x00800080) != 0x00800080 ||
 				   (addr[1] & 0x00800080) != 0x00800080) {
-					if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+					if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 						printf ("Timeout (erase suspended!)\n");
 						/* Suspend erase
 						 */
@@ -547,9 +547,9 @@ static int write_word (flash_info_t * info, volatile unsigned long *addr,
 	if (flag)
 		enable_interrupts ();
 
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*addr & 0x00800080) != 0x00800080) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			/* Suspend program
 			 */
 			*addr = 0x00B000B0;
@@ -602,9 +602,9 @@ static int write_byte (flash_info_t *info, ulong dest, uchar data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_char *)dest) & 0x80) != (data & 0x80)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/cpu87/flash.c b/board/cpu87/flash.c
index c35757b..b315dfb 100644
--- a/board/cpu87/flash.c
+++ b/board/cpu87/flash.c
@@ -387,11 +387,11 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		if (l_sect < 0)
 			goto AMD_DONE;
 
-		start = get_timer (0);
+		start = time_now_ms();
 		last  = start;
 		addr = (vu_char *)(info->start[l_sect]);
 		while ((addr[0] & 0x80) != 0x80) {
-			if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf ("Timeout\n");
 				return 1;
 			}
@@ -417,7 +417,7 @@ AMD_DONE:
 			volatile ulong *addr =
 				(volatile unsigned long *) info->start[sect];
 
-			start = get_timer (0);
+			start = time_now_ms();
 			last = start;
 			if (info->protect[sect] == 0) {
 			/* Disable interrupts which might cause a timeout here
@@ -443,7 +443,7 @@ AMD_DONE:
 				last = start;
 				while ((addr[0] & 0x00800080) != 0x00800080 ||
 				   (addr[1] & 0x00800080) != 0x00800080) {
-					if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+					if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 						printf ("Timeout (erase suspended!)\n");
 						/* Suspend erase
 						 */
@@ -556,9 +556,9 @@ static int write_word (flash_info_t * info, volatile unsigned long *addr,
 	if (flag)
 		enable_interrupts ();
 
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*addr & 0x00800080) != 0x00800080) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			/* Suspend program
 			 */
 			*addr = 0x00B000B0;
@@ -611,9 +611,9 @@ static int write_byte (flash_info_t *info, ulong dest, uchar data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_char *)dest) & 0x80) != (data & 0x80)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/cradle/flash.c b/board/cradle/flash.c
index 1601782..bb188f7 100644
--- a/board/cradle/flash.c
+++ b/board/cradle/flash.c
@@ -174,7 +174,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		printf ("Erasing sector %2d ... ", sect);
 
 		/* arm simple, non interrupt dependent timer */
-		start = get_timer(0);
+		start = time_now_ms();
 
 		if (info->protect[sect] == 0) {	/* not protected */
 			vu_short *addr = (vu_short *) (info->start[sect]);
@@ -183,7 +183,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			*addr = 0xD0;	/* erase confirm */
 
 			while ((*addr & 0x80) != 0x80) {
-				if (get_timer(start) >
+				if (time_since_ms(start) >
 				    CONFIG_SYS_FLASH_ERASE_TOUT) {
 					*addr = 0xB0;	/* suspend erase */
 					*addr = 0xFF;	/* reset to read mode */
@@ -248,11 +248,11 @@ static int write_word (flash_info_t * info, ulong dest, ushort data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((val = *addr) & 0x80) != 0x80) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			rc = ERR_TIMOUT;
 			/* suspend program command */
 			*addr = 0xB0;
diff --git a/board/cray/L1/flash.c b/board/cray/L1/flash.c
index a3d893e..8209bb1 100644
--- a/board/cray/L1/flash.c
+++ b/board/cray/L1/flash.c
@@ -250,10 +250,10 @@ int wait_for_DQ7(flash_info_t *info, int sect)
 	ulong start, now, last;
 	volatile FLASH_WORD_SIZE *addr = (FLASH_WORD_SIZE *)(info->start[sect]);
 
-	start = get_timer (0);
+	start = time_now_ms();
     last  = start;
     while ((addr[0] & (FLASH_WORD_SIZE)0x00800080) != (FLASH_WORD_SIZE)0x00800080) {
-	if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+	if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 	    printf ("Timeout\n");
 	    return -1;
 	}
@@ -454,10 +454,10 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 	      enable_interrupts();
 
 	    /* data polling for D7 */
-	    start = get_timer (0);
+	    start = time_now_ms();
 	    while ((dest2[i] & (FLASH_WORD_SIZE)0x00800080) !=
 		   (data2[i] & (FLASH_WORD_SIZE)0x00800080)) {
-	      if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	      if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 		return (1);
 	      }
 	    }
diff --git a/board/csb226/flash.c b/board/csb226/flash.c
index e103470..7a8e576 100644
--- a/board/csb226/flash.c
+++ b/board/csb226/flash.c
@@ -176,7 +176,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
 		printf("Erasing sector %2d ... ", sect);
 
 		/* arm simple, non interrupt dependent timer */
-		start = get_timer(0);
+		start = time_now_ms();
 
 		if (info->protect[sect] == 0) { /* not protected */
 			u32 * volatile addr = (u32 * volatile)(info->start[sect]);
@@ -190,7 +190,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
 			*addr = 0x00D000D0;	/* erase confirm */
 
 			while ((*addr & 0x00800080) != 0x00800080) {
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					*addr = 0x00B000B0; /* suspend erase*/
 					*addr = 0x00FF00FF; /* read mode    */
 					rc = ERR_TIMOUT;
@@ -249,11 +249,11 @@ static int write_long (flash_info_t *info, ulong dest, ulong data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while(((val = *addr) & 0x00800080) != 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			rc = ERR_TIMOUT;
 			/* suspend program command */
 			*addr = 0x00B000B0;
diff --git a/board/cu824/flash.c b/board/cu824/flash.c
index bd0f8d3..22e7d0d 100644
--- a/board/cu824/flash.c
+++ b/board/cu824/flash.c
@@ -235,7 +235,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect<=s_last; sect++) {
@@ -267,7 +267,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 
 			while (((addr[0] & 0x00800080) != 0x00800080) ||
 			       ((addr[1] & 0x00800080) != 0x00800080) ) {
-				if ((now=get_timer(start)) >
+				if ((now=time_since_ms(start)) >
 					   CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					addr[0] = 0x00B000B0; /* suspend erase */
@@ -448,11 +448,11 @@ static int write_data (flash_info_t *info, ulong dest, ulong *data)
 	if (flag)
 		enable_interrupts();
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	while (((addr[0] & 0x00800080) != 0x00800080) ||
 	       ((addr[1] & 0x00800080) != 0x00800080) ) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			addr[0] = 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/dave/common/flash.c b/board/dave/common/flash.c
index 29caf47..1d3efc8 100644
--- a/board/dave/common/flash.c
+++ b/board/dave/common/flash.c
@@ -535,11 +535,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (CONFIG_SYS_FLASH_WORD_SIZE *)(info->start[l_sect]);
 	while ((addr[0] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) != (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -691,10 +691,10 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 	      enable_interrupts();
 
 	    /* data polling for D7 */
-	    start = get_timer (0);
+	    start = time_now_ms();
 	    while ((dest2[i] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) !=
 		   (data2[i] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080)) {
-	      if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	      if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 		return (1);
 	      }
 	    }
diff --git a/board/dnp1110/flash.c b/board/dnp1110/flash.c
index 53f89ee..8b9fe78 100644
--- a/board/dnp1110/flash.c
+++ b/board/dnp1110/flash.c
@@ -257,14 +257,14 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	printf("Erasing sector %2d ... ", sect);
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 			*addr = (FPW)0x00500050;	/* clear status register */
 			*addr = (FPW)0x00200020;	/* erase setup */
 			*addr = (FPW)0x00D000D0;	/* erase confirm */
 
 			while (((status = *addr) & (FPW)0x00800080) != (FPW)0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = (FPW)0x00B000B0; /* suspend erase	  */
 					*addr = (FPW)0x00FF00FF; /* reset to read mode */
@@ -396,11 +396,11 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & (FPW)0x00800080) != (FPW)0x00800080) {
-		if (start = get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (start = time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW)0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/earthlcd/favr-32-ezkit/flash.c b/board/earthlcd/favr-32-ezkit/flash.c
index 0a26146..5cb5bf7 100644
--- a/board/earthlcd/favr-32-ezkit/flash.c
+++ b/board/earthlcd/favr-32-ezkit/flash.c
@@ -106,7 +106,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
 
 		flags = disable_interrupts();
 
-		start_time = get_timer(0);
+		start_time = time_now_ms();
 
 		/* Unlock sector */
 		writew(0xaa, fb + 0x555);
diff --git a/board/eltec/bab7xx/flash.c b/board/eltec/bab7xx/flash.c
index 21ae098..89b4c0d 100644
--- a/board/eltec/bab7xx/flash.c
+++ b/board/eltec/bab7xx/flash.c
@@ -366,11 +366,11 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
     if (l_sect < 0)
 	goto DONE;
 
-    start = get_timer (0);
+    start = time_now_ms();
     last  = start;
     addr = (FLASH_WORD_SIZE *)(info->start[l_sect]);
     while ((addr[0] & (FLASH_WORD_SIZE)0x00800080) != (FLASH_WORD_SIZE)0x00800080) {
-	if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+	if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 	    printf ("Timeout\n");
 	    return 1;
 	}
@@ -497,10 +497,10 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 	      enable_interrupts();
 
 	    /* data polling for D7 */
-	    start = get_timer (0);
+	    start = time_now_ms();
 	    while ((dest2[i] & (FLASH_WORD_SIZE)0x00800080) !=
 		   (data2[i] & (FLASH_WORD_SIZE)0x00800080)) {
-	      if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	      if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 		return (1);
 	      }
 	    }
diff --git a/board/eltec/elppc/flash.c b/board/eltec/elppc/flash.c
index 21ae098..89b4c0d 100644
--- a/board/eltec/elppc/flash.c
+++ b/board/eltec/elppc/flash.c
@@ -366,11 +366,11 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
     if (l_sect < 0)
 	goto DONE;
 
-    start = get_timer (0);
+    start = time_now_ms();
     last  = start;
     addr = (FLASH_WORD_SIZE *)(info->start[l_sect]);
     while ((addr[0] & (FLASH_WORD_SIZE)0x00800080) != (FLASH_WORD_SIZE)0x00800080) {
-	if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+	if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 	    printf ("Timeout\n");
 	    return 1;
 	}
@@ -497,10 +497,10 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 	      enable_interrupts();
 
 	    /* data polling for D7 */
-	    start = get_timer (0);
+	    start = time_now_ms();
 	    while ((dest2[i] & (FLASH_WORD_SIZE)0x00800080) !=
 		   (data2[i] & (FLASH_WORD_SIZE)0x00800080)) {
-	      if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	      if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 		return (1);
 	      }
 	    }
diff --git a/board/eltec/mhpc/flash.c b/board/eltec/mhpc/flash.c
index 2fbdb27..8d1e3c9 100644
--- a/board/eltec/mhpc/flash.c
+++ b/board/eltec/mhpc/flash.c
@@ -254,7 +254,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect<=s_last; sect++) {
@@ -277,7 +277,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 			udelay (1000);
 
 			while (((status = SWAP(*addr)) & (FPW)0x00800080) != (FPW)0x00800080) {
-				if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = (FPW)0xB000B000; /* suspend erase */
 					*addr = (FPW)0xFF00FF00; /* reset to read mode */
@@ -416,10 +416,10 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
 	if (flag)
 		enable_interrupts();
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	while (((status = SWAP(*addr)) & (FPW)0x00800080) != (FPW)0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW)0xFF00FF00;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/emk/common/flash.c b/board/emk/common/flash.c
index 8579cfa..3ff2f9c 100644
--- a/board/emk/common/flash.c
+++ b/board/emk/common/flash.c
@@ -417,7 +417,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	last  = get_timer(0);
+	last  = time_now_ms();
 
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect<=s_last && rcode == 0; sect++) {
@@ -451,7 +451,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		if (flag)
 			enable_interrupts();
 
-		start = get_timer(0);
+		start = time_now_ms();
 
 		/* wait@least 50us for AMD, 80us for Intel.
 		 * Let's wait 1 ms.
@@ -459,7 +459,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		udelay (1000);
 
 		while ((*addr & (FPW)0x00800080) != (FPW)0x00800080) {
-			if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf ("Timeout\n");
 
 				if (intel) {
@@ -473,16 +473,16 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 			}
 
 			/* show that we're waiting */
-			if ((get_timer(last)) > CONFIG_SYS_HZ) {/* every second */
+			if ((time_since_ms(last)) > CONFIG_SYS_HZ) {/* every second */
 				putc ('.');
-				last = get_timer(0);
+				last = time_now_ms();
 			}
 		}
 
 		/* show that we're waiting */
-		if ((get_timer(last)) > CONFIG_SYS_HZ) {	/* every second */
+		if ((time_since_ms(last)) > CONFIG_SYS_HZ) {	/* every second */
 			putc ('.');
-			last = get_timer(0);
+			last = time_now_ms();
 		}
 
 		flash_reset(info);	/* reset to read mode */
@@ -577,11 +577,11 @@ static int write_word_amd (flash_info_t *info, FPWV *dest, FPW data)
 	if (flag)
 		enable_interrupts();
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	/* data polling for D7 */
 	while (res == 0 && (*dest & (FPW)0x00800080) != (data & (FPW)0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*dest = (FPW)0x00F000F0;	/* reset bank */
 			res = 1;
 		}
diff --git a/board/ep7312/flash.c b/board/ep7312/flash.c
index 2ed9c9a..9dec9b7 100644
--- a/board/ep7312/flash.c
+++ b/board/ep7312/flash.c
@@ -157,7 +157,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		printf ("Erasing sector %2d ... ", sect);
 
 		/* arm simple, non interrupt dependent timer */
-		start = get_timer(0);
+		start = time_now_ms();
 
 		if (info->protect[sect] == 0) {	/* not protected */
 			vu_short *addr = (vu_short *) (info->start[sect]);
@@ -166,7 +166,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			*addr = 0xD0;		/* erase confirm */
 
 			while ((*addr & 0x80) != 0x80) {
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					*addr = 0xB0;	/* suspend erase */
 					*addr = 0xFF;	/* reset to read mode */
 					rc = ERR_TIMOUT;
@@ -230,11 +230,11 @@ static int write_word (flash_info_t * info, ulong dest, ushort data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((val = *addr) & 0x80) != 0x80) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			rc = ERR_TIMOUT;
 			/* suspend program command */
 			*addr = 0xB0;
diff --git a/board/ep8260/flash.c b/board/ep8260/flash.c
index 2a81de5..eb3cefc 100644
--- a/board/ep8260/flash.c
+++ b/board/ep8260/flash.c
@@ -279,12 +279,12 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	while ((V_ULONG( info->start[l_sect] ) & 0x00800080) != 0x00800080 ||
 	       (V_ULONG( info->start[l_sect] + 4 ) & 0x00800080) != 0x00800080)
 	{
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -400,10 +400,10 @@ static int write_dword (flash_info_t *info, ulong dest, unsigned char * pdata)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while (((V_ULONG( dest ) & 0x00800080) != (ch & 0x00800080)) ||
 	       ((V_ULONG( dest + 4 ) & 0x00800080) != (cl & 0x00800080))) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/esd/common/flash.c b/board/esd/common/flash.c
index b9c7885..5ca9c02 100644
--- a/board/esd/common/flash.c
+++ b/board/esd/common/flash.c
@@ -527,11 +527,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (CONFIG_SYS_FLASH_WORD_SIZE *)(info->start[l_sect]);
 	while ((addr[0] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) != (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -659,10 +659,10 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 	      enable_interrupts();
 
 	    /* data polling for D7 */
-	    start = get_timer (0);
+	    start = time_now_ms();
 	    while ((dest2[i] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) !=
 		   (data2[i] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080)) {
-	      if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	      if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 		return (1);
 	      }
 	    }
diff --git a/board/esd/cpci5200/strataflash.c b/board/esd/cpci5200/strataflash.c
index 9b578b5..d90a2c9 100644
--- a/board/esd/cpci5200/strataflash.c
+++ b/board/esd/cpci5200/strataflash.c
@@ -408,9 +408,9 @@ static int flash_status_check(flash_info_t * info, ulong sector, ulong tout,
 	ulong start;
 
 	/* Wait for command completion */
-	start = get_timer(0);
+	start = time_now_ms();
 	while (!flash_isset(info, sector, 0, FLASH_STATUS_DONE)) {
-		if (get_timer(start) > info->erase_blk_tout) {
+		if (time_since_ms(start) > info->erase_blk_tout) {
 			printf("Flash %s timeout at address %lx\n", prompt,
 			       info->start[sector]);
 			flash_write_cmd(info, sector, 0, FLASH_CMD_RESET);
diff --git a/board/esd/pf5200/flash.c b/board/esd/pf5200/flash.c
index 9850445..65ca214 100644
--- a/board/esd/pf5200/flash.c
+++ b/board/esd/pf5200/flash.c
@@ -297,7 +297,7 @@ int flash_erase(flash_info_t * info, int s_first, int s_last) {
 		printf("\n");
 	}
 
-	last = get_timer(0);
+	last = time_now_ms();
 
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect <= s_last && rcode == 0; sect++) {
@@ -329,14 +329,14 @@ int flash_erase(flash_info_t * info, int s_first, int s_last) {
 		if (flag) {
 			enable_interrupts();
 		}
-		start = get_timer(0);
+		start = time_now_ms();
 
 		/* wait@least 50us for AMD, 80us for Intel. */
 		/* Let's wait 1 ms.                            */
 		udelay(1000);
 
 		while ((*addr & (FPW) 0x00800080) != (FPW) 0x00800080) {
-			if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf("Timeout\n");
 				if (intel) {
 					/* suspend erase        */
@@ -347,17 +347,17 @@ int flash_erase(flash_info_t * info, int s_first, int s_last) {
 				break;
 			}
 			/* show that we're waiting */
-			if ((get_timer(last)) > CONFIG_SYS_HZ) {
+			if ((time_since_ms(last)) > CONFIG_SYS_HZ) {
 				/* every second */
 				putc('.');
-				last = get_timer(0);
+				last = time_now_ms();
 			}
 		}
 		/* show that we're waiting */
-		if ((get_timer(last)) > CONFIG_SYS_HZ) {
+		if ((time_since_ms(last)) > CONFIG_SYS_HZ) {
 			/* every second */
 			putc('.');
-			last = get_timer(0);
+			last = time_now_ms();
 		}
 		flash_reset(info);	/* reset to read mode */
 	}
@@ -447,12 +447,12 @@ static int write_word_amd(flash_info_t * info, FPWV * dest, FPW data) {
 	if (flag) {
 		enable_interrupts();
 	}
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* data polling for D7 */
 	while (res == 0
 	       && (*dest & (FPW) 0x00800080) != (data & (FPW) 0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*dest = (FPW) 0x00F000F0;	/* reset bank */
 			res = 1;
 		}
diff --git a/board/esteem192e/flash.c b/board/esteem192e/flash.c
index cce73fa..bf8fa52 100644
--- a/board/esteem192e/flash.c
+++ b/board/esteem192e/flash.c
@@ -764,12 +764,12 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		if (l_sect < 0)
 			goto DONE;
 
-		start = get_timer (0);
+		start = time_now_ms();
 		last = start;
 		addr = (volatile FLASH_WORD_SIZE *) (info->start[l_sect]);
 		while ((addr[0] & (0x00800080 & FLASH_ID_MASK)) !=
 		       (0x00800080 & FLASH_ID_MASK)) {
-			if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf ("Timeout\n");
 				return 1;
 			}
@@ -1016,13 +1016,13 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 		enable_interrupts ();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 
 	if (info->flash_id > FLASH_AMD_COMP) {
 
 		while ((*((vu_long *) dest) & 0x00800080) !=
 		       (data & 0x00800080)) {
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
@@ -1030,7 +1030,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 	} else {
 
 		while (!(addr[0] & 0x00800080)) {	/* wait for error or finish */
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 
@@ -1091,12 +1091,12 @@ static int write_short (flash_info_t * info, ulong dest, ushort data)
 		enable_interrupts ();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 
 	if (info->flash_id < FLASH_AMD_COMP) {
 		/* AMD stuff */
 		while ((*((vu_short *) dest) & 0x0080) != (data & 0x0080)) {
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
@@ -1104,7 +1104,7 @@ static int write_short (flash_info_t * info, ulong dest, ushort data)
 	} else {
 		/* intel stuff */
 		while (!(addr[0] & 0x0080)) {	/* wait for error or finish */
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT)
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
 				return (1);
 		}
 
@@ -1123,7 +1123,7 @@ static int write_short (flash_info_t * info, ulong dest, ushort data)
 		*addr = 0x00B0;
 		*addr = 0x0070;
 		while (!(addr[0] & 0x0080)) {	/* wait for error or finish */
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT)
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
 				return (1);
 		}
 		*addr = 0x00FF;
diff --git a/board/etin/debris/flash.c b/board/etin/debris/flash.c
index f9e8619..efecc03 100644
--- a/board/etin/debris/flash.c
+++ b/board/etin/debris/flash.c
@@ -94,13 +94,13 @@ static int cfi_write_dword(flash_info_t *flash, ulong dest, cfi_word data)
 	cfi_write(flash, data, dest);
 
 	udelay(10);
-	start = get_timer (0);
+	start = time_now_ms();
 	for(;;) {
 		status = cfi_read(flash, dest);
 		status &= CMD(0x80);
 		if(status == CMD(0x80))
 			break;
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			cfi_cmd(flash, 0xff, 0);
 			return 1;
 		}
@@ -126,10 +126,10 @@ static int jedec_write_dword (flash_info_t *flash, ulong dest, cfi_word data)
 	cfi_write(flash, data, dest);
 
 	udelay(10);
-	start = get_timer (0);
+	start = time_now_ms();
 	status = ~data;
 	while(status != data) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
 			return 1;
 		status = cfi_read(flash, dest);
 		udelay(1);
@@ -223,7 +223,7 @@ static int cfi_erase_oneblock(flash_info_t *flash, uint32_t sect)
 		enable_interrupts();
 
 	udelay(1000);
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 
 	for (;;) {
@@ -231,7 +231,7 @@ static int cfi_erase_oneblock(flash_info_t *flash, uint32_t sect)
 		status &= CMD(0x80);
 		if (status == CMD(0x80))
 			break;
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			cfi_cmd(flash, 0xff, 0);
 			printf ("Timeout\n");
 			return ERR_TIMOUT;
@@ -290,14 +290,14 @@ static int jedec_erase(flash_info_t *flash, uint32_t s_first, uint32_t s_last)
 		goto DONE;
 
 	udelay (1000);
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	for(;;) {
 		status = cfi_read(flash, sa);
 		if (status == CMD(0xffff))
 			break;
 
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return ERR_TIMOUT;
 		}
diff --git a/board/etx094/flash.c b/board/etx094/flash.c
index fa51c90..9f9e9bb 100644
--- a/board/etx094/flash.c
+++ b/board/etx094/flash.c
@@ -506,7 +506,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect<=s_last; sect++) {
@@ -548,7 +548,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 #else
 			while ((sect_addr[0] & 0x00800080) != 0x00800080) {
 #endif
-				if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					return 1;
 				}
@@ -691,9 +691,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_short *)dest) & 0x0080) != (high_data & 0x0080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
@@ -725,7 +725,7 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 
 #ifdef CONFIG_FLASH_16BIT
 	while ((*((vu_short *)dest) & 0x0080) != (low_data & 0x0080)) {
@@ -733,7 +733,7 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 	while ((*((vu_long *)dest) & 0x00800080) != (data & 0x00800080)) {
 #endif
 
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/evb4510/flash.c b/board/evb4510/flash.c
index c9c6e02..d8c4393 100644
--- a/board/evb4510/flash.c
+++ b/board/evb4510/flash.c
@@ -200,8 +200,8 @@ static u16 _flash_poll (FLASH_DEV dev, u32 addr, u16 data, ulong timeOut)
 	volatile u16 flashData;
 
 	data = data & 0xFF;
-	t0 = get_timer (0);
-	while (get_timer (t0) < timeOut) {
+	t0 = time_now_ms();
+	while (time_since_ms(t0) < timeOut) {
 		/*	for( i = 0; i < POLL_LOOPS; i++) { */
 		/*  Read the Data */
 		flashData = GET__U8 (addr);
diff --git a/board/evb64260/flash.c b/board/evb64260/flash.c
index 825bbaf..8935883 100644
--- a/board/evb64260/flash.c
+++ b/board/evb64260/flash.c
@@ -676,12 +676,12 @@ flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (volatile unsigned char *)(info->start[l_sect]);
 	/* broken for 2x16: TODO */
 	while ((addr[0] & 0x80) != 0x80) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -843,9 +843,9 @@ write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_long *)dest) & 0x00800080) != (data & 0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/evb64260/intel_flash.c b/board/evb64260/intel_flash.c
index 994264a..289b989 100644
--- a/board/evb64260/intel_flash.c
+++ b/board/evb64260/intel_flash.c
@@ -155,9 +155,9 @@ write_word_intel(bank_addr_t addr, bank_word_t value)
 	retval = 0;
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	do {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_now_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			retval = 1;
 			goto done;
 		}
@@ -215,8 +215,8 @@ flash_erase_intel(flash_info_t *info, int s_first, int s_last)
 			prot, (prot > 1 ? "s" : ""));
 	}
 
-	start = get_timer (0);
-	last = 0;
+	start = time_now_ms();
+	last = start;
 	haderr = 0;
 
 	for (sect = s_first; sect <= s_last; sect++) {
@@ -229,12 +229,10 @@ flash_erase_intel(flash_info_t *info, int s_first, int s_last)
 			/* wait@least 80us - let's wait 1 ms */
 			udelay (1000);
 
-			estart = get_timer(start);
+			start = time_now_ms();
 
 			do {
-				now = get_timer(start);
-
-				if (now - estart > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout (sect %d)\n", sect);
 					haderr = 1;
 					break;
@@ -242,9 +240,9 @@ flash_erase_intel(flash_info_t *info, int s_first, int s_last)
 
 #ifndef FLASH_DEBUG
 				/* show that we're waiting */
-				if ((now - last) > 1000) { /* every second */
+				if (time_since_ms(last) > 1000) { /* every second */
 					putc ('.');
-					last = now;
+					last = time_now_ms();
 				}
 #endif
 
diff --git a/board/fads/flash.c b/board/fads/flash.c
index b9afb75..d21e7aa 100644
--- a/board/fads/flash.c
+++ b/board/fads/flash.c
@@ -423,12 +423,12 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = start;
 	addr = (vu_long *) (info->start[l_sect]);
 	while ((addr[0] & 0xFFFFFFFF) != 0xFFFFFFFF)
 	{
-		if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return ERR_TIMOUT;
 		}
@@ -549,10 +549,10 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 		enable_interrupts ();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_long *) dest) & 0x80808080) != (data & 0x80808080))
 	{
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return ERR_TIMOUT;
 		}
 	}
diff --git a/board/flagadm/flash.c b/board/flagadm/flash.c
index a69b1a4..6b41931 100644
--- a/board/flagadm/flash.c
+++ b/board/flagadm/flash.c
@@ -374,7 +374,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect<=s_last; sect++) {
@@ -400,7 +400,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 			*addr = 0x70; /*Read status register command*/
 			tmp = (short)*addr & 0x00FF; /* Read the status */
 			while (!(tmp & INTEL_FLASH_STATUS_WSMS)) {
-				if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					*addr = 0x0050; /* Reset the status register */
 					*addr = 0xffff;
 					printf ("Timeout\n");
@@ -413,7 +413,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 				udelay(100000); /* 100 ms */
 				*addr = 0x0070; /*Read status register command*/
 				tmp = (short)*addr & 0x00FF; /* Read status */
-				start = get_timer(0);
+				start = time_now_ms();
 			}
 			if( tmp & INTEL_FLASH_STATUS_ES )
 				flash_decode_status_bits(tmp);
@@ -557,11 +557,11 @@ int write_word (flash_info_t *info, ulong dest, ulong da)
 			enable_interrupts();
 
 		/* data polling for D7 */
-		start = get_timer (0);
+		start = time_now_ms();
 		flag  = 0;
 		*addr = 0x0070; /*Read statusregister command */
 		while (((csr = *addr) & INTEL_FLASH_STATUS_WSMS)!=INTEL_FLASH_STATUS_WSMS) {
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				flag = 1;
 				break;
 			}
@@ -642,13 +642,13 @@ int _flash_real_protect(flash_info_t *info, long idx, int prot)
 	addr = (vu_short *)(info->start[idx]);
 
 	/* If chip is busy, wait for it */
-	start = get_timer(0);
+	start = time_now_ms();
 	*addr = 0x0070; /*Read status register command*/
 	tmp = ((ushort)(*addr))&0x00ff; /*Read the status*/
 	while(!(tmp & INTEL_FLASH_STATUS_WSMS)) {
 		/*Write State Machine Busy*/
 		/*Wait untill done or timeout.*/
-		if ((now=get_timer(start)) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = 0x0050; /* Reset the status register */
 			*addr = 0xffff; /* Reset the chip */
 			printf ("TTimeout\n");
@@ -656,7 +656,7 @@ int _flash_real_protect(flash_info_t *info, long idx, int prot)
 		}
 		*addr = 0x0070;
 		tmp = ((ushort)(*addr))&0x00ff; /*Read the status*/
-		start = get_timer(0);
+		start = time_now_ms();
 	}
 
 	/* Disable interrupts which might cause a timeout here */
@@ -671,12 +671,12 @@ int _flash_real_protect(flash_info_t *info, long idx, int prot)
 	if (flag)
 		enable_interrupts();
 
-	start = get_timer(0);
+	start = time_now_ms();
 	*addr = 0x0070; /*Read status register command*/
 	tmp = ((ushort)(*addr)) & 0x00FF; /* Read the status */
 	while (!(tmp & INTEL_FLASH_STATUS_WSMS)) {
 		/* Write State Machine Busy */
-		if ((now=get_timer(start)) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = 0x0050; /* Reset the status register */
 			*addr = 0xffff;
 			printf ("Timeout\n");
@@ -689,7 +689,7 @@ int _flash_real_protect(flash_info_t *info, long idx, int prot)
 		udelay(100000); /* 100 ms */
 		*addr = 0x70; /*Read status register command*/
 		tmp = (short)*addr & 0x00FF; /* Read status */
-		start = get_timer(0);
+		start = time_now_ms();
 	}
 	if( tmp & INTEL_FLASH_STATUS_PS )
 		flash_decode_status_bits(tmp);
diff --git a/board/freescale/m5253demo/flash.c b/board/freescale/m5253demo/flash.c
index 08f767d..976d38c 100644
--- a/board/freescale/m5253demo/flash.c
+++ b/board/freescale/m5253demo/flash.c
@@ -232,7 +232,7 @@ int flash_erase(flash_info_t * info, int s_first, int s_last)
 
 	flag = disable_interrupts();
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 
 	if ((s_last - s_first) == (CONFIG_SYS_SST_SECT - 1)) {
@@ -247,7 +247,7 @@ int flash_erase(flash_info_t * info, int s_first, int s_last)
 			*addr = 0x0030;	/* erase chip */
 
 			count = 0;
-			start = get_timer(0);
+			start = time_now_ms();
 
 			while ((*addr & 0x0080) != 0x0080) {
 				if (count++ > 0x10000) {
@@ -255,7 +255,7 @@ int flash_erase(flash_info_t * info, int s_first, int s_last)
 					count = 0;
 				}
 
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf("Timeout\n");
 					*addr = 0x00F0;	/* reset to read mode */
 
@@ -285,7 +285,7 @@ int flash_erase(flash_info_t * info, int s_first, int s_last)
 			printf(".");
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer(0);
+			start = time_now_ms();
 
 			switch (flashtype) {
 			case 1:
@@ -307,7 +307,7 @@ int flash_erase(flash_info_t * info, int s_first, int s_last)
 						enable_interrupts();
 
 					while ((*addr & 0x0080) != 0x0080) {
-						if (get_timer(start) >
+						if (time_since_ms(start) >
 						    CONFIG_SYS_FLASH_ERASE_TOUT) {
 							printf("Timeout\n");
 							*addr = 0x00F0;	/* reset to read mode */
@@ -439,12 +439,12 @@ int write_word(flash_info_t * info, FPWV * dest, u16 data)
 	if (flag)
 		enable_interrupts();
 
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* data polling for D7 */
 	while (res == 0
 	       && (*dest & (u8) 0x00800080) != (data & (u8) 0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*dest = (u8) 0x00F000F0;	/* reset bank */
 			res = 1;
 		}
diff --git a/board/freescale/mpc8260ads/flash.c b/board/freescale/mpc8260ads/flash.c
index e03852f..1abd24d 100644
--- a/board/freescale/mpc8260ads/flash.c
+++ b/board/freescale/mpc8260ads/flash.c
@@ -252,7 +252,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		if (info->protect[sect] == 0) {	/* not protected */
 			vu_long *addr = (vu_long *)(info->start[sect]);
 
-			last = start = get_timer (0);
+			last = start = time_now_ms();
 
 			/* Disable interrupts which might cause a timeout here */
 			flag = disable_interrupts();
@@ -274,7 +274,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 				enable_interrupts();
 
 			while ((*addr & INTEL_FINISHED) != INTEL_FINISHED) {
-				if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = INTEL_RESET;	/* reset bank */
 					return 1;
@@ -336,9 +336,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*addr & INTEL_FINISHED) != INTEL_FINISHED) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			printf("Write timed out\n");
 			rc = 1;
 			break;
@@ -452,9 +452,9 @@ int flash_real_protect(flash_info_t *info, long sector, int prot)
 		*addr = INTEL_CONFIRM;	/* clear */
 	}
 
-	start = get_timer(0);
+	start = time_now_ms();
 	while ((*addr & INTEL_FINISHED) != INTEL_FINISHED) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_UNLOCK_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_UNLOCK_TOUT) {
 			printf("Flash lock bit operation timed out\n");
 			rc = 1;
 			break;
diff --git a/board/freescale/mpc8266ads/flash.c b/board/freescale/mpc8266ads/flash.c
index 06dde36..f300515 100644
--- a/board/freescale/mpc8266ads/flash.c
+++ b/board/freescale/mpc8266ads/flash.c
@@ -304,7 +304,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		if (info->protect[sect] == 0) {	/* not protected */
 			vu_long *addr = (vu_long *)(info->start[sect]);
 
-			last = start = get_timer (0);
+			last = start = time_now_ms();
 
 			/* Disable interrupts which might cause a timeout here */
 			flag = disable_interrupts();
@@ -336,7 +336,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 					*addr = 0xFFFFFFFF;	/* reset bank */
 					return 1;
 				}
-				if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = 0xFFFFFFFF;	/* reset bank */
 					return 1;
@@ -458,10 +458,10 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	flag  = 0;
 	while (((csr = *addr) & 0x80808080) != 0x80808080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			flag = 1;
 			break;
 		}
@@ -497,9 +497,9 @@ static int clear_block_lock_bit(vu_long  * addr)
 	*addr = 0x60606060;
 	*addr = 0xd0d0d0d0;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	while(*addr != 0x80808080){
-		if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout on clearing Block Lock Bit\n");
 			*addr = 0xFFFFFFFF;	/* reset bank */
 			return 1;
diff --git a/board/funkwerk/vovpn-gw/flash.c b/board/funkwerk/vovpn-gw/flash.c
index fd3b16e..b6f77f7 100644
--- a/board/funkwerk/vovpn-gw/flash.c
+++ b/board/funkwerk/vovpn-gw/flash.c
@@ -236,7 +236,7 @@ flash_erase(flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 
 	for (sect = s_first; sect<=s_last; sect++) {
@@ -265,7 +265,7 @@ flash_erase(flash_info_t *info, int s_first, int s_last)
 		udelay (1000);
 
 		while (((status = *addr) & FLASH_STATUS_DONE) != FLASH_STATUS_DONE) {
-			if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf("Flash erase timeout at address %lx\n", info->start[sect]);
 				*addr = FLASH_CMD_SUSPEND_ERASE;
 				*addr = FLASH_CMD_RESET;
@@ -293,7 +293,7 @@ write_buff2( volatile FLASH_WORD_SIZE *dst,
 	FLASH_WORD_SIZE status;
 	int flag, i;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	while (1) {
 		/* Disable interrupts which might cause a timeout here */
 		flag = disable_interrupts();
@@ -307,7 +307,7 @@ write_buff2( volatile FLASH_WORD_SIZE *dst,
 			enable_interrupts();
 		}
 
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (-1);
 		}
 	}
@@ -329,7 +329,7 @@ poll_status( volatile FLASH_WORD_SIZE *addr )
 {
 	unsigned long start;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	/* wait for error or finish */
 	while (1) {
 		if (*addr == FLASH_STATUS_DONE) {
@@ -337,7 +337,7 @@ poll_status( volatile FLASH_WORD_SIZE *addr )
 				break;
 			}
 		}
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = FLASH_CMD_RESET;
 			return (-1);
 		}
@@ -433,9 +433,9 @@ flash_real_protect(flash_info_t *info, long sector, int prot)
 	}
 
 	/* wait for error or finish */
-	start = get_timer (0);
+	start = time_now_ms();
 	while(!(addr[0] & FLASH_STATUS_DONE)){
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Flash protect timeout at address %lx\n",  info->start[sector]);
 			addr[0] = FLASH_CMD_RESET;
 			return (1);
diff --git a/board/g2000/strataflash.c b/board/g2000/strataflash.c
index effe65a..2e8d8ed 100644
--- a/board/g2000/strataflash.c
+++ b/board/g2000/strataflash.c
@@ -432,9 +432,9 @@ static int flash_status_check(flash_info_t * info, ulong sector, ulong tout, cha
 	ulong start;
 
 	/* Wait for command completion */
-	start = get_timer (0);
+	start = time_now_ms();
 	while(!flash_isset(info, sector, 0, FLASH_STATUS_DONE)) {
-		if (get_timer(start) > info->erase_blk_tout) {
+		if (time_since_ms(start) > info->erase_blk_tout) {
 			printf("Flash %s timeout at address %lx\n", prompt, info->start[sector]);
 			flash_write_cmd(info, sector, 0, FLASH_CMD_RESET);
 			return ERR_TIMOUT;
diff --git a/board/gcplus/flash.c b/board/gcplus/flash.c
index ab567e8..0da5f13 100644
--- a/board/gcplus/flash.c
+++ b/board/gcplus/flash.c
@@ -270,7 +270,7 @@ flash_erase(flash_info_t * info, int s_first, int s_last)
 			printf("Erasing sector %2d ... ", sect);
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer(0);
+			start = time_now_ms();
 
 			*addr = (FPW) 0x00500050;	/* clear status register */
 			*addr = (FPW) 0x00200020;	/* erase setup */
@@ -279,7 +279,7 @@ flash_erase(flash_info_t * info, int s_first, int s_last)
 			while (((status =
 				 *addr) & (FPW) 0x00800080) !=
 			       (FPW) 0x00800080) {
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf("Timeout\n");
 					*addr = (FPW) 0x00B000B0;	/* suspend erase         */
 					*addr = (FPW) 0x00FF00FF;	/* reset to read mode */
@@ -412,11 +412,11 @@ write_data(flash_info_t * info, ulong dest, FPW data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/gen860t/flash.c b/board/gen860t/flash.c
index 827d9e0..e418d76 100644
--- a/board/gen860t/flash.c
+++ b/board/gen860t/flash.c
@@ -353,7 +353,7 @@ flash_erase(flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 
 	/*
@@ -385,7 +385,7 @@ flash_erase(flash_info_t *info, int s_first, int s_last)
 			udelay (1000);
 
 			while (((status = *addr) & SCS_SR7) != SCS_SR7) {
-				if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = SCS_BLOCK_ERASE_SUSPEND_CMD;
 					*addr = SCS_READ_CMD;
@@ -425,7 +425,7 @@ write_flash_buffer8(flash_info_t *info_p, vu_char *src_p, vu_char *dest_p,
 	ulong blocksize = info_p->size / (ulong)info_p->sector_count;
 
 	int i;
-	uint time = get_timer(0);
+	uint time = time_now_ms();
 
 	PRINTF("%s:%d: src: 0x%p dest: 0x%p  count: %d\n",
 		   __FUNCTION__, __LINE__, src_p, dest_p, count);
@@ -451,7 +451,7 @@ write_flash_buffer8(flash_info_t *info_p, vu_char *src_p, vu_char *dest_p,
 	 */
 	*block_addr_p = SCS_WRITE_BUF_CMD;
 	while ((*block_addr_p & SCS_XSR7) != SCS_XSR7) {
-		if (get_timer(time) >  CONFIG_SYS_FLASH_ALLOC_BUFFER_TOUT) {
+		if (time_since_ms(time) >  CONFIG_SYS_FLASH_ALLOC_BUFFER_TOUT) {
 			PRINTF("%s:%d: Buffer allocation timeout @ 0x%p (waited %d mS)\n",
 				   __FUNCTION__, __LINE__, block_addr_p,
 				   CONFIG_SYS_FLASH_ALLOC_BUFFER_TOUT);
@@ -476,9 +476,9 @@ write_flash_buffer8(flash_info_t *info_p, vu_char *src_p, vu_char *dest_p,
 	 */
 	*block_addr_p = SCS_PROGRAM_RESUME_CMD;
 #if 1
-	time = get_timer(0);
+	time = time_now_ms();
 	while ((*block_addr_p & SCS_SR7) != SCS_SR7) {
-		if (get_timer(time) >  CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(time) >  CONFIG_SYS_FLASH_WRITE_TOUT) {
 			PRINTF("%s:%d: Write timeout @ 0x%p (waited %d mS)\n",
 				   __FUNCTION__, __LINE__, block_addr_p, CONFIG_SYS_FLASH_WRITE_TOUT);
 			return 1;
@@ -629,10 +629,10 @@ write_data8 (flash_info_t *info, ulong dest, uchar data)
 	if (flag)
 		enable_interrupts();
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	while (((status = *addr) & SCS_SR7) != SCS_SR7) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = SCS_READ_CMD;
 			return (1);
 		}
diff --git a/board/genietv/flash.c b/board/genietv/flash.c
index 5313ad8..e719381 100644
--- a/board/genietv/flash.c
+++ b/board/genietv/flash.c
@@ -316,13 +316,13 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (volatile unsigned char *)(info->start[l_sect]);
 
 	while ((addr[0] & 0xFF) != 0xFF)
 	{
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -451,10 +451,10 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	    /* data polling for D7 */
-	    start = get_timer (0);
+	    start = time_now_ms();
 	    while ((*cdest ^ *cdata) & 0x80)
 	    {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	    }
diff --git a/board/gw8260/flash.c b/board/gw8260/flash.c
index 6035f69..6ac7c64 100644
--- a/board/gw8260/flash.c
+++ b/board/gw8260/flash.c
@@ -353,11 +353,11 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
     if (l_sect < 0)
 	goto DONE;
 
-    start = get_timer (0);
+    start = time_now_ms();
     last  = start;
     addr = (vu_long*)(info->start[l_sect]);
     while ((addr[0] & 0x80808080) != 0x80808080) {
-	if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+	if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 	    printf ("Timeout\n");
 	    return 1;
 	}
@@ -510,9 +510,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 	enable_interrupts();
 
     /* data polling for D7 */
-    start = get_timer (0);
+    start = time_now_ms();
     while ((*((vu_long *)dest) & 0x80808080) != (data & 0x80808080)) {
-	if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 	    return (1);
 	}
     }
diff --git a/board/hermes/flash.c b/board/hermes/flash.c
index 888231c..a382ada 100644
--- a/board/hermes/flash.c
+++ b/board/hermes/flash.c
@@ -372,11 +372,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (vu_char*)(info->start[l_sect]);
 	while ((addr[0] & 0x80) != 0x80) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -447,9 +447,9 @@ static int write_byte (flash_info_t *info, ulong dest, uchar data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_char *)dest) & 0x80) != (data & 0x80)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/hidden_dragon/flash.c b/board/hidden_dragon/flash.c
index 2ce1dc4..0efce69 100644
--- a/board/hidden_dragon/flash.c
+++ b/board/hidden_dragon/flash.c
@@ -419,14 +419,14 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = start;
 	addr = (FLASH_WORD_SIZE *) (info->start[0] + ((info->start[l_sect] -
 						       info->
 						       start[0]) << sh8b));
 	while ((addr[0] & (FLASH_WORD_SIZE) 0x00800080) !=
 	       (FLASH_WORD_SIZE) 0x00800080) {
-		if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -562,10 +562,10 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 			enable_interrupts ();
 
 		/* data polling for D7 */
-		start = get_timer (0);
+		start = time_now_ms();
 		while ((dest2[i << sh8b] & (FLASH_WORD_SIZE) 0x00800080) !=
 		       (data2[i] & (FLASH_WORD_SIZE) 0x00800080)) {
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
diff --git a/board/hymod/flash.c b/board/hymod/flash.c
index e2cf38c..f3e2484 100644
--- a/board/hymod/flash.c
+++ b/board/hymod/flash.c
@@ -196,9 +196,9 @@ bank_write_word (volatile bank_addr_t addr, bank_word_t value)
 	retval = 0;
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	do {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			retval = 1;
 			goto done;
 		}
@@ -349,7 +349,7 @@ flash_erase (flash_info_t *info, int s_first, int s_last)
 			prot, (prot > 1 ? "s" : ""));
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = 0;
 	haderr = 0;
 
@@ -363,10 +363,10 @@ flash_erase (flash_info_t *info, int s_first, int s_last)
 			/* wait at least 80us - let's wait 1 ms */
 			udelay (1000);
 
-			estart = get_timer (start);
+			estart = time_since_ms(start);
 
 			do {
-				now = get_timer (start);
+				now = time_since_ms(start);
 
 				if (now - estart > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout (sect %d)\n", sect);
diff --git a/board/icecube/flash.c b/board/icecube/flash.c
index 7a433b3..ff3ad4a 100644
--- a/board/icecube/flash.c
+++ b/board/icecube/flash.c
@@ -318,7 +318,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	last  = get_timer(0);
+	last  = time_now_ms();
 
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect<=s_last && rcode == 0; sect++) {
@@ -352,7 +352,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		if (flag)
 			enable_interrupts();
 
-		start = get_timer(0);
+		start = time_now_ms();
 
 		/* wait@least 50us for AMD, 80us for Intel.
 		 * Let's wait 1 ms.
@@ -360,7 +360,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		udelay (1000);
 
 		while ((*addr & (FPW)0x00800080) != (FPW)0x00800080) {
-			if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf ("Timeout\n");
 
 				if (intel) {
@@ -374,16 +374,16 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 			}
 
 			/* show that we're waiting */
-			if ((get_timer(last)) > CONFIG_SYS_HZ) {/* every second */
+			if ((time_since_ms(last)) > CONFIG_SYS_HZ) {/* every second */
 				putc ('.');
-				last = get_timer(0);
+				last = time_now_ms();
 			}
 		}
 
 		/* show that we're waiting */
-		if ((get_timer(last)) > CONFIG_SYS_HZ) {	/* every second */
+		if ((time_since_ms(last)) > CONFIG_SYS_HZ) {	/* every second */
 			putc ('.');
-			last = get_timer(0);
+			last = time_now_ms();
 		}
 
 		flash_reset(info);	/* reset to read mode	*/
@@ -478,11 +478,11 @@ static int write_word_amd (flash_info_t *info, FPWV *dest, FPW data)
 	if (flag)
 		enable_interrupts();
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	/* data polling for D7 */
 	while (res == 0 && (*dest & (FPW)0x00800080) != (data & (FPW)0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*dest = (FPW)0x00F000F0;	/* reset bank */
 			res = 1;
 		}
diff --git a/board/icu862/flash.c b/board/icu862/flash.c
index 2afeff4..501213c 100644
--- a/board/icu862/flash.c
+++ b/board/icu862/flash.c
@@ -459,7 +459,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (vu_long*)(info->start[l_sect]);
 #if 0
@@ -468,7 +468,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	while ((addr[0] & 0xFFFFFFFF) != 0xFFFFFFFF)
 #endif
 	{
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			puts ("Timeout\n");
 			return 1;
 		}
@@ -599,14 +599,14 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 #if 0
 	while ((*((vu_long *)dest) & 0x00800080) != (data & 0x00800080))
 #else
 	while ((*((vu_long *)dest) & 0x80808080) != (data & 0x80808080))
 #endif
 	{
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/idmr/flash.c b/board/idmr/flash.c
index 9f4ff2b..07d2b48 100644
--- a/board/idmr/flash.c
+++ b/board/idmr/flash.c
@@ -171,7 +171,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		printf ("Erasing sector %2d ... ", sect);
 
 		/* arm simple, non interrupt dependent timer */
-		start = get_timer(0);
+		start = time_now_ms();
 
 		if (info->protect[sect] == 0) {	/* not protected */
 			volatile u16 *addr =
@@ -192,7 +192,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 				result = *addr;
 
 				/* check timeout */
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT * CONFIG_SYS_HZ / 1000) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT * CONFIG_SYS_HZ / 1000) {
 					MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
 					chip1 = TMO;
 					break;
@@ -274,7 +274,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait until flash is ready */
 	chip1 = 0;
@@ -282,7 +282,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 		result = *addr;
 
 		/* check timeout */
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT * CONFIG_SYS_HZ / 1000) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT * CONFIG_SYS_HZ / 1000) {
 			chip1 = ERR | TMO;
 			break;
 		}
diff --git a/board/impa7/flash.c b/board/impa7/flash.c
index 6eae428..54ba14f 100644
--- a/board/impa7/flash.c
+++ b/board/impa7/flash.c
@@ -166,7 +166,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		printf ("Erasing sector %2d ... ", sect);
 
 		/* arm simple, non interrupt dependent timer */
-		start = get_timer(0);
+		start = time_now_ms();
 
 		if (info->protect[sect] == 0) {	/* not protected */
 			vu_long *addr = (vu_long *) (info->start[sect]);
@@ -175,7 +175,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			*addr = 0x00D000D0;	/* erase confirm */
 
 			while ((*addr & 0x00800080) != 0x00800080) {
-				if (get_timer(start) >
+				if (time_since_ms(start) >
 				    CONFIG_SYS_FLASH_ERASE_TOUT) {
 					*addr = 0x00B000B0;	/* suspend erase */
 					*addr = 0x00FF00FF;	/* reset to read mode */
@@ -238,14 +238,14 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* read status register command */
 	*addr = 0x00700070;
 
 	/* wait while polling the status register */
 	while ((*addr & 0x00800080) != 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			rc = ERR_TIMOUT;
 			/* suspend program command */
 			*addr = 0x00B000B0;
diff --git a/board/incaip/flash.c b/board/incaip/flash.c
index cc11e24..0f283ad 100644
--- a/board/incaip/flash.c
+++ b/board/incaip/flash.c
@@ -442,7 +442,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	last  = get_timer(0);
+	last  = time_now_ms();
 
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect<=s_last && rcode == 0; sect++) {
@@ -476,7 +476,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		if (flag)
 			enable_interrupts();
 
-		start = get_timer(0);
+		start = time_now_ms();
 
 		/* wait@least 50us for AMD, 80us for Intel.
 		 * Let's wait 1 ms.
@@ -484,7 +484,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		udelay (1000);
 
 		while ((*addr & (FPW)0x00800080) != (FPW)0x00800080) {
-			if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf ("Timeout\n");
 
 				if (intel) {
@@ -498,16 +498,16 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 			}
 
 			/* show that we're waiting */
-			if ((get_timer(last)) > CONFIG_SYS_HZ) {/* every second */
+			if ((time_since_ms(last)) > CONFIG_SYS_HZ) {/* every second */
 				putc ('.');
-				last = get_timer(0);
+				last = time_now_ms();
 			}
 		}
 
 		/* show that we're waiting */
-		if ((get_timer(last)) > CONFIG_SYS_HZ) {	/* every second */
+		if ((time_since_ms(last)) > CONFIG_SYS_HZ) {	/* every second */
 			putc ('.');
-			last = get_timer(0);
+			last = time_now_ms();
 		}
 
 		flash_reset(info);	/* reset to read mode	*/
@@ -605,11 +605,11 @@ static int write_word_amd (flash_info_t *info, FPWV *dest, FPW data)
     if (flag)
 	enable_interrupts();
 
-    start = get_timer (0);
+    start = time_now_ms();
 
     /* data polling for D7 */
     while (res == 0 && (*dest & (FPW)0x00800080) != (data & (FPW)0x00800080)) {
-	if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 	    *dest = (FPW)0x00F000F0;	/* reset bank */
 	    res = 1;
 	}
@@ -652,10 +652,10 @@ static int write_word_intel (flash_info_t *info, FPWV *dest, FPW data)
     if (flag)
 	enable_interrupts();
 
-    start = get_timer (0);
+    start = time_now_ms();
 
     while (res == 0 && (*dest & (FPW)0x00800080) != (FPW)0x00800080) {
-	if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 	    *dest = (FPW)0x00B000B0;	/* Suspend program	*/
 	    res = 1;
 	}
diff --git a/board/innokom/flash.c b/board/innokom/flash.c
index ed4b987..78d9ae4 100644
--- a/board/innokom/flash.c
+++ b/board/innokom/flash.c
@@ -219,7 +219,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
 		PRINTK("\n");
 
 		/* arm simple, non interrupt dependent timer */
-		start = get_timer(0);
+		start = time_now_ms();
 
 		if (info->protect[sect] == 0) {	/* not protected */
 			u16 * volatile addr = (u16 * volatile)(info->start[sect]);
@@ -236,7 +236,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
 
 			while ((*addr & 0x0080) != 0x0080) {
 				PRINTK(".");
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					*addr = 0x00B0; /* suspend erase*/
 					*addr = 0x00FF; /* read mode    */
 					rc = ERR_TIMOUT;
@@ -304,11 +304,11 @@ static int write_word (flash_info_t *info, ulong dest, ushort data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while(((val = *addr) & 0x80) != 0x80) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			rc = ERR_TIMOUT;
 			*addr = 0xB0; /* suspend program command */
 			goto outahere;
diff --git a/board/ip860/flash.c b/board/ip860/flash.c
index 6491af2..5f91cdc 100644
--- a/board/ip860/flash.c
+++ b/board/ip860/flash.c
@@ -283,7 +283,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 
 	/* Start erase on unprotected sectors */
@@ -309,7 +309,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 			udelay (1000);
 
 			while ((*addr & 0x00800080) != 0x00800080) {
-				if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = 0xFFFFFFFF;	/* reset bank */
 					return 1;
@@ -431,10 +431,10 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	flag  = 0;
 	while (((csr = *addr) & 0x00800080) != 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			flag = 1;
 			break;
 		}
diff --git a/board/iphase4539/flash.c b/board/iphase4539/flash.c
index 3dfee1f..710dd09 100644
--- a/board/iphase4539/flash.c
+++ b/board/iphase4539/flash.c
@@ -277,11 +277,11 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = info->start[l_sect];
 	while ((in8(addr) & 0x80) != 0x80) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -419,9 +419,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((in32(dest) & 0x80808080) != (data & 0x80808080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 		iobarrier_rw();
diff --git a/board/ivm/flash.c b/board/ivm/flash.c
index cf309d7..bb3311c 100644
--- a/board/ivm/flash.c
+++ b/board/ivm/flash.c
@@ -431,7 +431,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect<=s_last; sect++) {
@@ -454,7 +454,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 			udelay (1000);
 
 			while (((status = *addr) & 0x0080) != 0x0080) {
-				if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = 0x00FF;	/* reset to read mode */
 					return 1;
@@ -580,10 +580,10 @@ static int write_data (flash_info_t *info, ulong dest, ulong data)
 	if (flag)
 		enable_interrupts();
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	while (((status = *addr) & 0x0080) != 0x0080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = 0x00FF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/ixdp425/flash.c b/board/ixdp425/flash.c
index 5e4e0e7..7174dd5 100644
--- a/board/ixdp425/flash.c
+++ b/board/ixdp425/flash.c
@@ -261,7 +261,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			printf ("Erasing sector %2d ... ", sect);
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer(start);
+			start = time_since_ms(start);
 
 			*addr = (FPW) 0x00500050;	/* clear status register */
 			*addr = (FPW) 0x00200020;	/* erase setup */
@@ -270,7 +270,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			while (((status =
 				 *addr) & (FPW) 0x00800080) !=
 			       (FPW) 0x00800080) {
-				if (get_timer(start) >
+				if (time_since_ms(start) >
 				    CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = (FPW) 0x00B000B0;	/* suspend erase         */
@@ -404,11 +404,11 @@ static int write_data (flash_info_t * info, ulong dest, FPW data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/jse/flash.c b/board/jse/flash.c
index 5735f19..99e3f58 100644
--- a/board/jse/flash.c
+++ b/board/jse/flash.c
@@ -277,11 +277,11 @@ int wait_for_DQ7 (flash_info_t * info, int sect)
 	volatile FLASH_WORD_SIZE *addr =
 		(FLASH_WORD_SIZE *) (info->start[sect]);
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = start;
 	while ((addr[0] & (FLASH_WORD_SIZE) 0x00800080) !=
 	       (FLASH_WORD_SIZE) 0x00800080) {
-		if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return -1;
 		}
@@ -506,11 +506,11 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 			enable_interrupts ();
 
 		/* data polling for D7 */
-		start = get_timer (0);
+		start = time_now_ms();
 		while ((dest2[i] & (FLASH_WORD_SIZE) 0x00800080) !=
 		       (data2[i] & (FLASH_WORD_SIZE) 0x00800080)) {
 
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
diff --git a/board/kup/common/flash.c b/board/kup/common/flash.c
index 134a9d5..c0f914c 100644
--- a/board/kup/common/flash.c
+++ b/board/kup/common/flash.c
@@ -283,7 +283,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect<=s_last; sect++) {
@@ -325,7 +325,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 #else
 			while ((sect_addr[0] & 0x00800080) != 0x00800080) {
 #endif
-				if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					return 1;
 				}
@@ -465,9 +465,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_short *)dest) & 0x0080) != (high_data & 0x0080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
@@ -499,7 +499,7 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 
 #ifdef CONFIG_FLASH_16BIT
 	while ((*((vu_short *)dest) & 0x0080) != (low_data & 0x0080)) {
@@ -507,7 +507,7 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 	while ((*((vu_long *)dest) & 0x00800080) != (data & 0x00800080)) {
 #endif
 
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/lantec/flash.c b/board/lantec/flash.c
index 97ed054..89f6cbd 100644
--- a/board/lantec/flash.c
+++ b/board/lantec/flash.c
@@ -487,11 +487,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (vu_long*)(info->start[l_sect]);
 	while ((addr[0] & 0x00800080) != 0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -612,9 +612,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_long *)dest) & 0x00800080) != (data & 0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/lart/flash.c b/board/lart/flash.c
index 408c884..e931fc0 100644
--- a/board/lart/flash.c
+++ b/board/lart/flash.c
@@ -292,7 +292,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	printf("Erasing sector %2d ... ", sect);
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	if (info->protect[sect] == 0)
 	{	/* not protected */
@@ -306,7 +306,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	    do
 	    {
 		/* check timeout */
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT)
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT)
 		{
 		    *addr = PUZZLE_TO_FLASH(CMD_SUSPEND);
 		    result = BIT_TIMEOUT;
@@ -379,13 +379,13 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
     *addr = data;
 
     /* arm simple, non interrupt dependent timer */
-    start = get_timer(0);
+    start = time_now_ms();
 
     /* wait until flash is ready */
     do
     {
 	/* check timeout */
-	if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT)
+	if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT)
 	{
 	    *addr = PUZZLE_TO_FLASH(CMD_SUSPEND);
 	    result = BIT_TIMEOUT;
diff --git a/board/linkstation/avr.c b/board/linkstation/avr.c
index ec6d400..7ecd1d4 100644
--- a/board/linkstation/avr.c
+++ b/board/linkstation/avr.c
@@ -115,8 +115,8 @@ static inline char avr_getc(void)
 
 static int push_timeout(char button_code)
 {
-	ulong push_start = get_timer(0);
-	while (get_timer(push_start) <= PUSHHOLD)
+	ulong push_start = time_now_ms();
+	while (time_since_ms(push_start) <= PUSHHOLD)
 		if (avr_tstc() && avr_getc() == button_code)
 			return 0;
 	return 1;
@@ -132,21 +132,21 @@ static void next_boot_choice(void)
 	char c;
 
 	button_on = 0;
-	return_start = get_timer(0);
+	return_start = time_now_ms();
 
 	on_times = boot_choice;
 	led_state = 0;
 	miconCntl_SendCmd(HDDLEDOFF);
-	pulse_start = get_timer(0);
+	pulse_start = time_now_ms();
 
-	while (get_timer(return_start) <= NOBUTTON || button_on) {
+	while (time_since_ms(return_start) <= NOBUTTON || button_on) {
 		if (avr_tstc()) {
 			c = avr_getc();
 			if (c == PWRP)
 				button_on = 1;
 			else if (c == PWRR) {
 				button_on = 0;
-				return_start = get_timer(0);
+				return_start = time_now_ms();
 				if (++boot_choice > MAX_BOOT_CHOICE)
 					boot_choice = 1;
 				sprintf(envbuffer, "bootcmd%d", boot_choice);
@@ -157,12 +157,12 @@ static void next_boot_choice(void)
 				on_times = boot_choice;
 				led_state = 1;
 				miconCntl_SendCmd(HDDLEDON);
-				pulse_start = get_timer(0);
+				pulse_start = time_now_ms();
 			} else {
 				perror("Unexpected code: 0x%02X\n", c);
 			}
 		}
-		if (on_times && get_timer(pulse_start) > PULSETIME) {
+		if (on_times && time_since_ms(pulse_start) > PULSETIME) {
 			if (led_state == 1) {
 				--on_times;
 				led_state = 0;
@@ -171,13 +171,13 @@ static void next_boot_choice(void)
 				led_state = 1;
 				miconCntl_SendCmd(HDDLEDON);
 			}
-			pulse_start = get_timer(0);
+			pulse_start = time_now_ms();
 		}
-		if (!on_times && get_timer(pulse_start) > LONGPAUSE) {
+		if (!on_times && time_since_ms(pulse_start) > LONGPAUSE) {
 			on_times = boot_choice;
 			led_state = 1;
 			miconCntl_SendCmd(HDDLEDON);
-			pulse_start = get_timer(0);
+			pulse_start = time_now_ms();
 		}
 	}
 	if (led_state)
@@ -195,21 +195,21 @@ void next_cons_choice(int console)
 
 	button_on = 0;
 	cons_choice = console;
-	return_start = get_timer(0);
+	return_start = time_now_ms();
 
 	on_times = cons_choice+1;
 	led_state = 1;
 	miconCntl_SendCmd(HDDLEDON);
-	pulse_start = get_timer(0);
+	pulse_start = time_now_ms();
 
-	while (get_timer(return_start) <= NOBUTTON || button_on) {
+	while (time_since_ms(return_start) <= NOBUTTON || button_on) {
 		if (avr_tstc()) {
 			c = avr_getc();
 			if (c == RESP)
 				button_on = 1;
 			else if (c == RESR) {
 				button_on = 0;
-				return_start = get_timer(0);
+				return_start = time_now_ms();
 				cons_choice = (cons_choice + 1) % MAX_CONS_CHOICE;
 				console_assign(stdin, consoles[cons_choice]);
 				console_assign(stdout, consoles[cons_choice]);
@@ -217,12 +217,12 @@ void next_cons_choice(int console)
 				on_times = cons_choice+1;
 				led_state = 0;
 				miconCntl_SendCmd(HDDLEDOFF);
-				pulse_start = get_timer(0);
+				pulse_start = time_now_ms();
 			} else {
 				perror("Unexpected code: 0x%02X\n", c);
 			}
 		}
-		if (on_times && get_timer(pulse_start) > PULSETIME) {
+		if (on_times && time_since_ms(pulse_start) > PULSETIME) {
 			if (led_state == 0) {
 				--on_times;
 				led_state = 1;
@@ -231,13 +231,13 @@ void next_cons_choice(int console)
 				led_state = 0;
 				miconCntl_SendCmd(HDDLEDOFF);
 			}
-			pulse_start = get_timer(0);
+			pulse_start = time_now_ms();
 		}
-		if (!on_times && get_timer(pulse_start) > LONGPAUSE) {
+		if (!on_times && time_since_ms(pulse_start) > LONGPAUSE) {
 			on_times = cons_choice+1;
 			led_state = 0;
 			miconCntl_SendCmd(HDDLEDOFF);
-			pulse_start = get_timer(0);
+			pulse_start = time_now_ms();
 		}
 	}
 	if (led_state);
diff --git a/board/lpd7a40x/flash.c b/board/lpd7a40x/flash.c
index f5c0713..65db949 100644
--- a/board/lpd7a40x/flash.c
+++ b/board/lpd7a40x/flash.c
@@ -285,7 +285,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			sect, info->start[sect]);
 
 		/* arm simple, non interrupt dependent timer */
-		start = get_timer(0);
+		start = time_now_ms();
 
 		if (info->protect[sect] == 0) {	/* not protected */
 			vu_long *addr = (vu_long *) (info->start[sect]);
@@ -298,7 +298,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			/* wait until flash is ready */
 			do {
 				/* check timeout */
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					*addr = CMD_STATUS_RESET;
 					result = BIT_TIMEOUT;
 					break;
@@ -389,12 +389,12 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait until flash is ready */
 	do {
 		/* check timeout */
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			*addr = CMD_SUSPEND;
 			result = BIT_TIMEOUT;
 			break;
diff --git a/board/lubbock/flash.c b/board/lubbock/flash.c
index 1ea2893..8dac9c5 100644
--- a/board/lubbock/flash.c
+++ b/board/lubbock/flash.c
@@ -266,14 +266,14 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 			printf ("Erasing sector %2d ... ", sect);
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer(0);
+			start = time_now_ms();
 
 			*addr = (FPW) 0x00500050;	/* clear status register */
 			*addr = (FPW) 0x00200020;	/* erase setup */
 			*addr = (FPW) 0x00D000D0;	/* erase confirm */
 
 			while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = (FPW) 0x00B000B0;	/* suspend erase     */
 					*addr = (FPW) 0x00FF00FF;	/* reset to read mode */
@@ -404,11 +404,11 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer(start)) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start)) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/lwmon/flash.c b/board/lwmon/flash.c
index f71cc24..93d9e7b 100644
--- a/board/lwmon/flash.c
+++ b/board/lwmon/flash.c
@@ -392,7 +392,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect<=s_last; sect++) {
@@ -409,7 +409,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 			udelay (1000);
 			/* This takes awfully long - up to 50 ms and more */
 			while (((status = *addr) & 0x00800080) != 0x00800080) {
-				if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = 0x00FF00FF; /* reset to read mode */
 					return 1;
@@ -435,7 +435,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 			udelay (1000);
 
 			while (((status = *addr) & 0x00800080) != 0x00800080) {
-				if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = 0x00B000B0; /* suspend erase	  */
 					*addr = 0x00FF00FF; /* reset to read mode */
@@ -558,9 +558,9 @@ static int flash_status_check(vu_long *addr, ulong tout, char * prompt)
 	ulong start;
 
 	/* Wait for command completion */
-	start = get_timer (0);
+	start = time_now_ms();
 	while(((status = *addr) & 0x00800080) != 0x00800080) {
-		if (get_timer(start) > tout) {
+		if (time_since_ms(start) > tout) {
 			printf("Flash %s timeout at address %p\n", prompt, addr);
 			*addr = 0x00FF00FF;	/* restore read mode */
 			return (1);
diff --git a/board/mbx8xx/flash.c b/board/mbx8xx/flash.c
index 2ec420d..321a096 100644
--- a/board/mbx8xx/flash.c
+++ b/board/mbx8xx/flash.c
@@ -270,11 +270,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
     if (l_sect < 0)
       goto DONE;
 
-    start = get_timer (0);
+    start = time_now_ms();
     last  = start;
     addr = (vu_long*)(info->start[l_sect]);
     while ((addr[0] & 0x80808080) != 0x80808080) {
-	if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+	if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 	    printf ("Timeout\n");
 	    return 1;
 	}
@@ -395,9 +395,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
       enable_interrupts();
 
     /* data polling for D7 */
-    start = get_timer (0);
+    start = time_now_ms();
     while ((*((vu_long *)dest) & 0x80808080) != (data & 0x80808080)) {
-	if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 	    return (1);
 	}
     }
diff --git a/board/modnet50/flash.c b/board/modnet50/flash.c
index 4834e21..668fcb7 100644
--- a/board/modnet50/flash.c
+++ b/board/modnet50/flash.c
@@ -339,14 +339,14 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 						(__u16) SECERASE_CMD;
 
 					/* wait some time */
-					start = get_timer(0);
-					while (get_timer(start) < 1000) {
+					start = time_now_ms();
+					while (time_since_ms(start) < 1000) {
 					}
 
 					/* arm simple, non interrupt dependent timer */
-					start = get_timer(0);
+					start = time_now_ms();
 					while (flash_check_erase_amd (info->start[sect])) {
-						if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+						if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 							printf ("timeout!\n");
 							/* OOPS: reach timeout,
 							 * try to reset chip
@@ -448,10 +448,10 @@ static int write_word (flash_info_t * info, ulong dest, ushort data)
 	}
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	while (flash_check_write_amd (dest)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			printf ("timeout! @ %08lX\n", dest);
 			/* OOPS: reach timeout,
 			 *       try to reset chip */
diff --git a/board/mpl/common/flash.c b/board/mpl/common/flash.c
index 61f031a..1b81275 100644
--- a/board/mpl/common/flash.c
+++ b/board/mpl/common/flash.c
@@ -552,10 +552,10 @@ int wait_for_DQ7(flash_info_t *info, int sect)
 	ulong start, now, last;
 	volatile FLASH_WORD_SIZE *addr = (FLASH_WORD_SIZE *)(info->start[sect]);
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	while ((addr[0] & (FLASH_WORD_SIZE)0x00800080) != (FLASH_WORD_SIZE)0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return ERR_TIMOUT;
 		}
@@ -573,10 +573,10 @@ int intel_wait_for_DQ7(flash_info_t *info, int sect)
 	ulong start, now, last, status;
 	volatile FLASH_WORD_SIZE *addr = (FLASH_WORD_SIZE *)(info->start[sect]);
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	while ((addr[0] & (FLASH_WORD_SIZE)0x00800080) != (FLASH_WORD_SIZE)0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return ERR_TIMOUT;
 		}
@@ -848,11 +848,11 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 			if (flag)
 				enable_interrupts();
 			/* data polling for D7 */
-			start = get_timer (0);
+			start = time_now_ms();
 			udelay(10);
 			while ((dest2[i] & (FLASH_WORD_SIZE)0x00800080) != (FLASH_WORD_SIZE)0x00800080)
 			{
-				if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
 					return (1);
 			}
 			dest2[i] = (FLASH_WORD_SIZE)0x00FF00FF; /* return to read mode */
@@ -870,10 +870,10 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 			if (flag)
 				enable_interrupts();
 			/* data polling for D7 */
-			start = get_timer (0);
+			start = time_now_ms();
 			while ((dest2[i] & (FLASH_WORD_SIZE)0x00800080) !=
 				(data2[i] & (FLASH_WORD_SIZE)0x00800080)) {
-				if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 					return (1);
 				}
 			}
diff --git a/board/mpl/mip405/mip405.c b/board/mpl/mip405/mip405.c
index e93d994..ad5299a 100644
--- a/board/mpl/mip405/mip405.c
+++ b/board/mpl/mip405/mip405.c
@@ -686,7 +686,7 @@ int misc_init_r (void)
 
 	/* check, if RTC is running */
 	rtc_get (&tm);
-	start=get_timer(0);
+	start=time_now_ms();
 	/* if MIP405 has booted from PCI, reset CCR0[24] as described in errata PCI_18 */
 	if (mfdcr(CPC0_PSR) & PSR_ROM_LOC)
 	       mtspr(SPRN_CCR0, (mfspr(SPRN_CCR0) & ~0x80));
@@ -711,7 +711,6 @@ extern int mk_date (char *, struct rtc_time *);
 
 int last_stage_init (void)
 {
-	unsigned long stop;
 	struct rtc_time newtm;
 	char *s;
 
@@ -728,11 +727,11 @@ int last_stage_init (void)
 	stdio_print_current_devices ();
 	check_env ();
 	/* check if RTC time is valid */
-	stop=get_timer(start);
-	while(stop<1200) {   /* we wait 1.2 sec to check if the RTC is running */
+
+	/* we wait 1.2 sec to check if the RTC is running */
+	while(time_since_ms(start) < 1200)
 		udelay(1000);
-		stop=get_timer(start);
-	}
+
 	rtc_get (&newtm);
 	if(tm.tm_sec==newtm.tm_sec) {
 		s=getenv("defaultdate");
diff --git a/board/mpl/vcma9/flash.c b/board/mpl/vcma9/flash.c
index 5d49204..6b8694b 100644
--- a/board/mpl/vcma9/flash.c
+++ b/board/mpl/vcma9/flash.c
@@ -216,7 +216,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		printf ("Erasing sector %2d ... ", sect);
 
 		/* arm simple, non interrupt dependent timer */
-		start = get_timer(0);
+		start = time_now_ms();
 
 		if (info->protect[sect] == 0) {	/* not protected */
 			vu_short *addr = (vu_short *) (info->start[sect]);
@@ -236,7 +236,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 				result = *addr;
 
 				/* check timeout */
-				if (get_timer(start) >
+				if (time_since_ms(start) >
 				    CONFIG_SYS_FLASH_ERASE_TOUT) {
 					MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
 					chip = TMO;
@@ -325,7 +325,7 @@ static int write_hword (flash_info_t * info, ulong dest, ushort data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait until flash is ready */
 	chip = 0;
@@ -333,7 +333,7 @@ static int write_hword (flash_info_t * info, ulong dest, ushort data)
 		result = *addr;
 
 		/* check timeout */
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			chip = ERR | TMO;
 			break;
 		}
diff --git a/board/musenki/flash.c b/board/musenki/flash.c
index 40965be..f3470c9 100644
--- a/board/musenki/flash.c
+++ b/board/musenki/flash.c
@@ -390,7 +390,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect<=s_last; sect++) {
@@ -414,7 +414,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 			udelay (1000);
 
 			while (((status = BS(*addr)) & BYTEME(0x00800080)) != BYTEME(0x00800080)) {
-				if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = BS(0xB0); /* suspend erase	  */
 					*addr = BS(0xFF); /* reset to read mode */
@@ -494,10 +494,10 @@ static int write_data (flash_info_t *info, uchar *dest, uchar data)
 		enable_interrupts();
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	while (((status = BS(*addr)) & BYTEME(0x00800080)) != BYTEME(0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = BS(0xFF);	/* restore read mode */
 			return 1;
 		}
diff --git a/board/mvblue/flash.c b/board/mvblue/flash.c
index 2d6acf5..107e8bc 100644
--- a/board/mvblue/flash.c
+++ b/board/mvblue/flash.c
@@ -411,12 +411,12 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (FDT *)(info->start[l_sect]);
 
 	while ((addr[0] & ERASE_CONFIRM_DATA) != ERASE_CONFIRM_DATA) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -551,10 +551,10 @@ static int write_char (flash_info_t *info, ulong dest, uchar data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	addr = (vu_char *)dest;
 	while (( (*addr) & WRITE_CONFIRM_DATA) != (data & WRITE_CONFIRM_DATA)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			printf(" *** ERROR: Flash write timeout !");
 			return (1);
 		}
diff --git a/board/mx1ads/syncflash.c b/board/mx1ads/syncflash.c
index 7331efa..e0dc105 100644
--- a/board/mx1ads/syncflash.c
+++ b/board/mx1ads/syncflash.c
@@ -276,7 +276,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last) {
 
 /* arm simple, non interrupt dependent timer */
 
-		get_timer(0);
+		time_now_ms();
 
 		SF_NvmodeErase();
 		SF_NvmodeWrite();
diff --git a/board/mx1fs2/flash.c b/board/mx1fs2/flash.c
index da4ebe6..246327f 100644
--- a/board/mx1fs2/flash.c
+++ b/board/mx1fs2/flash.c
@@ -488,7 +488,7 @@ flash_erase(flash_info_t * info, int s_first, int s_last)
 		printf("\n");
 	}
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 
 	/* Start erase on unprotected sectors */
@@ -528,7 +528,7 @@ flash_erase(flash_info_t * info, int s_first, int s_last)
 		udelay(1000);
 
 		while ((*addr & (FPW) 0x00800080) != (FPW) 0x00800080) {
-			if ((now = get_timer(0)) - start > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf("Timeout\n");
 
 				if (intel) {
@@ -542,9 +542,9 @@ flash_erase(flash_info_t * info, int s_first, int s_last)
 			}
 
 			/* show that we're waiting */
-			if ((now - last) > 1000) {	/* every second */
+			if (time_since_ms(last) > 1000) { /* every second */
 				putc('.');
-				last = now;
+				last = time_now_ms();
 			}
 		}
 
@@ -715,12 +715,12 @@ write_word_amd(flash_info_t * info, FPWV * dest, FPW data)
 	if (flag)
 		enable_interrupts();
 
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* data polling for D7 */
 	while (res == 0
 	       && (*dest & (FPW) 0x00800080) != (data & (FPW) 0x00800080)) {
-		if (get_timer(0) - start > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*dest = (FPW) 0x00F000F0;	/* reset bank */
 			printf("SHA timeout\n");
 			res = 1;
@@ -765,10 +765,10 @@ write_word_intel(flash_info_t * info, FPWV * dest, FPW data)
 	if (flag)
 		enable_interrupts();
 
-	start = get_timer(0);
+	start = time_now_ms();
 
 	while (res == 0 && (*dest & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*dest = (FPW) 0x00B000B0;	/* Suspend program      */
 			res = 1;
 		}
diff --git a/board/netphone/flash.c b/board/netphone/flash.c
index 349d98e..47a3ac5 100644
--- a/board/netphone/flash.c
+++ b/board/netphone/flash.c
@@ -444,11 +444,11 @@ int flash_erase(flash_info_t * info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 	addr = (vu_char *) (info->start[l_sect]);
 	while ((addr[0] & 0x80) != 0x80) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Timeout\n");
 			return 1;
 		}
@@ -519,9 +519,9 @@ static int write_byte(flash_info_t * info, ulong dest, uchar data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer(0);
+	start = time_now_ms();
 	while ((*((vu_char *) dest) & 0x80) != (data & 0x80)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/netta/flash.c b/board/netta/flash.c
index 565fd67..fc00b29 100644
--- a/board/netta/flash.c
+++ b/board/netta/flash.c
@@ -423,11 +423,11 @@ int flash_erase(flash_info_t * info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 	addr = (vu_char *) (info->start[l_sect]);
 	while ((addr[0] & 0x80) != 0x80) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Timeout\n");
 			return 1;
 		}
@@ -498,9 +498,9 @@ static int write_byte(flash_info_t * info, ulong dest, uchar data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer(0);
+	start = time_now_ms();
 	while ((*((vu_char *) dest) & 0x80) != (data & 0x80)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/netta2/flash.c b/board/netta2/flash.c
index 53a4e1e..1bb5f30 100644
--- a/board/netta2/flash.c
+++ b/board/netta2/flash.c
@@ -421,11 +421,11 @@ int flash_erase(flash_info_t * info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 	addr = (vu_char *) (info->start[l_sect]);
 	while ((addr[0] & 0x80) != 0x80) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Timeout\n");
 			return 1;
 		}
@@ -496,9 +496,9 @@ static int write_byte(flash_info_t * info, ulong dest, uchar data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer(0);
+	start = time_now_ms();
 	while ((*((vu_char *) dest) & 0x80) != (data & 0x80)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/netvia/flash.c b/board/netvia/flash.c
index b987434..34dddd8 100644
--- a/board/netvia/flash.c
+++ b/board/netvia/flash.c
@@ -423,11 +423,11 @@ int flash_erase(flash_info_t * info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 	addr = (vu_char *) (info->start[l_sect]);
 	while ((addr[0] & 0x80) != 0x80) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Timeout\n");
 			return 1;
 		}
@@ -498,9 +498,9 @@ static int write_byte(flash_info_t * info, ulong dest, uchar data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer(0);
+	start = time_now_ms();
 	while ((*((vu_char *) dest) & 0x80) != (data & 0x80)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/ns9750dev/flash.c b/board/ns9750dev/flash.c
index 185bc2d..d3ca222 100644
--- a/board/ns9750dev/flash.c
+++ b/board/ns9750dev/flash.c
@@ -308,7 +308,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			flash_unprotect_sectors (addr);
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer(0);
+			start = time_now_ms();
 
 			*addr = (FPW) 0x00500050;/* clear status register */
 			*addr = (FPW) 0x00200020;/* erase setup */
@@ -317,7 +317,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			while (((status =
 				*addr) & (FPW) 0x00800080) !=
 				(FPW) 0x00800080) {
-					if (get_timer(start) >
+					if (time_since_ms(start) >
 					CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					/* suspend erase     */
@@ -451,11 +451,11 @@ static int write_data (flash_info_t * info, ulong dest, FPW data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/nx823/flash.c b/board/nx823/flash.c
index 336e704..dee5b8b 100644
--- a/board/nx823/flash.c
+++ b/board/nx823/flash.c
@@ -272,7 +272,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect<=s_last; sect++) {
@@ -295,7 +295,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 			udelay (1000);
 
 			while (((status = *addr) & (FPW)0x00800080) != (FPW)0x00800080) {
-				if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = (FPW)0x00B000B0; /* suspend erase	  */
 					*addr = (FPW)0x00FF00FF; /* reset to read mode */
@@ -450,10 +450,10 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
 	if (flag)
 		enable_interrupts();
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	while (((status = *addr) & (FPW)0x00800080) != (FPW)0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW)0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/o2dnt/flash.c b/board/o2dnt/flash.c
index 9f30880..e7f2069 100644
--- a/board/o2dnt/flash.c
+++ b/board/o2dnt/flash.c
@@ -302,7 +302,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 				prot);
 
 	printf ("\n");
-	last = get_timer(0);
+	last = time_now_ms();
 
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect <= s_last && rcode == 0; sect++) {
@@ -322,13 +322,13 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 		if (flag)
 			enable_interrupts();
 
-		start = get_timer(0);
+		start = time_now_ms();
 
 		/* wait@least 80us for Intel - let's wait 1 ms */
 		udelay (1000);
 
 		while ((*addr & (FPW) INTEL_FINISHED) != (FPW) INTEL_FINISHED) {
-			if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf ("Timeout\n");
 				*addr = (FPW) INTEL_SUSPEND;/* suspend erase */
 				flash_reset(info);	/* reset to read mode */
@@ -337,9 +337,9 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 			}
 
 			/* show that we're waiting */
-			if ((get_timer(last)) > CONFIG_SYS_HZ) { /* every second */
+			if ((time_since_ms(last)) > CONFIG_SYS_HZ) { /* every second */
 				putc ('.');
-				last = get_timer(0);
+				last = time_now_ms();
 			}
 		}
 
@@ -421,11 +421,11 @@ static int write_data (flash_info_t *info, FPWV *dest, FPW data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & (FPW) INTEL_FINISHED) != (FPW) INTEL_FINISHED) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW) INTEL_RESET;	/* restore read mode */
 			return (1);
 		}
@@ -461,10 +461,10 @@ int flash_real_protect (flash_info_t * info, long sector, int prot)
 		*addr = INTEL_CONFIRM;	/* clear                    */
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	while ((*addr & INTEL_FINISHED) != INTEL_FINISHED) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_UNLOCK_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_UNLOCK_TOUT) {
 			printf ("Flash lock bit operation timed out\n");
 			rc = 1;
 			break;
@@ -487,13 +487,13 @@ int flash_real_protect (flash_info_t * info, long sector, int prot)
 	if (!prot) {
 		for (i = 0; i < info->sector_count; i++) {
 			if (info->protect[i]) {
-				start = get_timer (0);
+				start = time_now_ms();
 				addr = (FPWV *) (info->start[i]);
 				*addr = INTEL_LOCKBIT;	/* Sector lock bit  */
 				*addr = INTEL_PROTECT;	/* set              */
 				while ((*addr & INTEL_FINISHED) !=
 				       INTEL_FINISHED) {
-					if (get_timer (start) >
+					if (time_since_ms(start) >
 					    CONFIG_SYS_FLASH_UNLOCK_TOUT) {
 						printf ("Flash lock bit operation timed out\n");
 						rc = 1;
@@ -561,9 +561,9 @@ static unsigned char intel_sector_protected (flash_info_t *info, ushort sector)
 	addr = (FPWV *) info->start[sector];
 	*addr = (FPW) INTEL_STATUS;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*addr & (FPW) INTEL_FINISHED) != (FPW) INTEL_FINISHED) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			*addr = (FPW) INTEL_RESET; /* restore read mode */
 			printf("WSM busy too long, can't get prot status\n");
 			return 1;
diff --git a/board/oxc/flash.c b/board/oxc/flash.c
index 36e0fca..1824bd1 100644
--- a/board/oxc/flash.c
+++ b/board/oxc/flash.c
@@ -282,11 +282,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
     if (l_sect < 0)
       goto DONE;
 
-    start = get_timer (0);
+    start = time_now_ms();
     last  = start;
     addr = (vu_char *)(info->start[l_sect]);
     while ((addr[0] & 0x80) != 0x80) {
-	if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+	if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 	    printf ("Timeout\n");
 	    return 1;
 	}
@@ -359,9 +359,9 @@ static int write_byte (flash_info_t *info, ulong dest, uchar data)
       enable_interrupts();
 
     /* data polling for D7 */
-    start = get_timer (0);
+    start = time_now_ms();
     while ((*((vu_char *)dest) & 0x80) != (data & 0x80)) {
-	if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 	    return (1);
 	}
     }
diff --git a/board/pcippc2/flash.c b/board/pcippc2/flash.c
index ec604e0..0c094cf 100644
--- a/board/pcippc2/flash.c
+++ b/board/pcippc2/flash.c
@@ -352,14 +352,14 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = info->start[l_sect];
 
 	DEBUGF ("Start erase timeout: %d\n", CONFIG_SYS_FLASH_ERASE_TOUT);
 
 	while ((in8(addr) & 0x80) != 0x80) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			flash_reset (info->start[0]);
 			return 1;
@@ -486,9 +486,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 			enable_interrupts();
 
 		/* data polling for D7 */
-		start = get_timer (0);
+		start = time_now_ms();
 		while ((in8(dest+i) & 0x80) != (data_ch[i] & 0x80)) {
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				flash_reset (addr);
 				return (1);
 			}
diff --git a/board/pcs440ep/flash.c b/board/pcs440ep/flash.c
index f90a221..1d41133 100644
--- a/board/pcs440ep/flash.c
+++ b/board/pcs440ep/flash.c
@@ -454,10 +454,10 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
 				}
 
 				/* data polling for D7 */
-				start = get_timer (0);
+				start = time_now_ms();
 				while ((addr2[0] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) !=
 				       (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) {
-					if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
+					if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
 						return (1);
 				}
 			} else {
@@ -487,11 +487,11 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (CONFIG_SYS_FLASH_WORD_SIZE *)(info->start[l_sect]);
 	while ((addr[0] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) != (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -611,10 +611,10 @@ static int write_word(flash_info_t *info, ulong dest, ulong data)
 			enable_interrupts();
 
 		/* data polling for D7 */
-		start = get_timer (0);
+		start = time_now_ms();
 		while ((dest2[i] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) !=
 		       (data2[i] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080)) {
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
 				return (1);
 		}
 	}
diff --git a/board/pleb2/flash.c b/board/pleb2/flash.c
index 2406c5f..64def77 100644
--- a/board/pleb2/flash.c
+++ b/board/pleb2/flash.c
@@ -525,7 +525,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		/* Disable interrupts which might cause a timeout here */
 		flag = disable_interrupts ();
 
-		start = get_timer(0);
+		start = time_now_ms();
 		last = 0;
 
 		addr = (FPWV *) (info->start[sect]);
@@ -557,7 +557,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 
 		while ((*addr & (FPW) 0x00800080) != (FPW) 0x00800080) {
 			if ((now =
-			     get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			     time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf ("Timeout\n");
 
 				if (intel) {
@@ -682,12 +682,12 @@ static int write_word_amd (flash_info_t * info, FPWV * dest, FPW data)
 	if (flag)
 		enable_interrupts ();
 
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* data polling for D7 */
 	while (res == 0
 	       && (*dest & (FPW) 0x00800080) != (data & (FPW) 0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*dest = (FPW) 0x00F000F0;	/* reset bank */
 			res = 1;
 		}
@@ -730,10 +730,10 @@ static int write_word_intel (flash_info_t * info, FPWV * dest, FPW data)
 	if (flag)
 		enable_interrupts ();
 
-	start = get_timer(0);
+	start = time_now_ms();
 
 	while (res == 0 && (*dest & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*dest = (FPW) 0x00B000B0;	/* Suspend program      */
 			res = 1;
 		}
diff --git a/board/pm520/flash.c b/board/pm520/flash.c
index 64c8624..0576d43 100644
--- a/board/pm520/flash.c
+++ b/board/pm520/flash.c
@@ -339,9 +339,9 @@ static unsigned char intel_sector_protected (flash_info_t *info, ushort sector)
 	addr = (FPWV *) info->start[sector];
 	*addr = (FPW) INTEL_STATUS;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*addr & (FPW) INTEL_FINISHED) != (FPW) INTEL_FINISHED) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			*addr = (FPW) INTEL_RESET; /* restore read mode */
 			printf("WSM busy too long, can't get prot status\n");
 			return 1;
@@ -403,7 +403,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = start;
 
 	/* Disable interrupts which might cause a timeout here */
@@ -418,14 +418,14 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 			printf ("Erasing sector %2d ... ", sect);
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer(0);
+			start = time_now_ms();
 
 			*addr = (FPW) 0x00500050;	/* clear status register */
 			*addr = (FPW) 0x00200020;	/* erase setup */
 			*addr = (FPW) 0x00D000D0;	/* erase confirm */
 
 			while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = (FPW) 0x00B000B0;	/* suspend erase     */
 					*addr = (FPW) 0x00FF00FF;	/* reset to read mode */
@@ -556,11 +556,11 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
@@ -603,10 +603,10 @@ int flash_real_protect (flash_info_t *info, long sector, int prot)
 		*addr = INTEL_CONFIRM;	/* clear */
 	}
 
-	start = get_timer(0);
+	start = time_now_ms();
 
 	while ((*addr & INTEL_FINISHED) != INTEL_FINISHED) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_UNLOCK_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_UNLOCK_TOUT) {
 			printf("Flash lock bit operation timed out\n");
 			rc = 1;
 			break;
@@ -637,13 +637,13 @@ int flash_real_protect (flash_info_t *info, long sector, int prot)
 		{
 			if (info->protect[i])
 			{
-				start = get_timer(0);
+				start = time_now_ms();
 				addr = (vu_long *)(info->start[i]);
 				*addr = INTEL_LOCKBIT;	/* Sector lock bit */
 				*addr = INTEL_PROTECT;	/* set */
 				while ((*addr & INTEL_FINISHED) != INTEL_FINISHED)
 				{
-					if (get_timer(start) > CONFIG_SYS_FLASH_UNLOCK_TOUT)
+					if (time_since_ms(start) > CONFIG_SYS_FLASH_UNLOCK_TOUT)
 					{
 						printf("Flash lock bit operation timed out\n");
 						rc = 1;
diff --git a/board/pm826/flash.c b/board/pm826/flash.c
index 010f59a..e8881dd 100644
--- a/board/pm826/flash.c
+++ b/board/pm826/flash.c
@@ -241,7 +241,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		volatile ulong *addr =
 				(volatile unsigned long *) info->start[sect];
 
-		start = get_timer (0);
+		start = time_now_ms();
 		last = start;
 		if (info->protect[sect] == 0) {
 			/* Disable interrupts which might cause a timeout here
@@ -267,7 +267,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			last = start;
 			while ((addr[0] & 0x00800080) != 0x00800080 ||
 				   (addr[1] & 0x00800080) != 0x00800080) {
-				if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout (erase suspended!)\n");
 					/* Suspend erase
 					 */
@@ -360,9 +360,9 @@ static int write_word (flash_info_t * info, volatile unsigned long *addr,
 	if (flag)
 		enable_interrupts ();
 
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*addr & 0x00800080) != 0x00800080) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			/* Suspend program
 			 */
 			*addr = 0x00B000B0;
diff --git a/board/pm828/flash.c b/board/pm828/flash.c
index 4958a95..5a6f01d 100644
--- a/board/pm828/flash.c
+++ b/board/pm828/flash.c
@@ -241,7 +241,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		volatile ulong *addr =
 				(volatile unsigned long *) info->start[sect];
 
-		start = get_timer (0);
+		start = time_now_ms();
 		last = start;
 		if (info->protect[sect] == 0) {
 			/* Disable interrupts which might cause a timeout here
@@ -267,7 +267,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			last = start;
 			while ((addr[0] & 0x00800080) != 0x00800080 ||
 				   (addr[1] & 0x00800080) != 0x00800080) {
-				if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout (erase suspended!)\n");
 					/* Suspend erase
 					 */
@@ -360,9 +360,9 @@ static int write_word (flash_info_t * info, volatile unsigned long *addr,
 	if (flag)
 		enable_interrupts ();
 
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*addr & 0x00800080) != 0x00800080) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			/* Suspend program
 			 */
 			*addr = 0x00B000B0;
diff --git a/board/ppmc7xx/flash.c b/board/ppmc7xx/flash.c
index e724227..b13b71b 100644
--- a/board/ppmc7xx/flash.c
+++ b/board/ppmc7xx/flash.c
@@ -354,12 +354,12 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = start;
 	while ((*(volatile DWORD*)info->start[l_sect] & 0x0080008000800080LL )
 				!= 0x0080008000800080LL )
 	{
-		if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -475,9 +475,9 @@ static int write_dword (flash_info_t * info, ulong dest, unsigned char *pdata)
 	set_msr(msr);
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while (*(volatile DWORD*)dest != data ) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/ppmc8260/strataflash.c b/board/ppmc8260/strataflash.c
index cc91627..4754a38 100644
--- a/board/ppmc8260/strataflash.c
+++ b/board/ppmc8260/strataflash.c
@@ -398,9 +398,9 @@ static int flash_status_check(flash_info_t * info, ulong sector, ulong tout, cha
 	ulong start;
 
 	/* Wait for command completion */
-	start = get_timer (0);
+	start = time_now_ms();
 	while(!flash_isset(info, sector, 0, FLASH_STATUS_DONE)) {
-		if (get_timer(start) > info->erase_blk_tout) {
+		if (time_since_ms(start) > info->erase_blk_tout) {
 			printf("Flash %s timeout at address %lx\n", prompt, info->start[sector]);
 			flash_write_cmd(info, sector, 0, FLASH_CMD_RESET);
 			return ERR_TIMOUT;
diff --git a/board/prodrive/common/flash.c b/board/prodrive/common/flash.c
index c42fa83..7013433 100644
--- a/board/prodrive/common/flash.c
+++ b/board/prodrive/common/flash.c
@@ -391,10 +391,10 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
 				}
 
 				/* data polling for D7 */
-				start = get_timer (0);
+				start = time_now_ms();
 				while ((addr2[0] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) !=
 				       (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) {
-					if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
+					if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
 						return (1);
 				}
 			} else {
@@ -424,11 +424,11 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (CONFIG_SYS_FLASH_WORD_SIZE *)(info->start[l_sect]);
 	while ((addr[0] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) != (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -548,10 +548,10 @@ static int write_word(flash_info_t *info, ulong dest, ulong data)
 			enable_interrupts();
 
 		/* data polling for D7 */
-		start = get_timer (0);
+		start = time_now_ms();
 		while ((dest2[i] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080) !=
 		       (data2[i] & (CONFIG_SYS_FLASH_WORD_SIZE)0x00800080)) {
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
 				return (1);
 		}
 	}
diff --git a/board/psyent/common/AMDLV065D.c b/board/psyent/common/AMDLV065D.c
index 72b0a9f..c2b6a37 100644
--- a/board/psyent/common/AMDLV065D.c
+++ b/board/psyent/common/AMDLV065D.c
@@ -131,11 +131,11 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			/* Now just wait for 0xff & provide some user
 			 * feedback while we wait.
 			 */
-			start = get_timer (0);
+			start = time_now_ms();
 			while ( readb (addr2) != 0xff) {
 				udelay (1000 * 1000);
 				putc ('.');
-				if (get_timer (start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("timeout\n");
 					return 1;
 				}
@@ -175,9 +175,9 @@ int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
 		writeb (dst, b);
 
 		/* Verify write */
-		start = get_timer (0);
+		start = time_now_ms();
 		while (readb (dst) != b) {
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return 1;
 			}
 		}
diff --git a/board/r360mpi/flash.c b/board/r360mpi/flash.c
index 45cccf7..7062f69 100644
--- a/board/r360mpi/flash.c
+++ b/board/r360mpi/flash.c
@@ -312,7 +312,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = start;
 	/* Start erase on unprotected sectors */
 	for (sect = s_first; sect <= s_last; sect++) {
@@ -335,7 +335,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			udelay (1000);
 
 			while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-			    if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			    if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf ("Timeout\n");
 				*addr = (FPW) 0x00B000B0;	/* suspend erase     */
 				*addr = (FPW) 0x00FF00FF;	/* reset to read mode */
@@ -469,10 +469,10 @@ static int write_data (flash_info_t * info, ulong dest, FPW data)
 	if (flag)
 		enable_interrupts ();
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/rbc823/flash.c b/board/rbc823/flash.c
index cb1e089..06c0925 100644
--- a/board/rbc823/flash.c
+++ b/board/rbc823/flash.c
@@ -316,13 +316,13 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (volatile unsigned char *)(info->start[l_sect]);
 
 	while ((addr[0] & 0xFF) != 0xFF)
 	{
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -451,10 +451,10 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	    /* data polling for D7 */
-	    start = get_timer (0);
+	    start = time_now_ms();
 	    while ((*cdest ^ *cdata) & 0x80)
 	    {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	    }
diff --git a/board/rmu/flash.c b/board/rmu/flash.c
index 283b19d..1ef8344 100644
--- a/board/rmu/flash.c
+++ b/board/rmu/flash.c
@@ -402,11 +402,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (vu_long *)(info->start[l_sect]);
 	while ((addr[0] & 0x80808080) != 0x80808080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -527,9 +527,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_long *)dest) & 0x80808080) != (data & 0x80808080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/rpxsuper/flash.c b/board/rpxsuper/flash.c
index be29b65..b9e9a6b 100644
--- a/board/rpxsuper/flash.c
+++ b/board/rpxsuper/flash.c
@@ -287,12 +287,12 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
     if (l_sect < 0)
       goto DONE;
 
-    start = get_timer (0);
+    start = time_now_ms();
     last  = start;
     addr = (vu_long*)(info->start[l_sect]);
     while (	(addr[0] & 0x80808080) != 0x80808080 ||
 		(addr[1] & 0x80808080) != 0x80808080) {
-	if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+	if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 	    printf ("Timeout\n");
 	    return 1;
 	}
@@ -421,9 +421,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
       enable_interrupts();
 
     /* data polling for D7 */
-    start = get_timer (0);
+    start = time_now_ms();
     while ((*((vu_long *)dest) & 0x80808080) != (data & 0x80808080)) {
-	if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 	    return (1);
 	}
     }
diff --git a/board/rsdproto/flash.c b/board/rsdproto/flash.c
index e99c2a6..2e5722f 100644
--- a/board/rsdproto/flash.c
+++ b/board/rsdproto/flash.c
@@ -256,10 +256,10 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
     if (flag)
       enable_interrupts();
 
-	start = get_timer (0);
+	start = time_now_ms();
 	do
 	{
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT)
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT)
 		{	/* write reset command, command address is unimportant */
 			/* this command turns the flash back to read mode     */
 			f_addr =
@@ -384,10 +384,10 @@ static unsigned char write_ull(flash_info_t *info,
 	f_command	= data;
 	ull_write(f_addr, &f_command);
 
-	start = get_timer (0);
+	start = time_now_ms();
 	do
 	{
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
 		{
 			/* write reset command, command address is unimportant */
 			/* this command turns the flash back to read mode     */
diff --git a/board/sacsng/flash.c b/board/sacsng/flash.c
index 8b30f50..94dd8df 100644
--- a/board/sacsng/flash.c
+++ b/board/sacsng/flash.c
@@ -370,11 +370,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (vu_short*)(info->start[l_sect]);
 	while ((addr[0] & 0x0080) != 0x0080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			addr[0] = 0xF0F0;	/* reset bank */
 			__asm__ __volatile__(" sync\n ");
@@ -507,9 +507,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 			enable_interrupts();
 
 		/* data polling for D7 */
-		start = get_timer (0);
+		start = time_now_ms();
 		while (*(vu_short *)dest != (ushort)data) {
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
diff --git a/board/samsung/smdk2400/flash.c b/board/samsung/smdk2400/flash.c
index 47382fe..2ff9900 100644
--- a/board/samsung/smdk2400/flash.c
+++ b/board/samsung/smdk2400/flash.c
@@ -287,7 +287,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			sect, info->start[sect]);
 
 		/* arm simple, non interrupt dependent timer */
-		start = get_timer(0);
+		start = time_now_ms();
 
 		if (info->protect[sect] == 0) {	/* not protected */
 			vu_long *addr = (vu_long *) (info->start[sect]);
@@ -300,7 +300,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			/* wait until flash is ready */
 			do {
 				/* check timeout */
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_me(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					*addr = CMD_STATUS_RESET;
 					result = BIT_TIMEOUT;
 					break;
@@ -391,12 +391,12 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait until flash is ready */
 	do {
 		/* check timeout */
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			*addr = CMD_SUSPEND;
 			result = BIT_TIMEOUT;
 			break;
diff --git a/board/sandburst/common/flash.c b/board/sandburst/common/flash.c
index c65cb96..74d8619 100644
--- a/board/sandburst/common/flash.c
+++ b/board/sandburst/common/flash.c
@@ -281,10 +281,10 @@ int wait_for_DQ7(flash_info_t *info, int sect)
 	ulong start, now, last;
 	volatile FLASH_WORD_SIZE *addr = (FLASH_WORD_SIZE *)(info->start[sect]);
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	while ((addr[0] & (FLASH_WORD_SIZE)0x00800080) != (FLASH_WORD_SIZE)0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return -1;
 		}
@@ -498,11 +498,11 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 			enable_interrupts ();
 
 		/* data polling for D7 */
-		start = get_timer (0);
+		start = time_now_ms();
 		while ((dest2[i] & (FLASH_WORD_SIZE) 0x00800080) !=
 		       (data2[i] & (FLASH_WORD_SIZE) 0x00800080)) {
 
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
diff --git a/board/sandpoint/flash.c b/board/sandpoint/flash.c
index e366cc6..dd9adbf 100644
--- a/board/sandpoint/flash.c
+++ b/board/sandpoint/flash.c
@@ -607,12 +607,12 @@ flash_erase(flash_info_t *info, int s_first, int s_last)
     if (l_sect < 0)
 	goto DONE;
 
-    start = get_timer (0);
+    start = time_now_ms();
     last  = start;
     addr = (FLASH_WORD_SIZE *)(info->start[0] + (
 			(info->start[l_sect] - info->start[0]) << sh8b));
     while ((addr[0] & (FLASH_WORD_SIZE)0x00800080) != (FLASH_WORD_SIZE)0x00800080) {
-	if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+	if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 	    printf ("Timeout\n");
 	    return 1;
 	}
@@ -748,10 +748,10 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 	      enable_interrupts();
 
 	    /* data polling for D7 */
-	    start = get_timer (0);
+	    start = time_now_ms();
 	    while ((dest2[i << sh8b] & (FLASH_WORD_SIZE)0x00800080) !=
 		   (data2[i] & (FLASH_WORD_SIZE)0x00800080)) {
-	      if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	      if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 		return (1);
 	      }
 	    }
diff --git a/board/sbc2410x/flash.c b/board/sbc2410x/flash.c
index d209a6f..a65469c 100644
--- a/board/sbc2410x/flash.c
+++ b/board/sbc2410x/flash.c
@@ -214,7 +214,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		printf ("Erasing sector %2d ... ", sect);
 
 		/* arm simple, non interrupt dependent timer */
-		start = get_timer(0);
+		start = time_now_ms();
 
 		if (info->protect[sect] == 0) {	/* not protected */
 			vu_short *addr = (vu_short *) (info->start[sect]);
@@ -234,7 +234,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 				result = *addr;
 
 				/* check timeout */
-				if (get_timer(start) >
+				if (time_since_ms(start) >
 				    CONFIG_SYS_FLASH_ERASE_TOUT) {
 					MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
 					chip = TMO;
@@ -324,7 +324,7 @@ static int write_hword (flash_info_t * info, ulong dest, ushort data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	get_timer(start);
+	time_now_ms(start);
 
 	/* wait until flash is ready */
 	chip = 0;
@@ -332,7 +332,7 @@ static int write_hword (flash_info_t * info, ulong dest, ushort data)
 		result = *addr;
 
 		/* check timeout */
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			chip = ERR | TMO;
 			break;
 		}
diff --git a/board/sbc405/strataflash.c b/board/sbc405/strataflash.c
index e5863d6..c8f32e1 100644
--- a/board/sbc405/strataflash.c
+++ b/board/sbc405/strataflash.c
@@ -436,9 +436,9 @@ static int flash_status_check(flash_info_t * info, ulong sector, ulong tout, cha
 	ulong start;
 
 	/* Wait for command completion */
-	start = get_timer (0);
+	start = time_now_ms();
 	while(!flash_isset(info, sector, 0, FLASH_STATUS_DONE)) {
-		if (get_timer(start) > info->erase_blk_tout) {
+		if (time_since_ms(start) > info->erase_blk_tout) {
 			printf("Flash %s timeout at address %lx\n", prompt, info->start[sector]);
 			flash_write_cmd(info, sector, 0, FLASH_CMD_RESET);
 			return ERR_TIMOUT;
diff --git a/board/sbc8240/flash.c b/board/sbc8240/flash.c
index a095753..ea4232b 100644
--- a/board/sbc8240/flash.c
+++ b/board/sbc8240/flash.c
@@ -395,11 +395,11 @@ int wait_for_DQ7 (flash_info_t * info, int sect)
 	volatile FLASH_WORD_SIZE *addr =
 		(FLASH_WORD_SIZE *) (info->start[sect]);
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = start;
 	while ((addr[0] & (FLASH_WORD_SIZE) 0x00800080) !=
 	       (FLASH_WORD_SIZE) 0x00800080) {
-		if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return -1;
 		}
@@ -624,11 +624,11 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 			enable_interrupts ();
 
 		/* data polling for D7 */
-		start = get_timer (0);
+		start = time_now_ms();
 		while ((dest2[i] & (FLASH_WORD_SIZE) 0x00800080) !=
 		       (data2[i] & (FLASH_WORD_SIZE) 0x00800080)) {
 
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
diff --git a/board/sbc8260/flash.c b/board/sbc8260/flash.c
index 645c67f..f7d8e71 100644
--- a/board/sbc8260/flash.c
+++ b/board/sbc8260/flash.c
@@ -254,11 +254,11 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
     if (l_sect < 0)
       goto DONE;
 
-    start = get_timer (0);
+    start = time_now_ms();
     last  = start;
     addr = (vu_long*)(info->start[l_sect]);
     while ((addr[0] & 0x80808080) != 0x80808080) {
-	if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+	if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 	    printf ("Timeout\n");
 	    return 1;
 	}
@@ -379,9 +379,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
       enable_interrupts();
 
     /* data polling for D7 */
-    start = get_timer (0);
+    start = time_now_ms();
     while ((*((vu_long *)dest) & 0x80808080) != (data & 0x80808080)) {
-	if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 	    return (1);
 	}
     }
diff --git a/board/scb9328/flash.c b/board/scb9328/flash.c
index 00c660a..67fb617 100644
--- a/board/scb9328/flash.c
+++ b/board/scb9328/flash.c
@@ -99,10 +99,10 @@ static int flash_ready (ulong timeout)
 	int ok = 1;
 	ulong start;
 
-	start = get_timer(0);
+	start = time_now_ms();
 	while ((flash_status_reg () & FLASH_CMD (CFI_INTEL_SR_READY)) !=
 		   FLASH_CMD (CFI_INTEL_SR_READY)) {
-		if (get_timer(start) > timeout && timeout != 0) {
+		if (time_since_ms(start) > timeout && timeout != 0) {
 			ok = 0;
 			break;
 		}
diff --git a/board/shannon/flash.c b/board/shannon/flash.c
index 179ec5f..11f9ccc 100644
--- a/board/shannon/flash.c
+++ b/board/shannon/flash.c
@@ -232,7 +232,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	printf("Erasing sector %2d ... ", sect);
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	if (info->protect[sect] == 0)
 	{	/* not protected */
@@ -254,7 +254,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		result = *addr;
 
 		/* check timeout */
-		if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT)
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT)
 		{
 		    MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
 		    chip1 = TMO;
@@ -351,7 +351,7 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
     *addr = data;
 
     /* arm simple, non interrupt dependent timer */
-    start = get_timer(0);
+    start = time_now_ms();
 
     /* wait until flash is ready */
     chip1 = chip2 = 0;
@@ -360,7 +360,7 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 	result = *addr;
 
 	/* check timeout */
-	if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT)
+	if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT)
 	{
 	    chip1 = ERR | TMO;
 	    break;
diff --git a/board/siemens/IAD210/flash.c b/board/siemens/IAD210/flash.c
index c262e0f..96935c1 100644
--- a/board/siemens/IAD210/flash.c
+++ b/board/siemens/IAD210/flash.c
@@ -364,11 +364,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
   if (l_sect < 0)
     goto DONE;
 
-  start = get_timer (0);
+  start = time_now_ms();
   last  = start;
   addr = (vu_long*)(info->start[l_sect]);
   while ((addr[0] & 0x00800080) != 0x00800080) {
-    if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+    if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
       printf ("Timeout\n");
       return 1;
     }
@@ -489,9 +489,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
     enable_interrupts();
 
   /* data polling for D7 */
-  start = get_timer (0);
+  start = time_now_ms();
   while ((*((vu_long *)dest) & 0x00800080) != (data & 0x00800080)) {
-    if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+    if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
       return (1);
     }
   }
diff --git a/board/siemens/SCM/flash.c b/board/siemens/SCM/flash.c
index 4a6d538..184abdb 100644
--- a/board/siemens/SCM/flash.c
+++ b/board/siemens/SCM/flash.c
@@ -359,12 +359,12 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = start;
 	while ((V_ULONG (info->start[l_sect]) & 0x00800080) != 0x00800080 ||
 	       (V_ULONG (info->start[l_sect] + 4) & 0x00800080) != 0x00800080)
 	{
-		if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -477,10 +477,10 @@ static int write_dword (flash_info_t * info, ulong dest, unsigned char *pdata)
 		enable_interrupts ();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while (((V_ULONG (dest) & 0x00800080) != (ch & 0x00800080)) ||
 		   ((V_ULONG (dest + 4) & 0x00800080) != (cl & 0x00800080))) {
-		if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/siemens/SMN42/flash.c b/board/siemens/SMN42/flash.c
index fc91574..d16e154 100644
--- a/board/siemens/SMN42/flash.c
+++ b/board/siemens/SMN42/flash.c
@@ -180,11 +180,11 @@ static int wait_for_DQ7_32(flash_info_t * info, int sect)
 	volatile CONFIG_SYS_FLASH_WORD_SIZE *addr =
 		(CONFIG_SYS_FLASH_WORD_SIZE *) (info->start[sect]);
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 	while ((addr[0] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) !=
 			(CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Timeout\n");
 			return -1;
 		}
@@ -408,11 +408,11 @@ static int write_word(flash_info_t * info, ulong dest, ushort data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer(0);
+	start = time_now_ms();
 	while ((*dest2 & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) !=
 			(*data2 & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080)) {
 
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			printf("WRITE_TOUT\n");
 			return (1);
 		}
diff --git a/board/sixnet/flash.c b/board/sixnet/flash.c
index 2090802..4ccf063 100644
--- a/board/sixnet/flash.c
+++ b/board/sixnet/flash.c
@@ -503,7 +503,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		printf ("\n");
 	}
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last  = start;
 
 	/* Start erase on unprotected sectors */
@@ -544,7 +544,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 		udelay (1000);
 
 		while ((*addr & (FPW)0x00800080) != (FPW)0x00800080) {
-			if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf ("Timeout\n");
 
 				if (intel) {
@@ -659,11 +659,11 @@ static int write_word_amd (flash_info_t *info, FPWV *dest, FPW data)
     if (flag)
 	enable_interrupts();
 
-    start = get_timer (0);
+    start = time_now_ms();
 
     /* data polling for D7 */
     while (res == 0 && (*dest & (FPW)0x00800080) != (data & (FPW)0x00800080)) {
-	if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 	    *dest = (FPW)0x00F000F0;	/* reset bank */
 	    res = 1;
 	}
@@ -706,10 +706,10 @@ static int write_word_intel (flash_info_t *info, FPWV *dest, FPW data)
     if (flag)
 	enable_interrupts();
 
-    start = get_timer (0);
+    start = time_now_ms();
 
     while (res == 0 && (*dest & (FPW)0x00800080) != (FPW)0x00800080) {
-	if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 	    *dest = (FPW)0x00B000B0;	/* Suspend program	*/
 	    res = 1;
 	}
diff --git a/board/snmc/qs850/flash.c b/board/snmc/qs850/flash.c
index b592285..200260d 100644
--- a/board/snmc/qs850/flash.c
+++ b/board/snmc/qs850/flash.c
@@ -474,13 +474,13 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (volatile FLASH_WORD_SIZE*)(info->start[l_sect]);
 	while ((addr[0] & (0x00800080&FLASH_ID_MASK)) !=
 			(0x00800080&FLASH_ID_MASK)  )
 	{
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -604,10 +604,10 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	while ((*((vu_long *)dest) & 0x00800080) != (data & 0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/snmc/qs860t/flash.c b/board/snmc/qs860t/flash.c
index e725115..63dedd7 100644
--- a/board/snmc/qs860t/flash.c
+++ b/board/snmc/qs860t/flash.c
@@ -685,12 +685,12 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		if (l_sect < 0)
 			goto DONE;
 
-		start = get_timer (0);
+		start = time_now_ms();
 		last = start;
 		addr = (volatile FLASH_WORD_SIZE *) (info->start[l_sect]);
 		while ((addr[0] & (0x00800080 & FLASH_ID_MASK)) !=
 		       (0x00800080 & FLASH_ID_MASK)) {
-			if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf ("Timeout\n");
 				return 1;
 			}
@@ -1011,17 +1011,17 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 
 	if(info->flash_id > FLASH_AMD_COMP) {
 		while ((*((vu_long *)dest) & 0x00800080) != (data & 0x00800080)) {
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
 	} else {
 		while(!(addr[0] & 0x00800080)) {	/* wait for error or finish */
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 
@@ -1076,12 +1076,12 @@ static int write_short (flash_info_t *info, ulong dest, ushort data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 
 	if(info->flash_id < FLASH_AMD_COMP) {
 		/* AMD stuff */
 		while ((*((vu_short *)dest) & 0x0080) != (data & 0x0080)) {
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
@@ -1089,7 +1089,7 @@ static int write_short (flash_info_t *info, ulong dest, ushort data)
 	} else {
 		/* intel stuff */
 		while(!(addr[0] & 0x0080)){	/* wait for error or finish */
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) return (1);
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) return (1);
 		}
 
 		if( addr[0] & 0x003A) {	/* check for error */
@@ -1103,7 +1103,7 @@ static int write_short (flash_info_t *info, ulong dest, ushort data)
 		*addr = 0x00B0;
 		*addr = 0x0070;
 		while(!(addr[0] & 0x0080)){	/* wait for error or finish */
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) return (1);
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) return (1);
 		}
 		*addr = 0x00FF;
 	}
diff --git a/board/stx/stxgp3/flash.c b/board/stx/stxgp3/flash.c
index 61c9602..4d40246 100644
--- a/board/stx/stxgp3/flash.c
+++ b/board/stx/stxgp3/flash.c
@@ -291,7 +291,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 			vu_long *addr = (vu_long *)(info->start[sect]);
 			asm("sync");
 
-			last = start = get_timer (0);
+			last = start = time_now_ms();
 
 			/* Disable interrupts which might cause a timeout here */
 			flag = disable_interrupts();
@@ -329,7 +329,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 					asm("sync");
 					return 1;
 				}
-				if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = 0xFFFFFFFF;	/* reset bank */
 					asm("sync");
@@ -454,11 +454,11 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	flag  = 0;
 
 	while (((csr = *addr) & 0x00800080) != 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			flag = 1;
 			break;
 		}
@@ -500,9 +500,9 @@ static int clear_block_lock_bit(vu_long  * addr)
 	*addr = 0xd0d0d0d0;
 	asm("sync");
 
-	start = get_timer (0);
+	start = time_now_ms();
 	while((*addr & 0x00800080) != 0x00800080){
-		if ((now=get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now=time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout on clearing Block Lock Bit\n");
 			*addr = 0xFFFFFFFF;	/* reset bank */
 			asm("sync");
diff --git a/board/svm_sc8xx/flash.c b/board/svm_sc8xx/flash.c
index db1f21a..088f73d 100644
--- a/board/svm_sc8xx/flash.c
+++ b/board/svm_sc8xx/flash.c
@@ -548,7 +548,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (vu_long*)(info->start[l_sect]);
 #if defined (CONFIG_BOOT_8B)
@@ -561,7 +561,7 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 # error CONFIG_BOOT_(size)B missing.
 #endif
 	{
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -707,10 +707,10 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 	if (flag)
 		enable_interrupts();
 
-	  start = get_timer (0);
+	  start = time_now_ms();
 	last  = start;
 	  while(  ( my_in_8((unsigned char *) (dest+i)) ) != ( data_ch[i]  ) ) {
-		  if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT ) {
+		  if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT ) {
 			  return 1;
 		  }
 	  }
@@ -727,10 +727,10 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 	/* re-enable interrupts if necessary */
 	if (flag)
 		enable_interrupts();
-	  start = get_timer (0);
+	  start = time_now_ms();
 	last  = start;
 	  while(  ( my_in_be16((unsigned short *) (dest+(i*2))) ) != ( data_short[i]  ) ) {
-		  if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT ) {
+		  if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT ) {
 			  return 1;
 		  }
 	  }
@@ -747,9 +747,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_long *)dest) & 0x00800080) != (data & 0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/tb0229/flash.c b/board/tb0229/flash.c
index 75d7769..42dc353 100644
--- a/board/tb0229/flash.c
+++ b/board/tb0229/flash.c
@@ -736,12 +736,12 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 		if (l_sect < 0)
 			goto DONE;
 
-		start = get_timer (0);
+		start = time_now_ms();
 		last = start;
 		addr = (volatile FLASH_WORD_SIZE *) (info->start[l_sect]);
 		while ((addr[0] & (0x00800080 & FLASH_ID_MASK)) !=
 		       (0x00800080 & FLASH_ID_MASK)) {
-			if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+			if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 				printf ("Timeout\n");
 				return 1;
 			}
@@ -1070,13 +1070,13 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 		enable_interrupts ();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 
 	if (info->flash_id < FLASH_AMD_COMP) {
 
 		while ((*((vu_long *) dest) & 0x00800080) !=
 		       (data & 0x00800080)) {
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				printf ("timeout\n");
 				return (1);
 			}
@@ -1085,7 +1085,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 	} else {
 
 		while (!(addr[0] & 0x00800080)) {	/* wait for error or finish */
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				printf ("timeout\n");
 				return (1);
 			}
@@ -1152,12 +1152,12 @@ static int write_short (flash_info_t * info, ulong dest, ushort data)
 		enable_interrupts ();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 
 	if (info->flash_id < FLASH_AMD_COMP) {
 		/* AMD stuff */
 		while ((*((vu_short *) dest) & 0x0080) != (data & 0x0080)) {
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
@@ -1165,7 +1165,7 @@ static int write_short (flash_info_t * info, ulong dest, ushort data)
 	} else {
 		/* intel stuff */
 		while (!(addr[0] & 0x0080)) {	/* wait for error or finish */
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT)
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
 				return (1);
 		}
 
@@ -1184,7 +1184,7 @@ static int write_short (flash_info_t * info, ulong dest, ushort data)
 		*addr = 0x00B0;
 		*addr = 0x0070;
 		while (!(addr[0] & 0x0080)) {	/* wait for error or finish */
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT)
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
 				return (1);
 		}
 
diff --git a/board/ti/omap1610inn/flash.c b/board/ti/omap1610inn/flash.c
index 1b67d08..23da1cf 100644
--- a/board/ti/omap1610inn/flash.c
+++ b/board/ti/omap1610inn/flash.c
@@ -325,7 +325,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			flash_unprotect_sectors (addr);
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer(0);
+			start = time_now_ms();
 
 			*addr = (FPW) 0x00500050;/* clear status register */
 			*addr = (FPW) 0x00200020;/* erase setup */
@@ -334,7 +334,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			while (((status =
 				*addr) & (FPW) 0x00800080) !=
 				(FPW) 0x00800080) {
-					if (get_timer(start) >
+					if (time_since_ms(start) >
 					CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					/* suspend erase     */
@@ -467,11 +467,11 @@ static int write_data (flash_info_t * info, ulong dest, FPW data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/ti/omap730p2/flash.c b/board/ti/omap730p2/flash.c
index 185bc2d..d3ca222 100644
--- a/board/ti/omap730p2/flash.c
+++ b/board/ti/omap730p2/flash.c
@@ -308,7 +308,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			flash_unprotect_sectors (addr);
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer(0);
+			start = time_now_ms();
 
 			*addr = (FPW) 0x00500050;/* clear status register */
 			*addr = (FPW) 0x00200020;/* erase setup */
@@ -317,7 +317,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			while (((status =
 				*addr) & (FPW) 0x00800080) !=
 				(FPW) 0x00800080) {
-					if (get_timer(start) >
+					if (time_since_ms(start) >
 					CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					/* suspend erase     */
@@ -451,11 +451,11 @@ static int write_data (flash_info_t * info, ulong dest, FPW data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/tqc/tqm5200/cam5200_flash.c b/board/tqc/tqm5200/cam5200_flash.c
index 4c8922f..a21eb57 100644
--- a/board/tqc/tqm5200/cam5200_flash.c
+++ b/board/tqc/tqm5200/cam5200_flash.c
@@ -245,11 +245,11 @@ static int wait_for_DQ7_32(flash_info_t * info, int sect)
 	volatile CONFIG_SYS_FLASH_WORD_SIZE *addr =
 		(CONFIG_SYS_FLASH_WORD_SIZE *) (info->start[sect]);
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 	while ((addr[0] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) !=
 			(CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Timeout\n");
 			return -1;
 		}
@@ -465,11 +465,11 @@ static int write_word(flash_info_t * info, ulong dest, ulong data)
 			enable_interrupts();
 
 		/* data polling for D7 */
-		start = get_timer(0);
+		start = time_now_ms();
 		while ((dest2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080) !=
 				(data2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x00800080)) {
 
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT)
 				return (1);
 		}
 	}
@@ -588,11 +588,11 @@ static int wait_for_DQ7_16(flash_info_t * info, int sect)
 	volatile CONFIG_SYS_FLASH_WORD_SIZE *addr =
 		(CONFIG_SYS_FLASH_WORD_SIZE *) (info->start[sect]);
 
-	start = get_timer(0);
+	start = time_now_ms();
 	last = start;
 	while ((addr[0] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x80008000) !=
 			(CONFIG_SYS_FLASH_WORD_SIZE) 0x80008000) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf("Timeout\n");
 			return -1;
 		}
@@ -712,11 +712,11 @@ static int write_word_16(flash_info_t * info, ulong dest, ulong data)
 			enable_interrupts();
 
 		/* data polling for D7 */
-		start = get_timer(0);
+		start = time_now_ms();
 		while ((dest2[i] & (CONFIG_SYS_FLASH_WORD_SIZE) 0x80008000) !=
 				(swap16(data2[i]) & (CONFIG_SYS_FLASH_WORD_SIZE) 0x80008000)) {
 
-			if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
diff --git a/board/trab/cmd_trab.c b/board/trab/cmd_trab.c
index 17890d9..0b055a3 100644
--- a/board/trab/cmd_trab.c
+++ b/board/trab/cmd_trab.c
@@ -201,7 +201,7 @@ int do_burn_in (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 		 * avoid timestamp overflow problem after about 68 minutes of
 		 * udelay() time.
 		 */
-		get_timer(0);
+		time_now_ms();
 		for (i = 0; i < BIF_MAX; i++) {
 
 			/* call test function */
@@ -715,7 +715,7 @@ static void led_blink (void)
 
 	/* blink LED. This function does not return! */
 	while (1) {
-		get_timer(0);
+		time_now_ms();
 		led_set (1);
 		udelay (1000000 / LED_BLINK_FREQ / 2);
 		led_set (0);
@@ -860,7 +860,7 @@ int do_temp_log (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 			 * reset timer to avoid timestamp overflow problem
 			 * after about 68 minutes of udelay() time.
 			 */
-			get_timer(0);
+			time_now_ms();
 			sdelay (delay);
 	}
 
diff --git a/board/trab/flash.c b/board/trab/flash.c
index bde1f77..22cd576 100644
--- a/board/trab/flash.c
+++ b/board/trab/flash.c
@@ -238,7 +238,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 			sect, info->start[sect]);
 
 		/* arm simple, non interrupt dependent timer */
-		start = get_timer(0);
+		start = time_now_ms();
 
 		if (info->protect[sect] == 0) {	/* not protected */
 			vu_long *addr = (vu_long *) (info->start[sect]);
@@ -258,7 +258,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 				result = *addr;
 
 				/* check timeout */
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
 					chip1 = TMO;
 					break;
@@ -350,7 +350,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start= get_timer(0);
+	start= time_now_ms();
 
 	/* wait until flash is ready */
 	chip1 = chip2 = 0;
@@ -358,7 +358,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 		result = *addr;
 
 		/* check timeout */
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			chip1 = ERR | TMO;
 			break;
 		}
diff --git a/board/utx8245/flash.c b/board/utx8245/flash.c
index aac8116..46eb9fd 100644
--- a/board/utx8245/flash.c
+++ b/board/utx8245/flash.c
@@ -376,14 +376,14 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last = start;
 	addr = (FLASH_WORD_SIZE *) (info->start[0] + ((info->start[l_sect] -
 												   info->
 												   start[0]) << sh8b));
 	while ((addr[0] & (FLASH_WORD_SIZE) 0x00800080) !=
 		   (FLASH_WORD_SIZE) 0x00800080) {
-		if ((now = get_timer (start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -521,10 +521,10 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 			enable_interrupts ();
 
 		/* data polling for D7 */
-		start = get_timer (0);
+		start = time_now_ms();
 		while ((dest2[i << sh8b] & (FLASH_WORD_SIZE) 0x00800080) !=
 			   (data2[i] & (FLASH_WORD_SIZE) 0x00800080)) {
-			if (get_timer (start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+			if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 				return (1);
 			}
 		}
diff --git a/board/v37/flash.c b/board/v37/flash.c
index 9b817ec..04ed244 100644
--- a/board/v37/flash.c
+++ b/board/v37/flash.c
@@ -391,11 +391,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (vu_short *)(info->start[l_sect]);
 	while ((addr[0] & 0x8080) != 0x8080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -522,9 +522,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_short *)dest) & 0x8080) != (sdata & 0x8080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
@@ -546,9 +546,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_short *)dest + 1) & 0x8080) != (sdata & 0x8080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/w7o/flash.c b/board/w7o/flash.c
index 184661b..913af9b 100644
--- a/board/w7o/flash.c
+++ b/board/w7o/flash.c
@@ -496,7 +496,7 @@ static int flash_erase32(flash_info_t *info, int s_first, int s_last)
     else
 	printf ("\n");
 
-    start = get_timer (0);
+    start = time_now_ms();
     last  = start;
     /* Start erase on unprotected sectors */
     for (sect = s_first; sect <= s_last; sect++) {
@@ -520,7 +520,7 @@ static int flash_erase32(flash_info_t *info, int s_first, int s_last)
 	    udelay (1000);
 
 	    while (((status = *addr) & 0x00800080) != 0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 		    printf ("Timeout\n");
 		    *addr = 0x00B000B0;      /* suspend erase      */
 		    *addr = 0x00FF00FF;      /* reset to read mode */
@@ -560,7 +560,7 @@ static int write_buff8(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
     ulong start;
     int i, l, rc;
 
-    start = get_timer (0);
+    start = time_now_ms();
 
     wp = (addr & ~3);                        /* get lower word
 						aligned address */
@@ -601,10 +601,10 @@ static int write_buff8(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
 	}
 	wp  += 4;
 	cnt -= 4;
-	if (get_timer(start) > 1000) {   /* every second */
+	if (time_since_ms(start) > 1000) {   /* every second */
 	   WATCHDOG_RESET();
 	   putc ('.');
-	   start = get_timer(0);
+	   start = time_now_ms();
 	}
     }
 
@@ -634,7 +634,7 @@ static int write_buff32 (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
 	int i, l, rc;
 	ulong start;
 
-	start = get_timer (0);
+	start = time_now_ms();
 
 	if (info->flash_id == FLASH_UNKNOWN) {
 		return 4;
@@ -678,9 +678,9 @@ static int write_buff32 (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
 		}
 		wp  += FLASH_WIDTH;
 		cnt -= FLASH_WIDTH;
-	  if (get_timer(start) > 990) {   /* every second */
+	  if (time_since_ms(start) > 990) {   /* every second */
 			putc ('.');
-			start = get_timer(0);
+			start = time_now_ms();
 		}
 	}
 
@@ -783,11 +783,11 @@ static int write_word32(flash_info_t *info, ulong dest, ulong data)
     if (flag)
 	enable_interrupts();
 
-    start = get_timer (0);
+    start = time_now_ms();
 
     while (((status = *addr) & 0x00800080) != 0x00800080) {
 	WATCHDOG_RESET();
-	if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+	if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 	    *addr = 0x00FF00FF;              /* restore read mode */
 	    return (1);
 	}
diff --git a/board/w7o/fpga.c b/board/w7o/fpga.c
index 100bce4..f6d39bb 100644
--- a/board/w7o/fpga.c
+++ b/board/w7o/fpga.c
@@ -84,12 +84,12 @@ fpgaDownload(unsigned char *saddr,
     out32(PPC405GP_GPIO0_OR, grego);
 
     /* Setup timeout timer */
-    start = get_timer(0);
+    start = time_now_ms();
 
     /* Wait for FPGA init line */
     while(in32(PPC405GP_GPIO0_IR) & GPIO_XCV_INIT) { /* Wait INIT line low */
 	/* Check for timeout - 100us max, so use 3ms */
-	if (get_timer(start) > 3) {
+	if (time_since_ms(start) > 3) {
 	    printf("     failed to start init.\n");
 	    log_warn(ERR_XINIT0);		/* Don't halt */
 
@@ -106,7 +106,7 @@ fpgaDownload(unsigned char *saddr,
     while(!(in32(PPC405GP_GPIO0_IR) & GPIO_XCV_INIT)) { /* Wait for INIT hi */
 
 	/* Check for timeout */
-	if (get_timer(start) > 3) {
+	if (time_since_ms(start) > 3) {
 	    printf("     failed to exit init.\n");
 	    log_warn(ERR_XINIT1);
 
@@ -177,13 +177,13 @@ fpgaDownload(unsigned char *saddr,
     }
 
     /* Setup timer */
-    start = get_timer(0);
+    start = time_now_ms();
 
     /* Wait for FPGA end of programming period .  */
     while(!(in32(PPC405GP_GPIO0_IR) & GPIO_XCV_DONE)) { /* Test DONE low */
 
 	/* Check for timeout */
-	if (get_timer(start) > 3) {
+	if (time_since_ms(start) > 3) {
 	    printf("     done failed to come high.\n");
 	    log_warn(ERR_XDONE1);
 
diff --git a/board/westel/amx860/flash.c b/board/westel/amx860/flash.c
index fe8bce4..f39b541 100644
--- a/board/westel/amx860/flash.c
+++ b/board/westel/amx860/flash.c
@@ -499,11 +499,11 @@ int	flash_erase (flash_info_t *info, int s_first, int s_last)
 	if (l_sect < 0)
 		goto DONE;
 
-	start = get_timer (0);
+	start = time_now_ms();
 	last  = start;
 	addr = (vu_long*)(info->start[l_sect]);
 	while ((addr[0] & 0x00800080) != 0x00800080) {
-		if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+		if ((now = time_since_ms(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 			printf ("Timeout\n");
 			return 1;
 		}
@@ -624,9 +624,9 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
 		enable_interrupts();
 
 	/* data polling for D7 */
-	start = get_timer (0);
+	start = time_now_ms();
 	while ((*((vu_long *)dest) & 0x00800080) != (data & 0x00800080)) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			return (1);
 		}
 	}
diff --git a/board/xaeniax/flash.c b/board/xaeniax/flash.c
index 6cb0aca..8201bfb 100644
--- a/board/xaeniax/flash.c
+++ b/board/xaeniax/flash.c
@@ -266,14 +266,14 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 			printf ("Erasing sector %2d ... ", sect);
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer(0);
+			start = time_now_ms();
 
 			*addr = (FPW) 0x00500050;	/* clear status register */
 			*addr = (FPW) 0x00200020;	/* erase setup */
 			*addr = (FPW) 0x00D000D0;	/* erase confirm */
 
 			while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = (FPW) 0x00B000B0;	/* suspend erase     */
 					*addr = (FPW) 0x00FF00FF;	/* reset to read mode */
@@ -404,11 +404,11 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
diff --git a/board/xm250/flash.c b/board/xm250/flash.c
index e825aba..53fb67c 100644
--- a/board/xm250/flash.c
+++ b/board/xm250/flash.c
@@ -295,14 +295,14 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 			printf ("Erasing sector %2d ... ", sect);
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer(0);
+			start = time_now_ms();
 
 			*addr = (FPW) 0x00500050;	/* clear status register */
 			*addr = (FPW) 0x00200020;	/* erase setup */
 			*addr = (FPW) 0x00D000D0;	/* erase confirm */
 
 			while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = (FPW) 0x00B000B0;	/* suspend erase     */
 					*addr = (FPW) 0x00FF00FF;	/* reset to read mode */
@@ -433,11 +433,11 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
@@ -480,10 +480,10 @@ int flash_real_protect(flash_info_t *info, long sector, int prot)
 		*addr = INTEL_CONFIRM;	/* clear */
 	}
 
-	start = get_timer(0);
+	start = time_now_ms();
 
 	while ((*addr & INTEL_FINISHED) != INTEL_FINISHED) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_UNLOCK_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_UNLOCK_TOUT) {
 			printf("Flash lock bit operation timed out\n");
 			rc = 1;
 			break;
@@ -509,13 +509,13 @@ int flash_real_protect(flash_info_t *info, long sector, int prot)
 		{
 			if (info->protect[i])
 			{
-				start = get_timer(0);
+				start = time_now_ms();
 				addr = (vu_long *)(info->start[i]);
 				*addr = INTEL_LOCKBIT;	/* Sector lock bit */
 				*addr = INTEL_PROTECT;	/* set */
 				while ((*addr & INTEL_FINISHED) != INTEL_FINISHED)
 				{
-					if (get_timer(start) > CONFIG_SYS_FLASH_UNLOCK_TOUT)
+					if (time_since_ms(start) > CONFIG_SYS_FLASH_UNLOCK_TOUT)
 					{
 						printf("Flash lock bit operation timed out\n");
 						rc = 1;
diff --git a/board/zeus/zeus.c b/board/zeus/zeus.c
index 18cb85f..d92d717 100644
--- a/board/zeus/zeus.c
+++ b/board/zeus/zeus.c
@@ -97,7 +97,7 @@ int misc_init_r(void)
 	/*
 	 * Get current time
 	 */
-	start_time = get_timer(0);
+	start_time = time_now_ms();
 
 	/*
 	 * FLASH stuff...
@@ -337,7 +337,7 @@ int do_chkreset(cmd_tbl_t* cmdtp, int flag, int argc, char * const argv[])
 	printf("Waiting for SW-Reset button to be released.");
 
 	while (1) {
-		delta = get_timer(start_time);
+		delta = time_since_ms(start_time);
 		if (!sw_reset_pressed())
 			break;
 
diff --git a/board/zylonite/flash.c b/board/zylonite/flash.c
index 3ee0ab8..ee425b0 100644
--- a/board/zylonite/flash.c
+++ b/board/zylonite/flash.c
@@ -269,14 +269,14 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 			printf ("Erasing sector %2d ... ", sect);
 
 			/* arm simple, non interrupt dependent timer */
-			start = get_timer(0);
+			start = time_now_ms();
 
 			*addr = (FPW) 0x00500050;	/* clear status register */
 			*addr = (FPW) 0x00200020;	/* erase setup */
 			*addr = (FPW) 0x00D000D0;	/* erase confirm */
 
 			while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-				if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+				if (time_since_ms(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
 					printf ("Timeout\n");
 					*addr = (FPW) 0x00B000B0;	/* suspend erase     */
 					*addr = (FPW) 0x00FF00FF;	/* reset to read mode */
@@ -407,11 +407,11 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
 	*addr = data;
 
 	/* arm simple, non interrupt dependent timer */
-	start = get_timer(0);
+	start = time_now_ms();
 
 	/* wait while polling the status register */
 	while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-		if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+		if (time_since_ms(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
 			*addr = (FPW) 0x00FF00FF;	/* restore read mode */
 			return (1);
 		}
-- 
1.7.5.2.317.g391b14

  parent reply	other threads:[~2011-06-28 11:41 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-28 11:40 [U-Boot] [PATCH v1 (WIP) 00/16] [Timer]API Rewrite Graeme Russ
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 01/16] [Timer]Fix misuse of ARM *timer_masked() functions outside arch/arm Graeme Russ
2011-06-28 12:35   ` Andreas Bießmann
2011-07-11 21:57   ` Wolfgang Denk
2011-07-14 17:01     ` Albert ARIBAUD
2011-07-14 19:50       ` Wolfgang Denk
2011-07-14 23:24         ` Graeme Russ
2011-07-15  6:31           ` Wolfgang Denk
2011-07-15  7:00             ` Graeme Russ
2011-07-15 12:16   ` [U-Boot] [PATCH v2 1/7]Timer: Fix " Graeme Russ
2011-07-16  8:40     ` Albert ARIBAUD
2011-07-16  8:59       ` Graeme Russ
2011-07-16  9:12         ` Albert ARIBAUD
2011-07-16  9:31     ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-16  9:58       ` Albert ARIBAUD
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 02/16] [Timer]Remove calls to set_timer outside arch/ Graeme Russ
2011-07-11 21:58   ` Wolfgang Denk
2011-07-15 12:17   ` [U-Boot] [PATCH v2 2/7]Timer: Remove " Graeme Russ
2011-07-16  9:33     ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:52       ` Wolfgang Denk
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 03/16] [Timer]Remove calls to set_timer in arch/ Graeme Russ
2011-07-11 21:59   ` Wolfgang Denk
2011-07-15 12:18   ` [U-Boot] [PATCH v2 3/7]Timer: Remove set_timer completely Graeme Russ
2011-07-16  9:34     ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:52       ` Wolfgang Denk
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 04/16] [Timer]Allow reset_timer() only for Nios2 Graeme Russ
2011-07-11 22:01   ` Wolfgang Denk
2011-07-15 12:18   ` [U-Boot] [PATCH v2 4/7]Timer: Allow reset_timer() only for systems with low resolution timers Graeme Russ
2011-07-16  9:35     ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:53       ` Wolfgang Denk
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 05/16] [Timer]Remove reset_timer() for non-Nios2 arches Graeme Russ
2011-07-11 22:02   ` Wolfgang Denk
2011-07-15  0:01     ` Graeme Russ
2011-07-15 12:19   ` [U-Boot] [PATCH v2 5/7]Timer: Remove " Graeme Russ
2011-07-16  9:36     ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:53       ` Wolfgang Denk
2011-08-19 21:24         ` Mike Frysinger
2011-08-19 22:55           ` Graeme Russ
2011-08-19 23:12             ` Mike Frysinger
2011-09-28 19:24           ` Wolfgang Denk
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 06/16] [Timer]Fix at91rm9200/spi.c timer usage Graeme Russ
2011-06-28 12:30   ` Andreas Bießmann
2011-07-15 12:20   ` [U-Boot] [PATCH v2 6/7]Timer: Fix " Graeme Russ
2011-07-16  9:37     ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:54       ` Wolfgang Denk
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 07/16] [Timer]Remove reset_timer_masked() Graeme Russ
2011-07-11 22:04   ` Wolfgang Denk
2011-07-15 12:21   ` [U-Boot] [PATCH v2 7/7]Timer: Remove reset_timer_masked() Graeme Russ
2011-07-16  9:38     ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:54       ` Wolfgang Denk
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 08/16] [Timer]Create new userland timer API Graeme Russ
2011-06-29  4:31   ` Simon Glass
2011-06-29  4:36     ` Graeme Russ
2011-06-29  4:48       ` Simon Glass
2011-07-11 22:05   ` Wolfgang Denk
2011-07-11 22:32     ` Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 09/16] [Timer]Replace get_timer() usage in drivers/block/ Graeme Russ
2011-06-29  4:40   ` Simon Glass
2011-06-29  5:06     ` Reinhard Meyer
2011-06-29  5:19       ` Graeme Russ
2011-06-29  5:30         ` Simon Glass
2011-06-29  5:38           ` Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 10/16] [Timer]Replace get_timer() usage in driver/mtd and driver/block Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 11/16] [Timer]Remove reset_timer() completely Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 12/16] [Timer]Replace get_timer() usage in drivers/ Graeme Russ
2011-06-28 12:36   ` Vitaly Kuzmichev
2011-06-28 23:03     ` Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 13/16] [Timer]Replace get_timer() usage in net/ Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 14/16] [Timer]Replace get_timer() usage in common/ Graeme Russ
2011-06-28 11:41 ` Graeme Russ [this message]
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 16/16] [Timer]Replace get_timer() usage in arch/ Graeme Russ
2011-06-29  4:45   ` Simon Glass
2011-06-29  4:51     ` Graeme Russ
2011-06-29  5:15       ` Mike Frysinger
2011-06-29  5:26         ` Mike Frysinger
2011-06-29  5:29           ` Graeme Russ
2011-06-29  4:54 ` [U-Boot] [PATCH v1 (WIP) 00/16] [Timer]API Rewrite Graeme Russ
2011-06-29  5:08 ` Mike Frysinger
2011-06-29  5:20   ` Graeme Russ
2011-07-08  0:25 ` Graeme Russ
2011-07-09  6:01   ` Albert ARIBAUD
2011-07-11 21:56 ` Wolfgang Denk
2011-07-11 22:49   ` Graeme Russ
2011-07-11 23:36   ` Graeme Russ
2011-07-12  2:17     ` Graeme Russ
2011-07-12  8:49       ` Wolfgang Denk
2011-07-12 10:36         ` Graeme Russ
2011-07-12 13:10           ` Wolfgang Denk
2011-07-12 15:23             ` Scott McNutt
2011-07-12 17:27               ` J. William Campbell
2011-07-13  0:29             ` Graeme Russ
2011-07-14 19:30               ` Wolfgang Denk
2011-07-17  1:51           ` Graeme Russ
2011-07-12 14:30       ` J. William Campbell
2011-07-12 16:08         ` Reinhard Meyer
2011-07-13  0:33           ` Graeme Russ
2011-07-13  1:20             ` J. William Campbell
2011-07-14 19:41               ` Wolfgang Denk
2011-07-14 23:52                 ` J. William Campbell
2011-07-15  7:17                   ` Wolfgang Denk
2011-07-15 18:08                     ` J. William Campbell
2011-07-15 18:34                       ` Wolfgang Denk
2011-07-15 21:03                         ` J. William Campbell
2011-07-16 14:11                           ` Graeme Russ
2011-07-15 12:15 ` [U-Boot] [PATCH v2 0/7]Timer: Simplify API Graeme Russ
2011-07-15 13:08   ` Graeme Russ
2011-07-16  8:36     ` Albert ARIBAUD
2011-07-16  9:01       ` Graeme Russ
2011-07-16  9:13         ` Albert ARIBAUD
2011-07-16  9:32         ` Wolfgang Denk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1309261269-4363-16-git-send-email-graeme.russ@gmail.com \
    --to=graeme.russ@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.