On Friday, September 7, 2018 2:10:30 PM CEST Ram Chandra Jangir wrote:
>  * SoC: QCA IPQ4019
>  * RAM: 512 MiB
>  * Flash: 32 MiB of SPI NOR and 128 MiB NAND
>  * Wireless: 2.4-GHz 802.11ng, and two 5-GHz 802.11ac
>  * IoT :
>       CSR8811 radio [ supports BT classic and BLE ]
>       SiLabs EFR32MG radio [ supports 802.15.4 ZigBee ]
> 
>    Tested on IPQ ap-dk07.1-c1 Board:
>       1) NOR boot and NAND boot
>       2) Tested USB and PCIe interfaces
Wait, usb is not enabled in the dts.

>       3) WDOG test
>       4) cpu frequency scaling
Hey, that's great. Glad to hear that it is working. 
So, do you know of the upstream status of the cpu frequency
scaling fix that OpenWrt carries:
<https://patchwork.codeaurora.org/patch/473589/>

Because it would be a real shame if that wasn't fixed upstream too,
right?

>       5) ethernet, 2G and 5G WiFi
>
> 
> The ap-dk07.1-c1 board is already available in upstream
> linux v4.17
> 
> Signed-off-by: Ram Chandra Jangir <rjan...@codeaurora.org>
I do have a few comments down below.

> ---
> Changes since v1:
>  Fixed commit message for Wireless 2.4-GHz 802.11ng
>  Updated description for 904-Fix-rootfs-*-mount.patch
> 
>  .../etc/hotplug.d/firmware/11-ath10k-caldata       |  6 +-
>  target/linux/ipq40xx/image/Makefile                | 13 +++
>  ...ipq4019-Add-ipq4019-ap.dk07.1-common-data.patch | 99 
> ++++++++++++++++++++++
>  ...4019-Add-qcom-ipq4019-ap.dk07.1-c1-board-.patch | 99 
> ++++++++++++++++++++++
>  ...x-rootfs-conflict-with-OpenWrt-auto-mount.patch | 40 +++++++++
>  ...5-dts-qcom-ipq4019-ap.dk07.1-enable-nodes.patch | 79 +++++++++++++++++
>  6 files changed, 334 insertions(+), 2 deletions(-)
>  create mode 100644 
> target/linux/ipq40xx/patches-4.14/902-ARM-dts-ipq4019-Add-ipq4019-ap.dk07.1-common-data.patch
>  create mode 100644 
> target/linux/ipq40xx/patches-4.14/903-ARM-dts-ipq4019-Add-qcom-ipq4019-ap.dk07.1-c1-board-.patch
>  create mode 100644 
> target/linux/ipq40xx/patches-4.14/904-Fix-rootfs-conflict-with-OpenWrt-auto-mount.patch
>  create mode 100644 
> target/linux/ipq40xx/patches-4.14/905-dts-qcom-ipq4019-ap.dk07.1-enable-nodes.patch
> 
> diff --git 
> a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata 
> b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
> index 1d4fd9c..83518c9 100644
> --- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
> +++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
> @@ -143,7 +143,8 @@ case "$FIRMWARE" in
>               ;;
>       compex,wpj428 |\
>       openmesh,a42 |\
> -     openmesh,a62)
> +     openmesh,a62 |\
> +     qcom,ap-dk07.1-c1)
>               ath10kcal_extract "0:ART" 4096 12064
>               ;;
>       zyxel,nbg6617 |\
> @@ -179,7 +180,8 @@ case "$FIRMWARE" in
>               ;;
>       compex,wpj428 |\
>       openmesh,a42 |\
> -     openmesh,a62)
> +     openmesh,a62 |\
> +     qcom,ap-dk07.1-c1)
>               ath10kcal_extract "0:ART" 20480 12064
>               ;;
>       zyxel,nbg6617 |\
> diff --git a/target/linux/ipq40xx/image/Makefile 
> b/target/linux/ipq40xx/image/Makefile
> index 5cd11ca..bee2145 100644
> --- a/target/linux/ipq40xx/image/Makefile
> +++ b/target/linux/ipq40xx/image/Makefile
> @@ -207,6 +207,19 @@ define Device/qcom_ap-dk04.1-c1
>  endef
>  TARGET_DEVICES += qcom_ap-dk04.1-c1
>  
> +define Device/qcom_ap-dk07.1-c1
> +     $(call Device/FitImage)
> +     $(call Device/UbiFit)
> +     BOARD_NAME := ap-dk07.1-c1
This is a new device. So, why do you need a legacy BOARD_NAME for it?

