openwrt/target/linux/mediatek/dts
Hank Moretti 54dc1cde48 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>
2023-07-27 13:46:16 +02:00
..
mt7622-buffalo-wsr-2533dhp2.dts mediatek: convert mtd-mac-address to nvmem implementation 2021-07-19 14:51:22 +02:00
mt7622-elecom-wrc-2533gent.dts mediatek: add an upstreamed spi-nand driver 2022-04-28 18:06:00 +08:00
mt7622-elecom-wrc-x3200gst3.dts treewide: remove label = "cpu" from DSA dt-binding 2023-02-26 22:22:48 +01:00
mt7622-linksys-e8450-ubi.dts mediatek: convert mtd-mac-address to nvmem implementation 2021-07-19 14:51:22 +02:00
mt7622-linksys-e8450.dts mediatek: convert mtd-mac-address to nvmem implementation 2021-07-19 14:51:22 +02:00
mt7622-linksys-e8450.dtsi treewide: remove label = "cpu" from DSA dt-binding 2023-02-26 22:22:48 +01:00
mt7622-netgear-wax206.dts mediatek: no longer hard-code WAN PHY of Netgear WAX206 2023-04-30 17:27:00 +01:00
mt7622-reyee-ax3200-e5.dts mediatek: also move &slot0 from dtsi down to board dts 2022-12-07 01:45:14 +00:00
mt7622-rfb1-ubi.dts mediatek: add an upstreamed spi-nand driver 2022-04-28 18:06:00 +08:00
mt7622-ruijie-rg-ew3200.dtsi treewide: remove label = "cpu" from DSA dt-binding 2023-02-26 22:22:48 +01:00
mt7622-ruijie-rg-ew3200gx-pro.dts mediatek: also move &slot0 from dtsi down to board dts 2022-12-07 01:45:14 +00:00
mt7622-totolink-a8000ru.dts mediatek: mt7622: add missing vbus regulator node to totolink-a8000ru dts 2022-07-07 00:22:23 +01:00
mt7622-ubnt-unifi-6-lr-v1-ubootmod.dts mediatek: mt7622: fix DTS compatible of UniFi 6 LR variants 2022-09-03 02:27:59 +01:00
mt7622-ubnt-unifi-6-lr-v1.dts mediatek: mt7622: fix DTS compatible of UniFi 6 LR variants 2022-09-03 02:27:59 +01:00
mt7622-ubnt-unifi-6-lr-v1.dtsi mediatek: fix ledbar of UniFi 6 LR when running custom U-Boot 2022-09-11 20:26:42 +01:00
mt7622-ubnt-unifi-6-lr-v2-ubootmod.dts mediatek: mt7622: fix DTS compatible of UniFi 6 LR variants 2022-09-03 02:27:59 +01:00
mt7622-ubnt-unifi-6-lr-v2.dts mediatek: add Ubiquiti UniFi 6 LR v2 targets 2022-06-11 19:51:33 +01:00
mt7622-ubnt-unifi-6-lr-v2.dtsi mediatek: mt7622: fix white dome LED of UniFi 6 LR 2022-07-04 19:19:52 +01:00
mt7622-ubnt-unifi-6-lr.dtsi mediatek: UniFi 6 LR: disable RTC 2022-06-18 17:32:07 +01:00
mt7622-xiaomi-redmi-router-ax6s.dts treewide: remove label = "cpu" from DSA dt-binding 2023-02-26 22:22:48 +01:00
mt7623a-unielec-u7623-02-emmc-512m.dts mediatek: u7623-02: enable early console also in legacy image 2022-01-31 00:10:38 +00:00
mt7623a-unielec-u7623-02.dts mediatek: mt7623: rework images for U7623-02 board 2022-01-23 20:20:37 +00:00
mt7623a-unielec-u7623-02.dtsi treewide: remove label = "cpu" from DSA dt-binding 2023-02-26 22:22:48 +01:00
mt7629-iptime-a6004mx.dts treewide: remove label = "cpu" from DSA dt-binding 2023-02-26 22:22:48 +01:00
mt7629-netgear-ex6250-v2.dts mediatek: add support for Netgear EX6250v2 series 2023-07-01 14:42:11 +02:00
mt7981b-cudy-wr3000-v1.dts mediatek: add support for Cudy WR3000 v1 2023-05-18 01:46:13 +02:00
mt7981b-glinet-gl-mt3000.dts mediatek: add support for the GL.iNet GL-MT3000 2023-05-18 02:41:49 +01:00
mt7981b-h3c-magic-nx30-pro.dts mediatek: filogic: add H3C Magic NX30 Pro support 2023-07-01 15:13:08 +02:00
mt7981b-qihoo-360t7.dts mediatek: filogic: add Qihoo 360T7 support 2023-05-27 11:17:08 +01:00
mt7981b-xiaomi-mi-router-wr30u-stock.dts mediatek: filogic: add support for Xiaomi WR30U 2023-07-27 13:46:16 +02:00
mt7981b-xiaomi-mi-router-wr30u-ubootmod.dts mediatek: filogic: add support for Xiaomi WR30U 2023-07-27 13:46:16 +02:00
mt7981b-xiaomi-mi-router-wr30u.dtsi mediatek: filogic: add support for Xiaomi WR30U 2023-07-27 13:46:16 +02:00
mt7981b-zyxel-nwa50ax-pro.dts mediatek: add missing SPDX header 2023-07-22 17:41:22 +02:00
mt7986a-asus-tuf-ax4200.dts mediatek: sync MT7986 device trees with upstream 2023-06-05 11:36:32 +01:00
mt7986a-tplink-tl-xdr4288.dts mediatek: sync MT7986 device trees with upstream 2023-06-05 11:36:32 +01:00
mt7986a-tplink-tl-xdr6086.dts mediatek: sync MT7986 device trees with upstream 2023-06-05 11:36:32 +01:00
mt7986a-tplink-tl-xdr6088.dts mediatek: sync MT7986 device trees with upstream 2023-06-05 11:36:32 +01:00
mt7986a-tplink-tl-xdr-common.dtsi mediatek: sync MT7986 device trees with upstream 2023-06-05 11:36:32 +01:00
mt7986a-xiaomi-redmi-router-ax6000-stock.dts mediatek: add new layout for Xiaomi Redmi Router AX6000 for OpenWrt U-Boot 2022-12-29 03:00:31 +00:00
mt7986a-xiaomi-redmi-router-ax6000-ubootmod.dts mediatek: add new layout for Xiaomi Redmi Router AX6000 for OpenWrt U-Boot 2022-12-29 03:00:31 +00:00
mt7986a-xiaomi-redmi-router-ax6000.dtsi mediatek: sync MT7986 device trees with upstream 2023-06-05 11:36:32 +01:00
mt7986a-zyxel-ex5601-t0-stock.dts mediatek: sync MT7986 device trees with upstream 2023-06-05 11:36:32 +01:00
mt7986b-mercusys-mr90x-v1.dts mediatek: add support for Mercusys MR90X v1 2023-06-25 12:25:22 +02:00
mt7986b-netgear-wax220.dts mediatek: define NMBM management region for WAX220 2023-07-02 01:06:08 +02:00