summaryrefslogtreecommitdiffstats
path: root/target/linux/lantiq
diff options
context:
space:
mode:
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-03-12 13:53:08 +0000
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-03-12 13:53:08 +0000
commit33f7576d1ed86a19c3e0fad2a18a385ad613d2d6 (patch)
tree4709f2779f5c53def8d0efe7c2118bebf964682d /target/linux/lantiq
parent13b8a7893a6077aae74e232ed71adcf143877215 (diff)
[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
Diffstat (limited to 'target/linux/lantiq')
-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 f1d41da39..e0cd38a46 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 000000000..a154befde
--- /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) {