aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ifxmips/patches/200-cfi-swap.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ifxmips/patches/200-cfi-swap.patch')
-rw-r--r--target/linux/ifxmips/patches/200-cfi-swap.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/target/linux/ifxmips/patches/200-cfi-swap.patch b/target/linux/ifxmips/patches/200-cfi-swap.patch
new file mode 100644
index 0000000000..6e62f9bd3a
--- /dev/null
+++ b/target/linux/ifxmips/patches/200-cfi-swap.patch
@@ -0,0 +1,55 @@
+Index: linux-2.6.35.8/drivers/mtd/chips/cfi_cmdset_0001.c
+===================================================================
+--- linux-2.6.35.8.orig/drivers/mtd/chips/cfi_cmdset_0001.c 2010-10-29 06:52:43.000000000 +0200
++++ linux-2.6.35.8/drivers/mtd/chips/cfi_cmdset_0001.c 2010-11-01 13:01:30.000000000 +0100
+@@ -41,7 +41,11 @@
+ /* #define CMDSET0001_DISABLE_WRITE_SUSPEND */
+
+ // debugging, turns off buffer write mode if set to 1
+-#define FORCE_WORD_WRITE 0
++#ifdef CONFIG_IFXMIPS
++# define FORCE_WORD_WRITE 1
++#else
++# define FORCE_WORD_WRITE 0
++#endif
+
+ /* Intel chips */
+ #define I82802AB 0x00ad
+@@ -1491,6 +1495,9 @@
+ int ret=0;
+
+ adr += chip->start;
++#ifdef CONFIG_IFXMIPS
++ adr ^= 2;
++#endif
+
+ switch (mode) {
+ case FL_WRITING:
+Index: linux-2.6.35.8/drivers/mtd/chips/cfi_cmdset_0002.c
+===================================================================
+--- linux-2.6.35.8.orig/drivers/mtd/chips/cfi_cmdset_0002.c 2010-11-01 13:01:29.000000000 +0100
++++ linux-2.6.35.8/drivers/mtd/chips/cfi_cmdset_0002.c 2010-11-01 15:14:17.000000000 +0100
+@@ -40,7 +40,11 @@
+ #include <linux/mtd/xip.h>
+
+ #define AMD_BOOTLOC_BUG
+-#define FORCE_WORD_WRITE 0
++#ifdef CONFIG_IFXMIPS
++# define FORCE_WORD_WRITE 1
++#else
++# define FORCE_WORD_WRITE 0
++#endif
+
+ #define MAX_WORD_RETRIES 3
+
+@@ -1156,6 +1160,10 @@
+
+ adr += chip->start;
+
++#ifdef CONFIG_IFXMIPS
++ adr ^= 2;
++#endif
++
+ mutex_lock(&chip->mutex);
+ ret = get_chip(map, chip, adr, FL_WRITING);
+ if (ret) {