]> git.sur5r.net Git - u-boot/blobdiff - board/innokom/flash.c
mx53loco: Place machine ID into board config
[u-boot] / board / innokom / flash.c
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;