mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-11-02 19:37:51 +00:00
ipq807x: backport pstore support
v4.4 was missing OF support for this feature. Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
From 969714cb5e188d3d7a4391425c2a55354da13855 Mon Sep 17 00:00:00 2001
|
From ed0c6c49e0033c30207b1e4c925f19d67d087cfe Mon Sep 17 00:00:00 2001
|
||||||
From: John Crispin <john@phrozen.org>
|
From: John Crispin <john@phrozen.org>
|
||||||
Date: Sat, 18 Jul 2020 08:53:44 +0200
|
Date: Sat, 18 Jul 2020 08:53:44 +0200
|
||||||
Subject: [PATCH 01/30] ipq807x: add the Qualcomm AX target support
|
Subject: [PATCH 01/30] ipq807x: add the Qualcomm AX target support
|
||||||
@@ -20,7 +20,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
|||||||
.../linux/ipq807x/base-files/etc/init.d/wdt | 14 +
|
.../linux/ipq807x/base-files/etc/init.d/wdt | 14 +
|
||||||
...G4_v5.4.B-AQR_CIG_WIFI_ID44715_VER1673.cld | Bin 0 -> 391170 bytes
|
...G4_v5.4.B-AQR_CIG_WIFI_ID44715_VER1673.cld | Bin 0 -> 391170 bytes
|
||||||
.../base-files/lib/upgrade/platform.sh | 66 +
|
.../base-files/lib/upgrade/platform.sh | 66 +
|
||||||
target/linux/ipq807x/config-4.4 | 824 +++++++++
|
target/linux/ipq807x/config-4.4 | 828 +++++++++
|
||||||
.../arm/boot/dts/qcom-ipq6018-cig-wf188.dts | 18 +
|
.../arm/boot/dts/qcom-ipq6018-cig-wf188.dts | 18 +
|
||||||
.../arm/boot/dts/qcom-ipq6018-cig-wf188n.dts | 18 +
|
.../arm/boot/dts/qcom-ipq6018-cig-wf188n.dts | 18 +
|
||||||
.../boot/dts/qcom-ipq6018-edgecore-eap101.dts | 18 +
|
.../boot/dts/qcom-ipq6018-edgecore-eap101.dts | 18 +
|
||||||
@@ -54,7 +54,8 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
|||||||
target/linux/ipq807x/patches/109-tplink.patch | 1518 +++++++++++++++++
|
target/linux/ipq807x/patches/109-tplink.patch | 1518 +++++++++++++++++
|
||||||
.../ipq807x/patches/110-add-esmt-nand.patch | 37 +
|
.../ipq807x/patches/110-add-esmt-nand.patch | 37 +
|
||||||
target/linux/ipq807x/patches/111-eap106.patch | 765 +++++++++
|
target/linux/ipq807x/patches/111-eap106.patch | 765 +++++++++
|
||||||
49 files changed, 10107 insertions(+), 2 deletions(-)
|
target/linux/ipq807x/patches/112-pstore.patch | 190 +++
|
||||||
|
50 files changed, 10301 insertions(+), 2 deletions(-)
|
||||||
create mode 100644 package/boot/uboot-envtools/files/ipq807x
|
create mode 100644 package/boot/uboot-envtools/files/ipq807x
|
||||||
create mode 100644 target/linux/ipq807x/109-logspam.patch
|
create mode 100644 target/linux/ipq807x/109-logspam.patch
|
||||||
create mode 100644 target/linux/ipq807x/Makefile
|
create mode 100644 target/linux/ipq807x/Makefile
|
||||||
@@ -100,6 +101,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
|||||||
create mode 100644 target/linux/ipq807x/patches/109-tplink.patch
|
create mode 100644 target/linux/ipq807x/patches/109-tplink.patch
|
||||||
create mode 100644 target/linux/ipq807x/patches/110-add-esmt-nand.patch
|
create mode 100644 target/linux/ipq807x/patches/110-add-esmt-nand.patch
|
||||||
create mode 100644 target/linux/ipq807x/patches/111-eap106.patch
|
create mode 100644 target/linux/ipq807x/patches/111-eap106.patch
|
||||||
|
create mode 100644 target/linux/ipq807x/patches/112-pstore.patch
|
||||||
|
|
||||||
diff --git a/config/Config-kernel.in b/config/Config-kernel.in
|
diff --git a/config/Config-kernel.in b/config/Config-kernel.in
|
||||||
index f71114b5da..4a85d83118 100644
|
index f71114b5da..4a85d83118 100644
|
||||||
@@ -4811,10 +4813,10 @@ index 0000000000..4943b6c406
|
|||||||
+}
|
+}
|
||||||
diff --git a/target/linux/ipq807x/config-4.4 b/target/linux/ipq807x/config-4.4
|
diff --git a/target/linux/ipq807x/config-4.4 b/target/linux/ipq807x/config-4.4
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000..eeb1fec76c
|
index 0000000000..1b4b95b968
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/target/linux/ipq807x/config-4.4
|
+++ b/target/linux/ipq807x/config-4.4
|
||||||
@@ -0,0 +1,824 @@
|
@@ -0,0 +1,828 @@
|
||||||
+# CONFIG_AHCI_IPQ is not set
|
+# CONFIG_AHCI_IPQ is not set
|
||||||
+CONFIG_ALIGNMENT_TRAP=y
|
+CONFIG_ALIGNMENT_TRAP=y
|
||||||
+# CONFIG_ALLOW_DEV_COREDUMP is not set
|
+# CONFIG_ALLOW_DEV_COREDUMP is not set
|
||||||
@@ -5361,6 +5363,10 @@ index 0000000000..eeb1fec76c
|
|||||||
+CONFIG_PRINTK_TIME=y
|
+CONFIG_PRINTK_TIME=y
|
||||||
+CONFIG_PROC_PAGE_MONITOR=y
|
+CONFIG_PROC_PAGE_MONITOR=y
|
||||||
+# CONFIG_PROC_STRIPPED is not set
|
+# CONFIG_PROC_STRIPPED is not set
|
||||||
|
+CONFIG_PSTORE=y
|
||||||
|
+CONFIG_PSTORE_RAM=y
|
||||||
|
+# CONFIG_PSTORE_CONSOLE is not set
|
||||||
|
+# CONFIG_PSTORE_PMSG is not set
|
||||||
+CONFIG_PWM=y
|
+CONFIG_PWM=y
|
||||||
+# CONFIG_PWM_IPQ4019 is not set
|
+# CONFIG_PWM_IPQ4019 is not set
|
||||||
+# CONFIG_PWM_PCA9685 is not set
|
+# CONFIG_PWM_PCA9685 is not set
|
||||||
@@ -14704,6 +14710,202 @@ index 0000000000..497742193e
|
|||||||
+ { PHY_ID_AQR112, 0xfffffff0 },
|
+ { PHY_ID_AQR112, 0xfffffff0 },
|
||||||
+ { PHY_ID_AQR113C, 0xfffffff0 },
|
+ { PHY_ID_AQR113C, 0xfffffff0 },
|
||||||
+ { PHY_ID_AQR112C, 0xfffffff0 },
|
+ { PHY_ID_AQR112C, 0xfffffff0 },
|
||||||
|
diff --git a/target/linux/ipq807x/patches/112-pstore.patch b/target/linux/ipq807x/patches/112-pstore.patch
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..ed97c34241
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/target/linux/ipq807x/patches/112-pstore.patch
|
||||||
|
@@ -0,0 +1,190 @@
|
||||||
|
+Index: linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi
|
||||||
|
+===================================================================
|
||||||
|
+--- linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016.orig/arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi
|
||||||
|
++++ linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi
|
||||||
|
+@@ -92,6 +92,12 @@
|
||||||
|
+ reg = <0x0 0x40000000 0x0 0x00800000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
++ ramoops@4A0f0000 {
|
||||||
|
++ compatible = "ramoops";
|
||||||
|
++ reg = <0 0x4A0f0000 0 0x10000>;
|
||||||
|
++ record-size = <0x1000>;
|
||||||
|
++ };
|
||||||
|
++
|
||||||
|
+ uboot@4A100000 {
|
||||||
|
+ no-map;
|
||||||
|
+ reg = <0x0 0x4A100000 0x0 0x00400000>;
|
||||||
|
+@@ -211,6 +217,12 @@
|
||||||
|
+ reg = <0x0 0x40000000 0x0 0x01000000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
++ ramoops@4A0f0000 {
|
||||||
|
++ compatible = "ramoops";
|
||||||
|
++ reg = <0 0x4A0f0000 0 0x10000>;
|
||||||
|
++ record-size = <0x1000>;
|
||||||
|
++ };
|
||||||
|
++
|
||||||
|
+ uboot@4A100000 {
|
||||||
|
+ no-map;
|
||||||
|
+ reg = <0x0 0x4A100000 0x0 0x00400000>;
|
||||||
|
+@@ -330,6 +342,12 @@
|
||||||
|
+ reg = <0x0 0x40000000 0x0 0x01000000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
++ ramoops@4A0f0000 {
|
||||||
|
++ compatible = "ramoops";
|
||||||
|
++ reg = <0 0x4A0f0000 0 0x10000>;
|
||||||
|
++ record-size = <0x1000>;
|
||||||
|
++ };
|
||||||
|
++
|
||||||
|
+ uboot@4A100000 {
|
||||||
|
+ no-map;
|
||||||
|
+ reg = <0x0 0x4A100000 0x0 0x00400000>;
|
||||||
|
+Index: linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/arch/arm64/boot/dts/qcom/qcom-ipq807x-memory.dtsi
|
||||||
|
+===================================================================
|
||||||
|
+--- linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016.orig/arch/arm64/boot/dts/qcom/qcom-ipq807x-memory.dtsi
|
||||||
|
++++ linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/arch/arm64/boot/dts/qcom/qcom-ipq807x-memory.dtsi
|
||||||
|
+@@ -94,6 +94,12 @@
|
||||||
|
+ no-map;
|
||||||
|
+ reg = <0x0 0x4a600000 0x0 0x00400000>;
|
||||||
|
+ };
|
||||||
|
++ ramoops@4a3f0000 {
|
||||||
|
++ compatible = "ramoops";
|
||||||
|
++ reg = <0 0x4a3f0000 0 0x10000>;
|
||||||
|
++ record-size = <0x1000>;
|
||||||
|
++ };
|
||||||
|
++
|
||||||
|
+ tzapp:tzapp@4a400000 { /* TZAPPS */
|
||||||
|
+ no-map;
|
||||||
|
+ reg = <0x0 0x4a400000 0x0 0x00100000>;
|
||||||
|
+@@ -214,6 +220,12 @@
|
||||||
|
+ no-map;
|
||||||
|
+ reg = <0x0 0x4a600000 0x0 0x00400000>;
|
||||||
|
+ };
|
||||||
|
++ ramoops@4a3f0000 {
|
||||||
|
++ compatible = "ramoops";
|
||||||
|
++ reg = <0 0x4a3f0000 0 0x10000>;
|
||||||
|
++ record-size = <0x1000>;
|
||||||
|
++ };
|
||||||
|
++
|
||||||
|
+ tzapp:tzapp@4a400000 { /* TZAPPS */
|
||||||
|
+ no-map;
|
||||||
|
+ reg = <0x0 0x4a400000 0x0 0x00100000>;
|
||||||
|
+@@ -334,6 +346,12 @@
|
||||||
|
+ reg = <0x0 0x40000000 0x0 0x01000000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
++ ramoops@4a3f0000 {
|
||||||
|
++ compatible = "ramoops";
|
||||||
|
++ reg = <0 0x4a3f0000 0 0x10000>;
|
||||||
|
++ record-size = <0x1000>;
|
||||||
|
++ };
|
||||||
|
++
|
||||||
|
+ tzapp:tzapp@4a400000 { /* TZAPPS */
|
||||||
|
+ no-map;
|
||||||
|
+ reg = <0x0 0x4a400000 0x0 0x00200000>;
|
||||||
|
+Index: linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/fs/pstore/ram.c
|
||||||
|
+===================================================================
|
||||||
|
+--- linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016.orig/fs/pstore/ram.c
|
||||||
|
++++ linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/fs/pstore/ram.c
|
||||||
|
+@@ -466,15 +466,46 @@ static int ramoops_init_prz(struct devic
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
++static int ramoops_parse_dt(struct platform_device *pdev,
|
||||||
|
++ struct ramoops_platform_data *pdata)
|
||||||
|
++{
|
||||||
|
++ struct resource *res;
|
||||||
|
++
|
||||||
|
++ dev_dbg(&pdev->dev, "using Device Tree\n");
|
||||||
|
++
|
||||||
|
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||||
|
++ if (!res) {
|
||||||
|
++ dev_err(&pdev->dev,
|
||||||
|
++ "failed to locate DT /reserved-memory resource\n");
|
||||||
|
++ return -EINVAL;
|
||||||
|
++ }
|
||||||
|
++
|
||||||
|
++ pdata->mem_size = resource_size(res);
|
||||||
|
++ pdata->mem_address = res->start;
|
||||||
|
++ pdata->dump_oops = true;
|
||||||
|
++ pdata->record_size = 0x1000;
|
||||||
|
++ return 0;
|
||||||
|
++}
|
||||||
|
++
|
||||||
|
+ static int ramoops_probe(struct platform_device *pdev)
|
||||||
|
+ {
|
||||||
|
+ struct device *dev = &pdev->dev;
|
||||||
|
+ struct ramoops_platform_data *pdata = pdev->dev.platform_data;
|
||||||
|
++ struct ramoops_platform_data pdata_local;
|
||||||
|
+ struct ramoops_context *cxt = &oops_cxt;
|
||||||
|
+ size_t dump_mem_sz;
|
||||||
|
+ phys_addr_t paddr;
|
||||||
|
+ int err = -EINVAL;
|
||||||
|
+
|
||||||
|
++ if (dev_of_node(dev) && !pdata) {
|
||||||
|
++ pdata = &pdata_local;
|
||||||
|
++ memset(pdata, 0, sizeof(*pdata));
|
||||||
|
++
|
||||||
|
++ err = ramoops_parse_dt(pdev, pdata);
|
||||||
|
++ if (err < 0)
|
||||||
|
++ goto fail_out;
|
||||||
|
++ }
|
||||||
|
++
|
||||||
|
+ /* Only a single ramoops area allowed at a time, so fail extra
|
||||||
|
+ * probes.
|
||||||
|
+ */
|
||||||
|
+@@ -603,11 +634,17 @@ static int ramoops_remove(struct platfor
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
++static const struct of_device_id dt_match[] = {
|
||||||
|
++ { .compatible = "ramoops" },
|
||||||
|
++ {}
|
||||||
|
++};
|
||||||
|
++
|
||||||
|
+ static struct platform_driver ramoops_driver = {
|
||||||
|
+ .probe = ramoops_probe,
|
||||||
|
+ .remove = ramoops_remove,
|
||||||
|
+ .driver = {
|
||||||
|
+ .name = "ramoops",
|
||||||
|
++ .of_match_table = dt_match,
|
||||||
|
+ },
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+Index: linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/drivers/of/platform.c
|
||||||
|
+===================================================================
|
||||||
|
+--- linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016.orig/drivers/of/platform.c
|
||||||
|
++++ linux-4.4.60-qsdk-11f09717303ecd83c3a64e9efe23f25921dc1016/drivers/of/platform.c
|
||||||
|
+@@ -53,6 +53,30 @@ struct platform_device *of_find_device_b
|
||||||
|
+ }
|
||||||
|
+ EXPORT_SYMBOL(of_find_device_by_node);
|
||||||
|
+
|
||||||
|
++static const struct of_device_id reserved_mem_matches[] = {
|
||||||
|
++ { .compatible = "ramoops" },
|
||||||
|
++ {}
|
||||||
|
++};
|
||||||
|
++
|
||||||
|
++static int __init of_platform_default_populate_init(void)
|
||||||
|
++{
|
||||||
|
++ struct device_node *node;
|
||||||
|
++
|
||||||
|
++ if (!of_have_populated_dt())
|
||||||
|
++ return -ENODEV;
|
||||||
|
++
|
||||||
|
++ /*
|
||||||
|
++ * Handle certain compatibles explicitly, since we don't want to create
|
||||||
|
++ * platform_devices for every node in /reserved-memory with a
|
||||||
|
++ * "compatible",
|
||||||
|
++ */
|
||||||
|
++ for_each_matching_node(node, reserved_mem_matches)
|
||||||
|
++ of_platform_device_create(node, NULL, NULL);
|
||||||
|
++
|
||||||
|
++ return 0;
|
||||||
|
++}
|
||||||
|
++arch_initcall_sync(of_platform_default_populate_init);
|
||||||
|
++
|
||||||
|
+ #ifdef CONFIG_OF_ADDRESS
|
||||||
|
+ /*
|
||||||
|
+ * The following routines scan a subtree and registers a device for
|
||||||
--
|
--
|
||||||
2.25.1
|
2.25.1
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user