ipq40xx: fix GL.iNet GL-B1300 support
authorMathias Kresin <dev@kresin.me>
Sat, 17 Feb 2018 08:07:54 +0000 (09:07 +0100)
committerMathias Kresin <dev@kresin.me>
Wed, 14 Mar 2018 18:04:51 +0000 (19:04 +0100)
Rename the dts file to match the used SoC type and drop the unnecessary
KERNEL_INSTALL from the image build code.

Remove the fixed rootfs and kernel partitions and create an image with
rootfs appended after kernel.

Setup a switch portmap matching the hardware and a default network/switch
configuration to make make the second lan port working. Use eth0 as lan
to have it consistent accross the target.

Use the power LED to indicate the boot status.

Sort the SoC entries within the dts by address and use dtc labels
whenever possible.

Signed-off-by: Mathias Kresin <dev@kresin.me>
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
target/linux/ipq40xx/base-files/etc/board.d/02_network
target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4029-gl-b1300.dts [new file with mode: 0644]
target/linux/ipq40xx/image/Makefile
target/linux/ipq40xx/patches-4.14/069-arm-boot-add-dts-files.patch

index 37f81a398a48d6a54dfb9d6491070b39c6f9ca22..7c83e2e7546e10a994baa033342c488563522cf4 100755 (executable)
@@ -17,7 +17,11 @@ avm,fritzbox-4040)
        ucidef_add_switch "switch0" \
                "0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
        ;;
-glinet,gl-b1300 |\
+glinet,gl-b1300)
+       ucidef_set_interfaces_lan_wan "eth0" "eth1"
+       ucidef_add_switch "switch0" \
+               "0u@eth0" "3:lan" "4:lan"
+       ;;
 openmesh,a42)
        ucidef_set_interfaces_lan_wan "eth1" "eth0"
        ;;
