From fa10dfae577bb008456747a1f1718ec7986f7ed6 Mon Sep 17 00:00:00 2001 From: blogic Date: Mon, 17 Aug 2015 06:18:15 +0000 Subject: [PATCH] ipq806x: switch AP148 to using SMEM based MTD parser *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 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@46658 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- 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 | 2 +- ...RM-dts-qcom-add-mdio-nodes-to-ap148-db149.patch | 2 +- ...-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 | 2 +- ...RM-dts-qcom-add-mdio-nodes-to-ap148-db149.patch | 2 +- ...-qcom-add-gmac-nodes-to-ipq806x-platforms.patch | 2 +- 13 files changed, 35 insertions(+), 63 deletions(-) diff --git a/target/linux/ipq806x/config-3.18 b/target/linux/ipq806x/config-3.18 index 2a837f5282..3d4f8bb2c1 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 f711dd5a12..d48943c11c 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 34eb9c0dfa..bfdb30fe14 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@0 { +- partition@0 { - label = "rootfs"; - reg = <0x0 0x1000000>; -+ label = "lowlevel_init"; -+ reg = <0x0 0x1b0000>; - }; - - partition@1 { +- }; +- +- partition@1 { - label = "scratch"; - reg = <0x1000000 0x1000000>; -+ label = "u-boot"; -+ reg = <0x1b0000 0x80000>; -+ }; -+ -+ partition@2 { -+ label = "u-boot-env"; -+ reg = <0x230000 0x40000>; -+ }; -+ -+ partition@3 { -+ label = "caldata"; -+ reg = <0x270000 0x40000>; -+ }; -+ -+ partition@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 c32261657b..e2d03d4ffd 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@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 4c185668b6..d15f0ac05e 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 spi_pins: spi_pins { mux { pins = "gpio18", "gpio19", "gpio21"; -@@ -138,5 +156,19 @@ +@@ -115,5 +133,19 @@ usb30@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 77be8862e9..d62564ce30 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@16300000 { -@@ -170,5 +195,19 @@ +@@ -147,5 +172,19 @@ pinctrl-0 = <&pcie1_pins>; pinctrl-names = "default"; }; 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 da8286acc2..a4a6a608ac 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,7 +38,7 @@ Signed-off-by: Mathieu Olivari }; gsbi@16300000 { -@@ -205,6 +215,34 @@ +@@ -182,6 +192,34 @@ nand-ecc-strength = <4>; nand-bus-width = <8>; }; 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 8e66b8d120..fda1b86bf6 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 }; gsbi@16300000 { -@@ -243,6 +253,27 @@ +@@ -220,6 +230,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 34eb9c0dfa..bfdb30fe14 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@0 { +- partition@0 { - label = "rootfs"; - reg = <0x0 0x1000000>; -+ label = "lowlevel_init"; -+ reg = <0x0 0x1b0000>; - }; - - partition@1 { +- }; +- +- partition@1 { - label = "scratch"; - reg = <0x1000000 0x1000000>; -+ label = "u-boot"; -+ reg = <0x1b0000 0x80000>; -+ }; -+ -+ partition@2 { -+ label = "u-boot-env"; -+ reg = <0x230000 0x40000>; -+ }; -+ -+ partition@3 { -+ label = "caldata"; -+ reg = <0x270000 0x40000>; -+ }; -+ -+ partition@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 f53b23dfe8..77cf3c3beb 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 spi_pins: spi_pins { mux { pins = "gpio18", "gpio19", "gpio21"; -@@ -114,5 +132,19 @@ +@@ -91,5 +109,19 @@ sata@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 8832756216..415bf30132 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@16300000 { -@@ -146,5 +168,19 @@ +@@ -123,5 +145,19 @@ pinctrl-0 = <&pcie1_pins>; pinctrl-names = "default"; }; 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 940f0317d9..394f378981 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,7 +38,7 @@ Signed-off-by: Mathieu Olivari }; gsbi@16300000 { -@@ -178,6 +188,34 @@ +@@ -155,6 +165,34 @@ nand-ecc-strength = <4>; nand-bus-width = <8>; }; 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 87a37288a8..9b7eacbb4b 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 }; gsbi@16300000 { -@@ -216,6 +226,27 @@ +@@ -193,6 +203,27 @@ reg = <4>; }; }; -- 2.11.0