mediatek: filogic: add support for Xiaomi WR30U
Hardware specification: SoC: MediaTek MT7981B 2x A53 Flash: ESMT F50L1G41LB 128MB RAM: NT52B128M16JR-FL 256MB Ethernet: 4x 10/100/1000 Mbps Switch: MediaTek MT7531AE WiFi: MediaTek MT7976C Button: Reset, Mesh Power: DC 12V 1A Flash instructions: 1. Get ssh access Check this link: https://forum.openwrt.org/t/openwrt-support-for-xiaomi-ax3000ne/153769/22 2. Backup import partitions ``` dev: size erasesize name mtd1: 00100000 00020000 "BL2" mtd2: 00040000 00020000 "Nvram" mtd3: 00040000 00020000 "Bdata" mtd4: 00200000 00020000 "Factory" mtd5: 00200000 00020000 "FIP" mtd8: 02200000 00020000 "ubi" mtd9: 02200000 00020000 "ubi1" mtd12: 00040000 00020000 "KF" ``` Use these commands blow to backup your stock partitions. ``` nanddump -f /tmp/BL2.bin /dev/mtd1 nanddump -f /tmp/Nvram.bin /dev/mtd2 nanddump -f /tmp/Bdata.bin /dev/mtd3 nanddump -f /tmp/Factory.bin /dev/mtd4 nanddump -f /tmp/FIP.bin /dev/mtd5 nanddump -f /tmp/ubi.bin /dev/mtd8 nanddump -f /tmp/KF.bin /dev/mtd12 ``` Then, transfer them to your computer via scp, netcat, tftp or others and keep them in a safe place. 3. Setup Nvram Get the current stock: `cat /proc/cmdline` If you find `firmware=0` or `mtd=ubi`, use these commands: ``` nvram set boot_wait=on nvram set uart_en=1 nvram set flag_boot_rootfs=1 nvram set flag_last_success=1 nvram set flag_boot_success=1 nvram set flag_try_sys1_failed=0 nvram set flag_try_sys2_failed=0 nvram commit ``` If you find `firmware=1` or `mtd=ubi1`, use these commands: ``` nvram set boot_wait=on nvram set uart_en=1 nvram set flag_boot_rootfs=0 nvram set flag_last_success=0 nvram set flag_boot_success=1 nvram set flag_try_sys1_failed=0 nvram set flag_try_sys2_failed=0 nvram commit ``` 4. Flash stock-initramfs-factory.ubi If you find `firmware=0` or `mtd=ubi`: `ubiformat /dev/mtd9 -y -f /tmp/stock-initramfs-factory.ubi` If you find `firmware=1` or `mtd=ubi1`: `ubiformat /dev/mtd8 -y -f /tmp/stock-initramfs-factory.ubi` Then reboot your router, it should boot to the openwrt initramfs system now. 5. Setup uboot-env Now it will be setup automatically in upgrade process, you can skip this step. If your `fw_setenv` did not work, you need run this command: `echo "/dev/mtd1 0x0 0x10000 0x20000" > /etc/fw_env.config` Then setup uboot-env: ``` fw_setenv boot_wait on fw_setenv uart_en 1 fw_setenv flag_boot_rootfs 0 fw_setenv flag_last_success 1 fw_setenv flag_boot_success 1 fw_setenv flag_try_sys1_failed 8 fw_setenv flag_try_sys2_failed 8 fw_setenv mtdparts "nmbm0:1024k(bl2),256k(Nvram),256k(Bdata), 2048k(factory),2048k(fip),256k(crash),256k(crash_log), 34816k(ubi),34816k(ubi1),32768k(overlay),12288k(data),256k(KF)" ``` 6. Flash stock-squashfs-sysupgrade.bin Use shell command: `sysupgrade -n /tmp/stock-squashfs-sysupgrade.bin` Or go to luci web. If you need to change to Openwrt U-Boot layout, do next. If you do not need, please ignore it. Change to OpenWrt U-Boot: 1. Flash ubootmod-initramfs-factory.ubi Check mtd partitions: `cat /proc/mtd` ``` mtd7: 00040000 00020000 "KF" mtd8: 02200000 00020000 "ubi_kernel" mtd9: 04e00000 00020000 "ubi" ``` Run following command: `ubiformat /dev/mtd8 -y -f /tmp/ubootmod-initramfs-factory.ubi` Then reboot your router, it should boot to the openwrt initramfs system now. 2. Check mtd again ``` mtd7: 00040000 00020000 "KF" mtd8: 07000000 00020000 "ubi" ``` Make sure mtd8 is ubi. 3. Install kmod-mtd-rw Run command: `opkg update && opkg install kmod-mtd-rw` Or get it in openwrt server, or build it yourself, then install it manually Then run this command: `insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1` 4. Clean up pstore Run Command: `rm -f /sys/fs/pstore/*` 5. Format ubi and create new ubootenv volume ``` ubidetach -p /dev/mtd8; ubiformat /dev/mtd8 -y; ubiattach -p /dev/mtd8 ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB ``` 6. (Optional) Add recovery boot feature. ``` ubimkvol /dev/ubi0 -n 2 -N recovery -s 10MiB ubiupdatevol /dev/ubi0_2 /tmp/ubootmod-initramfs-recovery.itb ``` 7. Flash Openwrt U-Boot ``` mtd write /tmp/ubootmod-preloader.bin BL2 mtd write /tmp/ubootmod-bl31-uboot.fip FIP ``` 6. Flash ubootmod-squashfs-sysupgrade.itb Use shell command: `sysupgrade -n /tmp/ubootmod-squashfs-sysupgrade.itb` Or go to luci web. Now everything is done, Enjoy! Go Back to stock from Openwrt U-Boot: 1. Force flash ubootmod-initramfs-recovery.itb Use shell command: `sysupgrade -F -n /tmp/ubootmod-initramfs-recovery.itb` Or go to luci web. Then it should boot to the openwrt initramfs system now. 2. Format ubi and Nvram ``` ubidetach -p /dev/mtd8; ubiformat /dev/mtd8 -y; ubiattach -p /dev/mtd8 mtd erase Nvram ``` 3. Install kmod-mtd-rw Run command: `opkg update && opkg install kmod-mtd-rw` Or get it in openwrt server, or build it yourself, then install it manually Then run this command: `insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1` 4. Flash stock U-Boot and ubi ``` mtd write /tmp/BL2.bin BL2 mtd write /tmp/FIP.bin FIP mtd write /tmp/ubi.bin ubi ``` Then reboot your router, waiting it finished rollback in minutes. Go Back to stock from stock layout Openwrt: Just run command: `ubiformat /dev/mtd8 -y -f /tmp/ubi.bin` Then reboot your router, waiting it finished rollback in minutes. Notes: 1. Openwrt U-Boot and ubootmod openwrt did not enable NMBM. Please make your backup safe. Signed-off-by: Hank Moretti <mchank9999@gmail.com>
This commit is contained in:
		 Hank Moretti
					Hank Moretti
				
			
				
					committed by
					
						 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
						parent
						
							20603e764d
						
					
				
				
					commit
					54dc1cde48
				
			| @@ -0,0 +1,34 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  |  | ||||||
