aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2013-03-12 13:53:08 +0000
committerJohn Crispin <blogic@openwrt.org>2013-03-12 13:53:08 +0000
commit92c75fe5c311ebb0f36e49cd6d88b98827751e4d (patch)
tree4709f2779f5c53def8d0efe7c2118bebf964682d
parent1fdb34983b67cc36860842e4824b74fd27e7317f (diff)
downloadmaster-187ad058-92c75fe5c311ebb0f36e49cd6d88b98827751e4d.tar.gz
master-187ad058-92c75fe5c311ebb0f36e49cd6d88b98827751e4d.tar.bz2
master-187ad058-92c75fe5c311ebb0f36e49cd6d88b98827751e4d.zip
[lantiq] fixes NO_XIP on CFI0001 flash
This patch disables the execute-in-place (XIP) support for flash on lantiq. This has to be disabled since the bus which flash is connected to does not support unaligned accesses. Resolves data bus errors on Lantiq routers with Intel command set flash. Signed-off-by: Matti Laakso <malaakso@elisanet.fi> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35992 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--target/linux/lantiq/image/ARV4510PW.dts2
-rw-r--r--target/linux/lantiq/patches-3.7/0305-no_xip_nor.patch17
2 files changed, 19 insertions, 0 deletions
diff --git a/target/linux/lantiq/image/ARV4510PW.dts b/target/linux/lantiq/image/ARV4510PW.dts
index f1d41da39f..e0cd38a460 100644
--- a/target/linux/lantiq/image/ARV4510PW.dts
+++ b/target/linux/lantiq/image/ARV4510PW.dts
@@ -28,6 +28,8 @@
#address-cells = <1>;
#size-cells = <1>;
+ lantiq,noxip;
+
partition@0 {
label = "uboot";
reg = <0x00000 0x20000>;
diff --git a/target/linux/lantiq/patches-3.7/0305-no_xip_nor.patch b/target/linux/lantiq/patches-3.7/0305-no_xip_nor.patch
new file mode 100644
index 0000000000..a154befded
--- /dev/null
+++ b/target/linux/lantiq/patches-3.7/0305-no_xip_nor.patch
@@ -0,0 +1,17 @@
+Index: linux-3.7.10/drivers/mtd/maps/lantiq-flash.c
+===================================================================
+--- linux-3.7.10.orig/drivers/mtd/maps/lantiq-flash.c 2013-02-27 18:22:04.000000000 +0100
++++ linux-3.7.10/drivers/mtd/maps/lantiq-flash.c 2013-03-12 10:10:22.954382685 +0100
+@@ -134,7 +134,11 @@
+ }
+
+ ltq_mtd->map = kzalloc(sizeof(struct map_info), GFP_KERNEL);
+- ltq_mtd->map->phys = ltq_mtd->res->start;
++ if (of_find_property(pdev->dev.of_node, "lantiq,noxip", NULL))
++ ltq_mtd->map->phys = NO_XIP;
++ else
++ ltq_mtd->map->phys = ltq_mtd->res->start;
++ ltq_mtd->res->start;
+ ltq_mtd->map->size = resource_size(ltq_mtd->res);
+ ltq_mtd->map->virt = devm_request_and_ioremap(&pdev->dev, ltq_mtd->res);
+ if (!ltq_mtd->map->virt) {