[OpenWrt-Devel] [PATCH 5/5] ipq806x: switch AP148 to using SMEM based MTD parser
Mathieu Olivari
mathieu at codeaurora.org
Wed Aug 12 22:37:44 EDT 2015
*Enable SMEM MTD parser and its dependencies (SMEM & HW spinlocks) in
the kernel config
*Replaces the MTD layout in DT by the dynamic layout provided by the
SMEM parser for AP148
Using the OF based parser is still possible on platforms which have a
fixed MTD partition layout.
Signed-off-by: Mathieu Olivari <mathieu at codeaurora.org>
---
target/linux/ipq806x/config-3.18 | 4 +++
target/linux/ipq806x/config-4.1 | 8 ++---
.../patches-3.18/021-add-ap148-partitions.patch | 34 ++++++----------------
...1-ARM-qcom-add-USB-nodes-to-ipq806x-ap148.patch | 2 +-
...-qcom-add-pcie-nodes-to-ipq806x-platforms.patch | 2 +-
...nable-NAND-node-on-IPQ8064-AP148-platform.patch | 4 ++-
...RM-dts-qcom-add-mdio-nodes-to-ap148-db149.patch | 6 ++--
...-qcom-add-gmac-nodes-to-ipq806x-platforms.patch | 2 +-
.../patches-4.1/021-add-ap148-partitions.patch | 34 ++++++----------------
...-qcom-add-pcie-nodes-to-ipq806x-platforms.patch | 2 +-
...nable-NAND-node-on-IPQ8064-AP148-platform.patch | 4 ++-
...RM-dts-qcom-add-mdio-nodes-to-ap148-db149.patch | 6 ++--
...-qcom-add-gmac-nodes-to-ipq806x-platforms.patch | 2 +-
13 files changed, 43 insertions(+), 67 deletions(-)
diff --git a/target/linux/ipq806x/config-3.18 b/target/linux/ipq806x/config-3.18
index 2a837f5..3d4f8bb 100644
--- a/target/linux/ipq806x/config-3.18
+++ b/target/linux/ipq806x/config-3.18
@@ -206,6 +206,8 @@ CONFIG_HIGHMEM=y
CONFIG_HIGHPTE=y
CONFIG_HOTPLUG_CPU=y
CONFIG_HWMON=y
+CONFIG_HWSPINLOCK=y
+CONFIG_HWSPINLOCK_QCOM=y
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_MSM=y
CONFIG_HZ_FIXED=0
@@ -259,6 +261,7 @@ CONFIG_MTD_M25P80=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_ECC=y
CONFIG_MTD_NAND_QCOM=y
+CONFIG_MTD_QCOM_SMEM_PARTS=y
CONFIG_MTD_SPI_NOR=y
CONFIG_MTD_SPLIT_FIRMWARE=y
CONFIG_MTD_SPLIT_FIT_FW=y
@@ -345,6 +348,7 @@ CONFIG_QCOM_BAM_DMA=y
CONFIG_QCOM_GSBI=y
CONFIG_QCOM_HFPLL=y
CONFIG_QCOM_SCM=y
+CONFIG_QCOM_SMEM=y
CONFIG_QCOM_WDT=y
CONFIG_RAS=y
# CONFIG_RCU_BOOST is not set
diff --git a/target/linux/ipq806x/config-4.1 b/target/linux/ipq806x/config-4.1
index f711dd5..d48943c 100644
--- a/target/linux/ipq806x/config-4.1
+++ b/target/linux/ipq806x/config-4.1
@@ -45,7 +45,6 @@ CONFIG_ARM_CCI400_PMU=y
CONFIG_ARM_CPU_SUSPEND=y
CONFIG_ARM_GIC=y
CONFIG_ARM_HAS_SG_CHAIN=y
-# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
CONFIG_ARM_L1_CACHE_SHIFT=6
CONFIG_ARM_L1_CACHE_SHIFT_6=y
# CONFIG_ARM_LPAE is not set
@@ -214,6 +213,8 @@ CONFIG_HIGHPTE=y
CONFIG_HOTPLUG_CPU=y
# CONFIG_HSU_DMA_PCI is not set
CONFIG_HWMON=y
+CONFIG_HWSPINLOCK=y
+CONFIG_HWSPINLOCK_QCOM=y
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_MSM=y
CONFIG_HZ_FIXED=0
@@ -240,7 +241,6 @@ CONFIG_KPSS_XCC=y
CONFIG_KRAITCC=y
CONFIG_KRAIT_CLOCKS=y
CONFIG_KRAIT_L2_ACCESSORS=y
-# CONFIG_LEDS_REGULATOR is not set
CONFIG_LIBFDT=y
CONFIG_LOCKUP_DETECTOR=y
CONFIG_LOCK_SPIN_ON_OWNER=y
@@ -268,6 +268,7 @@ CONFIG_MTD_M25P80=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_ECC=y
CONFIG_MTD_NAND_QCOM=y
+CONFIG_MTD_QCOM_SMEM_PARTS=y
CONFIG_MTD_SPI_NOR=y
CONFIG_MTD_SPLIT_FIRMWARE=y
CONFIG_MTD_SPLIT_FIT_FW=y
@@ -357,6 +358,7 @@ CONFIG_QCOM_BAM_DMA=y
CONFIG_QCOM_GSBI=y
CONFIG_QCOM_HFPLL=y
CONFIG_QCOM_SCM=y
+CONFIG_QCOM_SMEM=y
CONFIG_QCOM_WDT=y
CONFIG_RAS=y
# CONFIG_RCU_BOOST is not set
@@ -366,9 +368,7 @@ CONFIG_RD_GZIP=y
CONFIG_REGMAP=y
CONFIG_REGMAP_MMIO=y
CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
CONFIG_REGULATOR_QCOM_RPM=y
-# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
CONFIG_RESET_CONTROLLER=y
CONFIG_RFS_ACCEL=y
CONFIG_RPS=y
diff --git a/target/linux/ipq806x/patches-3.18/021-add-ap148-partitions.patch b/target/linux/ipq806x/patches-3.18/021-add-ap148-partitions.patch
index 34eb9c0..bfdb30f 100644
--- a/target/linux/ipq806x/patches-3.18/021-add-ap148-partitions.patch
+++ b/target/linux/ipq806x/patches-3.18/021-add-ap148-partitions.patch
@@ -1,35 +1,19 @@
--- a/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
+++ b/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
-@@ -78,13 +78,28 @@
+@@ -77,15 +77,7 @@
+ spi-max-frequency = <50000000>;
reg = <0>;
- partition at 0 {
+- partition at 0 {
- label = "rootfs";
- reg = <0x0 0x1000000>;
-+ label = "lowlevel_init";
-+ reg = <0x0 0x1b0000>;
- };
-
- partition at 1 {
+- };
+-
+- partition at 1 {
- label = "scratch";
- reg = <0x1000000 0x1000000>;
-+ label = "u-boot";
-+ reg = <0x1b0000 0x80000>;
-+ };
-+
-+ partition at 2 {
-+ label = "u-boot-env";
-+ reg = <0x230000 0x40000>;
-+ };
-+
-+ partition at 3 {
-+ label = "caldata";
-+ reg = <0x270000 0x40000>;
-+ };
-+
-+ partition at 4 {
-+ label = "firmware";
-+ reg = <0x2b0000 0x1d50000>;
- };
+- };
++ linux,part-probe = "qcom-smem";
};
};
+ };
diff --git a/target/linux/ipq806x/patches-3.18/101-ARM-qcom-add-USB-nodes-to-ipq806x-ap148.patch b/target/linux/ipq806x/patches-3.18/101-ARM-qcom-add-USB-nodes-to-ipq806x-ap148.patch
index 755d0b0..e997fa3 100644
--- a/target/linux/ipq806x/patches-3.18/101-ARM-qcom-add-USB-nodes-to-ipq806x-ap148.patch
+++ b/target/linux/ipq806x/patches-3.18/101-ARM-qcom-add-USB-nodes-to-ipq806x-ap148.patch
@@ -1,6 +1,6 @@
--- a/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
+++ b/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
-@@ -114,5 +114,29 @@
+@@ -91,5 +91,29 @@
sata at 29000000 {
status = "ok";
};
diff --git a/target/linux/ipq806x/patches-3.18/112-ARM-dts-qcom-add-pcie-nodes-to-ipq806x-platforms.patch b/target/linux/ipq806x/patches-3.18/112-ARM-dts-qcom-add-pcie-nodes-to-ipq806x-platforms.patch
index d5b8b6f..ffd31fe 100644
--- a/target/linux/ipq806x/patches-3.18/112-ARM-dts-qcom-add-pcie-nodes-to-ipq806x-platforms.patch
+++ b/target/linux/ipq806x/patches-3.18/112-ARM-dts-qcom-add-pcie-nodes-to-ipq806x-platforms.patch
@@ -40,7 +40,7 @@ Signed-off-by: Mathieu Olivari <mathieu at codeaurora.org>
spi_pins: spi_pins {
mux {
pins = "gpio18", "gpio19", "gpio21";
-@@ -138,5 +156,19 @@
+@@ -115,5 +133,19 @@
usb30 at 1 {
status = "ok";
};
diff --git a/target/linux/ipq806x/patches-3.18/165-arm-qcom-dts-Enable-NAND-node-on-IPQ8064-AP148-platform.patch b/target/linux/ipq806x/patches-3.18/165-arm-qcom-dts-Enable-NAND-node-on-IPQ8064-AP148-platform.patch
index 77be886..b5d5fa1 100644
--- a/target/linux/ipq806x/patches-3.18/165-arm-qcom-dts-Enable-NAND-node-on-IPQ8064-AP148-platform.patch
+++ b/target/linux/ipq806x/patches-3.18/165-arm-qcom-dts-Enable-NAND-node-on-IPQ8064-AP148-platform.patch
@@ -57,7 +57,7 @@ arch/arm/boot/dts/qcom-ipq8064-ap148.dts | 36 ++++++++++++++++++++++++++++++++
};
gsbi at 16300000 {
-@@ -170,5 +195,19 @@
+@@ -147,5 +172,21 @@
pinctrl-0 = <&pcie1_pins>;
pinctrl-names = "default";
};
@@ -70,6 +70,8 @@ arch/arm/boot/dts/qcom-ipq8064-ap148.dts | 36 ++++++++++++++++++++++++++++++++
+
+ nand-ecc-strength = <4>;
+ nand-bus-width = <8>;
++
++ linux,part-probe = "qcom-smem";
+ };
};
};
diff --git a/target/linux/ipq806x/patches-3.18/707-ARM-dts-qcom-add-mdio-nodes-to-ap148-db149.patch b/target/linux/ipq806x/patches-3.18/707-ARM-dts-qcom-add-mdio-nodes-to-ap148-db149.patch
index da8286a..fe28942 100644
--- a/target/linux/ipq806x/patches-3.18/707-ARM-dts-qcom-add-mdio-nodes-to-ap148-db149.patch
+++ b/target/linux/ipq806x/patches-3.18/707-ARM-dts-qcom-add-mdio-nodes-to-ap148-db149.patch
@@ -38,9 +38,9 @@ Signed-off-by: Mathieu Olivari <mathieu at codeaurora.org>
};
gsbi at 16300000 {
-@@ -205,6 +215,34 @@
- nand-ecc-strength = <4>;
- nand-bus-width = <8>;
+@@ -184,6 +194,34 @@
+
+ linux,part-probe = "qcom-smem";
};
+
+ mdio0: mdio {
diff --git a/target/linux/ipq806x/patches-3.18/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch b/target/linux/ipq806x/patches-3.18/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch
index 52ffd6c..064aaba 100644
--- a/target/linux/ipq806x/patches-3.18/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch
+++ b/target/linux/ipq806x/patches-3.18/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch
@@ -29,7 +29,7 @@ Signed-off-by: Mathieu Olivari <mathieu at codeaurora.org>
};
gsbi at 16300000 {
-@@ -243,6 +253,27 @@
+@@ -222,6 +232,27 @@
reg = <4>;
};
};
diff --git a/target/linux/ipq806x/patches-4.1/021-add-ap148-partitions.patch b/target/linux/ipq806x/patches-4.1/021-add-ap148-partitions.patch
index 34eb9c0..bfdb30f 100644
--- a/target/linux/ipq806x/patches-4.1/021-add-ap148-partitions.patch
+++ b/target/linux/ipq806x/patches-4.1/021-add-ap148-partitions.patch
@@ -1,35 +1,19 @@
--- a/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
+++ b/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
-@@ -78,13 +78,28 @@
+@@ -77,15 +77,7 @@
+ spi-max-frequency = <50000000>;
reg = <0>;
- partition at 0 {
+- partition at 0 {
- label = "rootfs";
- reg = <0x0 0x1000000>;
-+ label = "lowlevel_init";
-+ reg = <0x0 0x1b0000>;
- };
-
- partition at 1 {
+- };
+-
+- partition at 1 {
- label = "scratch";
- reg = <0x1000000 0x1000000>;
-+ label = "u-boot";
-+ reg = <0x1b0000 0x80000>;
-+ };
-+
-+ partition at 2 {
-+ label = "u-boot-env";
-+ reg = <0x230000 0x40000>;
-+ };
-+
-+ partition at 3 {
-+ label = "caldata";
-+ reg = <0x270000 0x40000>;
-+ };
-+
-+ partition at 4 {
-+ label = "firmware";
-+ reg = <0x2b0000 0x1d50000>;
- };
+- };
++ linux,part-probe = "qcom-smem";
};
};
+ };
diff --git a/target/linux/ipq806x/patches-4.1/112-ARM-dts-qcom-add-pcie-nodes-to-ipq806x-platforms.patch b/target/linux/ipq806x/patches-4.1/112-ARM-dts-qcom-add-pcie-nodes-to-ipq806x-platforms.patch
index 1974bc7..c1d537a 100644
--- a/target/linux/ipq806x/patches-4.1/112-ARM-dts-qcom-add-pcie-nodes-to-ipq806x-platforms.patch
+++ b/target/linux/ipq806x/patches-4.1/112-ARM-dts-qcom-add-pcie-nodes-to-ipq806x-platforms.patch
@@ -40,7 +40,7 @@ Signed-off-by: Mathieu Olivari <mathieu at codeaurora.org>
spi_pins: spi_pins {
mux {
pins = "gpio18", "gpio19", "gpio21";
-@@ -114,5 +132,19 @@
+@@ -91,5 +109,19 @@
sata at 29000000 {
status = "ok";
};
diff --git a/target/linux/ipq806x/patches-4.1/165-arm-qcom-dts-Enable-NAND-node-on-IPQ8064-AP148-platform.patch b/target/linux/ipq806x/patches-4.1/165-arm-qcom-dts-Enable-NAND-node-on-IPQ8064-AP148-platform.patch
index 2231d2d..163b46c 100644
--- a/target/linux/ipq806x/patches-4.1/165-arm-qcom-dts-Enable-NAND-node-on-IPQ8064-AP148-platform.patch
+++ b/target/linux/ipq806x/patches-4.1/165-arm-qcom-dts-Enable-NAND-node-on-IPQ8064-AP148-platform.patch
@@ -54,7 +54,7 @@ arch/arm/boot/dts/qcom-ipq8064-ap148.dts | 36 ++++++++++++++++++++++++++++++++
};
gsbi at 16300000 {
-@@ -150,5 +172,19 @@
+@@ -127,5 +149,21 @@
pinctrl-0 = <&pcie1_pins>;
pinctrl-names = "default";
};
@@ -67,6 +67,8 @@ arch/arm/boot/dts/qcom-ipq8064-ap148.dts | 36 ++++++++++++++++++++++++++++++++
+
+ nand-ecc-strength = <4>;
+ nand-bus-width = <8>;
++
++ linux,part-probe = "qcom-smem";
+ };
};
};
diff --git a/target/linux/ipq806x/patches-4.1/707-ARM-dts-qcom-add-mdio-nodes-to-ap148-db149.patch b/target/linux/ipq806x/patches-4.1/707-ARM-dts-qcom-add-mdio-nodes-to-ap148-db149.patch
index c1e267a..6d85ce8 100644
--- a/target/linux/ipq806x/patches-4.1/707-ARM-dts-qcom-add-mdio-nodes-to-ap148-db149.patch
+++ b/target/linux/ipq806x/patches-4.1/707-ARM-dts-qcom-add-mdio-nodes-to-ap148-db149.patch
@@ -38,9 +38,9 @@ Signed-off-by: Mathieu Olivari <mathieu at codeaurora.org>
};
gsbi at 16300000 {
-@@ -182,6 +192,34 @@
- nand-ecc-strength = <4>;
- nand-bus-width = <8>;
+@@ -161,6 +171,34 @@
+
+ linux,part-probe = "qcom-smem";
};
+
+ mdio0: mdio {
diff --git a/target/linux/ipq806x/patches-4.1/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch b/target/linux/ipq806x/patches-4.1/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch
index f4f56f2..f3d08e8 100644
--- a/target/linux/ipq806x/patches-4.1/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch
+++ b/target/linux/ipq806x/patches-4.1/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch
@@ -29,7 +29,7 @@ Signed-off-by: Mathieu Olivari <mathieu at codeaurora.org>
};
gsbi at 16300000 {
-@@ -220,6 +230,27 @@
+@@ -199,6 +209,27 @@
reg = <4>;
};
};
--
2.1.4
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list