> +     DEVICE_DTS := qcom-ipq4019-ap.dk07.1-c1
> +     KERNEL_INSTALL := 1
> +     KERNEL_SIZE := 4096k
> +     BLOCKSIZE := 128k
> +     PAGESIZE := 2048
> +     DEVICE_TITLE := QCA AP-DK07.1-C1
> +endef
> +TARGET_DEVICES += qcom_ap-dk07.1-c1
What's wrong with calling the device "qcom_ipq4019-ap.dk07.1-c1"?

By the way:
Also, John is preparing to drop ath10k: 
<https://git.openwrt.org/?p=openwrt/staging/blogic.git;a=commit;h=f9ccc8f64670e3e15b160cffb19f1ef1a8519e97>

| author        John Crispin <j...@phrozen.org> 
| Wed, 5 Sep 2018 14:51:44 +0200 (14:51 +0200)
| committer     John Crispin <j...@phrozen.org> 
| Thu, 6 Sep 2018 19:00:21 +0200 (19:00 +0200)
| commit        f9ccc8f64670e3e15b160cffb19f1ef1a8519e97
|
|treewide: drop ath10k support
|
|people should use ath10k-ct instead
|
|Signed-off-by: John Crispin <j...@phrozen.org>

So please make sure that the Wi-Fis are indeed working with ath10k-ct.

>  define Device/zyxel_nbg6617
>       $(call Device/FitImageLzma)
>       DEVICE_DTS := qcom-ipq4018-nbg6617
> diff --git 
> a/target/linux/ipq40xx/patches-4.14/902-ARM-dts-ipq4019-Add-ipq4019-ap.dk07.1-common-data.patch
>  
> b/target/linux/ipq40xx/patches-4.14/902-ARM-dts-ipq4019-Add-ipq4019-ap.dk07.1-common-data.patch
> new file mode 100644
> index 0000000..bcc109f
> --- /dev/null
> +++ 
> b/target/linux/ipq40xx/patches-4.14/902-ARM-dts-ipq4019-Add-ipq4019-ap.dk07.1-common-data.patch
> @@ -0,0 +1,99 @@
> +From f97b2aaaf0734a3a6dd6effff6ee0aaa0a69cab5 Mon Sep 17 00:00:00 2001
> +From: Sricharan R <sricha...@codeaurora.org>
> +Date: Fri, 25 May 2018 11:41:17 +0530
> +Subject: [PATCH] ARM: dts: ipq4019: Add ipq4019-ap.dk07.1 common data
> +
> +Add the common data for all dk07 based boards.
> +
> +Reviewed-by: Abhishek Sahu <abs...@codeaurora.org>
> +Signed-off-by: Sricharan R <sricha...@codeaurora.org>
> +Signed-off-by: Andy Gross <andy.gr...@linaro.org>
> +---
> + arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1.dtsi | 75 
> +++++++++++++++++++++++++++
> + 1 file changed, 75 insertions(+)
> + create mode 100644 arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1.dtsi
> +
> +diff --git a/arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1.dtsi 
> b/arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1.dtsi
> +new file mode 100644
> +index 0000000..9f1a5a66
> +--- /dev/null
> ++++ b/arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1.dtsi
I guess you'll need to push those changes upstream.

> +@@ -0,0 +1,75 @@
> ++// SPDX-License-Identifier: GPL-2.0
> ++// Copyright (c) 2018, The Linux Foundation. All rights reserved.
> ++
> ++#include "qcom-ipq4019.dtsi"
> ++#include <dt-bindings/input/input.h>
> ++#include <dt-bindings/gpio/gpio.h>
I noticed that you included input.h put none of these reference
boards actually define any gpio-keys.

So, what's the reason here? Are these DTS actually for real "boards" or
are they just for show? (Also related: why is there no system/power LED
defined?)

