]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
Timer: Fix misuse of ARM *timer_masked() functions outside arch/arm
authorGraeme Russ <graeme.russ@gmail.com>
Fri, 15 Jul 2011 23:31:37 +0000 (23:31 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Sat, 16 Jul 2011 09:55:00 +0000 (11:55 +0200)
Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
32 files changed:
board/armadillo/flash.c
board/atmel/at91rm9200dk/flash.c
board/cerf250/flash.c
board/cm4008/flash.c
board/cm41xx/flash.c
board/cmc_pu2/flash.c
board/cradle/flash.c
board/csb226/flash.c
board/dnp1110/flash.c
board/ep7312/flash.c
board/gcplus/flash.c
board/impa7/flash.c
board/innokom/flash.c
board/lart/flash.c
board/lpd7a40x/flash.c
board/lubbock/flash.c
board/modnet50/flash.c
board/mx1ads/syncflash.c
board/ns9750dev/flash.c
board/pleb2/flash.c
board/samsung/smdk2400/flash.c
board/sbc2410x/flash.c
board/scb9328/flash.c
board/shannon/flash.c
board/ti/omap1610inn/flash.c
board/ti/omap730p2/flash.c
board/xaeniax/flash.c
board/xm250/flash.c
board/zylonite/flash.c
drivers/mtd/spi/eeprom_m95xxx.c
drivers/net/fec_mxc.c
drivers/net/netarm_eth.c

index cdbbfd01c2dda153cc66df59b91dc8b8a45dfa7f..cf7d7f6a64d294962377c314f6d6600124784182 100644 (file)
@@ -162,6 +162,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
        int rc = ERR_OK;
        unsigned long base;
        unsigned long addr;
+       ulong start;
 
        if ((info->flash_id & FLASH_VENDMASK) !=
            (FUJ_MANUFACT & FLASH_VENDMASK)) {
@@ -192,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 */
-               reset_timer_masked ();
+               start = get_timer(0);
 
                if (info->protect[sect] == 0) { /* not protected */
 
@@ -232,6 +233,7 @@ static int write_word (flash_info_t * info, ulong dest, ushort data)
 {
        int flag;
        unsigned long base;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased
         */
@@ -250,7 +252,7 @@ static int write_word (flash_info_t * info, ulong dest, ushort data)
        flag = disable_interrupts ();
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        base = dest & 0xF0000000;
        FL_WORD (base + (0x555 << 1)) = 0xAA;
index 902c3c41c03d7f50a6224113cc3f19f204871ab1..be2274362c11cc8bcc350a3ebf97d2387c08ec9f 100644 (file)
@@ -285,6 +285,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
        int iflag, cflag, prot, sect;
        int rc = ERR_OK;
        int chip1;
+       ulong start;
 
        /* first look for protection bits */
 
@@ -325,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 */
-               reset_timer_masked ();
+               start = get_timer(0);
 
                if (info->protect[sect] == 0) { /* not protected */
                        volatile u16 *addr = (volatile u16 *) (info->start[sect]);
@@ -345,7 +346,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
                                result = *addr;
 
                                /* check timeout */
-                               if (get_timer_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
                                        chip1 = TMO;
                                        break;
@@ -400,6 +401,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
        int rc = ERR_OK;
        int cflag, iflag;
        int chip1;
+       ulong start;
 
        /*
         * Check if Flash is (sufficiently) erased
@@ -425,7 +427,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait until flash is ready */
        chip1 = 0;
@@ -433,7 +435,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
                result = *addr;
 
                /* check timeout */
-               if (get_timer_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                        chip1 = ERR | TMO;
                        break;
                }
index a4b201e011fa84bfe2362d7eafec0b381a7f0647..e1e7807bc10d62bf959d9cd77cb9c787d0383e2c 100644 (file)
@@ -221,7 +221,7 @@ static ulong flash_get_size (FPW *addr, flash_info_t *info)
 int flash_erase (flash_info_t *info, int s_first, int s_last)
 {
        int flag, prot, sect;
-       ulong type, start, last;
+       ulong type, start;
        int rcode = 0;
 
        if ((s_first < 0) || (s_first > s_last)) {
@@ -254,9 +254,6 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
                printf ("\n");
        }
 
-       start = get_timer (0);
-       last = start;
-
        /* Disable interrupts which might cause a timeout here */
        flag = disable_interrupts ();
 
@@ -269,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 */
-                       reset_timer_masked ();
+                       start = get_timer(0);
 
                        *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_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        printf ("Timeout\n");
                                        *addr = (FPW) 0x00B000B0;       /* suspend erase     */
                                        *addr = (FPW) 0x00FF00FF;       /* reset to read mode */
@@ -393,6 +390,7 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
        FPWV *addr = (FPWV *) dest;
        ulong status;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*addr & data) != data) {
@@ -406,11 +404,11 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *addr = (FPW) 0x00FF00FF;       /* restore read mode */
                        return (1);
                }
index 2e6687246aa4afd310709b1eb07201f78177c6d9..d6fd5195d30c4fa93bc3d196272831eed9a71826 100644 (file)
@@ -209,6 +209,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
        int flag, prot, sect;
        ulong type;
        int rcode = 0;
+       ulong start;
 
        if ((s_first < 0) || (s_first > s_last)) {
                if (info->flash_id == FLASH_UNKNOWN) {
@@ -250,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 */
-                       reset_timer_masked ();
+                       start = get_timer(0);
 
                        addr = (volatile unsigned char *) (info->start[sect]);
                        *addr = 0x50;   /* clear status register */
@@ -258,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_masked () >
+                               if (get_timer(start) >
                                    CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        printf ("Timeout\n");
                                        *addr = 0xB0;   /* suspend erase */
@@ -370,6 +371,7 @@ static int write_data (flash_info_t * info, ulong dest, unsigned char data)
        volatile unsigned char *addr = (volatile unsigned char *) dest;
        ulong status;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*addr & data) != data) {
@@ -384,11 +386,11 @@ static int write_data (flash_info_t * info, ulong dest, unsigned char data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((status = *addr) & 0x80) != 0x80) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *addr = 0xFF;   /* restore read mode */
                        return (1);
                }
index 2e6687246aa4afd310709b1eb07201f78177c6d9..d6fd5195d30c4fa93bc3d196272831eed9a71826 100644 (file)
@@ -209,6 +209,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
        int flag, prot, sect;
        ulong type;
        int rcode = 0;
+       ulong start;
 
        if ((s_first < 0) || (s_first > s_last)) {
                if (info->flash_id == FLASH_UNKNOWN) {
@@ -250,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 */
-                       reset_timer_masked ();
+                       start = get_timer(0);
 
                        addr = (volatile unsigned char *) (info->start[sect]);
                        *addr = 0x50;   /* clear status register */
@@ -258,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_masked () >
+                               if (get_timer(start) >
                                    CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        printf ("Timeout\n");
                                        *addr = 0xB0;   /* suspend erase */
@@ -370,6 +371,7 @@ static int write_data (flash_info_t * info, ulong dest, unsigned char data)
        volatile unsigned char *addr = (volatile unsigned char *) dest;
        ulong status;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*addr & data) != data) {
@@ -384,11 +386,11 @@ static int write_data (flash_info_t * info, ulong dest, unsigned char data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((status = *addr) & 0x80) != 0x80) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *addr = 0xFF;   /* restore read mode */
                        return (1);
                }
index d832e6209f83f0f3e2a9d4323bfc28c83258a3be..d10faab52ae0298154e61ce80cec1dc413c04560 100644 (file)
@@ -264,7 +264,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
 {
        vu_short *addr = (vu_short *)(info->start[0]);
        int flag, prot, sect, ssect, l_sect;
-       ulong now, last;
+       ulong now, last, start;
 
        debug ("flash_erase: first: %d last: %d\n", s_first, s_last);
 
@@ -335,11 +335,11 @@ int       flash_erase (flash_info_t *info, int s_first, int s_last)
                if (l_sect < 0)
                        goto DONE;
 
-               reset_timer_masked ();
+               start = get_timer(0);
                last  = 0;
                addr = (vu_short *)(info->start[l_sect]);
                while ((addr[0] & 0x0080) != 0x0080) {
-                       if ((now = get_timer_masked ()) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                       if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                printf ("Timeout\n");
                                return 1;
                        }
@@ -434,6 +434,7 @@ static int write_word_amd (flash_info_t *info, vu_short *dest, ushort data)
 {
        int flag;
        vu_short *base;         /* first address in flash bank  */
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*dest & data) != data) {
@@ -455,11 +456,11 @@ static int write_word_amd (flash_info_t *info, vu_short *dest, ushort data)
        if (flag)
                enable_interrupts();
 
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* data polling for D7 */
        while ((*dest & 0x0080) != (data & 0x0080)) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *dest = 0x00F0; /* reset bank */
                        return (1);
                }
index b5635fbc265874e1739dbb925eaa6b2859d2d63d..160178207d3a35e5c982785029145621897d32bb 100644 (file)
@@ -136,6 +136,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 {
        int flag, prot, sect;
        int rc = ERR_OK;
+       ulong start;
 
        if (info->flash_id == FLASH_UNKNOWN)
                return ERR_UNKNOWN_FLASH_TYPE;
@@ -173,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 */
-               reset_timer_masked ();
+               start = get_timer(0);
 
                if (info->protect[sect] == 0) { /* not protected */
                        vu_short *addr = (vu_short *) (info->start[sect]);
@@ -182,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_masked () >
+                               if (get_timer(start) >
                                    CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        *addr = 0xB0;   /* suspend erase */
                                        *addr = 0xFF;   /* reset to read mode */
@@ -221,6 +222,7 @@ static int write_word (flash_info_t * info, ulong dest, ushort data)
        vu_short *addr = (vu_short *) dest, val;
        int rc = ERR_OK;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased
         */
@@ -246,11 +248,11 @@ static int write_word (flash_info_t * info, ulong dest, ushort data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((val = *addr) & 0x80) != 0x80) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        rc = ERR_TIMOUT;
                        /* suspend program command */
                        *addr = 0xB0;
index 02ded1c45a0d2d97ae33a0cc521dafabeec97285..e10347067c807411c3279ce6f4899d62c1bde389 100644 (file)
@@ -141,6 +141,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
 {
        int flag, prot, sect;
        int rc = ERR_OK;
+       ulong start;
 
        if (info->flash_id == FLASH_UNKNOWN)
                return ERR_UNKNOWN_FLASH_TYPE;
@@ -175,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 */
-               reset_timer_masked();
+               start = get_timer(0);
 
                if (info->protect[sect] == 0) { /* not protected */
                        u32 * volatile addr = (u32 * volatile)(info->start[sect]);
@@ -189,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_masked() > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        *addr = 0x00B000B0; /* suspend erase*/
                                        *addr = 0x00FF00FF; /* read mode    */
                                        rc = ERR_TIMOUT;
@@ -221,6 +222,7 @@ static int write_long (flash_info_t *info, ulong dest, ulong data)
        u32 * volatile addr = (u32 * volatile)dest, val;
        int rc = ERR_OK;
        int flag;
+       ulong start;
 
        /* read array command - just for the case... */
        *addr = 0x00FF00FF;
@@ -247,11 +249,11 @@ static int write_long (flash_info_t *info, ulong dest, ulong data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while(((val = *addr) & 0x00800080) != 0x00800080) {
-               if (get_timer_masked() > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        rc = ERR_TIMOUT;
                        /* suspend program command */
                        *addr = 0x00B000B0;
index c81abc50fd20eb4caa082fb74a16ba6d4def4904..53f89ee7e659e9ee30c59fde3a683c64ff2d0108 100644 (file)
@@ -212,7 +212,7 @@ static ulong flash_get_size (FPW *addr, flash_info_t *info)
 int    flash_erase (flash_info_t *info, int s_first, int s_last)
 {
     int flag, prot, sect;
-       ulong type, start, last;
+       ulong type, start;
        int rcode = 0;
 
     if ((s_first < 0) || (s_first > s_last)) {
@@ -245,9 +245,6 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
                printf ("\n");
        }
 
-       start = get_timer (0);
-       last  = start;
-
    /* Disable interrupts which might cause a timeout here */
     flag = disable_interrupts();
 
@@ -260,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 */
-       reset_timer_masked();
+       start = get_timer(0);
 
                        *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_masked() > CONFIG_SYS_FLASH_ERASE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        printf ("Timeout\n");
                                        *addr = (FPW)0x00B000B0; /* suspend erase         */
                                        *addr = (FPW)0x00FF00FF; /* reset to read mode */
@@ -385,6 +382,7 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
        FPWV *addr = (FPWV *)dest;
        ulong status;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*addr & data) != data) {
@@ -398,11 +396,11 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((status = *addr) & (FPW)0x00800080) != (FPW)0x00800080) {
-               if (get_timer_masked() > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (start = get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *addr = (FPW)0x00FF00FF;        /* restore read mode */
                        return (1);
                }
index 0c2b3aedc2a859c24834f5bef20d788202c15dd0..2ed9c9ad639ffbf56fa4318f39d8d789febe4690 100644 (file)
@@ -119,6 +119,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 {
        int flag, prot, sect;
        int rc = ERR_OK;
+       ulong start;
 
        if (info->flash_id == FLASH_UNKNOWN)
                return ERR_UNKNOWN_FLASH_TYPE;
@@ -156,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 */
-               reset_timer_masked ();
+               start = get_timer(0);
 
                if (info->protect[sect] == 0) { /* not protected */
                        vu_short *addr = (vu_short *) (info->start[sect]);
@@ -165,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_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        *addr = 0xB0;   /* suspend erase */
                                        *addr = 0xFF;   /* reset to read mode */
                                        rc = ERR_TIMOUT;
@@ -203,6 +204,7 @@ static int write_word (flash_info_t * info, ulong dest, ushort data)
        vu_short *addr = (vu_short *) dest, val;
        int rc = ERR_OK;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased
         */
@@ -228,11 +230,11 @@ static int write_word (flash_info_t * info, ulong dest, ushort data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((val = *addr) & 0x80) != 0x80) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        rc = ERR_TIMOUT;
                        /* suspend program command */
                        *addr = 0xB0;
index 8511582baece976aa8bb1310285cd59a1499fe95..ab567e8fa7be66b8e65c2205af2cae83fc190ee9 100644 (file)
@@ -225,7 +225,7 @@ int
 flash_erase(flash_info_t * info, int s_first, int s_last)
 {
        int flag, prot, sect;
-       ulong type, start, last;
+       ulong type, start;
        int rcode = 0;
 
        if ((s_first < 0) || (s_first > s_last)) {
@@ -258,9 +258,6 @@ flash_erase(flash_info_t * info, int s_first, int s_last)
                printf("\n");
        }
 
-       start = get_timer(0);
-       last = start;
-
        /* Disable interrupts which might cause a timeout here */
        flag = disable_interrupts();
 
@@ -273,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 */
-                       reset_timer_masked();
+                       start = get_timer(0);
 
                        *addr = (FPW) 0x00500050;       /* clear status register */
                        *addr = (FPW) 0x00200020;       /* erase setup */
@@ -282,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_masked() > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        printf("Timeout\n");
                                        *addr = (FPW) 0x00B000B0;       /* suspend erase         */
                                        *addr = (FPW) 0x00FF00FF;       /* reset to read mode */
@@ -401,6 +398,7 @@ write_data(flash_info_t * info, ulong dest, FPW data)
        FPWV *addr = (FPWV *) dest;
        ulong status;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*addr & data) != data) {
@@ -414,11 +412,11 @@ write_data(flash_info_t * info, ulong dest, FPW data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-               if (get_timer_masked() > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *addr = (FPW) 0x00FF00FF;       /* restore read mode */
                        return (1);
                }
index d0c5880b33dff795b4f5879c434289046e2894b1..6eae428a9d72ee211e8b40fcfff8f35546602f57 100644 (file)
@@ -128,6 +128,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 {
        int flag, prot, sect;
        int rc = ERR_OK;
+       ulong start;
 
        if (info->flash_id == FLASH_UNKNOWN)
                return ERR_UNKNOWN_FLASH_TYPE;
@@ -165,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 */
-               reset_timer_masked ();
+               start = get_timer(0);
 
                if (info->protect[sect] == 0) { /* not protected */
                        vu_long *addr = (vu_long *) (info->start[sect]);
@@ -174,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_masked () >
+                               if (get_timer(start) >
                                    CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        *addr = 0x00B000B0;     /* suspend erase */
                                        *addr = 0x00FF00FF;     /* reset to read mode */
@@ -211,6 +212,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
        ulong barf;
        int rc = ERR_OK;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased
         */
@@ -236,14 +238,14 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* read status register command */
        *addr = 0x00700070;
 
        /* wait while polling the status register */
        while ((*addr & 0x00800080) != 0x00800080) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        rc = ERR_TIMOUT;
                        /* suspend program command */
                        *addr = 0x00B000B0;
index 8c95341b644ad6da51e305051222fe683e6bf2ec..ed4b9872a2fbfa95165d969ed4310fa56f8d4839 100644 (file)
@@ -182,6 +182,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
 {
        int flag, prot, sect;
        int rc = ERR_OK;
+       ulong start;
 
        if (info->flash_id == FLASH_UNKNOWN)
                return ERR_UNKNOWN_FLASH_TYPE;
@@ -218,7 +219,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
                PRINTK("\n");
 
                /* arm simple, non interrupt dependent timer */
-               reset_timer_masked();
+               start = get_timer(0);
 
                if (info->protect[sect] == 0) { /* not protected */
                        u16 * volatile addr = (u16 * volatile)(info->start[sect]);
@@ -235,7 +236,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
 
                        while ((*addr & 0x0080) != 0x0080) {
                                PRINTK(".");
-                               if (get_timer_masked() > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        *addr = 0x00B0; /* suspend erase*/
                                        *addr = 0x00FF; /* read mode    */
                                        rc = ERR_TIMOUT;
@@ -279,6 +280,7 @@ static int write_word (flash_info_t *info, ulong dest, ushort data)
        volatile u16 *addr = (u16 *)dest, val;
        int rc = ERR_OK;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*addr & data) != data) return ERR_NOT_ERASED;
@@ -302,11 +304,11 @@ static int write_word (flash_info_t *info, ulong dest, ushort data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while(((val = *addr) & 0x80) != 0x80) {
-               if (get_timer_masked() > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        rc = ERR_TIMOUT;
                        *addr = 0xB0; /* suspend program command */
                        goto outahere;
index 29a331eff790cce3d8026719e571940792a302d2..408c88498e5ad8f3c66fa577263e2cb4a571d132 100644 (file)
@@ -250,6 +250,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
     ulong result;
     int iflag, cflag, prot, sect;
     int rc = ERR_OK;
+    ulong start;
 
     /* first look for protection bits */
 
@@ -291,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 */
-       reset_timer_masked();
+       start = get_timer(0);
 
        if (info->protect[sect] == 0)
        {       /* not protected */
@@ -305,7 +306,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
            do
            {
                /* check timeout */
-               if (get_timer_masked() > CONFIG_SYS_FLASH_ERASE_TOUT)
+               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT)
                {
                    *addr = PUZZLE_TO_FLASH(CMD_SUSPEND);
                    result = BIT_TIMEOUT;
@@ -354,6 +355,7 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
     ulong result;
     int rc = ERR_OK;
     int cflag, iflag;
+    ulong start;
 
     /* Check if Flash is (sufficiently) erased
      */
@@ -377,13 +379,13 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
     *addr = data;
 
     /* arm simple, non interrupt dependent timer */
-    reset_timer_masked();
+    start = get_timer(0);
 
     /* wait until flash is ready */
     do
     {
        /* check timeout */
-       if (get_timer_masked() > CONFIG_SYS_FLASH_ERASE_TOUT)
+       if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT)
        {
            *addr = PUZZLE_TO_FLASH(CMD_SUSPEND);
            result = BIT_TIMEOUT;
index a3ba75b8938d52d258de46ac54de429e2ad20e25..f5c07135dc4efbf7c53f99970bc8553f20a13638 100644 (file)
@@ -229,6 +229,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
        ulong result, result1;
        int iflag, prot, sect;
        int rc = ERR_OK;
+       ulong start;
 
 #ifdef USE_920T_MMU
        int cflag;
@@ -284,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 */
-               reset_timer_masked();
+               start = get_timer(0);
 
                if (info->protect[sect] == 0) { /* not protected */
                        vu_long *addr = (vu_long *) (info->start[sect]);
@@ -297,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_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        *addr = CMD_STATUS_RESET;
                                        result = BIT_TIMEOUT;
                                        break;
@@ -357,6 +358,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
        ulong result;
        int rc = ERR_OK;
        int iflag;
+       ulong start;
 
 #ifdef USE_920T_MMU
        int cflag;
@@ -387,12 +389,12 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait until flash is ready */
        do {
                /* check timeout */
-               if (get_timer_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                        *addr = CMD_SUSPEND;
                        result = BIT_TIMEOUT;
                        break;
index a4b201e011fa84bfe2362d7eafec0b381a7f0647..1ea2893fd043a2d7cf41ae8e9c1e1464dc640951 100644 (file)
@@ -221,7 +221,7 @@ static ulong flash_get_size (FPW *addr, flash_info_t *info)
 int flash_erase (flash_info_t *info, int s_first, int s_last)
 {
        int flag, prot, sect;
-       ulong type, start, last;
+       ulong type, start;
        int rcode = 0;
 
        if ((s_first < 0) || (s_first > s_last)) {
@@ -254,9 +254,6 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
                printf ("\n");
        }
 
-       start = get_timer (0);
-       last = start;
-
        /* Disable interrupts which might cause a timeout here */
        flag = disable_interrupts ();
 
@@ -269,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 */
-                       reset_timer_masked ();
+                       start = get_timer(0);
 
                        *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_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        printf ("Timeout\n");
                                        *addr = (FPW) 0x00B000B0;       /* suspend erase     */
                                        *addr = (FPW) 0x00FF00FF;       /* reset to read mode */
@@ -393,6 +390,7 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
        FPWV *addr = (FPWV *) dest;
        ulong status;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*addr & data) != data) {
@@ -406,11 +404,11 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start)) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *addr = (FPW) 0x00FF00FF;       /* restore read mode */
                        return (1);
                }
index 4c3114328abc696ea8b33384302cbffb019b815c..4834e21e62c146eac142b23ef2d1a8171554ace6 100644 (file)
@@ -291,6 +291,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 {
        int flag, sect, setup_offset = 0;
        int rc = ERR_OK;
+       ulong start;
 
        if (info->flash_id == FLASH_UNKNOWN) {
                printf ("- missing\n");
@@ -338,14 +339,14 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
                                                (__u16) SECERASE_CMD;
 
                                        /* wait some time */
-                                       reset_timer_masked ();
-                                       while (get_timer_masked () < 1000) {
+                                       start = get_timer(0);
+                                       while (get_timer(start) < 1000) {
                                        }
 
                                        /* arm simple, non interrupt dependent timer */
-                                       reset_timer_masked ();
+                                       start = get_timer(0);
                                        while (flash_check_erase_amd (info->start[sect])) {
-                                               if (get_timer_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                                               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                                        printf ("timeout!\n");
                                                        /* OOPS: reach timeout,
                                                         * try to reset chip
@@ -411,6 +412,7 @@ static int write_word (flash_info_t * info, ulong dest, ushort data)
 {
        int rc = ERR_OK;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*(__u16 *) (dest) & data) != data)
@@ -446,10 +448,10 @@ static int write_word (flash_info_t * info, ulong dest, ushort data)
        }
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        while (flash_check_write_amd (dest)) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        printf ("timeout! @ %08lX\n", dest);
                        /* OOPS: reach timeout,
                         *       try to reset chip */
index 47f613c7fe4d294679310846d74af365997f3a23..7331efa95649b39d8412dbe20201e222252b2fd6 100644 (file)
@@ -276,7 +276,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last) {
 
 /* arm simple, non interrupt dependent timer */
 
-               reset_timer_masked();
+               get_timer(0);
 
                SF_NvmodeErase();
                SF_NvmodeWrite();
index 5b56b983934f0c29b456e995d69e5645b67eb6dd..185bc2d73a193f346ed23e7563acc32ae8df0a82 100644 (file)
@@ -261,7 +261,7 @@ void flash_unprotect_sectors (FPWV * addr)
 int flash_erase (flash_info_t * info, int s_first, int s_last)
 {
        int flag, prot, sect;
-       ulong type, start, last;
+       ulong type, start;
        int rcode = 0;
 
        if ((s_first < 0) || (s_first > s_last)) {
@@ -294,10 +294,6 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
                printf ("\n");
        }
 
-
-       start = get_timer (0);
-       last = start;
-
        /* Disable interrupts which might cause a timeout here */
        flag = disable_interrupts ();
 
@@ -312,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 */
-                       reset_timer_masked ();
+                       start = get_timer(0);
 
                        *addr = (FPW) 0x00500050;/* clear status register */
                        *addr = (FPW) 0x00200020;/* erase setup */
@@ -321,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_masked () >
+                                       if (get_timer(start) >
                                        CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        printf ("Timeout\n");
                                        /* suspend erase     */
@@ -441,6 +437,7 @@ static int write_data (flash_info_t * info, ulong dest, FPW data)
        FPWV *addr = (FPWV *) dest;
        ulong status;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*addr & data) != data) {
@@ -454,11 +451,11 @@ static int write_data (flash_info_t * info, ulong dest, FPW data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *addr = (FPW) 0x00FF00FF;       /* restore read mode */
                        return (1);
                }
index a8897dcffe82bc317bb90584e6509adfabcdc290..2406c5f4c037e2d720ba42c5a7ba48c0cd8cf0b4 100644 (file)
@@ -472,7 +472,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
        FPWV *addr;
        int flag, prot, sect;
        int intel = (info->flash_id & FLASH_VENDMASK) == FLASH_MAN_INTEL;
-       ulong now, last;
+       ulong start, now, last;
        int rcode = 0;
 
        if ((s_first < 0) || (s_first > s_last)) {
@@ -516,8 +516,6 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
                printf ("\n");
        }
 
-       reset_timer_masked ();
-
        /* Start erase on unprotected sectors */
        for (sect = s_first; sect <= s_last && rcode == 0; sect++) {
 
@@ -527,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 ();
 
-               reset_timer_masked ();
+               start = get_timer(0);
                last = 0;
 
                addr = (FPWV *) (info->start[sect]);
@@ -559,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_masked ()) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                            get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                printf ("Timeout\n");
 
                                if (intel) {
@@ -661,6 +659,7 @@ static int write_word_amd (flash_info_t * info, FPWV * dest, FPW data)
        int flag;
        int res = 0;            /* result, assume success       */
        FPWV *base;             /* first address in flash bank  */
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*dest & data) != data) {
@@ -683,12 +682,12 @@ static int write_word_amd (flash_info_t * info, FPWV * dest, FPW data)
        if (flag)
                enable_interrupts ();
 
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* data polling for D7 */
        while (res == 0
               && (*dest & (FPW) 0x00800080) != (data & (FPW) 0x00800080)) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *dest = (FPW) 0x00F000F0;       /* reset bank */
                        res = 1;
                }
@@ -711,6 +710,7 @@ static int write_word_intel (flash_info_t * info, FPWV * dest, FPW data)
 {
        int flag;
        int res = 0;            /* result, assume success       */
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*dest & data) != data) {
@@ -730,10 +730,10 @@ static int write_word_intel (flash_info_t * info, FPWV * dest, FPW data)
        if (flag)
                enable_interrupts ();
 
-       reset_timer_masked ();
+       start = get_timer(0);
 
        while (res == 0 && (*dest & (FPW) 0x00800080) != (FPW) 0x00800080) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *dest = (FPW) 0x00B000B0;       /* Suspend program      */
                        res = 1;
                }
index fb69c21a45056d9cde2b16f23861e639c8f1fb7d..47382fe8f2fd19409a990fe20b971e176f2cc1f5 100644 (file)
@@ -231,6 +231,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
        ulong result, result1;
        int iflag, prot, sect;
        int rc = ERR_OK;
+       ulong start;
 
 #ifdef USE_920T_MMU
        int cflag;
@@ -286,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 */
-               reset_timer_masked ();
+               start = get_timer(0);
 
                if (info->protect[sect] == 0) { /* not protected */
                        vu_long *addr = (vu_long *) (info->start[sect]);
@@ -299,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_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        *addr = CMD_STATUS_RESET;
                                        result = BIT_TIMEOUT;
                                        break;
@@ -359,6 +360,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
        ulong result;
        int rc = ERR_OK;
        int iflag;
+       ulong start;
 
 #ifdef USE_920T_MMU
        int cflag;
@@ -389,12 +391,12 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait until flash is ready */
        do {
                /* check timeout */
-               if (get_timer_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                        *addr = CMD_SUSPEND;
                        result = BIT_TIMEOUT;
                        break;
index abb09355878617a5e542c75745390e11da3da188..d209a6f9ac4359bca0a13cd191335fa1096f00c7 100644 (file)
@@ -173,6 +173,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
        int iflag, cflag, prot, sect;
        int rc = ERR_OK;
        int chip;
+       ulong start;
 
        /* first look for protection bits */
 
@@ -213,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 */
-               reset_timer_masked ();
+               start = get_timer(0);
 
                if (info->protect[sect] == 0) { /* not protected */
                        vu_short *addr = (vu_short *) (info->start[sect]);
@@ -233,7 +234,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
                                result = *addr;
 
                                /* check timeout */
-                               if (get_timer_masked () >
+                               if (get_timer(start) >
                                    CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
                                        chip = TMO;
@@ -295,6 +296,7 @@ static int write_hword (flash_info_t * info, ulong dest, ushort data)
        int rc = ERR_OK;
        int cflag, iflag;
        int chip;
+       ulong start;
 
        /*
         * Check if Flash is (sufficiently) erased
@@ -322,7 +324,7 @@ static int write_hword (flash_info_t * info, ulong dest, ushort data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       get_timer(start);
 
        /* wait until flash is ready */
        chip = 0;
@@ -330,7 +332,7 @@ static int write_hword (flash_info_t * info, ulong dest, ushort data)
                result = *addr;
 
                /* check timeout */
-               if (get_timer_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                        chip = ERR | TMO;
                        break;
                }
index c6f94aebba76dfa7376023020a50c100e4f32d8c..00c660a2be18db29fa5df638b5f9585f72096d0f 100644 (file)
@@ -97,11 +97,12 @@ static FLASH_BUS_RET flash_status_reg (void)
 static int flash_ready (ulong timeout)
 {
        int ok = 1;
+       ulong start;
 
-       reset_timer_masked ();
+       start = get_timer(0);
        while ((flash_status_reg () & FLASH_CMD (CFI_INTEL_SR_READY)) !=
                   FLASH_CMD (CFI_INTEL_SR_READY)) {
-               if (get_timer_masked () > timeout && timeout != 0) {
+               if (get_timer(start) > timeout && timeout != 0) {
                        ok = 0;
                        break;
                }
index 0455afa93e2c5e87b12d1646a5efb8f303156d58..179ec5f03651751882d4de83ab5965acb190c0d1 100644 (file)
@@ -190,6 +190,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
     int iflag, cflag, prot, sect;
     int rc = ERR_OK;
     int chip1, chip2;
+    ulong start;
 
     /* first look for protection bits */
 
@@ -231,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 */
-       reset_timer_masked();
+       start = get_timer(0);
 
        if (info->protect[sect] == 0)
        {       /* not protected */
@@ -253,7 +254,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
                result = *addr;
 
                /* check timeout */
-               if (get_timer_masked() > CONFIG_SYS_FLASH_ERASE_TOUT)
+               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT)
                {
                    MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
                    chip1 = TMO;
@@ -322,6 +323,7 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
     int rc = ERR_OK;
     int cflag, iflag;
     int chip1, chip2;
+    ulong start;
 
     /*
      * Check if Flash is (sufficiently) erased
@@ -349,7 +351,7 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
     *addr = data;
 
     /* arm simple, non interrupt dependent timer */
-    reset_timer_masked();
+    start = get_timer(0);
 
     /* wait until flash is ready */
     chip1 = chip2 = 0;
@@ -358,7 +360,7 @@ static int write_word (flash_info_t *info, ulong dest, ulong data)
        result = *addr;
 
        /* check timeout */
-       if (get_timer_masked() > CONFIG_SYS_FLASH_ERASE_TOUT)
+       if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT)
        {
            chip1 = ERR | TMO;
            break;
index 36200ad854d231ebf367f7f3fb2f9218ab7a8d02..1b67d08880e6c6cf1d17fe59d363a19de7d03d08 100644 (file)
@@ -278,7 +278,7 @@ void flash_unprotect_sectors (FPWV * addr)
 int flash_erase (flash_info_t * info, int s_first, int s_last)
 {
        int flag, prot, sect;
-       ulong type, start, last;
+       ulong type, start;
        int rcode = 0;
 
        if ((s_first < 0) || (s_first > s_last)) {
@@ -311,10 +311,6 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
                printf ("\n");
        }
 
-
-       start = get_timer (0);
-       last = start;
-
        /* Disable interrupts which might cause a timeout here */
        flag = disable_interrupts ();
 
@@ -329,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 */
-                       reset_timer_masked ();
+                       start = get_timer(0);
 
                        *addr = (FPW) 0x00500050;/* clear status register */
                        *addr = (FPW) 0x00200020;/* erase setup */
@@ -338,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_masked () >
+                                       if (get_timer(start) >
                                        CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        printf ("Timeout\n");
                                        /* suspend erase     */
@@ -458,6 +454,7 @@ static int write_data (flash_info_t * info, ulong dest, FPW data)
        FPWV *addr = (FPWV *) dest;
        ulong status;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*addr & data) != data) {
@@ -470,11 +467,11 @@ static int write_data (flash_info_t * info, ulong dest, FPW data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *addr = (FPW) 0x00FF00FF;       /* restore read mode */
                        return (1);
                }
index 5b56b983934f0c29b456e995d69e5645b67eb6dd..185bc2d73a193f346ed23e7563acc32ae8df0a82 100644 (file)
@@ -261,7 +261,7 @@ void flash_unprotect_sectors (FPWV * addr)
 int flash_erase (flash_info_t * info, int s_first, int s_last)
 {
        int flag, prot, sect;
-       ulong type, start, last;
+       ulong type, start;
        int rcode = 0;
 
        if ((s_first < 0) || (s_first > s_last)) {
@@ -294,10 +294,6 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
                printf ("\n");
        }
 
-
-       start = get_timer (0);
-       last = start;
-
        /* Disable interrupts which might cause a timeout here */
        flag = disable_interrupts ();
 
@@ -312,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 */
-                       reset_timer_masked ();
+                       start = get_timer(0);
 
                        *addr = (FPW) 0x00500050;/* clear status register */
                        *addr = (FPW) 0x00200020;/* erase setup */
@@ -321,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_masked () >
+                                       if (get_timer(start) >
                                        CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        printf ("Timeout\n");
                                        /* suspend erase     */
@@ -441,6 +437,7 @@ static int write_data (flash_info_t * info, ulong dest, FPW data)
        FPWV *addr = (FPWV *) dest;
        ulong status;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*addr & data) != data) {
@@ -454,11 +451,11 @@ static int write_data (flash_info_t * info, ulong dest, FPW data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *addr = (FPW) 0x00FF00FF;       /* restore read mode */
                        return (1);
                }
index b051c898434316224deca33f4823266431f98b1b..6cb0acaa79fe4b0f8cd48c131eb41654c3231ab0 100644 (file)
@@ -221,7 +221,7 @@ static ulong flash_get_size (FPW *addr, flash_info_t *info)
 int flash_erase (flash_info_t *info, int s_first, int s_last)
 {
        int flag, prot, sect;
-       ulong type, start, last;
+       ulong type, start;
        int rcode = 0;
 
        if ((s_first < 0) || (s_first > s_last)) {
@@ -254,9 +254,6 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
                printf ("\n");
        }
 
-       start = get_timer (0);
-       last = start;
-
        /* Disable interrupts which might cause a timeout here */
        flag = disable_interrupts ();
 
@@ -269,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 */
-                       reset_timer_masked ();
+                       start = get_timer(0);
 
                        *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_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        printf ("Timeout\n");
                                        *addr = (FPW) 0x00B000B0;       /* suspend erase     */
                                        *addr = (FPW) 0x00FF00FF;       /* reset to read mode */
@@ -393,6 +390,7 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
        FPWV *addr = (FPWV *) dest;
        ulong status;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*addr & data) != data) {
@@ -406,11 +404,11 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *addr = (FPW) 0x00FF00FF;       /* restore read mode */
                        return (1);
                }
index b02149cd641bbfb56c239390bffd5fb847976650..e825abae1a3177a7780326b53da187b22f2163cc 100644 (file)
@@ -250,7 +250,7 @@ static ulong flash_get_size (FPW *addr, flash_info_t *info)
 int flash_erase (flash_info_t *info, int s_first, int s_last)
 {
        int flag, prot, sect;
-       ulong type, start, last;
+       ulong type, start;
        int rcode = 0;
 
        if ((s_first < 0) || (s_first > s_last)) {
@@ -283,9 +283,6 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
                printf ("\n");
        }
 
-       start = get_timer (0);
-       last = start;
-
        /* Disable interrupts which might cause a timeout here */
        flag = disable_interrupts ();
 
@@ -298,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 */
-                       reset_timer_masked ();
+                       start = get_timer(0);
 
                        *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_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        printf ("Timeout\n");
                                        *addr = (FPW) 0x00B000B0;       /* suspend erase     */
                                        *addr = (FPW) 0x00FF00FF;       /* reset to read mode */
@@ -422,6 +419,7 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
        FPWV *addr = (FPWV *) dest;
        ulong status;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*addr & data) != data) {
@@ -435,11 +433,11 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *addr = (FPW) 0x00FF00FF;       /* restore read mode */
                        return (1);
                }
@@ -470,6 +468,7 @@ int flash_real_protect(flash_info_t *info, long sector, int prot)
        int rc = 0;
        vu_long *addr = (vu_long *)(info->start[sector]);
        int flag = disable_interrupts();
+       ulong start;
 
        *addr = INTEL_CLEAR;    /* Clear status register */
        if (prot) {                     /* Set sector lock bit */
@@ -481,10 +480,10 @@ int flash_real_protect(flash_info_t *info, long sector, int prot)
                *addr = INTEL_CONFIRM;  /* clear */
        }
 
-       reset_timer_masked ();
+       start = get_timer(0);
 
        while ((*addr & INTEL_FINISHED) != INTEL_FINISHED) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_UNLOCK_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_UNLOCK_TOUT) {
                        printf("Flash lock bit operation timed out\n");
                        rc = 1;
                        break;
@@ -510,13 +509,13 @@ int flash_real_protect(flash_info_t *info, long sector, int prot)
                {
                        if (info->protect[i])
                        {
-                               reset_timer_masked ();
+                               start = get_timer(0);
                                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_masked () > CONFIG_SYS_FLASH_UNLOCK_TOUT)
+                                       if (get_timer(start) > CONFIG_SYS_FLASH_UNLOCK_TOUT)
                                        {
                                                printf("Flash lock bit operation timed out\n");
                                                rc = 1;
index 5ba84c68ece9abf19b10d8ee79f1a258d899c817..3ee0ab898626ae5f22e98bea0ca93b9802a5453a 100644 (file)
@@ -224,7 +224,7 @@ static ulong flash_get_size (FPW *addr, flash_info_t *info)
 int flash_erase (flash_info_t *info, int s_first, int s_last)
 {
        int flag, prot, sect;
-       ulong type, start, last;
+       ulong type, start;
        int rcode = 0;
 
        if ((s_first < 0) || (s_first > s_last)) {
@@ -257,9 +257,6 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
                printf ("\n");
        }
 
-       start = get_timer (0);
-       last = start;
-
        /* Disable interrupts which might cause a timeout here */
        flag = disable_interrupts ();
 
@@ -272,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 */
-                       reset_timer_masked ();
+                       start = get_timer(0);
 
                        *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_masked () > CONFIG_SYS_FLASH_ERASE_TOUT) {
+                               if (get_timer(start) > CONFIG_SYS_FLASH_ERASE_TOUT) {
                                        printf ("Timeout\n");
                                        *addr = (FPW) 0x00B000B0;       /* suspend erase     */
                                        *addr = (FPW) 0x00FF00FF;       /* reset to read mode */
@@ -396,6 +393,7 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
        FPWV *addr = (FPWV *) dest;
        ulong status;
        int flag;
+       ulong start;
 
        /* Check if Flash is (sufficiently) erased */
        if ((*addr & data) != data) {
@@ -409,11 +407,11 @@ static int write_data (flash_info_t *info, ulong dest, FPW data)
        *addr = data;
 
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
+       start = get_timer(0);
 
        /* wait while polling the status register */
        while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
-               if (get_timer_masked () > CONFIG_SYS_FLASH_WRITE_TOUT) {
+               if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
                        *addr = (FPW) 0x00FF00FF;       /* restore read mode */
                        return (1);
                }
index 632db4e9e0a60c57ab94a4c54a2b2b9123cb42d0..ef8ed6f4c5d814ad57742fdf4470e6cc53399892 100644 (file)
@@ -75,6 +75,7 @@ ssize_t spi_write (uchar *addr, int alen, uchar *buffer, int len)
 {
        struct spi_slave *slave;
        char buf[3];
+       ulong start;
 
        slave = spi_setup_slave(CONFIG_DEFAULT_SPI_BUS, 1, 1000000,
                        CONFIG_DEFAULT_SPI_MODE);
@@ -102,7 +103,7 @@ ssize_t spi_write (uchar *addr, int alen, uchar *buffer, int len)
        if(spi_xfer(slave, len * 8, buffer, NULL, SPI_XFER_END))
                return -1;
 
-       reset_timer_masked();
+       start = get_timer(0);
        do {
                buf[0] = SPI_EEPROM_RDSR;
                buf[1] = 0;
@@ -111,7 +112,7 @@ ssize_t spi_write (uchar *addr, int alen, uchar *buffer, int len)
                if (!(buf[1] & 1))
                        break;
 
-       } while (get_timer_masked() < CONFIG_SYS_SPI_WRITE_TOUT);
+       } while (get_timer(start) < CONFIG_SYS_SPI_WRITE_TOUT);
 
        if (buf[1] & 1)
                printf ("*** spi_write: Time out while writing!\n");
index 4e4cd2749f6c1ec43642e3e3973e8161f9ecf22d..ab90afa41eb8f30c4a0611b155032473e9268c35 100644 (file)
@@ -86,7 +86,7 @@ static int fec_miiphy_read(const char *dev, uint8_t phyAddr, uint8_t regAddr,
        /*
         * wait for the related interrupt
         */
-       start = get_timer_masked();
+       start = get_timer(0);
        while (!(readl(&fec->eth->ievent) & FEC_IEVENT_MII)) {
                if (get_timer(start) > (CONFIG_SYS_HZ / 1000)) {
                        printf("Read MDIO failed...\n");
@@ -138,7 +138,7 @@ static int fec_miiphy_write(const char *dev, uint8_t phyAddr, uint8_t regAddr,
        /*
         * wait for the MII interrupt
         */
-       start = get_timer_masked();
+       start = get_timer(0);
        while (!(readl(&fec->eth->ievent) & FEC_IEVENT_MII)) {
                if (get_timer(start) > (CONFIG_SYS_HZ / 1000)) {
                        printf("Write MDIO failed...\n");
@@ -189,7 +189,7 @@ static int miiphy_wait_aneg(struct eth_device *dev)
        /*
         * Wait for AN completion
         */
-       start = get_timer_masked();
+       start = get_timer(0);
        do {
                if (get_timer(start) > (CONFIG_SYS_HZ * 5)) {
                        printf("%s: Autonegotiation timeout\n", dev->name);
index c9e324ee264c637fb13254d6b88b35ac335f1946..f54817e58dd3c984c5bcbb6a8ec670944fc5aaab 100644 (file)
@@ -81,9 +81,10 @@ static unsigned int na_mii_read (int reg)
 
 static int na_mii_poll_busy (void)
 {
+       ulong start;
        /* arm simple, non interrupt dependent timer */
-       reset_timer_masked ();
-       while (get_timer_masked () < NA_MII_POLL_BUSY_DELAY) {
+       start = get_timer(0));
+       while (get_timer(start) < NA_MII_POLL_BUSY_DELAY) {
                if (!(GET_EADDR (NETARM_ETH_MII_IND) & NETARM_ETH_MIII_BUSY)) {
                        return 1;
                }
@@ -164,19 +165,20 @@ static unsigned int na_mii_check_speed (void)
 static int reset_eth (void)
 {
        int pt;
+       ulong start;
 
        na_get_mac_addr ();
        pt = na_mii_identify_phy ();
 
        /* reset the phy */
        na_mii_write (MII_PHY_CONTROL, 0x8000);
-       reset_timer_masked ();
-       while (get_timer_masked () < NA_MII_NEGOTIATE_DELAY) {
+       start = get_timer(0);
+       while (get_timer(start) < NA_MII_NEGOTIATE_DELAY) {
                if ((na_mii_read (MII_PHY_STATUS) & 0x8000) == 0) {
                        break;
                }
        }
-       if (get_timer_masked () >= NA_MII_NEGOTIATE_DELAY)
+       if (get_timer(start) >= NA_MII_NEGOTIATE_DELAY)
                printf ("phy reset timeout\n");
 
        /* set the PCS reg */