openwrt/target/linux/ramips/dts/mt7621_ubnt_unifi-6-lite.dts
David Bauer b1d483b865 ramips: work around duplicate MAC address on U6 Lite
The UniFi 6 Lite has two MAC addresses for the 2.4 and 5GHz radio in
it's EEPROM partition.

On my unit these are

F4 92 BF A0 BB 6F
F6 92 BF A0 BB 6F

The problem with these is that mac80211 increases the first octet by
2, which leads to conflicting MAC addresses between radios.

Work around this problem for now by increasing the last octet by 1 on
the 5 GHz radio.

Ubiquiti increases the last octet by 2 for each subsequent VAP created
per radio. Ideally we should do the same, however this functionality is
currently lacking from mac80211.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-12-20 00:12:12 +01:00

124 lines
2.2 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "mt7621_ubnt_unifi.dtsi"
/ {
compatible = "ubnt,unifi-6-lite", "mediatek,mt7621-soc";
model = "Ubiquiti UniFi 6 Lite";
chosen {
bootargs-override = "console=ttyS0,115200";
};
};
&spi0 {
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 = "u-boot";
reg = <0x0 0x60000>;
read-only;
};
partition@60000 {
label = "u-boot-env";
reg = <0x60000 0x10000>;
read-only;
};
factory: partition@70000 {
label = "factory";
reg = <0x70000 0x40000>;
read-only;
};
eeprom: partition@b0000 {
label = "eeprom";
reg = <0xb0000 0x10000>;
read-only;
};
partition@c0000 {
label = "bs";
reg = <0xc0000 0x10000>;
};
partition@d0000 {
label = "cfg";
reg = <0xd0000 0x100000>;
read-only;
};
partition@1d0000 {
compatible = "denx,fit";
label = "firmware";
reg = <0x1d0000 0xf10000>;
};
partition@10e0000 {
label = "kernel1";
reg = <0x10e0000 0xf10000>;
};
};
};
};
&gmac0 {
nvmem-cells = <&macaddr_eeprom_0>;
nvmem-cell-names = "mac-address";
};
&wlan_2g {
mediatek,mtd-eeprom = <&factory 0x0>;
nvmem-cells = <&macaddr_eeprom_0>;
nvmem-cell-names = "mac-address";
};
&wlan_5g {
mediatek,mtd-eeprom = <&factory 0x20000>;
nvmem-cells = <&macaddr_eeprom_6>;
nvmem-cell-names = "mac-address";
/* This is a workaround.
*
* Ubiquiti uses a +2 offset in the first octet relative
* to the 2.4 GHz WMAC. Other octets are identical.
*
* The vendor firmware increases the last octet by 2 for each
* VAP.
*
* This is in conflict on how mac80211 addresses subsequent VAPs.
* mac80211 increases the first octet by two for each VAP, leading
* to conflicting MAC addresses for subsequent interfaces.
*/
mac-address-increment = <1>;
ieee80211-freq-limit = <5000000 6000000>;
};
&eeprom {
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
macaddr_eeprom_0: macaddr@0 {
reg = <0x0 0x6>;
};
macaddr_eeprom_6: macaddr@6 {
reg = <0x6 0x6>;
};
};