Message ID | 20220226101135.837788-2-stijn@linux-ipv6.be |
---|---|
State | Accepted |
Delegated to: | Stijn Tintel |
Headers | show |
Series | [v2,1/2] firmware-utils: bump to git HEAD | expand |
On Sat, 2022-02-26 at 12:11 +0200, Stijn Tintel wrote: > Add support for the TP-Link EAP615-Wall, an AX1800 Wall Plate WiFi 6 AP. > The device is very similar to the TP-Link EAP235-Wall. > > Hardware: > * SoC: MediaTek MT7621AT > * RAM: 128MiB > * Flash: 16MiB SPI-NOR > * Ethernet: 4x GbE > * Back: ETH0 (PoE-PD) > * Bottom: ETH1, ETH2, ETH3 (PoE passthrough) > * WiFi: MT7905DAN/MT7975DN 2.4/5 GHz 2T2R > * LEDS: 1x white > * Buttons: 1x LED, 1x reset > > Stock firmware uses a random MAC address for ethernet. OpenWrt uses the > MAC address that is on the device label for ethernet and the wireless > interfaces. MAC address must not be incremented, as this will cause MAC > address conflicts in case you have two devices with consecutive MAC > addresses. Instead, different locally administered addresses will be > generated automatically, based on the MAC on the label. > > Installation via stock firmware: > * Enable SSH in the TP-Link web interface > * SSH to the device > * Run `cliclientd stopcs` > * Upload the OpenWrt factory image via the TP-Link web interface > > Installation via bootloader: > * Solder TTL header. Pinout: 1: TX, 2: RX, 3: GND, 4: VCC, with pin 1 > closest to ETH1. Baud rate 115200 > * Interrupt boot process by holding a key during boot > * Boot the OpenWrt initramfs: > # tftpboot 0x84000000 openwrt-ramips-mt7621-tplink_eap615-wall-v1-initramfs-kernel.bin > # bootm > * Copy openwrt-ramips-mt7621-tplink_eap615-wall-v1-squashfs-sysupgrade.bin > to /tmp and use sysupgrade to install it > > Thanks to Sander Vanheule for his work on the EAP235-Wall, which made > adding support for the EAP615-Wall very easy. > > Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> With the minor comments below addressed: Reviewed-by: Sander Vanheule <sander@svanheule.net> > --- > v2: - PoE-PT -> PoE passthrough > - MT7915E -> MT7905DAN/MT7975DN > - dropped ethernet@1e100000, moved reg override to ðernet > - dropped bus-range from &pcie > - dropped port@5 from &switch0 > - added dsa-migration > - kept kernel padding as it silences a warning > - firmware-tools change committed to firmware-tools.git > --- > .../dts/mt7621_tplink_eap615-wall-v1.dts | 210 ++++++++++++++++++ > target/linux/ramips/image/mt7621.mk | 13 ++ > .../mt7621/base-files/etc/board.d/02_network | 3 +- > 3 files changed, 225 insertions(+), 1 deletion(-) > create mode 100644 target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts > > diff --git a/target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts > b/target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts > new file mode 100644 > index 0000000000..a57fe9cc97 > --- /dev/null > +++ b/target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts > @@ -0,0 +1,210 @@ ... > + > +&spi0 { > + status = "okay"; > + > + flash@0 { > + compatible = "jedec,spi-nor"; > + reg = <0>; > + spi-max-frequency = <20000000>; > + > + partitions { > + compatible = "fixed-partitions"; > + #address-cells = <1>; > + #size-cells = <1>; > + > + partition@0 { > + label = "u-boot"; > + reg = <0x0 0x80000>; > + read-only; > + }; > + > + partition@80000 { > + label = "partition-table"; > + reg = <0x80000 0x10000>; > + read-only; > + }; > + > + info: partition@90000 { > + label = "product-info"; > + reg = <0x90000 0x10000>; > + read-only; > + }; > + > + partition@a0000 { > + compatible = "denx,fit"; > + label = "firmware"; > + reg = <0x0a0000 0xcf0000>; > + }; Leading zero in "0x0a0000", but other offsets don't have them. > + > + partition@d90000 { > + label = "user-config"; > + reg = <0xd90000 0x60000>; > + read-only; > + }; > + > + partition@f30000 { > + label = "mutil-log"; > + reg = <0xf30000 0x80000>; > + read-only; > + }; > + > + partition@fb0000 { > + label = "oops"; > + reg = <0xfb0000 0x040000>; "0x040000" > "0x40000", or use six digits (with leading zero) for all sizes. > + read-only; > + }; > + > + radio: partition@ff0000 { > + label = "radio"; > + reg = <0xff0000 0x010000>; Leading zero in "0x010000" > + read-only; > + }; > + > + partition@1000000 { > + status = "disabled"; > + > + label = "full"; > + reg = <0x0 0x1000000>; > + read-only; > + }; If I'm not mistaken, with this partition "disabled" users will need to build their own image anyway to enable it. Might as well just drop this "full" partition then. It can always be reconstructed from the other partitions if needed. Best, Sander
On 26/02/2022 13:11, Stijn Tintel wrote: > Add support for the TP-Link EAP615-Wall, an AX1800 Wall Plate WiFi 6 AP. > The device is very similar to the TP-Link EAP235-Wall. > > Hardware: > * SoC: MediaTek MT7621AT > * RAM: 128MiB > * Flash: 16MiB SPI-NOR > * Ethernet: 4x GbE > * Back: ETH0 (PoE-PD) > * Bottom: ETH1, ETH2, ETH3 (PoE passthrough) > * WiFi: MT7905DAN/MT7975DN 2.4/5 GHz 2T2R > * LEDS: 1x white > * Buttons: 1x LED, 1x reset > > Stock firmware uses a random MAC address for ethernet. OpenWrt uses the > MAC address that is on the device label for ethernet and the wireless > interfaces. MAC address must not be incremented, as this will cause MAC > address conflicts in case you have two devices with consecutive MAC > addresses. Instead, different locally administered addresses will be > generated automatically, based on the MAC on the label. > > Installation via stock firmware: > * Enable SSH in the TP-Link web interface > * SSH to the device > * Run `cliclientd stopcs` > * Upload the OpenWrt factory image via the TP-Link web interface > > Installation via bootloader: > * Solder TTL header. Pinout: 1: TX, 2: RX, 3: GND, 4: VCC, with pin 1 > closest to ETH1. Baud rate 115200 > * Interrupt boot process by holding a key during boot > * Boot the OpenWrt initramfs: > # tftpboot 0x84000000 openwrt-ramips-mt7621-tplink_eap615-wall-v1-initramfs-kernel.bin > # bootm > * Copy openwrt-ramips-mt7621-tplink_eap615-wall-v1-squashfs-sysupgrade.bin > to /tmp and use sysupgrade to install it > > Thanks to Sander Vanheule for his work on the EAP235-Wall, which made > adding support for the EAP615-Wall very easy. > > Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> > --- > v2: - PoE-PT -> PoE passthrough > - MT7915E -> MT7905DAN/MT7975DN > - dropped ethernet@1e100000, moved reg override to ðernet > - dropped bus-range from &pcie > - dropped port@5 from &switch0 > - added dsa-migration > - kept kernel padding as it silences a warning > - firmware-tools change committed to firmware-tools.git > --- > .../dts/mt7621_tplink_eap615-wall-v1.dts | 210 ++++++++++++++++++ > target/linux/ramips/image/mt7621.mk | 13 ++ > .../mt7621/base-files/etc/board.d/02_network | 3 +- > 3 files changed, 225 insertions(+), 1 deletion(-) > create mode 100644 target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts > > diff --git a/target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts b/target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts > new file mode 100644 > index 0000000000..a57fe9cc97 > --- /dev/null > +++ b/target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts > @@ -0,0 +1,210 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later > + > +#include "mt7621.dtsi" > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > +#include <dt-bindings/leds/common.h> > + > +/ { > + compatible = "tplink,eap615-wall-v1", "mediatek,mt7621-soc"; > + model = "TP-Link EAP615-Wall v1"; > + > + aliases { > + label-mac-device = &gmac0; > + led-boot = &led_status; > + led-failsafe = &led_status; > + led-running = &led_status; > + led-upgrade = &led_status; > + }; > + > + chosen { > + bootargs = "console=ttyS0,115200"; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + led_status: status { > + label = "white:status"; > + color = <LED_COLOR_ID_WHITE>; > + function = LED_FUNCTION_STATUS; > + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; > + }; > + }; > + > + keys { > + compatible = "gpio-keys"; > + > + led { > + label = "led"; > + gpios = <&gpio 10 GPIO_ACTIVE_LOW>; > + linux,code = <KEY_LIGHTS_TOGGLE>; > + }; > + > + reset { > + label = "reset"; > + gpios = <&gpio 8 GPIO_ACTIVE_LOW>; > + linux,code = <KEY_RESTART>; > + }; > + }; > + > + gpio-export { > + compatible = "gpio-export"; > + > + poe_passthrough { > + gpio-export,name = "poe-passthrough"; > + gpio-export,output = <0>; > + gpios = <&gpio 7 GPIO_ACTIVE_HIGH>; > + }; > + }; > +}; > + > +ðernet { > + reg = <0x1e100000 0xe000>; > +}; > + > +&spi0 { > + status = "okay"; > + > + flash@0 { > + compatible = "jedec,spi-nor"; > + reg = <0>; > + spi-max-frequency = <20000000>; > + > + partitions { > + compatible = "fixed-partitions"; > + #address-cells = <1>; > + #size-cells = <1>; > + > + partition@0 { > + label = "u-boot"; > + reg = <0x0 0x80000>; > + read-only; > + }; > + > + partition@80000 { > + label = "partition-table"; > + reg = <0x80000 0x10000>; > + read-only; > + }; > + > + info: partition@90000 { > + label = "product-info"; > + reg = <0x90000 0x10000>; > + read-only; > + }; > + > + partition@a0000 { > + compatible = "denx,fit"; > + label = "firmware"; > + reg = <0x0a0000 0xcf0000>; > + }; > + > + partition@d90000 { > + label = "user-config"; > + reg = <0xd90000 0x60000>; > + read-only; > + }; > + > + partition@f30000 { > + label = "mutil-log"; > + reg = <0xf30000 0x80000>; > + read-only; > + }; > + > + partition@fb0000 { > + label = "oops"; > + reg = <0xfb0000 0x040000>; > + read-only; > + }; > + > + radio: partition@ff0000 { > + label = "radio"; > + reg = <0xff0000 0x010000>; > + read-only; > + }; > + > + partition@1000000 { > + status = "disabled"; > + > + label = "full"; > + reg = <0x0 0x1000000>; > + read-only; > + }; > + > + }; > + }; > +}; > + > +&state_default { > + gpio { > + groups = "uart2", "uart3"; > + function = "gpio"; > + }; > +}; > + > +&pcie { > + status = "okay"; > +}; > + > +&pcie1 { > + wifi@0,0 { > + compatible = "mediatek,mt76"; > + reg = <0x0000 0 0 0 0>; > + mediatek,mtd-eeprom = <&radio 0x0>; > + nvmem-cells = <&macaddr_info_8>; > + nvmem-cell-names = "mac-address"; > + }; > +}; > + > +&pcie2 { > + status = "disabled"; > +}; > + > +&gmac0 { > + nvmem-cells = <&macaddr_info_8>; > + nvmem-cell-names = "mac-address"; > +}; > + > +&switch0 { > + compatible = "mediatek,mt7530"; > + ports { > + port@0 { > + status = "okay"; > + label = "lan0"; > + }; > + > + port@1 { > + status = "okay"; > + label = "lan3"; > + }; > + > + port@2 { > + status = "okay"; > + label = "lan2"; > + }; > + > + port@3 { > + status = "okay"; > + label = "lan1"; > + }; > + > + port@6 { > + fixed-link { > + pause; > + }; > + }; We don't need this anymore with: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=704c8426fb9d8de7ac8f41dd61e44092d7527620 With that: Acked-by: Arınç ÜNAL <arinc.unal@arinc9.com> Cheers. Arınç
diff --git a/target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts b/target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts new file mode 100644 index 0000000000..a57fe9cc97 --- /dev/null +++ b/target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts @@ -0,0 +1,210 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "mt7621.dtsi" + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> +#include <dt-bindings/leds/common.h> + +/ { + compatible = "tplink,eap615-wall-v1", "mediatek,mt7621-soc"; + model = "TP-Link EAP615-Wall v1"; + + aliases { + label-mac-device = &gmac0; + led-boot = &led_status; + led-failsafe = &led_status; + led-running = &led_status; + led-upgrade = &led_status; + }; + + chosen { + bootargs = "console=ttyS0,115200"; + }; + + leds { + compatible = "gpio-leds"; + + led_status: status { + label = "white:status"; + color = <LED_COLOR_ID_WHITE>; + function = LED_FUNCTION_STATUS; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + }; + }; + + keys { + compatible = "gpio-keys"; + + led { + label = "led"; + gpios = <&gpio 10 GPIO_ACTIVE_LOW>; + linux,code = <KEY_LIGHTS_TOGGLE>; + }; + + reset { + label = "reset"; + gpios = <&gpio 8 GPIO_ACTIVE_LOW>; + linux,code = <KEY_RESTART>; + }; + }; + + gpio-export { + compatible = "gpio-export"; + + poe_passthrough { + gpio-export,name = "poe-passthrough"; + gpio-export,output = <0>; + gpios = <&gpio 7 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +ðernet { + reg = <0x1e100000 0xe000>; +}; + +&spi0 { + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <20000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x80000>; + read-only; + }; + + partition@80000 { + label = "partition-table"; + reg = <0x80000 0x10000>; + read-only; + }; + + info: partition@90000 { + label = "product-info"; + reg = <0x90000 0x10000>; + read-only; + }; + + partition@a0000 { + compatible = "denx,fit"; + label = "firmware"; + reg = <0x0a0000 0xcf0000>; + }; + + partition@d90000 { + label = "user-config"; + reg = <0xd90000 0x60000>; + read-only; + }; + + partition@f30000 { + label = "mutil-log"; + reg = <0xf30000 0x80000>; + read-only; + }; + + partition@fb0000 { + label = "oops"; + reg = <0xfb0000 0x040000>; + read-only; + }; + + radio: partition@ff0000 { + label = "radio"; + reg = <0xff0000 0x010000>; + read-only; + }; + + partition@1000000 { + status = "disabled"; + + label = "full"; + reg = <0x0 0x1000000>; + read-only; + }; + + }; + }; +}; + +&state_default { + gpio { + groups = "uart2", "uart3"; + function = "gpio"; + }; +}; + +&pcie { + status = "okay"; +}; + +&pcie1 { + wifi@0,0 { + compatible = "mediatek,mt76"; + reg = <0x0000 0 0 0 0>; + mediatek,mtd-eeprom = <&radio 0x0>; + nvmem-cells = <&macaddr_info_8>; + nvmem-cell-names = "mac-address"; + }; +}; + +&pcie2 { + status = "disabled"; +}; + +&gmac0 { + nvmem-cells = <&macaddr_info_8>; + nvmem-cell-names = "mac-address"; +}; + +&switch0 { + compatible = "mediatek,mt7530"; + ports { + port@0 { + status = "okay"; + label = "lan0"; + }; + + port@1 { + status = "okay"; + label = "lan3"; + }; + + port@2 { + status = "okay"; + label = "lan2"; + }; + + port@3 { + status = "okay"; + label = "lan1"; + }; + + port@6 { + fixed-link { + pause; + }; + }; + + }; +}; + +&info { + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_info_8: macaddr@8 { + reg = <0x8 0x6>; + }; +}; diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index 340c8eab3c..1b75f0d7a6 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -1499,6 +1499,19 @@ define Device/tplink_eap235-wall-v1 endef TARGET_DEVICES += tplink_eap235-wall-v1 +define Device/tplink_eap615-wall-v1 + $(Device/dsa-migration) + $(Device/tplink-safeloader) + DEVICE_MODEL := EAP615-Wall + DEVICE_VARIANT := v1 + DEVICE_PACKAGES := kmod-mt7915e + TPLINK_BOARD_ID := EAP615-WALL-V1 + KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb | pad-to 64k + KERNEL_INITRAMFS := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd + IMAGE_SIZE := 13248k +endef +TARGET_DEVICES += tplink_eap615-wall-v1 + define Device/tplink_re350-v1 $(Device/dsa-migration) $(Device/tplink-safeloader) diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network index 374a260882..9af169fbef 100644 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network @@ -63,7 +63,8 @@ ramips_setup_interfaces() mikrotik,routerboard-760igs) ucidef_set_interfaces_lan_wan "lan2 lan3 lan4 lan5" "wan sfp" ;; - tplink,eap235-wall-v1) + tplink,eap235-wall-v1|\ + tplink,eap615-wall-v1) ucidef_set_interface_lan "lan0 lan1 lan2 lan3" ;; ubnt,edgerouter-x)
Add support for the TP-Link EAP615-Wall, an AX1800 Wall Plate WiFi 6 AP. The device is very similar to the TP-Link EAP235-Wall. Hardware: * SoC: MediaTek MT7621AT * RAM: 128MiB * Flash: 16MiB SPI-NOR * Ethernet: 4x GbE * Back: ETH0 (PoE-PD) * Bottom: ETH1, ETH2, ETH3 (PoE passthrough) * WiFi: MT7905DAN/MT7975DN 2.4/5 GHz 2T2R * LEDS: 1x white * Buttons: 1x LED, 1x reset Stock firmware uses a random MAC address for ethernet. OpenWrt uses the MAC address that is on the device label for ethernet and the wireless interfaces. MAC address must not be incremented, as this will cause MAC address conflicts in case you have two devices with consecutive MAC addresses. Instead, different locally administered addresses will be generated automatically, based on the MAC on the label. Installation via stock firmware: * Enable SSH in the TP-Link web interface * SSH to the device * Run `cliclientd stopcs` * Upload the OpenWrt factory image via the TP-Link web interface Installation via bootloader: * Solder TTL header. Pinout: 1: TX, 2: RX, 3: GND, 4: VCC, with pin 1 closest to ETH1. Baud rate 115200 * Interrupt boot process by holding a key during boot * Boot the OpenWrt initramfs: # tftpboot 0x84000000 openwrt-ramips-mt7621-tplink_eap615-wall-v1-initramfs-kernel.bin # bootm * Copy openwrt-ramips-mt7621-tplink_eap615-wall-v1-squashfs-sysupgrade.bin to /tmp and use sysupgrade to install it Thanks to Sander Vanheule for his work on the EAP235-Wall, which made adding support for the EAP615-Wall very easy. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> --- v2: - PoE-PT -> PoE passthrough - MT7915E -> MT7905DAN/MT7975DN - dropped ethernet@1e100000, moved reg override to ðernet - dropped bus-range from &pcie - dropped port@5 from &switch0 - added dsa-migration - kept kernel padding as it silences a warning - firmware-tools change committed to firmware-tools.git --- .../dts/mt7621_tplink_eap615-wall-v1.dts | 210 ++++++++++++++++++ target/linux/ramips/image/mt7621.mk | 13 ++ .../mt7621/base-files/etc/board.d/02_network | 3 +- 3 files changed, 225 insertions(+), 1 deletion(-) create mode 100644 target/linux/ramips/dts/mt7621_tplink_eap615-wall-v1.dts