aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2021-04-03 00:43:50 +0100
committerDaniel Golle <daniel@makrotopia.org>2021-04-09 16:04:57 +0100
commite887049fbb74f8987d165b95c41989c0baac11e9 (patch)
treead81b374a1d48521b7e306114b04dd9ec6431444
parentbe41fd9489b6bf900b67d0eb8c9b9f95da35b75c (diff)
downloadupstream-e887049fbb74f8987d165b95c41989c0baac11e9.tar.gz
upstream-e887049fbb74f8987d165b95c41989c0baac11e9.tar.bz2
upstream-e887049fbb74f8987d165b95c41989c0baac11e9.zip
mediatek: add alternative bootchain variant for UniFi 6 LR
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>
-rw-r--r--target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-ubootmod.dts68
-rw-r--r--target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dts333
-rw-r--r--target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dtsi253
-rw-r--r--target/linux/mediatek/image/mt7622.mk18
-rw-r--r--target/linux/mediatek/mt7622/base-files/etc/board.d/02_network3
5 files changed, 386 insertions, 289 deletions
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
index 0000000000..0d566f8ea8
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr-ubootmod.dts
@@ -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>;
+};
diff --git a/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dts b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dts
index 1f410b1d47..268ff712ab 100644
--- a/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dts
+++ b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dts
@@ -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";
};
@@ -85,243 +79,6 @@
};
};
-&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
index 0000000000..33eb9aaf53
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7622-ubnt-unifi-6-lr.dtsi
@@ -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";
+};
diff --git a/target/linux/mediatek/image/mt7622.mk b/target/linux/mediatek/image/mt7622.mk
index 143db964db..255b75983d 100644
--- a/target/linux/mediatek/image/mt7622.mk
+++ b/target/linux/mediatek/image/mt7622.mk
@@ -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
diff --git a/target/linux/mediatek/mt7622/base-files/etc/board.d/02_network b/target/linux/mediatek/mt7622/base-files/etc/board.d/02_network
index f1daa2fae1..361d60e92b 100644
--- a/target/linux/mediatek/mt7622/base-files/etc/board.d/02_network
+++ b/target/linux/mediatek/mt7622/base-files/etc/board.d/02_network
@@ -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"
;;
*)