diff --git a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4029-gl-b1300.dts b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4029-gl-b1300.dts
new file mode 100644 (file)
index 0000000..a4e285f
--- /dev/null
@@ -0,0 +1,313 @@
+/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ */
+
+#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-B1300";
+       compatible = "glinet,gl-b1300", "qcom,ipq4019";
+
+       aliases {
+               led-boot = &power;
+               led-failsafe = &power;
+               led-running = &power;
+               led-upgrade = &power;
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x10000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <0x1>;
+               #size-cells = <0x1>;
+               ranges;
+
+               apps_bl@87000000 {
+                       reg = <0x87000000 0x400000>;
+                       no-map;
+               };
+
+               sbl@87400000 {
+                       reg = <0x87400000 0x100000>;
+                       no-map;
+               };
+
+               cnss_debug@87500000 {
+                       reg = <0x87500000 0x600000>;
+                       no-map;
+               };
+
+               cpu_context_dump@87b00000 {
+                       reg = <0x87b00000 0x080000>;
+                       no-map;
+               };
+
+               tz_apps@87b80000 {
+                       reg = <0x87b80000 0x280000>;
+                       no-map;
+               };
+
+               smem@87e00000 {
+                       reg = <0x87e00000 0x080000>;
+                       no-map;
+               };
+
+               tz@87e80000 {
+                       reg = <0x87e80000 0x180000>;
+                       no-map;
+               };
+       };
+
+       soc {
+               mdio@90000 {
+                       status = "okay";
+                       /delete-node/ ethernet-phy@2;
+                       /delete-node/ ethernet-phy@3;
+                       /delete-node/ ethernet-phy@4;
+               };
+
+               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>;
+               };
+
+               usb2@60f8800 {
+                       status = "okay";
+               };
+
+               serial@78af000 {
+                       pinctrl-0 = <&serial_pins>;
+                       pinctrl-names = "default";
+                       status = "okay";
+               };
+
+               usb3@8af8800 {
+                       status = "okay";
+               };
+
+               crypto@8e3a000 {
+                       status = "okay";
+               };
+
+               watchdog@b017000 {
+                       status = "okay";
+               };
+
+               ess-switch@c000000 {
+                       status = "okay";
+                       switch_lan_bmp = <0x18>;
+                       switch_wan_bmp = <0x20>;
+               };
+
+               edma@c080000 {
+                       status = "okay";
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               wps {
+                       label = "wps";
+                       gpios = <&tlmm 5 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_WPS_BUTTON>;
+               };
+
+               reset {
+                       label = "reset";
+                       gpios = <&tlmm 63 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RESTART>;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               power: power {
+                       label = "gl-b1300:green:power";
+                       gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+               };
+
+               mesh {
+                       label = "gl-b1300:green:mesh";
+                       gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>;
+               };
+
+               wlan {
+                       label = "gl-b1300:green:wlan";
+                       gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&blsp_dma {
+       status = "okay";
+};
+
+&cryptobam {
+       status = "okay";
+};
+
+&spi_0 {
+       pinctrl-0 = <&spi_0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+       cs-gpios = <&tlmm 54 0>;
+
+       mx25l25635f@0 {
+               compatible = "jedec,spi-nor";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0>;
+               spi-max-frequency = <24000000>;
+
+               SBL1@0 {
+                       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;
+               };
+
+               firmware@180000 {
+                       label = "firmware";
+                       reg = <0x180000 0x1e80000>;
+               };
+       };
+};
+
+&tlmm {
+       serial_pins: serial_pinmux {
+               mux {
+                       pins = "gpio60", "gpio61";
+                       function = "blsp_uart0";
+                       bias-disable;
+               };
+       };
+
+       spi_0_pins: spi_0_pinmux {
+               pinmux {
+                       function = "blsp_spi0";
+                       pins = "gpio55", "gpio56", "gpio57";
+               };
+               pinmux_cs {
+                       function = "gpio";
+                       pins = "gpio54";
+               };
+               pinconf {
+                       pins = "gpio55", "gpio56", "gpio57";
+                       drive-strength = <12>;
+                       bias-disable;
+               };
+               pinconf_cs {
+                       pins = "gpio54";
+                       drive-strength = <2>;
+                       bias-disable;
+                       output-high;
+               };
+       };
+};
+
+&usb2_hs_phy {
+       status = "okay";
+};
+
+&usb3_hs_phy {
+       status = "okay";
+};
+
+&usb3_ss_phy {
+       status = "okay";
+};
+
+&wifi0 {
+       status = "okay";
+};
+
+&wifi1 {
+       status = "okay";
+};
index 41f396b83976651d99f528554eb37090ec4f0081..218a80afa738d5ca03b817fca400504d03eae62b 100644 (file)
@@ -44,15 +44,14 @@ endef
 TARGET_DEVICES += avm_fritzbox-4040
 
 define Device/glinet_gl-b1300
+       $(call Device/FitImage)
        DEVICE_TITLE := GL.iNet GL-B1300
        BOARD_NAME := gl-b1300
-       DEVICE_DTS := qcom-ipq4019-gl-b1300
-       KERNEL_INSTALL := 1
+       DEVICE_DTS := qcom-ipq4029-gl-b1300
        KERNEL_SIZE := 4096k
        IMAGE_SIZE := 26624k
-       $(call Device/FitImage)
        IMAGES := sysupgrade.bin
-       IMAGE/sysupgrade.bin := append-kernel | pad-to $$$${KERNEL_SIZE} | append-rootfs | pad-rootfs | append-metadata
+       IMAGE/sysupgrade.bin := append-kernel |append-rootfs | pad-rootfs | append-metadata
        DEVICE_PACKAGES := ipq-wifi-glinet_gl-b1300
 endef
 TARGET_DEVICES += glinet_gl-b1300
index 128669f7c4c12afe81a9c25eeb61ca284e09c5ff..1c88a6111a4eae3a28ca1081e960675578cb4cc6 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
        qcom-ipq4019-ap.dk01.1-c1.dtb \
 +      qcom-ipq4019-ap.dk04.1-c1.dtb \
 +      qcom-ipq4019-fritz4040.dtb \
-+      qcom-ipq4019-gl-b1300.dtb \
++      qcom-ipq4029-gl-b1300.dtb \
        qcom-ipq8064-ap148.dtb \
        qcom-msm8660-surf.dtb \
        qcom-msm8960-cdp.dtb \