diff options
-rw-r--r-- | recipes-kernel/linux/linux-yocto-3.14/collie/collie-match-cfi-qry.patch | 47 | ||||
-rw-r--r-- | recipes-kernel/linux/linux-yocto_3.14.bbappend | 1 |
2 files changed, 0 insertions, 48 deletions
diff --git a/recipes-kernel/linux/linux-yocto-3.14/collie/collie-match-cfi-qry.patch b/recipes-kernel/linux/linux-yocto-3.14/collie/collie-match-cfi-qry.patch deleted file mode 100644 index a315d93..0000000 --- a/recipes-kernel/linux/linux-yocto-3.14/collie/collie-match-cfi-qry.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 66ec11df6561d5ba7cdf41977af828a53ba6b99f Mon Sep 17 00:00:00 2001 -From: Andrea Adami <andrea.adami@gmail.com> -Date: Sat, 1 Feb 2014 13:17:24 +0100 -Subject: [PATCH] mtd: cfi_util.c: force CFI detection of 2x LH28F640BF - -Signed-off-by: Andrea Adami <andrea.adami@gmail.com> ---- - drivers/mtd/chips/cfi_util.c | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) - -diff --git a/drivers/mtd/chips/cfi_util.c b/drivers/mtd/chips/cfi_util.c -index f992418..2c7a13d 100644 ---- a/drivers/mtd/chips/cfi_util.c -+++ b/drivers/mtd/chips/cfi_util.c -@@ -29,6 +29,7 @@ int __xipram cfi_qry_present(struct map_info *map, __u32 base, - int osf = cfi->interleave * cfi->device_type; /* scale factor */ - map_word val[3]; - map_word qry[3]; -+ unsigned long mask = (1 << (cfi->device_type * 8)) - 1; - - qry[0] = cfi_build_cmd('Q', map, cfi); - qry[1] = cfi_build_cmd('R', map, cfi); -@@ -38,6 +39,21 @@ int __xipram cfi_qry_present(struct map_info *map, __u32 base, - val[1] = map_read(map, base + osf*0x11); - val[2] = map_read(map, base + osf*0x12); - -+ /* Apparently only one of the 2 interleaved LH28F640BF 16 bit chips on -+ * a 32 bit wide bus is answering to the CFI Query. -+ * Using the expected map bankwidth=4 and chip interleave=2 we get wrong -+ * readings like 0xffff0051 instead of 0x00510051 etc. -+ * We take the valid bytes and recreate the expected answer as workaround. -+ */ -+ if (((val[0].x[0] >> (cfi->device_type * 8)) == mask) && -+ ((val[1].x[0] >> (cfi->device_type * 8)) == mask) && -+ ((val[2].x[0] >> (cfi->device_type * 8)) == mask)) -+ { -+ val[0].x[0] = (val[0].x[0] & mask) + ((val[0].x[0] & mask) << (cfi->device_type * 8)); -+ val[1].x[0] = (val[1].x[0] & mask) + ((val[1].x[0] & mask) << (cfi->device_type * 8)); -+ val[2].x[0] = (val[2].x[0] & mask) + ((val[2].x[0] & mask) << (cfi->device_type * 8)); -+ } -+ - if (!map_word_equal(map, qry[0], val[0])) - return 0; - --- -1.8.1.5 - diff --git a/recipes-kernel/linux/linux-yocto_3.14.bbappend b/recipes-kernel/linux/linux-yocto_3.14.bbappend index 9591f1a..79fff8d 100644 --- a/recipes-kernel/linux/linux-yocto_3.14.bbappend +++ b/recipes-kernel/linux/linux-yocto_3.14.bbappend @@ -55,7 +55,6 @@ SRC_URI_append_collie = " \ \ file://collie-cfi-probe-again.patch \ file://collie-mtd-resize.patch \ - file://collie-match-cfi-qry.patch \ file://collie-LH28F640BF.patch \ file://collie-add-bootblock.patch \ \ |