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 #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) {