Hi,

just some selective feedback below:

> diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-
> wifi/Makefile
> index 7703604..7d592d9 100644
> --- a/package/firmware/ipq-wifi/Makefile
> +++ b/package/firmware/ipq-wifi/Makefile
> @@ -40,6 +40,7 @@ ALLWIFIBOARDS:= \
>       ezviz_cs-w3-wd1200g-eup \
>       glinet_gl-ap1300 \
>       glinet_gl-s1300 \
> +     glinet_gl-b2200-emmc \

Wrong sorting ...

>       linksys_ea8300 \
>       linksys_mr8300-v0 \
>       luma_wrtq-329acn \

[...]

> diff --git a/target/linux/ipq40xx/Makefile b/target/linux/ipq40xx/Makefile
> index 43b1fcb..c32515d 100644
> --- a/target/linux/ipq40xx/Makefile
> +++ b/target/linux/ipq40xx/Makefile
> @@ -3,7 +3,7 @@ include $(TOPDIR)/rules.mk  ARCH:=arm  BOARD:=ipq40xx
> BOARDNAME:=Qualcomm Atheros IPQ40XX -FEATURES:=squashfs fpu
> ramdisk nand
> +FEATURES:=squashfs fpu ramdisk nand boot-part rootfs-part
>  CPU_TYPE:=cortex-a7
>  CPU_SUBTYPE:=neon-vfpv4
>  SUBTARGETS:=generic mikrotik
> diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network
> b/target/linux/ipq40xx/base-files/etc/board.d/02_network
> index 3f0209d..cd3d41a 100644
> --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network
> +++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network
> @@ -99,6 +99,11 @@ ipq40xx_setup_interfaces()
>               ucidef_add_switch "switch0" \
>                       "0u@eth0" "3:lan" "4:lan"
>               ;;
> +     glinet,gl-b2200-emmc)
> +             ucidef_set_interfaces_lan_wan "eth0" "eth1"
> +             ucidef_add_switch "switch0" \
> +                     "0u@eth0" "1:lan" "2:lan" "3:lan" "5:lan" "0u@eth1"
> "4:wan"
> +             ;;
>       mobipromo,cm520-79f)
>               ucidef_add_switch "switch0" \
>                       "0u@eth0" "3:lan:2" "4:lan:1"
> 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 0e027dd..b854dde 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-c
> +++ aldata
> @@ -41,6 +41,7 @@ case "$FIRMWARE" in
>               caldata_extract "0:ART" 0x9000 0x2f20
>               ;;
>       linksys,ea8300 |\
> +     glinet,gl-b2200-emmc |\
>       linksys,mr8300)

Sorting ... Maybe the block need to be moved as well ...

>               caldata_extract "ART" 0x9000 0x2f20
>               # OEM assigns 4 sequential MACs
> @@ -58,6 +59,7 @@ case "$FIRMWARE" in
>       glinet,gl-ap1300 |\
>       glinet,gl-b1300 |\
>       glinet,gl-s1300 |\
> +     glinet,gl-b2200-emmc |\

Sorting ...

>       linksys,ea6350v3 |\
>       mobipromo,cm520-79f |\
>       qcom,ap-dk01.1-c1)
> @@ -167,6 +169,7 @@ case "$FIRMWARE" in
>       glinet,gl-ap1300 |\
>       glinet,gl-b1300 |\
>       glinet,gl-s1300 |\
> +     glinet,gl-b2200-emmc |\

Sorting ...

