git.openpandora.org
/
pandora-u-boot.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
08f2727
)
Fix problems with CMC_PU2 flash driver.
LABEL_2004_12_20_1220
author
wdenk
<wdenk>
Mon, 20 Dec 2004 11:18:07 +0000
(11:18 +0000)
committer
wdenk
<wdenk>
Mon, 20 Dec 2004 11:18:07 +0000
(11:18 +0000)
board/cmc_pu2/flash.c
patch
|
blob
|
history
diff --git
a/board/cmc_pu2/flash.c
b/board/cmc_pu2/flash.c
index
f119765
..
846a2e6
100644
(file)
--- a/
board/cmc_pu2/flash.c
+++ b/
board/cmc_pu2/flash.c
@@
-335,11
+335,11
@@
int flash_erase (flash_info_t *info, int s_first, int s_last)
if (l_sect < 0)
goto DONE;
if (l_sect < 0)
goto DONE;
-
start = get_timer (0
);
+
reset_timer_masked (
);
last = start;
addr = (vu_short *)(info->start[l_sect]);
while ((addr[0] & 0x0080) != 0x0080) {
last = start;
addr = (vu_short *)(info->start[l_sect]);
while ((addr[0] & 0x0080) != 0x0080) {
- if ((now = get_timer
(start
)) > CFG_FLASH_ERASE_TOUT) {
+ if ((now = get_timer
_masked (
)) > CFG_FLASH_ERASE_TOUT) {
printf ("Timeout\n");
return 1;
}
printf ("Timeout\n");
return 1;
}
@@
-394,6
+394,7
@@
int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
while (cnt >= 2) {
data = *((vu_short *)src);
if ((rc = write_word_amd(info, (vu_short *)wp, data)) != 0) {
while (cnt >= 2) {
data = *((vu_short *)src);
if ((rc = write_word_amd(info, (vu_short *)wp, data)) != 0) {
+printf ("write_buff 1: write_word_amd() rc=%d\n", rc);
return (rc);
}
src += 2;
return (rc);
}
src += 2;
@@
-402,13
+403,13
@@
int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
}
if (cnt == 0) {
}
if (cnt == 0) {
- return (
0
);
+ return (
ERR_OK
);
}
if (cnt == 1) {
}
if (cnt == 1) {
- data = (*((volatile u8 *) src)) | (*((volatile u8 *) (wp + 1))
- << 8);
+ data = (*((volatile u8 *) src)) | (*((volatile u8 *) (wp + 1)) << 8);
if ((rc = write_word_amd(info, (vu_short *)wp, data)) != 0) {
if ((rc = write_word_amd(info, (vu_short *)wp, data)) != 0) {
+printf ("write_buff 1: write_word_amd() rc=%d\n", rc);
return (rc);
}
src += 1;
return (rc);
}
src += 1;
@@
-455,11
+456,11
@@
static int write_word_amd (flash_info_t *info, vu_short *dest, ushort data)
if (flag)
enable_interrupts();
if (flag)
enable_interrupts();
-
start = get_timer (0
);
+
reset_timer_masked (
);
/* data polling for D7 */
while ((*dest & 0x0080) != (data & 0x0080)) {
/* data polling for D7 */
while ((*dest & 0x0080) != (data & 0x0080)) {
- if (get_timer
(start
) > CFG_FLASH_WRITE_TOUT) {
+ if (get_timer
_masked (
) > CFG_FLASH_WRITE_TOUT) {
*dest = 0x00F0; /* reset bank */
return (1);
}
*dest = 0x00F0; /* reset bank */
return (1);
}