mediatek: filogic: asus-rt-ax59u: use NVMEM-on-UBI

Use newly added support for NVMEM-on-UBI instead of extracting MAC
address and WiFi EEPROM data in userspace.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
Daniel Golle 2024-02-19 03:11:18 +00:00
parent 9bd7d8b756
commit 33197d22f0
3 changed files with 54 additions and 10 deletions

View File

@ -14,6 +14,7 @@
aliases { aliases {
serial0 = &uart0; serial0 = &uart0;
label-mac-device = &gmac0;
led-boot = &led_status_green; led-boot = &led_status_green;
led-failsafe = &led_status_red; led-failsafe = &led_status_red;
led-running = &led_status_green; led-running = &led_status_green;
@ -22,7 +23,7 @@
chosen { chosen {
stdout-path = "serial0:115200n8"; stdout-path = "serial0:115200n8";
bootargs-override = "ubi.mtd=UBI_DEV"; bootargs-override = "";
}; };
memory { memory {
@ -89,6 +90,8 @@
/* LAN */ /* LAN */
compatible = "mediatek,eth-mac"; compatible = "mediatek,eth-mac";
reg = <0>; reg = <0>;
nvmem-cells = <&macaddr_factory_4>;
nvmem-cell-names = "mac-address";
phy-mode = "2500base-x"; phy-mode = "2500base-x";
fixed-link { fixed-link {
@ -206,44 +209,87 @@
pinctrl-0 = <&spi_flash_pins>; pinctrl-0 = <&spi_flash_pins>;
status = "okay"; status = "okay";
spi_nand: spi_nand@0 { spi_nand: flash@0 {
compatible = "spi-nand"; compatible = "spi-nand";
reg = <0>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
reg = <0>;
spi-max-frequency = <20000000>; spi-max-frequency = <20000000>;
spi-tx-bus-width = <4>; spi-tx-bus-width = <4>;
spi-rx-bus-width = <4>; spi-rx-bus-width = <4>;
partitions: partitions { /*
* ASUS bootloader tries to replace the partitions defined in
* Device Tree and by that also deletes all additional properties
* needed for UBI and NVMEM-on-UBI.
* Prevent this from happening by tricking the loader to delete and
* replace a bait node instead.
*/
partitions: dummy {
compatible = "u-boot-dummy-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
reg = <0x0 0x0>;
label = "remove_me";
};
};
partitions {
compatible = "fixed-partitions"; compatible = "fixed-partitions";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
partition@0 { partition@0 {
label = "u-boot";
reg = <0x0 0x400000>; reg = <0x0 0x400000>;
label = "u-boot";
read-only; read-only;
}; };
partition@400000 { partition@400000 {
compatible = "linux,ubi";
reg = <0x400000 0xfc00000>;
label = "UBI_DEV"; label = "UBI_DEV";
reg = <0x400000 0x7c00000>;
volumes {
ubi_factory: ubi-volume-factory {
volname = "Factory";
}; };
}; };
}; };
}; };
};
};
&ubi_factory {
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
eeprom_factory_0: eeprom@0 {
reg = <0x0 0x1000>;
};
macaddr_factory_4: macaddr@4 {
reg = <0x4 0x6>;
};
};
};
&watchdog { &watchdog {
status = "okay"; status = "okay";
}; };
&wifi { &wifi {
status = "okay"; nvmem-cells = <&eeprom_factory_0>;
pinctrl-names = "default", "dbdc"; nvmem-cell-names = "eeprom";
pinctrl-0 = <&wf_2g_5g_pins>; pinctrl-0 = <&wf_2g_5g_pins>;
pinctrl-1 = <&wf_dbdc_pins>; pinctrl-1 = <&wf_dbdc_pins>;
pinctrl-names = "default", "dbdc";
status = "okay";
}; };
&trng { &trng {

View File

@ -109,7 +109,6 @@ mediatek_setup_macs()
local label_mac="" local label_mac=""
case $board in case $board in
asus,rt-ax59u|\
asus,tuf-ax4200|\ asus,tuf-ax4200|\
asus,tuf-ax6000) asus,tuf-ax6000)
CI_UBIPART="UBI_DEV" CI_UBIPART="UBI_DEV"

View File

@ -59,7 +59,6 @@ case "$FIRMWARE" in
;; ;;
"mediatek/mt7986_eeprom_mt7976_dbdc.bin") "mediatek/mt7986_eeprom_mt7976_dbdc.bin")
case "$board" in case "$board" in
asus,rt-ax59u|\
asus,tuf-ax4200) asus,tuf-ax4200)
CI_UBIPART="UBI_DEV" CI_UBIPART="UBI_DEV"
caldata_extract_ubi "Factory" 0x0 0x1000 caldata_extract_ubi "Factory" 0x0 0x1000