> ++/ {
> ++    model = "Qualcomm Technologies, Inc. IPQ4019/AP-DK07.1";
> ++
> ++    memory {
> ++            device_type = "memory";
> ++            reg = <0x80000000 0x20000000>; /* 512MB */
> ++    };
> ++
> ++    aliases {
> ++            serial0 = &blsp1_uart1;
> ++            serial1 = &blsp1_uart2;
(The alias node and chosen node was removed later in a separate
patch.)
> ++    };
> ++
> ++    chosen {
> ++            stdout-path = "serial0:115200n8";
> ++    };
> ++
> ++    soc {
> ++            pinctrl@1000000 {
> ++                    serial_0_pins: serial0-pinmux {
> ++                            pins = "gpio16", "gpio17";
> ++                            function = "blsp_uart0";
> ++                            bias-disable;
> ++                    };
> ++
> ++                    i2c_0_pins: i2c-0-pinmux {
> ++                            pins = "gpio20", "gpio21";
> ++                            function = "blsp_i2c0";
> ++                            bias-disable;
> ++                    };
> ++
> ++                    nand_pins: nand-pins {
> ++                            pins = "gpio53", "gpio55", "gpio56",
> ++                                   "gpio57", "gpio58", "gpio59",
> ++                                   "gpio60", "gpio62", "gpio63",
> ++                                   "gpio64", "gpio65", "gpio66",
> ++                                   "gpio67", "gpio68", "gpio69";
> ++                            function = "qpic";
> ++                        };
> ++            };
bias-pull-ups and bias-pull-downs are missing here.

Also what happend to gpio52? The "qcom-ipq4019-ap.dk04.1.dtsi" still
defines it and from what I can tell, there seems to be only one valid
way to wire up a nand chip with the SoC.

> ++
> ++            serial@78af000 {
> ++                    pinctrl-0 = <&serial_0_pins>;
> ++                    pinctrl-names = "default";
> ++                    status = "ok";
> ++            };
I guess it would have been nice to use the label here.

&tlmm {
..
};

&blsp_dma {

};

&blsp1_spi1 {

};

&blsp1_uart1 {
..
};



but no biggy.

> ++
> ++            dma@7884000 {
> ++                    status = "ok";
> ++            };
> ++
> ++            i2c@78b7000 { /* BLSP1 QUP2 */
> ++                    pinctrl-0 = <&i2c_0_pins>;
> ++                    pinctrl-names = "default";
> ++                    status = "ok";
> ++            };
> ++
> ++            dma@7984000 {
> ++                    status = "ok";
> ++            };
> ++
> ++            qpic-nand@79b0000 {
> ++                    pinctrl-0 = <&nand_pins>;
> ++                    pinctrl-names = "default";
> ++                    status = "ok";
> ++            };
> ++    };
> ++};
> +-- 
> +1.9.1
> +
> diff --git 
> a/target/linux/ipq40xx/patches-4.14/903-ARM-dts-ipq4019-Add-qcom-ipq4019-ap.dk07.1-c1-board-.patch
>  
> b/target/linux/ipq40xx/patches-4.14/903-ARM-dts-ipq4019-Add-qcom-ipq4019-ap.dk07.1-c1-board-.patch
> new file mode 100644
> index 0000000..655a372
> --- /dev/null
> +++ 
> b/target/linux/ipq40xx/patches-4.14/903-ARM-dts-ipq4019-Add-qcom-ipq4019-ap.dk07.1-c1-board-.patch
> @@ -0,0 +1,99 @@
> +From 5ade893ec03c6612a38d53eaf4324f21e18eeef5 Mon Sep 17 00:00:00 2001
> +From: Sricharan R <sricha...@codeaurora.org>
> +Date: Fri, 25 May 2018 11:41:18 +0530
> +Subject: [PATCH] ARM: dts: ipq4019: Add qcom-ipq4019-ap.dk07.1-c1 board file
> +
> +Reviewed-by: Abhishek Sahu <abs...@codeaurora.org>
> +Signed-off-by: Sricharan R <sricha...@codeaurora.org>
> +Signed-off-by: Andy Gross <andy.gr...@linaro.org>
> +---
> + arch/arm/boot/dts/Makefile                      |  1 +
> + arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts | 64 
> +++++++++++++++++++++++++
> + 2 files changed, 65 insertions(+)
> + create mode 100644 arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts
> +
> +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> +index 2c002b3..eede5df 100644
> +--- a/arch/arm/boot/dts/Makefile
> ++++ b/arch/arm/boot/dts/Makefile
> +@@ -708,6 +708,7 @@
> +     qcom-ipq4019-ap.dk01.1-c1.dtb \
> +     qcom-ipq4019-a62.dtb \
> +     qcom-ipq4019-ap.dk04.1-c1.dtb \
> ++    qcom-ipq4019-ap.dk07.1-c1.dtb \
> +     qcom-ipq4028-wpj428.dtb \
> +     qcom-ipq4029-gl-b1300.dtb \
> +     qcom-ipq4029-mr33.dtb \
> +diff --git a/arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts 
> b/arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts
> +new file mode 100644
> +index 0000000..8c7ef65
> +--- /dev/null
> ++++ b/arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts
Same as with the .dtsi: please push those changes upstream.

