mediatek: add alternative bootchain variant for UniFi 6 LR
authorDaniel Golle <daniel@makrotopia.org>
Fri, 2 Apr 2021 23:43:50 +0000 (00:43 +0100)
committerDaniel Golle <daniel@makrotopia.org>
Fri, 9 Apr 2021 15:04:57 +0000 (16:04 +0100)
Builds images for the Ubiquiti Network UniFi 6 LR device running the
U-Boot build added by the previous commits.
Everything but MTD partitions is moved to dtsi.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-ubootmod.dts [new file with mode: 0644]
target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dts
target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dtsi [new file with mode: 0644]
target/linux/mediatek/image/mt7622.mk
target/linux/mediatek/mt7622/base-files/etc/board.d/02_network

diff --git a/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-ubootmod.dts b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-ubootmod.dts
new file mode 100644 (file)
index 0000000..0d566f8
--- /dev/null
@@ -0,0 +1,68 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+#include "mt7622-ubnt-unifi-6-lr.dtsi"
+
+/ {
+       model = "Ubiquiti UniFi 6 LR (U-Boot mod)";
+       compatible = "ubnt,unifi-6-lr-ubootmod", "mediatek,mt7622";
+};
+
+&nor_partitions {
+       partition@0 {
+               label = "bl2";
+               reg = <0x0 0x20000>;
+       };
+
+       partition@20000 {
+               label = "fip";
+               reg = <0x20000 0xa0000>;
+       };
+
+       partition@c0000 {
+               label = "u-boot-env";
+               reg = <0xc0000 0x10000>;
+       };
+
+       factory: partition@d0000 {
+               label = "factory";
+               reg = <0xd0000 0x40000>;
+               read-only;
+       };
+
+       eeprom: partition@110000 {
+               label = "eeprom";
+               reg = <0x110000 0x10000>;
+               read-only;
+       };
+
+       partition@120000 {
+               label = "recovery";
+               reg = <0x120000 0xee0000>;
+       };
+
+       partition@1000000 {
+               compatible = "denx,fit";
+               label = "firmware";
+               reg = <0x1000000 0x3000000>;
+       };
+};
+
+&wmac {
+       mediatek,mtd-eeprom = <&factory 0x0>;
+       mtd-mac-address = <&eeprom 0x0>;
+       status = "okay";
+};
+
+&slot0 {
+       wifi@0,0 {
+               reg = <0x0 0 0 0 0>;
+               mediatek,mtd-eeprom = <&factory 0x20000>;
+               mtd-mac-address = <&eeprom 0x6>;
+               ieee80211-freq-limit = <5000000 6000000>;
+       };
+};
+
+&gmac0 {
+       mtd-mac-address = <&eeprom 0x0>;
+};
index 1f410b1d47faba71cc9dae8a693163cfaa495e64..268ff712aba2fe5e550175e83f4bfc873d36a5b0 100644 (file)
@@ -1,78 +1,72 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 
 /dts-v1/;
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/leds/common.h>
-
-#include "mt7622.dtsi"
-#include "mt6380.dtsi"
+#include "mt7622-ubnt-unifi-6-lr.dtsi"
 
 / {
        model = "Ubiquiti UniFi 6 LR";
        compatible = "ubnt,unifi-6-lr", "mediatek,mt7622";
+};
+
+&nor_partitions {
+       partition@0 {
+               label = "preloader";
+               reg = <0x0 0x40000>;
+       };
 
-       aliases {
-               led-boot = &led_blue;
-               led-failsafe = &led_blue;
-               led-running = &led_blue;
-               led-upgrade = &led_blue;
-               label-mac-device = &gmac0;
-               serial0 = &uart0;
+       partition@40000 {
+               label = "atf";
+               reg = <0x40000 0x20000>;
        };
 
-       chosen {
-               stdout-path = "serial0:115200n8";
-               bootargs = "earlycon=uart8250,mmio32,0x11002000 swiotlb=512 console=ttyS0,115200n8";
+       partition@60000 {
+               label = "u-boot";
+               reg = <0x60000 0x60000>;
        };
 
-       cpus {
-               cpu@0 {
-                       proc-supply = <&mt6380_vcpu_reg>;
-                       sram-supply = <&mt6380_vm_reg>;
-               };
+       partition@c0000 {
+               label = "u-boot-env";
+               reg = <0xc0000 0x10000>;
+       };
 
-               cpu@1 {
-                       proc-supply = <&mt6380_vcpu_reg>;
-                       sram-supply = <&mt6380_vm_reg>;
-               };
+       factory: partition@d0000 {
+               label = "factory";
+               reg = <0xd0000 0x40000>;
+               read-only;
        };
 
-       gpio-keys {
-               compatible = "gpio-keys";
+       eeprom: partition@110000 {
+               label = "eeprom";
+               reg = <0x110000 0x10000>;
+               read-only;
+       };
 
-               reset {
-                       label = "reset";
-                       linux,code = <KEY_RESTART>;
-                       gpios = <&pio 62 GPIO_ACTIVE_LOW>;
-               };
+       partition@120000 {
+               label = "bs";
+               reg = <0x120000 0x10000>;
        };
 
-       memory {
-               reg = <0 0x40000000 0 0x3f000000>;
+       partition@130000 {
+               label = "cfg";
+               reg = <0x130000 0x100000>;
+               read-only;
        };
 
-       reg_1p8v: regulator-1p8v {
-               compatible = "regulator-fixed";
-               regulator-name = "fixed-1.8V";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               regulator-always-on;
+       partition@230000 {
+               compatible = "denx,fit";
+               label = "firmware";
+               reg = <0x230000 0x1ee0000>;
        };
 
-       reg_3p3v: regulator-3p3v {
-               compatible = "regulator-fixed";
-               regulator-name = "fixed-3.3V";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-boot-on;
-               regulator-always-on;
+       partition@2110000 {
+               label = "kernel1";
+               reg = <0x2110000 0x1ee0000>;
        };
 };
 
-&pcie0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pcie0_pins>;
+&wmac {
+       mediatek,mtd-eeprom = <&factory 0x0>;
+       mtd-mac-address = <&eeprom 0x0>;
        status = "okay";
 };
 
        };
 };
 
-&pio {
-       eth_pins: eth-pins {
-               mux {
-                       function = "eth";
-                       groups = "mdc_mdio", "rgmii_via_gmac2";
-               };
-       };
-
-       pcie0_pins: pcie0-pins {
-               mux {
-                       function = "pcie";
-                       groups = "pcie0_pad_perst",
-                                "pcie0_1_waken",
-                                "pcie0_1_clkreq";
-               };
-       };
-
-       pcie1_pins: pcie1-pins {
-               mux {
-                       function = "pcie";
-                       groups = "pcie1_pad_perst",
-                                "pcie1_0_waken",
-                                "pcie1_0_clkreq";
-               };
-       };
-
-       pmic_bus_pins: pmic-bus-pins {
-               mux {
-                       function = "pmic";
-                       groups = "pmic_bus";
-               };
-       };
-
-       spi_nor_pins: spi-nor-pins {
-               mux {
-                       function = "flash";
-                       groups = "spi_nor";
-               };
-       };
-
-       uart0_pins: uart0-pins {
-               mux {
-                       function = "uart";
-                       groups = "uart0_0_tx_rx" ;
-               };
-       };
-
-       uart3_pins: uart3-pins {
-               mux {
-                       function = "uart";
-                       groups = "uart3_1_tx_rx" ;
-               };
-       };
-
-       i2c0_pins: i2c0-pins {
-               mux {
-                       function = "i2c";
-                       groups =  "i2c0";
-               };
-       };
-
-       watchdog_pins: watchdog-pins {
-               mux {
-                       function = "watchdog";
-                       groups = "watchdog";
-               };
-       };
-};
-
-&bch {
-       status = "okay";
-};
-
-&btif {
-       status = "disabled";
-};
-
-&eth {
-       status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&eth_pins>;
-
-       gmac0: mac@0 {
-               compatible = "mediatek,eth-mac";
-               reg = <0>;
-
-               phy-mode = "2500base-x";
-               mtd-mac-address = <&eeprom 0x0>;
-
-               fixed-link {
-                       speed = <2500>;
-                       full-duplex;
-               };
-       };
-
-       mdio: mdio-bus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               ethernet-phy@8 {
-                       /* Marvell AQRate AQR112W - no driver */
-                       compatible = "ethernet-phy-ieee802.3-c45";
-                       reg = <0x8>;
-               };
-       };
-};
-
-&pwrap {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pmic_bus_pins>;
-
-       status = "okay";
-};
-
-&nor_flash {
-       pinctrl-names = "default";
-       pinctrl-0 = <&spi_nor_pins>;
-
-       status = "okay";
-
-       flash@0 {
-               compatible = "jedec,spi-nor";
-               reg = <0>;
-               spi-max-frequency = <50000000>;
-
-               partitions {
-                       compatible = "fixed-partitions";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-
-                       partition@0 {
-                               label = "preloader";
-                               reg = <0x0 0x40000>;
-                               read-only;
-                       };
-
-                       partition@40000 {
-                               label = "atf";
-                               reg = <0x40000 0x20000>;
-                               read-only;
-                       };
-
-                       partition@60000 {
-                               label = "u-boot";
-                               reg = <0x60000 0x60000>;
-                               read-only;
-                       };
-
-                       partition@c0000 {
-                               label = "u-boot-env";
-                               reg = <0xc0000 0x10000>;
-                       };
-
-                       factory: partition@d0000 {
-                               label = "factory";
-                               reg = <0xd0000 0x40000>;
-                               read-only;
-                       };
-
-                       eeprom: partition@110000 {
-                               label = "eeprom";
-                               reg = <0x110000 0x10000>;
-                               read-only;
-                       };
-
-                       partition@120000 {
-                               label = "bs";
-                               reg = <0x120000 0x10000>;
-                       };
-
-                       partition@130000 {
-                               label = "cfg";
-                               reg = <0x130000 0x100000>;
-                               read-only;
-                       };
-
-                       partition@230000 {
-                               compatible = "denx,fit";
-                               label = "firmware";
-                               reg = <0x230000 0x1ee0000>;
-                       };
-
-                       partition@2110000 {
-                               label = "kernel1";
-                               reg = <0x2110000 0x1ee0000>;
-                       };
-               };
-       };
-};
-
-&uart0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&uart0_pins>;
-       status = "okay";
-};
-
-&uart3 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&uart3_pins>;
-       status = "okay";
-
-       /* MT7915 Bluetooth */
-};
-
-&i2c0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c0_pins>;
-       status = "okay";
-
-       led-controller@30 {
-               compatible = "ubnt,ledbar";
-               reg = <0x30>;
-
-               enable-gpio = <&pio 59 0>;
-
-               red {
-                       label = "red";
-               };
-
-               green {
-                       label = "green";
-               };
-
-               led_blue: blue {
-                       label = "blue";
-               };
-       };
-};
-
-&watchdog {
-       pinctrl-names = "default";
-       pinctrl-0 = <&watchdog_pins>;
-       status = "okay";
-};
-
-&wmac {
-       mediatek,mtd-eeprom = <&factory 0x0>;
+&gmac0 {
        mtd-mac-address = <&eeprom 0x0>;
-       status = "okay";
 };
diff --git a/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dtsi b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dtsi
new file mode 100644 (file)
index 0000000..33eb9aa
--- /dev/null
@@ -0,0 +1,253 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+
+#include "mt7622.dtsi"
+#include "mt6380.dtsi"
+
+/ {
+       aliases {
+               led-boot = &led_blue;
+               led-failsafe = &led_blue;
+               led-running = &led_blue;
+               led-upgrade = &led_blue;
+               label-mac-device = &gmac0;
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+               bootargs = "earlycon=uart8250,mmio32,0x11002000 swiotlb=512 console=ttyS0,115200n8";
+       };
+
+       cpus {
+               cpu@0 {
+                       proc-supply = <&mt6380_vcpu_reg>;
+                       sram-supply = <&mt6380_vm_reg>;
+               };
+
+               cpu@1 {
+                       proc-supply = <&mt6380_vcpu_reg>;
+                       sram-supply = <&mt6380_vm_reg>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&pio 62 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       memory {
+               reg = <0 0x40000000 0 0x3f000000>;
+       };
+
+       reg_1p8v: regulator-1p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-1.8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+};
+
+&pcie0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie0_pins>;
+       status = "okay";
+};
+
+
+&pio {
+       eth_pins: eth-pins {
+               mux {
+                       function = "eth";
+                       groups = "mdc_mdio", "rgmii_via_gmac2";
+               };
+       };
+
+       pcie0_pins: pcie0-pins {
+               mux {
+                       function = "pcie";
+                       groups = "pcie0_pad_perst",
+                                "pcie0_1_waken",
+                                "pcie0_1_clkreq";
+               };
+       };
+
+       pcie1_pins: pcie1-pins {
+               mux {
+                       function = "pcie";
+                       groups = "pcie1_pad_perst",
+                                "pcie1_0_waken",
+                                "pcie1_0_clkreq";
+               };
+       };
+
+       pmic_bus_pins: pmic-bus-pins {
+               mux {
+                       function = "pmic";
+                       groups = "pmic_bus";
+               };
+       };
+
+       spi_nor_pins: spi-nor-pins {
+               mux {
+                       function = "flash";
+                       groups = "spi_nor";
+               };
+       };
+
+       uart0_pins: uart0-pins {
+               mux {
+                       function = "uart";
+                       groups = "uart0_0_tx_rx" ;
+               };
+       };
+
+       uart3_pins: uart3-pins {
+               mux {
+                       function = "uart";
+                       groups = "uart3_1_tx_rx" ;
+               };
+       };
+
+       i2c0_pins: i2c0-pins {
+               mux {
+                       function = "i2c";
+                       groups =  "i2c0";
+               };
+       };
+
+       watchdog_pins: watchdog-pins {
+               mux {
+                       function = "watchdog";
+                       groups = "watchdog";
+               };
+       };
+};
+
+&bch {
+       status = "okay";
+};
+
+&btif {
+       status = "disabled";
+};
+
+&eth {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&eth_pins>;
+
+       gmac0: mac@0 {
+               compatible = "mediatek,eth-mac";
+               reg = <0>;
+
+               phy-mode = "2500base-x";
+
+               fixed-link {
+                       speed = <2500>;
+                       full-duplex;
+               };
+       };
+
+       mdio: mdio-bus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethernet-phy@8 {
+                       /* Marvell AQRate AQR112W - no driver */
+                       compatible = "ethernet-phy-ieee802.3-c45";
+                       reg = <0x8>;
+               };
+       };
+};
+
+&pwrap {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pmic_bus_pins>;
+
+       status = "okay";
+};
+
+&nor_flash {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi_nor_pins>;
+
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <50000000>;
+
+               nor_partitions: partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+               };
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins>;
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart3_pins>;
+       status = "okay";
+
+       /* MT7915 Bluetooth */
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+       status = "okay";
+
+       led-controller@30 {
+               compatible = "ubnt,ledbar";
+               reg = <0x30>;
+
+               enable-gpio = <&pio 59 0>;
+
+               red {
+                       label = "red";
+               };
+
+               green {
+                       label = "green";
+               };
+
+               led_blue: blue {
+                       label = "blue";
+               };
+       };
+};
+
+&watchdog {
+       pinctrl-names = "default";
+       pinctrl-0 = <&watchdog_pins>;
+       status = "okay";
+};
index 143db964db9101f78cefab6190680da660d573f5..255b75983d42412fa3cdbaafa9d207486b3f95fd 100644 (file)
@@ -204,3 +204,21 @@ define Device/ubnt_unifi-6-lr
   DEVICE_PACKAGES := kmod-mt7915e
 endef
 TARGET_DEVICES += ubnt_unifi-6-lr
+
+define Device/ubnt_unifi-6-lr-ubootmod
+  DEVICE_VENDOR := Ubiquiti
+  DEVICE_MODEL := UniFi 6 LR
+  DEVICE_VARIANT := U-Boot mod
+  DEVICE_DTS := mt7622-ubnt-unifi-6-lr-ubootmod
+  DEVICE_DTS_DIR := ../dts
+  DEVICE_PACKAGES := kmod-mt7915e
+  KERNEL := kernel-bin | lzma
+  KERNEL_INITRAMFS_SUFFIX := -recovery.itb
+  KERNEL_INITRAMFS := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
+  IMAGES := sysupgrade.itb
+  IMAGE/sysupgrade.itb := append-kernel | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | pad-rootfs | append-metadata
+  ARTIFACTS := preloader.bin bl31-uboot.fip
+  ARTIFACT/preloader.bin := bl2 nor-2ddr
+  ARTIFACT/bl31-uboot.fip := bl31-uboot ubnt_unifi-6-lr
+endef
+TARGET_DEVICES += ubnt_unifi-6-lr-ubootmod
index f1daa2fae152b798f05b4e903b021ca8d82bd0ff..361d60e92b9662576b85d7502936ff9ba568cc4b 100644 (file)
@@ -18,7 +18,8 @@ mediatek_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
                ;;
-       ubnt,unifi-6-lr)
+       ubnt,unifi-6-lr|\
+       ubnt,unifi-6-lr-ubootmod)
                ucidef_set_interfaces_lan "eth0"
                ;;
        *)