summaryrefslogtreecommitdiff
path: root/packages/u-boot/u-boot-1.1.4/at32stk1000/avr32-boards-fix-flash-read.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/u-boot/u-boot-1.1.4/at32stk1000/avr32-boards-fix-flash-read.patch')
-rw-r--r--packages/u-boot/u-boot-1.1.4/at32stk1000/avr32-boards-fix-flash-read.patch120
1 files changed, 0 insertions, 120 deletions
diff --git a/packages/u-boot/u-boot-1.1.4/at32stk1000/avr32-boards-fix-flash-read.patch b/packages/u-boot/u-boot-1.1.4/at32stk1000/avr32-boards-fix-flash-read.patch
deleted file mode 100644
index a1e9fe89e5..0000000000
--- a/packages/u-boot/u-boot-1.1.4/at32stk1000/avr32-boards-fix-flash-read.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-Index: u-boot-orig/board/atmel/ngw/flash.c
-===================================================================
---- u-boot-orig.orig/board/atmel/ngw/flash.c 2007-01-03 11:31:44.000000000 +0100
-+++ u-boot-orig/board/atmel/ngw/flash.c 2007-01-03 11:33:13.000000000 +0100
-@@ -161,7 +161,7 @@
- {
- unsigned long flags;
- uint16_t *base, *p, *s, *end;
-- uint16_t word, status;
-+ uint16_t word, status,status1;
- int ret = ERR_OK;
-
- if (addr < info->start[0]
-@@ -196,20 +196,36 @@
- sync_write_buffer();
-
- /* Wait for completion */
-- do {
-+ status1 = readw(p);
-+ do {
- /* TODO: Timeout */
-- status = readw(p);
-- } while ((status != word) && !(status & 0x28));
--
-+ status = status1;
-+ status1=readw(p);
-+ } while ( ((status ^ status1) & 0x40) && // toggle bit has toggled
-+ !(status1 & 0x28) // status is "working"
-+ );
-+
-+ // We'll need to check once again for toggle bit because the toggle bit
-+ // may stop toggling as I/O5 changes to "1" (ref at49bv642.pdf p9)
-+ status1=readw(p);
-+ status=readw(p);
-+ if ((status ^ status1) & 0x40)
-+ {
-+ printf("Flash write error at address 0x%p: 0x%02x != 0x%02x\n",
-+ p, status,word);
-+ ret = ERR_PROG_ERROR;
-+ writew(0xf0, base);
-+ readw(base);
-+ break;
-+ }
-+ // we can now verify status==word if we want to.
-+
-+ // is this Product ID Exit command really required??
-+ // --If configuration is 00 (the default) the device is allready in read mode,
-+ // and the instruction is not required!
- writew(0xf0, base);
- readw(base);
-
-- if (status != word) {
-- printf("Flash write error at address 0x%p: 0x%02x\n",
-- p, status);
-- ret = ERR_PROG_ERROR;
-- break;
-- }
- }
-
- local_irq_restore(flags);
-Index: u-boot-orig/board/atstk1000/flash.c
-===================================================================
---- u-boot-orig.orig/board/atstk1000/flash.c 2007-01-03 11:31:44.000000000 +0100
-+++ u-boot-orig/board/atstk1000/flash.c 2007-01-03 11:33:13.000000000 +0100
-@@ -160,7 +160,7 @@
- {
- unsigned long flags;
- uint16_t *base, *p, *s, *end;
-- uint16_t word, status;
-+ uint16_t word, status,status1;
- int ret = ERR_OK;
-
- if (addr < info->start[0]
-@@ -195,20 +195,36 @@
- sync_write_buffer();
-
- /* Wait for completion */
-- do {
-+ status1 = readw(p);
-+ do {
- /* TODO: Timeout */
-- status = readw(p);
-- } while ((status != word) && !(status & 0x28));
--
-+ status = status1;
-+ status1=readw(p);
-+ } while ( ((status ^ status1) & 0x40) && // toggle bit has toggled
-+ !(status1 & 0x28) // status is "working"
-+ );
-+
-+ // We'll need to check once again for toggle bit because the toggle bit
-+ // may stop toggling as I/O5 changes to "1" (ref at49bv642.pdf p9)
-+ status1=readw(p);
-+ status=readw(p);
-+ if ((status ^ status1) & 0x40)
-+ {
-+ printf("Flash write error at address 0x%p: 0x%02x != 0x%02x\n",
-+ p, status,word);
-+ ret = ERR_PROG_ERROR;
-+ writew(0xf0, base);
-+ readw(base);
-+ break;
-+ }
-+ // we can now verify status==word if we want to.
-+
-+ // is this Product ID Exit command really required??
-+ // --If configuration is 00 (the default) the device is allready in read mode,
-+ // and the instruction is not required!
- writew(0xf0, base);
- readw(base);
-
-- if (status != word) {
-- printf("Flash write error at address 0x%p: 0x%02x\n",
-- p, status);
-- ret = ERR_PROG_ERROR;
-- break;
-- }
- }
-
- local_irq_restore(flags);