[source] ipq806x: fix NAND support for linux 4.9
LEDE Commits
lede-commits at lists.infradead.org
Mon Mar 13 05:41:17 PDT 2017
nbd pushed a commit to source.git, branch master:
https://git.lede-project.org/2a4baf3e79ad58db44097198ce32ecc8e8d69d06
commit 2a4baf3e79ad58db44097198ce32ecc8e8d69d06
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Mon Mar 13 12:33:07 2017 +0100
ipq806x: fix NAND support for linux 4.9
Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
.../arch/arm/boot/dts/qcom-ipq8064-ap148.dts | 12 +-
.../arch/arm/boot/dts/qcom-ipq8064-d7800.dts | 128 ++++++------
.../arch/arm/boot/dts/qcom-ipq8064-ea8500.dts | 217 +++++++++++----------
.../arch/arm/boot/dts/qcom-ipq8064-r7500.dts | 120 ++++++------
.../arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts | 132 +++++++------
.../files-4.9/arch/arm/boot/dts/qcom-ipq8064.dtsi | 5 +-
.../arch/arm/boot/dts/qcom-ipq8065-r7800.dts | 126 ++++++------
7 files changed, 397 insertions(+), 343 deletions(-)
diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ap148.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
index 99c5568..fa4f05b 100644
--- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
+++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
@@ -175,10 +175,16 @@
pinctrl-0 = <&nand_pins>;
pinctrl-names = "default";
- nand-ecc-strength = <4>;
- nand-bus-width = <8>;
+ cs0 {
+ reg = <0>;
+ compatible = "qcom,nandcs";
+
+ nand-ecc-strength = <4>;
+ nand-bus-width = <8>;
+ nand-ecc-step-size = <512>;
- linux,part-probe = "qcom-smem";
+ linux,part-probe = "qcom-smem";
+ };
};
mdio0: mdio {
diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-d7800.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-d7800.dts
index 1610a75..c1a4c82 100644
--- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-d7800.dts
+++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-d7800.dts
@@ -201,67 +201,79 @@
pinctrl-0 = <&nand_pins>;
pinctrl-names = "default";
- nand-ecc-strength = <4>;
- nand-bus-width = <8>;
-
#address-cells = <1>;
#size-cells = <1>;
- qcadata at 0 {
- label = "qcadata";
- reg = <0x0000000 0x0c80000>;
- read-only;
- };
-
- APPSBL at c80000 {
- label = "APPSBL";
- reg = <0x0c80000 0x0500000>;
- read-only;
- };
-
- APPSBLENV at 1180000 {
- label = "APPSBLENV";
- reg = <0x1180000 0x0080000>;
- read-only;
- };
-
- art: art at 1200000 {
- label = "art";
- reg = <0x1200000 0x0140000>;
- read-only;
- };
-
- artbak: art at 1340000 {
- label = "artbak";
- reg = <0x1340000 0x0140000>;
- read-only;
- };
-
- kernel at 1480000 {
- label = "kernel";
- reg = <0x1480000 0x0200000>;
- };
-
- ubi at 1680000 {
- label = "ubi";
- reg = <0x1680000 0x1E00000>;
- };
-
- netgear at 3480000 {
- label = "netgear";
- reg = <0x3480000 0x4480000>;
- read-only;
- };
-
- reserve at 7900000 {
- label = "reserve";
- reg = <0x7900000 0x0700000>;
- read-only;
- };
-
- firmware at 1480000 {
- label = "firmware";
- reg = <0x1480000 0x2000000>;
+ cs0 {
+ reg = <0>;
+ compatible = "qcom,nandcs";
+
+ nand-ecc-strength = <4>;
+ nand-bus-width = <8>;
+ nand-ecc-step-size = <512>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ qcadata at 0 {
+ label = "qcadata";
+ reg = <0x0000000 0x0c80000>;
+ read-only;
+ };
+
+ APPSBL at c80000 {
+ label = "APPSBL";
+ reg = <0x0c80000 0x0500000>;
+ read-only;
+ };
+
+ APPSBLENV at 1180000 {
+ label = "APPSBLENV";
+ reg = <0x1180000 0x0080000>;
+ read-only;
+ };
+
+ art: art at 1200000 {
+ label = "art";
+ reg = <0x1200000 0x0140000>;
+ read-only;
+ };
+
+ artbak: art at 1340000 {
+ label = "artbak";
+ reg = <0x1340000 0x0140000>;
+ read-only;
+ };
+
+ kernel at 1480000 {
+ label = "kernel";
+ reg = <0x1480000 0x0200000>;
+ };
+
+ ubi at 1680000 {
+ label = "ubi";
+ reg = <0x1680000 0x1E00000>;
+ };
+
+ netgear at 3480000 {
+ label = "netgear";
+ reg = <0x3480000 0x4480000>;
+ read-only;
+ };
+
+ reserve at 7900000 {
+ label = "reserve";
+ reg = <0x7900000 0x0700000>;
+ read-only;
+ };
+
+ firmware at 1480000 {
+ label = "firmware";
+ reg = <0x1480000 0x2000000>;
+ };
+ };
};
};
diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts
index 591e535..761fa43 100644
--- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts
+++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-ea8500.dts
@@ -176,110 +176,119 @@
pinctrl-0 = <&nand_pins>;
pinctrl-names = "default";
- nand-ecc-strength = <4>;
- nand-bus-width = <8>;
-
- #address-cells = <1>;
- #size-cells = <1>;
-
- SBL1 at 0 {
- label = "SBL1";
- reg = <0x0000000 0x0040000>;
- read-only;
- };
-
- MIBIB at 40000 {
- label = "MIBIB";
- reg = <0x0040000 0x0140000>;
- read-only;
- };
-
- SBL2 at 180000 {
- label = "SBL2";
- reg = <0x0180000 0x0140000>;
- read-only;
- };
-
- SBL3 at 2c0000 {
- label = "SBL3";
- reg = <0x02c0000 0x0280000>;
- read-only;
- };
-
- DDRCONFIG at 540000 {
- label = "DDRCONFIG";
- reg = <0x0540000 0x0120000>;
- read-only;
- };
-
- SSD at 660000 {
- label = "SSD";
- reg = <0x0660000 0x0120000>;
- read-only;
- };
-
- TZ at 780000 {
- label = "TZ";
- reg = <0x0780000 0x0280000>;
- read-only;
- };
-
- RPM at a00000 {
- label = "RPM";
- reg = <0x0a00000 0x0280000>;
- read-only;
- };
-
- art: art at c80000 {
- label = "art";
- reg = <0x0c80000 0x0140000>;
- read-only;
- };
-
- APPSBL at dc0000 {
- label = "APPSBL";
- reg = <0x0dc0000 0x0100000>;
- read-only;
- };
-
- u_env at ec0000 {
- label = "u_env";
- reg = <0x0ec0000 0x0040000>;
- };
-
- s_env at f00000 {
- label = "s_env";
- reg = <0x0f00000 0x0040000>;
- };
-
- devinfo at f40000 {
- label = "devinfo";
- reg = <0x0f40000 0x0040000>;
- };
-
- linux at f80000 {
- label = "kernel1";
- reg = <0x0f80000 0x2800000>; /* 3 MB spill to rootfs*/
- };
-
- rootfs at 1280000 {
- label = "rootfs1";
- reg = <0x1280000 0x2500000>;
- };
-
- linux2 at 3780000 {
- label = "kernel2";
- reg = <0x3780000 0x2800000>;
- };
-
- rootfs2 at 3a80000 {
- label = "rootfs2";
- reg = <0x3a80000 0x2500000>;
- };
-
- syscfg at 5f80000 {
- label = "syscfg";
- reg = <0x5f80000 0x2080000>;
+ cs0 {
+ reg = <0>;
+ compatible = "qcom,nandcs";
+
+ nand-ecc-strength = <4>;
+ nand-bus-width = <8>;
+ nand-ecc-step-size = <512>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ SBL1 at 0 {
+ label = "SBL1";
+ reg = <0x0000000 0x0040000>;
+ read-only;
+ };
+
+ MIBIB at 40000 {
+ label = "MIBIB";
+ reg = <0x0040000 0x0140000>;
+ read-only;
+ };
+
+ SBL2 at 180000 {
+ label = "SBL2";
+ reg = <0x0180000 0x0140000>;
+ read-only;
+ };
+
+ SBL3 at 2c0000 {
+ label = "SBL3";
+ reg = <0x02c0000 0x0280000>;
+ read-only;
+ };
+
+ DDRCONFIG at 540000 {
+ label = "DDRCONFIG";
+ reg = <0x0540000 0x0120000>;
+ read-only;
+ };
+
+ SSD at 660000 {
+ label = "SSD";
+ reg = <0x0660000 0x0120000>;
+ read-only;
+ };
+
+ TZ at 780000 {
+ label = "TZ";
+ reg = <0x0780000 0x0280000>;
+ read-only;
+ };
+
+ RPM at a00000 {
+ label = "RPM";
+ reg = <0x0a00000 0x0280000>;
+ read-only;
+ };
+
+ art: art at c80000 {
+ label = "art";
+ reg = <0x0c80000 0x0140000>;
+ read-only;
+ };
+
+ APPSBL at dc0000 {
+ label = "APPSBL";
+ reg = <0x0dc0000 0x0100000>;
+ read-only;
+ };
+
+ u_env at ec0000 {
+ label = "u_env";
+ reg = <0x0ec0000 0x0040000>;
+ };
+
+ s_env at f00000 {
+ label = "s_env";
+ reg = <0x0f00000 0x0040000>;
+ };
+
+ devinfo at f40000 {
+ label = "devinfo";
+ reg = <0x0f40000 0x0040000>;
+ };
+
+ linux at f80000 {
+ label = "kernel1";
+ reg = <0x0f80000 0x2800000>; /* 3 MB spill to rootfs*/
+ };
+
+ rootfs at 1280000 {
+ label = "rootfs1";
+ reg = <0x1280000 0x2500000>;
+ };
+
+ linux2 at 3780000 {
+ label = "kernel2";
+ reg = <0x3780000 0x2800000>;
+ };
+
+ rootfs2 at 3a80000 {
+ label = "rootfs2";
+ reg = <0x3a80000 0x2500000>;
+ };
+
+ syscfg at 5f80000 {
+ label = "syscfg";
+ reg = <0x5f80000 0x2080000>;
+ };
+ };
};
};
diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500.dts
index f64948d..1c26343 100644
--- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500.dts
+++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500.dts
@@ -169,63 +169,71 @@
pinctrl-0 = <&nand_pins>;
pinctrl-names = "default";
- nand-ecc-strength = <4>;
- nand-bus-width = <8>;
-
- #address-cells = <1>;
- #size-cells = <1>;
-
- qcadata at 0 {
- label = "qcadata";
- reg = <0x0000000 0x0c80000>;
- read-only;
- };
-
- APPSBL at c80000 {
- label = "APPSBL";
- reg = <0x0c80000 0x0500000>;
- read-only;
- };
-
- APPSBLENV at 1180000 {
- label = "APPSBLENV";
- reg = <0x1180000 0x0080000>;
- read-only;
- };
-
- art: art at 1200000 {
- label = "art";
- reg = <0x1200000 0x0140000>;
- read-only;
- };
-
- kernel at 1340000 {
- label = "kernel";
- reg = <0x1340000 0x0200000>;
- };
-
- ubi at 1540000 {
- label = "ubi";
- reg = <0x1540000 0x1800000>;
- };
-
- netgear at 2d40000 {
- label = "netgear";
- reg = <0x2d40000 0x0c00000>;
- read-only;
- };
-
- reserve at 3940000 {
- label = "reserve";
- reg = <0x3940000 0x46c0000>;
- read-only;
- };
-
- firmware at 1340000 {
- label = "firmware";
- reg = <0x1340000 0x1a00000>;
+ cs0 {
+ reg = <0>;
+ compatible = "qcom,nandcs";
+
+ nand-ecc-strength = <4>;
+ nand-bus-width = <8>;
+ nand-ecc-step-size = <512>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ qcadata at 0 {
+ label = "qcadata";
+ reg = <0x0000000 0x0c80000>;
+ read-only;
+ };
+
+ APPSBL at c80000 {
+ label = "APPSBL";
+ reg = <0x0c80000 0x0500000>;
+ read-only;
+ };
+
+ APPSBLENV at 1180000 {
+ label = "APPSBLENV";
+ reg = <0x1180000 0x0080000>;
+ read-only;
+ };
+
+ art: art at 1200000 {
+ label = "art";
+ reg = <0x1200000 0x0140000>;
+ read-only;
+ };
+
+ kernel at 1340000 {
+ label = "kernel";
+ reg = <0x1340000 0x0200000>;
+ };
+
+ ubi at 1540000 {
+ label = "ubi";
+ reg = <0x1540000 0x1800000>;
+ };
+
+ netgear at 2d40000 {
+ label = "netgear";
+ reg = <0x2d40000 0x0c00000>;
+ read-only;
+ };
+
+ reserve at 3940000 {
+ label = "reserve";
+ reg = <0x3940000 0x46c0000>;
+ read-only;
+ };
+
+ firmware at 1340000 {
+ label = "firmware";
+ reg = <0x1340000 0x1a00000>;
+ };
+ };
};
-
};
mdio0: mdio {
diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts
index ccf215c..a21cf18 100644
--- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts
+++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts
@@ -206,69 +206,77 @@
pinctrl-0 = <&nand_pins>;
pinctrl-names = "default";
- nand-ecc-strength = <4>;
- nand-bus-width = <8>;
-
- #address-cells = <1>;
- #size-cells = <1>;
-
- qcadata at 0 {
- label = "qcadata";
- reg = <0x0000000 0x0c80000>;
- read-only;
- };
-
- APPSBL at c80000 {
- label = "APPSBL";
- reg = <0x0c80000 0x0500000>;
- read-only;
- };
-
- APPSBLENV at 1180000 {
- label = "APPSBLENV";
- reg = <0x1180000 0x0080000>;
- read-only;
- };
-
- art: art at 1200000 {
- label = "art";
- reg = <0x1200000 0x0140000>;
- read-only;
- };
-
- artbak: art at 1340000 {
- label = "artbak";
- reg = <0x1340000 0x0140000>;
- read-only;
- };
-
- kernel at 1480000 {
- label = "kernel";
- reg = <0x1480000 0x0200000>;
- };
-
- ubi at 1680000 {
- label = "ubi";
- reg = <0x1680000 0x1E00000>;
- };
-
- netgear at 3480000 {
- label = "netgear";
- reg = <0x3480000 0x4480000>;
- read-only;
- };
-
- reserve at 7900000 {
- label = "reserve";
- reg = <0x7900000 0x0700000>;
- read-only;
- };
-
- firmware at 1480000 {
- label = "firmware";
- reg = <0x1480000 0x2000000>;
+ cs0 {
+ reg = <0>;
+ compatible = "qcom,nandcs";
+
+ nand-ecc-strength = <4>;
+ nand-bus-width = <8>;
+ nand-ecc-step-size = <512>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ qcadata at 0 {
+ label = "qcadata";
+ reg = <0x0000000 0x0c80000>;
+ read-only;
+ };
+
+ APPSBL at c80000 {
+ label = "APPSBL";
+ reg = <0x0c80000 0x0500000>;
+ read-only;
+ };
+
+ APPSBLENV at 1180000 {
+ label = "APPSBLENV";
+ reg = <0x1180000 0x0080000>;
+ read-only;
+ };
+
+ art: art at 1200000 {
+ label = "art";
+ reg = <0x1200000 0x0140000>;
+ read-only;
+ };
+
+ artbak: art at 1340000 {
+ label = "artbak";
+ reg = <0x1340000 0x0140000>;
+ read-only;
+ };
+
+ kernel at 1480000 {
+ label = "kernel";
+ reg = <0x1480000 0x0200000>;
+ };
+
+ ubi at 1680000 {
+ label = "ubi";
+ reg = <0x1680000 0x1E00000>;
+ };
+
+ netgear at 3480000 {
+ label = "netgear";
+ reg = <0x3480000 0x4480000>;
+ read-only;
+ };
+
+ reserve at 7900000 {
+ label = "reserve";
+ reg = <0x7900000 0x0700000>;
+ read-only;
+ };
+
+ firmware at 1480000 {
+ label = "firmware";
+ reg = <0x1480000 0x2000000>;
+ };
+ };
};
-
};
mdio0: mdio {
diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064.dtsi b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064.dtsi
index 8509c83..cfd4a79 100644
--- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064.dtsi
+++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064.dtsi
@@ -913,7 +913,7 @@
};
nand at 1ac00000 {
- compatible = "qcom,ebi2-nandc";
+ compatible = "qcom,ipq806x-nand";
reg = <0x1ac00000 0x800>;
clocks = <&gcc EBI2_CLK>,
@@ -926,6 +926,9 @@
qcom,data-crci = <3>;
status = "disabled";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
};
nss_common: syscon at 03000000 {
diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8065-r7800.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8065-r7800.dts
index bf2fb96..403054c 100644
--- a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8065-r7800.dts
+++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8065-r7800.dts
@@ -313,68 +313,76 @@
pinctrl-0 = <&nand_pins>;
pinctrl-names = "default";
- nand-ecc-strength = <4>;
- nand-ecc-step-size = <512>;
- nand-bus-width = <8>;
-
- #address-cells = <1>;
- #size-cells = <1>;
-
- qcadata at 0 {
- label = "qcadata";
- reg = <0x0000000 0x0c80000>;
- read-only;
- };
-
- APPSBL at c80000 {
- label = "APPSBL";
- reg = <0x0c80000 0x0500000>;
- read-only;
- };
-
- APPSBLENV at 1180000 {
- label = "APPSBLENV";
- reg = <0x1180000 0x0080000>;
- read-only;
- };
-
- art: art at 1200000 {
- label = "art";
- reg = <0x1200000 0x0140000>;
- read-only;
- };
-
- artbak: art at 1340000 {
- label = "artbak";
- reg = <0x1340000 0x0140000>;
- read-only;
- };
-
- kernel at 1480000 {
- label = "kernel";
- reg = <0x1480000 0x0200000>;
- };
+ cs0 {
+ reg = <0>;
+ compatible = "qcom,nandcs";
- ubi at 1680000 {
- label = "ubi";
- reg = <0x1680000 0x1E00000>;
- };
+ nand-ecc-strength = <4>;
+ nand-bus-width = <8>;
+ nand-ecc-step-size = <512>;
- netgear at 3480000 {
- label = "netgear";
- reg = <0x3480000 0x4480000>;
- read-only;
- };
-
- reserve at 7900000 {
- label = "reserve";
- reg = <0x7900000 0x0700000>;
- read-only;
- };
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
- firmware at 1480000 {
- label = "firmware";
- reg = <0x1480000 0x2000000>;
+ qcadata at 0 {
+ label = "qcadata";
+ reg = <0x0000000 0x0c80000>;
+ read-only;
+ };
+
+ APPSBL at c80000 {
+ label = "APPSBL";
+ reg = <0x0c80000 0x0500000>;
+ read-only;
+ };
+
+ APPSBLENV at 1180000 {
+ label = "APPSBLENV";
+ reg = <0x1180000 0x0080000>;
+ read-only;
+ };
+
+ art: art at 1200000 {
+ label = "art";
+ reg = <0x1200000 0x0140000>;
+ read-only;
+ };
+
+ artbak: art at 1340000 {
+ label = "artbak";
+ reg = <0x1340000 0x0140000>;
+ read-only;
+ };
+
+ kernel at 1480000 {
+ label = "kernel";
+ reg = <0x1480000 0x0200000>;
+ };
+
+ ubi at 1680000 {
+ label = "ubi";
+ reg = <0x1680000 0x1E00000>;
+ };
+
+ netgear at 3480000 {
+ label = "netgear";
+ reg = <0x3480000 0x4480000>;
+ read-only;
+ };
+
+ reserve at 7900000 {
+ label = "reserve";
+ reg = <0x7900000 0x0700000>;
+ read-only;
+ };
+
+ firmware at 1480000 {
+ label = "firmware";
+ reg = <0x1480000 0x2000000>;
+ };
+ };
};
};
More information about the lede-commits
mailing list