diff options
Diffstat (limited to 'board/lart/flash.c')
| -rw-r--r-- | board/lart/flash.c | 10 | 
1 files changed, 6 insertions, 4 deletions
| diff --git a/board/lart/flash.c b/board/lart/flash.c index 29a331eff..408c88498 100644 --- a/board/lart/flash.c +++ b/board/lart/flash.c @@ -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; |