|  | /dts-v1/; | ||||||
|  | #include "mt7981b-xiaomi-mi-router-wr30u.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "Xiaomi Mi Router WR30U (stock layout)"; | ||||||
|  | 	compatible = "xiaomi,mi-router-wr30u-stock", "mediatek,mt7981"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &spi_nand { | ||||||
|  | 	mediatek,nmbm; | ||||||
|  | 	mediatek,bmt-max-ratio = <1>; | ||||||
|  | 	mediatek,bmt-max-reserved-blocks = <64>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &partitions { | ||||||
|  | 	// ubi_kernel is the ubi partition in stock. | ||||||
|  | 	partition@600000 { | ||||||
|  | 		label = "ubi_kernel"; | ||||||
|  | 		reg = <0x600000 0x2200000>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	/* ubi is the result of squashing | ||||||
|  | 	 * consecutive stock partitions: | ||||||
|  | 	 * - ubi1 | ||||||
|  | 	 * - overlay | ||||||
|  | 	 * - data | ||||||
|  | 	 */ | ||||||
|  | 	partition@2800000 { | ||||||
|  | 		label = "ubi"; | ||||||
|  | 		reg = <0x2800000 0x4e00000>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,16 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  |  | ||||||
|  | /dts-v1/; | ||||||
|  | #include "mt7981b-xiaomi-mi-router-wr30u.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "Xiaomi Mi Router WR30U (OpenWrt U-Boot layout)"; | ||||||
|  | 	compatible = "xiaomi,mi-router-wr30u-ubootmod", "mediatek,mt7981"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &partitions { | ||||||
|  | 	partition@600000 { | ||||||
|  | 		label = "ubi"; | ||||||
|  | 		reg = <0x600000 0x7000000>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
							
								
								
									
										249
									
								
								target/linux/mediatek/dts/mt7981b-xiaomi-mi-router-wr30u.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										249
									
								
								target/linux/mediatek/dts/mt7981b-xiaomi-mi-router-wr30u.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,249 @@ | |||||||
|  | // 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 "mt7981.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	aliases { | ||||||
|  | 		serial0 = &uart0; | ||||||
|  | 		led-boot = &led_system_yellow; | ||||||
|  | 		led-failsafe = &led_system_yellow; | ||||||
|  | 		led-running = &led_system_blue; | ||||||
|  | 		led-upgrade = &led_system_yellow; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	chosen { | ||||||
|  | 		stdout-path = "serial0:115200n8"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	memory { | ||||||
|  | 		reg = <0 0x40000000 0 0x10000000>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpio-keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			gpios = <&pio 1 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mesh { | ||||||
|  | 			label = "mesh"; | ||||||
|  | 			gpios = <&pio 0 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <BTN_9>; | ||||||
|  | 			linux,input-type = <EV_SW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		led_system_blue: system_blue { | ||||||
|  | 			label = "blue:system"; | ||||||
|  | 			gpios = <&pio 9 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		led_system_yellow: system_yellow { | ||||||
|  | 			label = "yellow:system"; | ||||||
|  | 			gpios = <&pio 10 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		led_network_blue { | ||||||
|  | 			label = "blue:network"; | ||||||
|  | 			gpios = <&pio 11 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		led_network_yellow { | ||||||
|  | 			label = "yellow:network"; | ||||||
|  | 			gpios = <&pio 12 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ð { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	gmac0: mac@0 { | ||||||
|  | 		compatible = "mediatek,eth-mac"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		phy-mode = "2500base-x"; | ||||||
|  |  | ||||||
|  | 		nvmem-cells = <&macaddr_factory_4>; | ||||||
|  | 		nvmem-cell-names = "mac-address"; | ||||||
|  | 		mac-address-increment = <(-1)>; | ||||||
|  |  | ||||||
|  | 		fixed-link { | ||||||
|  | 			speed = <2500>; | ||||||
|  | 			full-duplex; | ||||||
|  | 			pause; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &mdio_bus { | ||||||
|  | 	switch: switch@0 { | ||||||
|  | 		compatible = "mediatek,mt7531"; | ||||||
|  | 		reg = <31>; | ||||||
|  | 		reset-gpios = <&pio 39 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		interrupt-controller; | ||||||
|  | 		#interrupt-cells = <1>; | ||||||
|  | 		interrupt-parent = <&pio>; | ||||||
|  | 		interrupts = <38 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &switch { | ||||||
|  | 	ports { | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <0>; | ||||||
|  |  | ||||||
|  | 		port@0 { | ||||||
|  | 			reg = <0>; | ||||||
|  | 			label = "wan"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		port@1 { | ||||||
|  | 			reg = <1>; | ||||||
|  | 			label = "lan2"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		port@2 { | ||||||
|  | 			reg = <2>; | ||||||
|  | 			label = "lan3"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		port@3 { | ||||||
|  | 			reg = <3>; | ||||||
|  | 			label = "lan4"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		port@6 { | ||||||
|  | 			reg = <6>; | ||||||
|  | 			ethernet = <&gmac0>; | ||||||
|  | 			phy-mode = "2500base-x"; | ||||||
|  |  | ||||||
|  | 			fixed-link { | ||||||
|  | 				speed = <2500>; | ||||||
|  | 				full-duplex; | ||||||
|  | 				pause; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &spi0 { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&spi0_flash_pins>; | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	spi_nand: flash@0 { | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <1>; | ||||||
|  | 		compatible = "spi-nand"; | ||||||
|  | 		reg = <0>; | ||||||
|  |  | ||||||
|  | 		spi-max-frequency = <52000000>; | ||||||
|  | 		spi-tx-buswidth = <4>; | ||||||
|  | 		spi-rx-buswidth = <4>; | ||||||
|  |  | ||||||
|  | 		partitions: partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "BL2"; | ||||||
|  | 				reg = <0x00 0x100000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@100000 { | ||||||
|  | 				label = "Nvram"; | ||||||
|  | 				reg = <0x100000 0x40000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@140000 { | ||||||
|  | 				label = "Bdata"; | ||||||
|  | 				reg = <0x140000 0x40000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			factory: partition@180000 { | ||||||
|  | 				label = "Factory"; | ||||||
|  | 				reg = <0x180000 0x200000>; | ||||||
|  | 				read-only; | ||||||
|  |  | ||||||
|  | 				compatible = "nvmem-cells"; | ||||||
|  | 				#address-cells = <1>; | ||||||
|  | 				#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 				macaddr_factory_4: macaddr@4 { | ||||||
|  | 					reg = <0x4 0x6>; | ||||||
|  | 				}; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@380000 { | ||||||
|  | 				label = "FIP"; | ||||||
|  | 				reg = <0x380000 0x200000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@580000 { | ||||||
|  | 				label = "crash"; | ||||||
|  | 				reg = <0x580000 0x40000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@5c0000 { | ||||||
|  | 				label = "crash_log"; | ||||||
|  | 				reg = <0x5c0000 0x40000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@7600000 { | ||||||
|  | 				label = "KF"; | ||||||
|  | 				reg = <0x7600000 0x40000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pio { | ||||||
|  | 	spi0_flash_pins: spi0-pins { | ||||||
|  | 		mux { | ||||||
|  | 			function = "spi"; | ||||||
|  | 			groups = "spi0", "spi0_wp_hold"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		conf-pu { | ||||||
|  | 			pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP"; | ||||||
|  | 			drive-strength = <MTK_DRIVE_8mA>; | ||||||
|  | 			bias-pull-up = <MTK_PUPD_SET_R1R0_11>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		conf-pd { | ||||||
|  | 			pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO"; | ||||||
|  | 			drive-strength = <MTK_DRIVE_8mA>; | ||||||
|  | 			bias-pull-down = <MTK_PUPD_SET_R1R0_11>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	mediatek,mtd-eeprom = <&factory 0x0>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &uart0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &watchdog { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
| @@ -20,6 +20,10 @@ netgear,wax220) | |||||||
| 	ucidef_set_led_netdev "wlan2g" "WLAN2G" "blue:wlan2g" "phy0-ap0" | 	ucidef_set_led_netdev "wlan2g" "WLAN2G" "blue:wlan2g" "phy0-ap0" | ||||||
| 	ucidef_set_led_netdev "wlan5g" "WLAN5G" "blue:wlan5g" "phy1-ap0" | 	ucidef_set_led_netdev "wlan5g" "WLAN5G" "blue:wlan5g" "phy1-ap0" | ||||||
| 	;; | 	;; | ||||||
|  | xiaomi,mi-router-wr30u-stock|\ | ||||||
|  | xiaomi,mi-router-wr30u-ubootmod) | ||||||
|  | 	ucidef_set_led_netdev "wan" "wan" "blue:network" "wan" | ||||||
|  | 	;; | ||||||
| xiaomi,redmi-router-ax6000-stock|\ | xiaomi,redmi-router-ax6000-stock|\ | ||||||
| xiaomi,redmi-router-ax6000-ubootmod) | xiaomi,redmi-router-ax6000-ubootmod) | ||||||
| 	ucidef_set_led_netdev "wan" "wan" "rgb:network" "wan" | 	ucidef_set_led_netdev "wan" "wan" "rgb:network" "wan" | ||||||
|   | |||||||
| @@ -49,6 +49,8 @@ mediatek_setup_interfaces() | |||||||
| 	tplink,tl-xdr6086) | 	tplink,tl-xdr6086) | ||||||
| 		ucidef_set_interfaces_lan_wan "lan1 lan2" eth1 | 		ucidef_set_interfaces_lan_wan "lan1 lan2" eth1 | ||||||
| 		;; | 		;; | ||||||
|  | 	xiaomi,mi-router-wr30u-stock|\ | ||||||
|  | 	xiaomi,mi-router-wr30u-ubootmod|\ | ||||||
| 	xiaomi,redmi-router-ax6000-stock|\ | 	xiaomi,redmi-router-ax6000-stock|\ | ||||||
| 	xiaomi,redmi-router-ax6000-ubootmod) | 	xiaomi,redmi-router-ax6000-ubootmod) | ||||||
| 		ucidef_set_interfaces_lan_wan "lan2 lan3 lan4" wan | 		ucidef_set_interfaces_lan_wan "lan2 lan3 lan4" wan | ||||||
| @@ -94,6 +96,8 @@ mediatek_setup_macs() | |||||||
| 		wan_mac=$(macaddr_add "$lan_mac" 1) | 		wan_mac=$(macaddr_add "$lan_mac" 1) | ||||||
| 		label_mac=$wan_mac | 		label_mac=$wan_mac | ||||||
| 		;; | 		;; | ||||||
|  | 	xiaomi,mi-router-wr30u-stock|\ | ||||||
|  | 	xiaomi,mi-router-wr30u-ubootmod|\ | ||||||
| 	xiaomi,redmi-router-ax6000-stock|\ | 	xiaomi,redmi-router-ax6000-stock|\ | ||||||
| 	xiaomi,redmi-router-ax6000-ubootmod) | 	xiaomi,redmi-router-ax6000-ubootmod) | ||||||
| 		wan_mac=$(mtd_get_mac_ascii Bdata ethaddr_wan) | 		wan_mac=$(mtd_get_mac_ascii Bdata ethaddr_wan) | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| REQUIRE_IMAGE_METADATA=1 | REQUIRE_IMAGE_METADATA=1 | ||||||
|  |  | ||||||
| redmi_ax6000_initial_setup() | xiaomi_initial_setup() | ||||||
| { | { | ||||||
| 	# initialize UBI and setup uboot-env if it's running on initramfs | 	# initialize UBI and setup uboot-env if it's running on initramfs | ||||||
| 	[ "$(rootfs_type)" = "tmpfs" ] || return 0 | 	[ "$(rootfs_type)" = "tmpfs" ] || return 0 | ||||||
| @@ -35,7 +35,15 @@ redmi_ax6000_initial_setup() | |||||||
| 	fw_setenv flag_boot_success 1 | 	fw_setenv flag_boot_success 1 | ||||||
| 	fw_setenv flag_try_sys1_failed 8 | 	fw_setenv flag_try_sys1_failed 8 | ||||||
| 	fw_setenv flag_try_sys2_failed 8 | 	fw_setenv flag_try_sys2_failed 8 | ||||||
| 	fw_setenv mtdparts "nmbm0:1024k(bl2),256k(Nvram),256k(Bdata),2048k(factory),2048k(fip),256k(crash),256k(crash_log),30720k(ubi),30720k(ubi1),51200k(overlay)" |  | ||||||
|  | 	local board=$(board_name) | ||||||
|  | 	case "$board" in | ||||||
|  | 	xiaomi,mi-router-wr30u-stock) | ||||||
|  | 		fw_setenv mtdparts "nmbm0:1024k(bl2),256k(Nvram),256k(Bdata),2048k(factory),2048k(fip),256k(crash),256k(crash_log),34816k(ubi),34816k(ubi1),32768k(overlay),12288k(data),256k(KF)" | ||||||
|  | 	xiaomi,redmi-router-ax6000-stock) | ||||||
|  | 		fw_setenv mtdparts "nmbm0:1024k(bl2),256k(Nvram),256k(Bdata),2048k(factory),2048k(fip),256k(crash),256k(crash_log),30720k(ubi),30720k(ubi1),51200k(overlay)" | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
| } | } | ||||||
|  |  | ||||||
| platform_do_upgrade() { | platform_do_upgrade() { | ||||||
| @@ -79,10 +87,12 @@ platform_do_upgrade() { | |||||||
| 	tplink,tl-xdr4288|\ | 	tplink,tl-xdr4288|\ | ||||||
| 	tplink,tl-xdr6086|\ | 	tplink,tl-xdr6086|\ | ||||||
| 	tplink,tl-xdr6088|\ | 	tplink,tl-xdr6088|\ | ||||||
|  | 	xiaomi,mi-router-wr30u-ubootmod|\ | ||||||
| 	xiaomi,redmi-router-ax6000-ubootmod) | 	xiaomi,redmi-router-ax6000-ubootmod) | ||||||
| 		CI_KERNPART="fit" | 		CI_KERNPART="fit" | ||||||
| 		nand_do_upgrade "$1" | 		nand_do_upgrade "$1" | ||||||
| 		;; | 		;; | ||||||
|  | 	xiaomi,mi-router-wr30u-stock|\ | ||||||
| 	xiaomi,redmi-router-ax6000-stock) | 	xiaomi,redmi-router-ax6000-stock) | ||||||
| 		CI_KERN_UBIPART=ubi_kernel | 		CI_KERN_UBIPART=ubi_kernel | ||||||
| 		CI_ROOT_UBIPART=ubi | 		CI_ROOT_UBIPART=ubi | ||||||
| @@ -135,8 +145,9 @@ platform_pre_upgrade() { | |||||||
| 	local board=$(board_name) | 	local board=$(board_name) | ||||||
|  |  | ||||||
| 	case "$board" in | 	case "$board" in | ||||||
|  | 	xiaomi,mi-router-wr30u-stock|\ | ||||||
| 	xiaomi,redmi-router-ax6000-stock) | 	xiaomi,redmi-router-ax6000-stock) | ||||||
| 		redmi_ax6000_initial_setup | 		xiaomi_initial_setup | ||||||
| 		;; | 		;; | ||||||
| 	esac | 	esac | ||||||
| } | } | ||||||
|   | |||||||
| @@ -365,6 +365,51 @@ define Device/tplink_tl-xdr6088 | |||||||
| endef | endef | ||||||
| TARGET_DEVICES += tplink_tl-xdr6088 | TARGET_DEVICES += tplink_tl-xdr6088 | ||||||
|  |  | ||||||
|  | define Device/xiaomi_mi-router-wr30u-stock | ||||||
|  |   DEVICE_VENDOR := Xiaomi | ||||||
|  |   DEVICE_MODEL := Mi Router WR30U (stock layout) | ||||||
|  |   DEVICE_DTS := mt7981b-xiaomi-mi-router-wr30u-stock | ||||||
|  |   DEVICE_DTS_DIR := ../dts | ||||||
|  |   UBINIZE_OPTS := -E 5 | ||||||
|  |   BLOCKSIZE := 128k | ||||||
|  |   PAGESIZE := 2048 | ||||||
|  |   DEVICE_PACKAGES := kmod-mt7981-firmware mt7981-wo-firmware | ||||||
|  | ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) | ||||||
|  |   ARTIFACTS := initramfs-factory.ubi | ||||||
|  |   ARTIFACT/initramfs-factory.ubi := append-image-stage initramfs-kernel.bin | ubinize-kernel | ||||||
|  | endif | ||||||
|  |   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata | ||||||
|  | endef | ||||||
|  | TARGET_DEVICES += xiaomi_mi-router-wr30u-stock | ||||||
|  |  | ||||||
|  | define Device/xiaomi_mi-router-wr30u-ubootmod | ||||||
|  |   DEVICE_VENDOR := Xiaomi | ||||||
|  |   DEVICE_MODEL := Mi Router WR30U (OpenWrt U-Boot layout) | ||||||
|  |   DEVICE_DTS := mt7981b-xiaomi-mi-router-wr30u-ubootmod | ||||||
|  |   DEVICE_DTS_DIR := ../dts | ||||||
|  |   UBINIZE_OPTS := -E 5 | ||||||
|  |   BLOCKSIZE := 128k | ||||||
|  |   PAGESIZE := 2048 | ||||||
|  |   DEVICE_PACKAGES := kmod-mt7981-firmware mt7981-wo-firmware | ||||||
|  |   KERNEL_IN_UBI := 1 | ||||||
|  |   UBOOTENV_IN_UBI := 1 | ||||||
|  |   IMAGES := sysupgrade.itb | ||||||
|  |   KERNEL_INITRAMFS_SUFFIX := -recovery.itb | ||||||
|  |   KERNEL := kernel-bin | gzip | ||||||
|  |   KERNEL_INITRAMFS := kernel-bin | lzma | \ | ||||||
|  |         fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k | ||||||
|  |   IMAGE/sysupgrade.itb := append-kernel | \ | ||||||
|  |         fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | append-metadata | ||||||
|  |   ARTIFACTS := preloader.bin bl31-uboot.fip | ||||||
|  |   ARTIFACT/preloader.bin := mt7981-bl2 spim-nand-ddr3 | ||||||
|  |   ARTIFACT/bl31-uboot.fip := mt7981-bl31-uboot xiaomi_mi-router-wr30u | ||||||
|  | ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) | ||||||
|  |   ARTIFACTS += initramfs-factory.ubi | ||||||
|  |   ARTIFACT/initramfs-factory.ubi := append-image-stage initramfs-recovery.itb | ubinize-kernel | ||||||
|  | endif | ||||||
|  | endef | ||||||
|  | TARGET_DEVICES += xiaomi_mi-router-wr30u-ubootmod | ||||||
|  |  | ||||||
| define Device/xiaomi_redmi-router-ax6000-stock | define Device/xiaomi_redmi-router-ax6000-stock | ||||||
|   DEVICE_VENDOR := Xiaomi |   DEVICE_VENDOR := Xiaomi | ||||||
|   DEVICE_MODEL := Redmi Router AX6000 (stock layout) |   DEVICE_MODEL := Redmi Router AX6000 (stock layout) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user