> +@@ -0,0 +1,64 @@
> ++// SPDX-License-Identifier: GPL-2.0
> ++// Copyright (c) 2018, The Linux Foundation. All rights reserved.
> ++
> ++#include "qcom-ipq4019-ap.dk07.1.dtsi"
> ++
> ++/ {
> ++    model = "Qualcomm Technologies, Inc. IPQ4019/AP-DK07.1-C1";
> ++    compatible = "qcom,ipq4019-ap-dk07.1-c1";
Make that:

compatible = "qcom,ipq4019-ap-dk07.1-c1", "qcom,ipq4019";
> ++
> ++    soc {
> ++            pci@40000000 {
> ++                    status = "ok";
> ++                    perst-gpio = <&tlmm 38 0x1>;
> ++            };
The phandle's 3'rd parameter should be GPIO_ACTIVE_LOW and not 0x1. 

> ++
> ++            spi@78b6000 {
> ++                    status = "ok";
> ++            };
> ++
> ++            pinctrl@1000000 {
> ++                    serial_1_pins: serial1-pinmux {
> ++                            pins = "gpio8", "gpio9",
> ++                                    "gpio10", "gpio11";
> ++                            function = "blsp_uart1";
> ++                            bias-disable;
> ++                    };
> ++
> ++                    spi_0_pins: spi-0-pinmux {
> ++                            pinmux {
> ++                                    function = "blsp_spi0";
> ++                                    pins = "gpio13", "gpio14", "gpio15";
> ++                                    bias-disable;
> ++                            };
> ++                            pinmux_cs {
> ++                                    function = "gpio";
> ++                                    pins = "gpio12";
> ++                                    bias-disable;
> ++                                    output-high;
> ++                            };
> ++                    };
> ++            };
> ++
> ++            serial@78b0000 {
> ++                    pinctrl-0 = <&serial_1_pins>;
> ++                    pinctrl-names = "default";
> ++                    status = "ok";
> ++            };
> ++
> ++            spi@78b5000 {
> ++                    pinctrl-0 = <&spi_0_pins>;
> ++                    pinctrl-names = "default";
> ++                    status = "ok";
> ++                    cs-gpios = <&tlmm 12 0>;
that 0 would be GPIO_ACTIVE_HIGH (altough, the spi subsystem does not
care about high or low there. It has its own: "spi-cs-high; " property
for this purpose.

> ++
> ++                    m25p80@0 {
> ++                            #address-cells = <1>;
> ++                            #size-cells = <1>;
> ++                            reg = <0>;
> ++                            compatible = "n25q128a11";
I think "jedec,spi-nor" is missing here. It must be included for
any SPI NOR flash that supports the JEDE READ ID Opcode.

> ++                            spi-max-frequency = <24000000>;
> ++                    };
> ++            };
> ++    };
> ++};
> +-- 
> +1.9.1
> +
> diff --git 
> a/target/linux/ipq40xx/patches-4.14/904-Fix-rootfs-conflict-with-OpenWrt-auto-mount.patch
>  
> b/target/linux/ipq40xx/patches-4.14/904-Fix-rootfs-conflict-with-OpenWrt-auto-mount.patch
> new file mode 100644
> index 0000000..92b4b3e
> --- /dev/null
> +++ 
> b/target/linux/ipq40xx/patches-4.14/904-Fix-rootfs-conflict-with-OpenWrt-auto-mount.patch
> @@ -0,0 +1,40 @@
> +From ca96c645d61b4462fe6ee3d815717335214f27c2 Mon Sep 17 00:00:00 2001
> +From: Ram Chandra Jangir <rjan...@codeaurora.org>
> +Date: Sat, 9 Jun 2018 20:31:50 +0530
> +Subject: [PATCH] Fix rootfs conflict with OpenWrt auto mounting
> +
> +IPQ4019 nand flash has ubi partition name as 'rootfs', when we
> +boot IPQ4019 ap-dk07.1-c1 board from nand flash(with ubi image),
> +OpenWrt tries to attach mtd device named "ubi" on boot and it
> +fails.
> +Hence we rename this partition name from 'rootfs' to 'ubi' to
> +get it auto mounted.
> +
> +Signed-off-by: Ram Chandra Jangir <rjan...@codeaurora.org>
Really?

Try setting "ubi.mtd" bootargs:
<http://www.linux-mtd.infradead.org/faq/ubi.html#L_attachmtd>
It even comes with a fitting example:
"ubi.mtd=rootfs"

> +---
> + drivers/mtd/mtdpart.c | 9 ++++++---
> + 1 files changed, 6 insertions(+), 3 deletions(-)
> +
> +diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
> +index c87b71c..4980f93 100644
> +--- a/drivers/mtd/mtdpart.c
> ++++ b/drivers/mtd/mtdpart.c
> +@@ -887,9 +887,12 @@ static void mtd_partition_split(struct mtd_info 
> *master, struct mtd_part *part)
> +             return;
> + 
> +     if (!strcmp(part->mtd.name, "rootfs")) {
> +-            run_parsers_by_type(part, MTD_PARSER_TYPE_ROOTFS);
> +-
> +-            rootfs_found = 1;
> ++            if(mtd_type_is_nand(master)) {
> ++                    part->mtd.name="ubi";
> ++            } else {
> ++                    run_parsers_by_type(part, MTD_PARSER_TYPE_ROOTFS);
> ++                    rootfs_found = 1;
> ++            }
> +     }
> + 
> +     if (!strcmp(part->mtd.name, SPLIT_FIRMWARE_NAME) &&
> +-- 
> +2.7.2
> +
> diff --git 
> a/target/linux/ipq40xx/patches-4.14/905-dts-qcom-ipq4019-ap.dk07.1-enable-nodes.patch
>  
> b/target/linux/ipq40xx/patches-4.14/905-dts-qcom-ipq4019-ap.dk07.1-enable-nodes.patch
> new file mode 100644
> index 0000000..9a32719
> --- /dev/null
> +++ 
> b/target/linux/ipq40xx/patches-4.14/905-dts-qcom-ipq4019-ap.dk07.1-enable-nodes.patch
> @@ -0,0 +1,79 @@
> +--- a/arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts
> ++++ b/arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts
> +@@ -5,7 +5,7 @@
> + 
> + / {
> +     model = "Qualcomm Technologies, Inc. IPQ4019/AP-DK07.1-C1";
> +-    compatible = "qcom,ipq4019-ap-dk07.1-c1";
> ++    compatible = "qcom,ap-dk07.1-c1", "qcom,ipq4019";
"qcom,ipq4019-ap-dk07.1-c1" should be staying.

> + 
> +     soc {
> +             pci@40000000 {
> +--- a/arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1.dtsi
> ++++ b/arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1.dtsi
> +@@ -13,15 +13,6 @@
> +             reg = <0x80000000 0x20000000>; /* 512MB */
> +     };
> + 
> +-    aliases {
> +-            serial0 = &blsp1_uart1;
> +-            serial1 = &blsp1_uart2;
> +-    };
> +-
> +-    chosen {
> +-            stdout-path = "serial0:115200n8";
> +-    };
> +-
Sad to see those nodes go. Altough serial1 was not enabled.
So why was it there in the first place? c&p?

> +     soc {
> +             pinctrl@1000000 {
> +                     serial_0_pins: serial0-pinmux {
> +@@ -67,9 +71,49 @@
> +             };
> + 
> +             qpic-nand@79b0000 {
> ++                    compatible = "qcom,ipq4019-nand", "qcom,msm-nand";
> +                     pinctrl-0 = <&nand_pins>;
> +                     pinctrl-names = "default";
> +                     status = "ok";
> ++
> ++                    nand@0 {
> ++                            compatible = "qcom,nandcs";
> ++                            reg = <0>;
> ++                            #address-cells = <1>;
> ++                            #size-cells = <1>;
> ++
> ++                            nand-ecc-strength = <4>;
> ++                            nand-ecc-step-size = <512>;
> ++                            nand-bus-width = <8>;
Is u-boot filling in the partitions here?

> ++                    };
> ++            };
> ++
> ++            mdio@90000 {
> ++                    status = "okay";
> ++            };
> ++
> ++            ess-switch@c000000 {
> ++                            status = "okay";
> ++                            switch_mac_mode = <0x0>; /* mac mode for RGMII 
> RMII */
The comment (RGMII/RMII mode) is either wrong or the
switch_mac_mode value is misleading.

> ++                            switch_initvlas = <
> ++                                    0x0007c 0x54 /* PORT0_STATUS */
> ++                            >;
This already is set? Also, the googlized ess-switch ar40xx.c driver we
are stuck with does not parse this property.

> ++                    };
> ++
> ++            ess-psgmii@98000 {
> ++                    status = "okay";
> ++            };
> ++
> ++            edma@c080000 {
> ++                    status = "okay";
> ++            };
> ++
> ++            wifi@a000000 {
> ++                    status = "okay";
> ++            };
> ++
> ++            wifi@a800000 {
> ++                    status = "okay";
> +             };
> +     };
> + };
> 

OT: A user reported a kernel panic with the IPQ4019 ap-dk01.1-c1 on
the forum: <https://forum.openwrt.org/t/ipq4018-dk01-1-kernel-panic/20060>
I wonder if this affects the  ap-dk04.1-c1 and  ap-dk07.1-c1 as well.
Can you please comment on that.




_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to