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 "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-ubootmod) | ||||
| 	ucidef_set_led_netdev "wan" "wan" "rgb:network" "wan" | ||||
|   | ||||
| @@ -49,6 +49,8 @@ mediatek_setup_interfaces() | ||||
| 	tplink,tl-xdr6086) | ||||
| 		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-ubootmod) | ||||
| 		ucidef_set_interfaces_lan_wan "lan2 lan3 lan4" wan | ||||
| @@ -94,6 +96,8 @@ mediatek_setup_macs() | ||||
| 		wan_mac=$(macaddr_add "$lan_mac" 1) | ||||
| 		label_mac=$wan_mac | ||||
| 		;; | ||||
| 	xiaomi,mi-router-wr30u-stock|\ | ||||
| 	xiaomi,mi-router-wr30u-ubootmod|\ | ||||
| 	xiaomi,redmi-router-ax6000-stock|\ | ||||
| 	xiaomi,redmi-router-ax6000-ubootmod) | ||||
| 		wan_mac=$(mtd_get_mac_ascii Bdata ethaddr_wan) | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| REQUIRE_IMAGE_METADATA=1 | ||||
|  | ||||
| redmi_ax6000_initial_setup() | ||||
| xiaomi_initial_setup() | ||||
| { | ||||
| 	# initialize UBI and setup uboot-env if it's running on initramfs | ||||
| 	[ "$(rootfs_type)" = "tmpfs" ] || return 0 | ||||
| @@ -35,7 +35,15 @@ redmi_ax6000_initial_setup() | ||||
| 	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),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() { | ||||
| @@ -79,10 +87,12 @@ platform_do_upgrade() { | ||||
| 	tplink,tl-xdr4288|\ | ||||
| 	tplink,tl-xdr6086|\ | ||||
| 	tplink,tl-xdr6088|\ | ||||
| 	xiaomi,mi-router-wr30u-ubootmod|\ | ||||
| 	xiaomi,redmi-router-ax6000-ubootmod) | ||||
| 		CI_KERNPART="fit" | ||||
| 		nand_do_upgrade "$1" | ||||
| 		;; | ||||
| 	xiaomi,mi-router-wr30u-stock|\ | ||||
| 	xiaomi,redmi-router-ax6000-stock) | ||||
| 		CI_KERN_UBIPART=ubi_kernel | ||||
| 		CI_ROOT_UBIPART=ubi | ||||
| @@ -135,8 +145,9 @@ platform_pre_upgrade() { | ||||
| 	local board=$(board_name) | ||||
|  | ||||
| 	case "$board" in | ||||
| 	xiaomi,mi-router-wr30u-stock|\ | ||||
| 	xiaomi,redmi-router-ax6000-stock) | ||||
| 		redmi_ax6000_initial_setup | ||||
| 		xiaomi_initial_setup | ||||
| 		;; | ||||
| 	esac | ||||
| } | ||||
|   | ||||
| @@ -365,6 +365,51 @@ define Device/tplink_tl-xdr6088 | ||||
| endef | ||||
| 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 | ||||
|   DEVICE_VENDOR := Xiaomi | ||||
|   DEVICE_MODEL := Redmi Router AX6000 (stock layout) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user