>       linksys,ea6350v3 |\
>       mobipromo,cm520-79f |\
>       qcom,ap-dk01.1-c1)
> diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-
> b2200-emmc.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-
> ipq4019-gl-b2200-emmc.dts
> new file mode 100644
> index 0000000..c479859
> --- /dev/null
> +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200
> +++ -emmc.dts
> @@ -0,0 +1,374 @@
> +// SPDX-License-Identifier: GPL-2.0-only OR MIT
> +
> +#include "qcom-ipq4019.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/soc/qcom,tcsr.h>
> +
> +/ {
> +     model = "GL.iNet GL-B2200-EMMC";
> +     compatible = "glinet,gl-b2200-emmc";
> +
> +     aliases {
> +             led-boot = &led_power_blue;
> +             led-failsafe = &led_power_blue;
> +             led-running = &led_power_white;
> +             led-upgrade = &led_power_blue;
> +     };
> +
> +     memory {
> +             device_type = "memory";
> +             reg = <0x80000000 0x10000000>;
> +     };
> +
> +     chosen {
> +             bootargs-append = " root=/dev/mmcblk0p2 rw rootwait
> clk_ignore_unused";
> +     };
> +
> +     soc {
> +             rng@22000 {
> +                     status = "okay";
> +             };
> +
> +             mdio@90000 {
> +                     status = "okay";
> +             };
> +
> +             ess-psgmii@98000 {
> +                     status = "okay";
> +             };
> +
> +             tcsr@1949000 {
> +                     compatible = "qcom,tcsr";
> +                     reg = <0x1949000 0x100>;
> +                     qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
> +             };
> +
> +             tcsr@194b000 {
> +                     /* select hostmode */
> +                     compatible = "qcom,tcsr";
> +                     reg = <0x194b000 0x100>;
> +                     qcom,usb-hsphy-mode-select =
> <TCSR_USB_HSPHY_HOST_MODE>;
> +                     status = "okay";
> +             };
> +
> +             ess_tcsr@1953000 {
> +                     compatible = "qcom,tcsr";
> +                     reg = <0x1953000 0x1000>;
> +                     qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
> +             };
> +
> +             tcsr@1957000 {
> +                     compatible = "qcom,tcsr";
> +                     reg = <0x1957000 0x100>;
> +                     qcom,wifi_noc_memtype_m0_m2 =
> <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
> +             };
> +
> +             crypto@8e3a000 {
> +                     status = "okay";
> +             };
> +
> +             ess-switch@c000000 {
> +                     status = "okay";
> +                     switch_lan_bmp = <0x2e>;
> +                     switch_wan_bmp = <0x10>;
> +             };
> +
> +             edma@c080000 {
> +                     status = "okay";
> +             };
> +     };
> +
> +     gpio-keys {
> +             compatible = "gpio-keys";
> +
> +             wps {
> +                     label = "wps";
> +                     gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
> +                     linux,code = <KEY_WPS_BUTTON>;
> +                     linux,input-type = <1>;

Please use the proper name named symbol instead.

> +             };
> +
> +             reset {
> +                     label = "reset";
> +                     gpios = <&tlmm 43 GPIO_ACTIVE_LOW>;
> +                     linux,code = <KEY_RESTART>;
> +                     linux,input-type = <1>;

See above.

> +             };
> +     };
> +
> +     gpio-leds {
> +             compatible = "gpio-leds";
> +
> +             led_power_blue: power_blue {
> +                     label = "power_blue_led";

Please use the proper color:function syntax for the label, i.e. blue:power in 
this case.

> +                     gpios = <&tlmm 57 GPIO_ACTIVE_HIGH>;
> +                     default-state = "on";
> +             };
> +             internet_blue {
> +                     label = "internet_blue_led";
> +                     gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>;
> +                     default-state = "off";

"off" is default and can be removed here.

> +             };
> +             led_power_white: power_white {
> +                     label = "power_white_led";
> +                     gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
> +                     default-state = "off";
> +             };
> +             internet_white {
> +                     label = "nternet_white_led";
> +                     gpios = <&tlmm 66 GPIO_ACTIVE_LOW>;
> +                     default-state = "off";
> +             };
> +     };
> +};
> +
> +&gmac1 {
> +     qcom,phy_mdio_addr = <3>;
> +     qcom,poll_required = <1>;
> +     qcom,forced_speed = <1000>;
> +     qcom,forced_duplex = <1>;
> +     vlan_tag = <2 0x10>;
> +};
> +
> +&gmac0 {
> +     vlan_tag = <1 0x2e>;
> +};
> +
> +&vqmmc {
> +     status = "okay";
> +};
> +
> +&sdhci {
> +     status = "okay";
> +     pinctrl-0 = <&sd_pins>;
> +     pinctrl-names = "default";
> +     cd-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>;
> +     vqmmc-supply = <&vqmmc>;
> +};
> +
> +&blsp_dma {
> +     status = "okay";
> +};
> +
> +&cryptobam {
> +     status = "okay";
> +};
> +
> +&blsp1_spi1 {
> +     pinctrl-0 = <&spi_0_pins>;
> +     pinctrl-names = "default";
> +     status = "okay";
> +     cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
> +
> +     flash@0 {
> +             compatible = "jedec,spi-nor";
> +             reg = <0>;
> +             spi-max-frequency = <24000000>;
> +
> +             partitions {
> +                     compatible = "fixed-partitions";
> +                     #address-cells = <1>;
> +                     #size-cells = <1>;
> +
> +                     SBL1@0 {

Please use more generic "partition@0" etc.

> +                             label = "SBL1";
> +                             reg = <0x0 0x40000>;
> +                             read-only;
> +                     };
> +
> +                     MIBIB@40000 {
> +                             label = "MIBIB";
> +                             reg = <0x40000 0x20000>;
> +                             read-only;
> +                     };
> +
> +                     QSEE@60000 {
> +                             label = "QSEE";
> +                             reg = <0x60000 0x60000>;
> +                             read-only;
> +                     };
> +
> +                     CDT@c0000 {
> +                             label = "CDT";
> +                             reg = <0xc0000 0x10000>;
> +                             read-only;
> +                     };
> +
> +                     DDRPARAMS@d0000 {
> +                             label = "DDRPARAMS";
> +                             reg = <0xd0000 0x10000>;
> +                             read-only;
> +                     };
> +
> +                     APPSBLENV@e0000 {
> +                             label = "APPSBLENV";
> +                             reg = <0xe0000 0x10000>;
> +                             read-only;
> +                     };
> +
> +                     APPSBL@f0000 {
> +                             label = "APPSBL";
> +                             reg = <0xf0000 0x80000>;
> +                             read-only;
> +                     };
> +
> +                     ART@170000 {
> +                             label = "ART";
> +                             reg = <0x170000 0x10000>;
> +                             read-only;
> +                     };
> +             };
> +     };
> +};
> +
> +&blsp1_spi2 {
> +     pinctrl-0 = <&spi_1_pins>;
> +     pinctrl-names = "default";
> +     status = "okay";
> +
> +     spidev1: spi@0 {
> +             compatible = "siliconlabs,si3210";
> +             reg = <0>;
> +             spi-max-frequency = <24000000>;
> +     };
> +};
> +
> +&blsp1_uart1 {
> +     pinctrl-0 = <&serial_pins>;
> +     pinctrl-names = "default";
> +     status = "okay";
> +};
> +
> +&blsp1_uart2 {
> +     pinctrl-0 = <&serial_1_pins>;
> +     pinctrl-names = "default";
> +     status = "okay";
> +};
> +
> +&tlmm {
> +     serial_pins: serial_pinmux {
> +             mux {
> +                     pins = "gpio16", "gpio17";
> +                     function = "blsp_uart0";
> +                     bias-disable;
> +             };
> +     };
> +
> +     serial_1_pins: serial1_pinmux {
> +             mux {
> +                     pins = "gpio8", "gpio9",
> +                             "gpio10", "gpio11";
> +                     function = "blsp_uart1";
> +                     bias-disable;
> +             };
> +     };
> +
> +     spi_0_pins: spi_0_pinmux {
> +             pinmux {
> +                     function = "blsp_spi0";
> +                     pins = "gpio13", "gpio14", "gpio15";
> +             };
> +             pinmux_cs {
> +                     function = "gpio";
> +                     pins = "gpio12";
> +             };
> +             pinconf {
> +                     pins = "gpio13", "gpio14", "gpio15";
> +                     drive-strength = <12>;
> +                     bias-disable;
> +             };
> +             pinconf_cs {
> +                     pins = "gpio12";
> +                     drive-strength = <2>;
> +                     bias-disable;
> +                     output-high;
> +             };
> +     };
> +
> +     spi_1_pins: spi_1_pinmux {
> +             mux {
> +                     pins = "gpio44", "gpio46", "gpio47";
> +                     function = "blsp_spi1";
> +                     bias-disable;
> +             };
> +             cs {
> +                     pins = "gpio45";
> +                     function = "gpio";
> +                     bias-pull-up;
> +             };
> +             reset {
> +                     pins = "gpio43";
> +                     function = "gpio";
> +                     output-high;
> +             };
> +             mux_2 {
> +                     pins = "gpio35";
> +                     function = "gpio";
> +                     output-high;
> +             };
> +             host_int {
> +                     pins = "gpio2";
> +                     function = "gpio";
> +                     input;
> +             };
> +             wake {
> +                     pins = "gpio48";
> +                     function = "gpio";
> +                     output-high;
> +             };
> +     };
> +
> +     sd_pins: sd_pins {
> +             pinmux {
> +                     function = "sdio";
> +                     pins = "gpio23", "gpio24", "gpio25", "gpio26",
> +                             "gpio29", "gpio30", "gpio31", "gpio32";
> +                     drive-strength = <10>;
> +             };
> +
> +             pinmux_sd_clk {
> +                     function = "sdio";
> +                     pins = "gpio27";
> +                     drive-strength = <16>;
> +             };
> +
> +             pinmux_sd7 {
> +                     function = "sdio";
> +                     pins = "gpio28";
> +                     drive-strength = <10>;
> +                     bias-disable;
> +             };
> +     };
> +
> +};
> +
> +&pcie0 {
> +     status = "okay";
> +     perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>;
> +     wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>;
> +
> +     bridge@0,0 {
> +             reg = <0x00000000 0 0 0 0>;
> +             #address-cells = <3>;
> +             #size-cells = <2>;
> +             ranges;
> +
> +             wifi2: wifi@1,0 {
> +                     status = "okay";
> +                     compatible = "qcom,ath10k";
> +                     reg = <0x00010000 0 0 0 0>;
> +                     qcom,ath10k-calibration-variant = "GL-B2200-EMMC";
> +             };
> +     };
> +};
> +
> +&wifi0 {
> +     status = "okay";
> +     qcom,ath10k-calibration-variant = "GL-B2200-EMMC"; };
> +
> +&wifi1 {
> +     status = "okay";
> +     qcom,ath10k-calibration-variant = "GL-B2200-EMMC"; };
> diff --git a/target/linux/ipq40xx/image/gen_sdcard_img.sh
> b/target/linux/ipq40xx/image/gen_sdcard_img.sh
> new file mode 100755
> index 0000000..628ba24
> --- /dev/null
> +++ b/target/linux/ipq40xx/image/gen_sdcard_img.sh
> @@ -0,0 +1,95 @@
> +#!/bin/sh
> +#
> +# Copyright (C) 2016 Josua Mayer
> +#
> +# This program is free software; you can redistribute it and/or #
> +modify it under the terms of the GNU General Public License # as
> +published by the Free Software Foundation; either version 2 # of the
> +License, or (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful, # but
> +WITHOUT ANY WARRANTY; without even the implied warranty of #
> +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the #
> GNU
> +General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License #
> +along with this program; if not, write to the Free Software #
> +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
> USA.
> +#

Please use the corresponding SPDX license identifier instead.

> +
> +usage() {
> +     echo "$0 <outfile> [<bootloader> <type_partitionN>
> <size_partitionN> <img_partitionN>]?"
> +}
> +
> +# always require first 2 or 3 arguments # then in pairs up to 8 more
> +for a total of up to 4 partitions if [ $# -lt 1 ] || [ $# -gt 14 ] || [
> +$((($# - 1) % 3)) -ne 0 ]; then
> +     if [ $# -lt 2 ] || [ $# -gt 15 ] || [ $((($# - 2) % 3)) -ne 0 ]; then
> +             usage
> +             exit 1
> +     else
> +             BOOTLOADER="$2"
> +     fi
> +fi
> +
> +set -e
> +
> +# parameters
> +OUTFILE="$1"; shift
> +if [ -n "$BOOTLOADER" ]; then
> +     shift
> +fi
> +
> +# generate image file
> +printf "Creating %s from /dev/zero: " "$OUTFILE"
> +dd if=/dev/zero of="$OUTFILE" bs=512 count=1 >/dev/null printf "Done\n"
> +
> +while [ "$#" -ge 3 ]; do
> +     ptgen_args="$ptgen_args -t $1 -p $(($2 * 1024 + 256))"
> +     parts="$parts$3 "
> +     shift; shift; shift
> +done
> +
> +model=''
> +model=$(echo $OUTFILE | grep "gl-b2200-emmc")
> +
> +# total emmc size = 7634944 KB
> +# partition interval = 1536 KB
> +# mbr = 1024 KB
> +# p1/p2 extra = 256KB
> +[ "$model" != "" ] && {
> +     ptgen_args="$ptgen_args -t 83 -p $((7634944-
> ${TARGET_KERNEL_PARTSIZE}*1024-${TARGET_ROOTFS_PARTSIZE}*1024-
> 1536-256-256-1024))"
> +}
> +
> +head=16
> +sect=63
> +
> +# create real partition table using fdisk printf "Creating partition
> +table: "
> +set $(ptgen -o "$OUTFILE" -h $head -s $sect -l 1024 -S 0x$SIGNATURE
> +$ptgen_args) printf "Done\n"
> +
> +# install bootloader
> +if [ -n "$BOOTLOADER" ]; then
> +     printf "Writing bootloader: "
> +     dd of="$OUTFILE" if="$BOOTLOADER" bs=512 seek=1 conv=notrunc
> 2>/dev/null
> +     printf "Done\n"
> +fi
> +
> +i=1
> +while [ "$#" -ge 2 ]; do
> +     img="${parts%% *}"
> +     parts="${parts#* }"
> +
> +     printf "Writing %s to partition %i: " "$img" $i
> +     (
> +             cat "$img"
> +             # add padding to avoid leaving behind old overlay fs data
> +             dd if=/dev/zero bs=128k count=1 2>/dev/null
> +     ) | dd of="$OUTFILE" bs=512 seek=$(($1 / 512)) conv=notrunc
> 2>/dev/null
> +     printf "Done\n"
> +
> +     i=$((i+1))
> +     shift; shift
> +done
> diff --git a/target/linux/ipq40xx/image/generic.mk
> b/target/linux/ipq40xx/image/generic.mk
> index 4e40b8b..859903e 100644
> --- a/target/linux/ipq40xx/image/generic.mk
> +++ b/target/linux/ipq40xx/image/generic.mk
> @@ -508,6 +508,28 @@ define Device/glinet_gl-s1300  endef
> TARGET_DEVICES += glinet_gl-s1300
> 
> +define Build/sdcard-img-ext4
> +     SIGNATURE="$(IMG_PART_SIGNATURE)" \
> +
>       TARGET_KERNEL_PARTSIZE="$(CONFIG_TARGET_KERNEL_PARTSIZE)
> " \
> +
>       TARGET_ROOTFS_PARTSIZE="$(CONFIG_TARGET_ROOTFS_PARTSIZE
> )" \
> +     ./gen_sdcard_img.sh $@ \
> +             83 $(CONFIG_TARGET_KERNEL_PARTSIZE) $(IMAGE_KERNEL)
> \
> +             83 $(CONFIG_TARGET_ROOTFS_PARTSIZE)
> $(IMAGE_ROOTFS) endef

Please move the build recipe to the top of the file like it's common for build 
recipes.

Best

Adrian

> +
> +define Device/glinet_gl-b2200-emmc
> +     $(call Device/FitImage)
> +     DEVICE_VENDOR := GL.iNet
> +     DEVICE_MODEL := GL-B2200-EMMC
> +     SOC := qcom-ipq4019
> +     DEVICE_DTS_CONFIG := config@ap.dk04.1-c3
> +     IMAGES := sdcard.img.gz
> +     IMAGE/sdcard.img.gz := sdcard-img-ext4 | gzip | append-metadata
> +     KERNEL_NAME := Image
> +     DEVICE_PACKAGES := ipq-wifi-glinet_gl-b2200-emmc kmod-fs-ext4
> kmod-mmc
> +kmod-spi-dev mkf2fs e2fsprogs kmod-fs-f2fs endef TARGET_DEVICES +=
> +glinet_gl-b2200-emmc
> +
>  define Device/linksys_ea6350v3
>       # The Linksys EA6350v3 has a uboot bootloader that does not
>       # support either booting lzma kernel images nor booting UBI diff --git
> a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch
> b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch
> index 6a421b9..4c9171c 100644
> --- a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch
> +++ b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch
> @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <j...@phrozen.org>
> 
>  --- a/arch/arm/boot/dts/Makefile
>  +++ b/arch/arm/boot/dts/Makefile
> -@@ -837,11 +837,59 @@ dtb-$(CONFIG_ARCH_QCOM) += \
> +@@ -837,11 +837,60 @@ dtb-$(CONFIG_ARCH_QCOM) += \
>       qcom-apq8074-dragonboard.dtb \
>       qcom-apq8084-ifc6540.dtb \
>       qcom-apq8084-mtp.dtb \
> @@ -50,6 +50,7 @@ Signed-off-by: John Crispin <j...@phrozen.org>
>  +    qcom-ipq4019-fritzbox-7530.dtb \
>  +    qcom-ipq4019-fritzrepeater-1200.dtb \
>  +    qcom-ipq4019-fritzrepeater-3000.dtb \
> ++    qcom-ipq4019-gl-b2200-emmc.dtb \
>  +    qcom-ipq4019-map-ac2200.dtb \
>  +    qcom-ipq4019-mr8300.dtb \
>  +    qcom-ipq4019-e2600ac-c1.dtb \
> --
> 2.7.4
> 
> 
> 
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Attachment: openpgp-digital-signature.asc
Description: PGP signature

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

Reply via email to