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