[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