diff options
author | John Crispin <john@openwrt.org> | 2013-03-12 13:53:08 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2013-03-12 13:53:08 +0000 |
commit | 48a4b3a0cdeae41563641965fc998f12a5549f47 (patch) | |
tree | 5a859befff3b3e3d8aa8f56650d1331085c918d7 | |
parent | 7e1c5b0be86ce6e435a8d32fafe7743463a43344 (diff) | |
download | upstream-48a4b3a0cdeae41563641965fc998f12a5549f47.tar.gz upstream-48a4b3a0cdeae41563641965fc998f12a5549f47.tar.bz2 upstream-48a4b3a0cdeae41563641965fc998f12a5549f47.zip |
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>
SVN-Revision: 35992
-rw-r--r-- | target/linux/lantiq/image/ARV4510PW.dts | 2 | ||||
-rw-r--r-- | target/linux/lantiq/patches-3.7/0305-no_xip_nor.patch | 17 |
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) { |