1
0
mirror of https://git.openwrt.org/openwrt/openwrt.git synced 2024-06-19 23:28:29 +02:00

mediatek: add new layout for Xiaomi Redmi Router AX6000 for OpenWrt U-Boot

This new layout is only bootable with OpenWrt U-Boot. It reuses the
two crash partions and expands the ubi partion to the end of whole flash.

Do not use this layout with stock U-Boot!

Signed-off-by: Furong Xu <xfr@outlook.com>
This commit is contained in:
Furong Xu 2022-12-22 10:40:26 +08:00 committed by Daniel Golle
parent 045baca10b
commit 8bac5dc18a
8 changed files with 92 additions and 20 deletions

View File

@ -8,7 +8,25 @@
compatible = "xiaomi,redmi-router-ax6000-stock", "mediatek,mt7986a";
};
&spi_nand_flash {
mediatek,nmbm;
mediatek,bmt-max-ratio = <1>;
mediatek,bmt-max-reserved-blocks = <64>;
};
&partitions {
partition@580000 {
label = "crash";
reg = <0x580000 0x40000>;
read-only;
};
partition@5c0000 {
label = "crash_log";
reg = <0x5c0000 0x40000>;
read-only;
};
partition@600000 {
label = "ubi_kernel";
reg = <0x600000 0x1e00000>;

View File

@ -0,0 +1,16 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/dts-v1/;
#include "mt7986a-xiaomi-redmi-router-ax6000.dtsi"
/ {
model = "Xiaomi Redmi Router AX6000 (OpenWrt U-Boot layout)";
compatible = "xiaomi,redmi-router-ax6000-ubootmod", "mediatek,mt7986a";
};
&partitions {
partition@580000 {
label = "ubi";
reg = <0x580000 0x7a80000>;
};
};

View File

@ -8,7 +8,25 @@
compatible = "xiaomi,redmi-router-ax6000", "mediatek,mt7986a";
};
&spi_nand_flash {
mediatek,nmbm;
mediatek,bmt-max-ratio = <1>;
mediatek,bmt-max-reserved-blocks = <64>;
};
&partitions {
partition@580000 {
label = "crash";
reg = <0x580000 0x40000>;
read-only;
};
partition@5c0000 {
label = "crash_log";
reg = <0x5c0000 0x40000>;
read-only;
};
/* ubi partition is the result of squashing
* consecutive stock partitions:
* - ubi

View File

@ -127,16 +127,12 @@
pinctrl-0 = <&spi_flash_pins>;
status = "okay";
flash@0 {
spi_nand_flash: flash@0 {
compatible = "spi-nand";
#address-cells = <1>;
#size-cells = <1>;
reg = <0>;
mediatek,nmbm;
mediatek,bmt-max-ratio = <1>;
mediatek,bmt-max-reserved-blocks = <64>;
spi-max-frequency = <20000000>;
spi-tx-buswidth = <4>;
spi-rx-buswidth = <4>;
@ -181,18 +177,6 @@
reg = <0x380000 0x200000>;
read-only;
};
partition@580000 {
label = "crash";
reg = <0x580000 0x40000>;
read-only;
};
partition@5c0000 {
label = "crash_log";
reg = <0x5c0000 0x40000>;
read-only;
};
};
};
};

View File

@ -7,7 +7,8 @@ board_config_update
case $board in
xiaomi,redmi-router-ax6000|\
xiaomi,redmi-router-ax6000-stock)
xiaomi,redmi-router-ax6000-stock|\
xiaomi,redmi-router-ax6000-ubootmod)
ucidef_set_led_netdev "wan" "wan" "rgb:network" "wan"
;;
esac

View File

@ -17,7 +17,8 @@ mediatek_setup_interfaces()
ucidef_set_interface_macaddr "wan" "$(macaddr_add $(cat /sys/class/net/eth0/address) 1)"
;;
xiaomi,redmi-router-ax6000|\
xiaomi,redmi-router-ax6000-stock)
xiaomi,redmi-router-ax6000-stock|\
xiaomi,redmi-router-ax6000-ubootmod)
ucidef_set_interfaces_lan_wan "lan2 lan3 lan4" wan
;;
*)
@ -35,7 +36,8 @@ mediatek_setup_macs()
case $board in
xiaomi,redmi-router-ax6000|\
xiaomi,redmi-router-ax6000-stock)
xiaomi,redmi-router-ax6000-stock|\
xiaomi,redmi-router-ax6000-ubootmod)
wan_mac=$(mtd_get_mac_ascii Bdata ethaddr_wan)
label_mac=$wan_mac
;;

View File

@ -64,6 +64,10 @@ platform_do_upgrade() {
CI_ROOT_UBIPART=ubi
nand_do_upgrade "$1"
;;
xiaomi,redmi-router-ax6000-ubootmod)
CI_KERNPART="fit"
nand_do_upgrade "$1"
;;
*)
nand_do_upgrade "$1"
;;

View File

@ -157,3 +157,32 @@ endif
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
endef
TARGET_DEVICES += xiaomi_redmi-router-ax6000-stock
define Device/xiaomi_redmi-router-ax6000-ubootmod
DEVICE_VENDOR := Xiaomi
DEVICE_MODEL := Redmi Router AX6000 (OpenWrt U-Boot layout)
DEVICE_DTS := mt7986a-xiaomi-redmi-router-ax6000-ubootmod
DEVICE_DTS_DIR := ../dts
DEVICE_PACKAGES := kmod-leds-ws2812b
KERNEL_INITRAMFS_SUFFIX := -recovery.itb
IMAGES := sysupgrade.itb
KERNEL_LOADADDR := 0x48000000
UBINIZE_OPTS := -E 5
BLOCKSIZE := 128k
PAGESIZE := 2048
KERNEL_IN_UBI := 1
UBOOTENV_IN_UBI := 1
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 := bl2 spim-nand-ddr4
ARTIFACT/bl31-uboot.fip := bl31-uboot xiaomi_redmi-router-ax6000
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_redmi-router-ax6000-ubootmod