summaryrefslogtreecommitdiff
path: root/board/csb226/flash.c
diff options
context:
space:
mode:
authorGraeme Russ <graeme.russ@gmail.com>2011-07-15 23:31:37 +0000
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2011-07-16 11:55:00 +0200
commita60d1e5b8e5007f53c198acc5ca636ae570ae180 (patch)
treece621710efc0ecace5a53c22e93f4c6dfcf03be2 /board/csb226/flash.c
parent4e0499ebb0ac53aca45735ed63a3230df3280fb8 (diff)
downloadu-boot-imx-a60d1e5b8e5007f53c198acc5ca636ae570ae180.zip
u-boot-imx-a60d1e5b8e5007f53c198acc5ca636ae570ae180.tar.gz
u-boot-imx-a60d1e5b8e5007f53c198acc5ca636ae570ae180.tar.bz2
Timer: Fix misuse of ARM *timer_masked() functions outside arch/arm
Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
Diffstat (limited to 'board/csb226/flash.c')
-rw-r--r--board/csb226/flash.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/board/csb226/flash.c b/board/csb226/flash.c
index 02ded1c..e103470 100644
--- a/board/csb226/flash.c
+++ b/board/csb226/flash.c
@@ -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;