openwrt/target/linux/mediatek/dts
Mikhail Zhilkin 7ff95775a2 mediatek: add support for Mercusys MR90X v1
This commit adds support for Mercusys MR90X(EU) v1 router.

Device specification
--------------------
SoC Type:   MediaTek MT7986BLA, Cortex-A53, 64-bit
RAM:        MediaTek MT7986BLA (512MB)
Flash:      SPI NAND GigaDevice GD5F1GQ5UEYIGY (128 MB)
Ethernet:   MediaTek MT7531AE + 2.5GbE MaxLinear GPY211C0VC (SLNW8)
Ethernet:   1x2.5Gbe (WAN/LAN 2.5Gbps), 3xGbE (WAN/LAN 1Gbps, LAN1, LAN2)
WLAN 2g:    MediaTek MT7975N, b/g/n/ax, MIMO 4x4
WLAN 5g:    MediaTek MT7975P(N), a/n/ac/ax, MIMO 4x4
LEDs:       1 orange and 1 green status LEDs, 4 green gpio-controlled
            LEDs on ethernet ports
Button:     1 (Reset)
USB ports:  No
Power:      12 VDC, 2 A
Connector:  Barrel
Bootloader: Main U-Boot - U-Boot 2022.01-rc4. Additionally, both UBI
            slots contain "seconduboot" (also U-Boot 2022.01-rc4)

Serial console (UART)
---------------------
                            V
+-------+-------+-------+-------+
| +3.3V |  GND  |  TX   |  RX   |
+---+---+-------+-------+-------+
    |
    +--- Don't connect

The R3 (TX line) and R6 (RX line) are absent on the PCB. You should
solder them or solder the jumpers.

Installation (UART)
-------------------
1. Place OpenWrt initramfs image on tftp server with IP 192.168.1.2
2. Attach UART, switch on the router and interrupt the boot process by
   pressing 'Ctrl-C'
3. Load and run OpenWrt initramfs image:
      tftpboot initramfs-kernel.bin
      bootm
4. Once inside OpenWrt, set / update env variables:
      fw_setenv baudrate 115200
      fw_setenv bootargs "ubi.mtd=ubi0 console=ttyS0,115200n1 loglevel=8 earlycon=uart8250,mmio32,0x11002000 init=/etc/preinit"
      fw_setenv fdtcontroladdr 5ffc0e70
      fw_setenv ipaddr 192.168.1.1
      fw_setenv loadaddr 0x46000000
      fw_setenv mtdids "spi-nand0=spi-nand0"
      fw_setenv mtdparts "spi-nand0:2M(boot),1M(u-boot-env),50M(ubi0),50M(ubi1),8M(userconfig),4M(tp_data)"
      fw_setenv netmask 255.255.255.0
      fw_setenv serverip 192.168.1.2
      fw_setenv stderr serial@11002000
      fw_setenv stdin serial@11002000
      fw_setenv stdout serial@11002000
      fw_setenv tp_boot_idx 0
5. Run 'sysupgrade -n' with the sysupgrade OpenWrt image

Installation (without UART)
---------------------------
1.  Login as root via SSH (router IP, port 20001, password - your web
    interface password)
2.  Open for editing /etc/hotplug.d/iface/65-iptv (e.g., using WinSCP and
    SSH settings from the p.1)
3.  Add a newline after "#!/bin/sh":
       telnetd -l /bin/login.sh
4.  Save "65-iptv" file
5.  Toggle "IPTV/VLAN Enable" checkbox in the router web interface and
    save
6.  Make sure that telnetd is running:
       netstat -ltunp | grep 23
7.  Login via telnet to router IP, port 23 (no username and password are
    required)
8  Upload OpenWrt "initramfs-kernel.bin" to the "/tmp" folder of the
    router (e.g., using WinSCP and SSH settings from the p.1)
9.  Stock busybox doesn't contain ubiupdatevol command. Hence, we need to
    download and upload the full version of busybox to the router. For
    example, from here:
    https://github.com/xerta555/Busybox-Binaries/raw/master/busybox-arm64
    Upload busybox-arm64 to the /tmp dir of the router and run:
    in the telnet shell:
       cd /tmp
       chmod a+x busybox-arm64
10. Check "initramfs-kernel.bin" size:
       du -h initramfs-kernel.bin
11. Delete old and create new "kernel" volume with appropriate size
    (greater than "initramfs-kernel.bin" size):
       ubirmvol /dev/ubi0 -N kernel
       ubimkvol /dev/ubi0 -n 1 -N kernel -s 9MiB
12. Write OpenWrt "initramfs-kernel.bin" to the flash:
       ./busybox-arm64 ubiupdatevol /dev/ubi0_1 /tmp/initramfs-kernel.bin
13. u-boot-env can be empty so lets create it (or overwrite it if it
    already exists) with the necessary values:
       fw_setenv baudrate 115200
       fw_setenv bootargs "ubi.mtd=ubi0 console=ttyS0,115200n1 loglevel=8 earlycon=uart8250,mmio32,0x11002000 init=/etc/preinit"
       fw_setenv fdtcontroladdr 5ffc0e70
       fw_setenv ipaddr 192.168.1.1
       fw_setenv loadaddr 0x46000000
       fw_setenv mtdids "spi-nand0=spi-nand0"
       fw_setenv mtdparts "spi-nand0:2M(boot),1M(u-boot-env),50M(ubi0),50M(ubi1),8M(userconfig),4M(tp_data)"
       fw_setenv netmask 255.255.255.0
       fw_setenv serverip 192.168.1.2
       fw_setenv stderr serial@11002000
       fw_setenv stdin serial@11002000
       fw_setenv stdout serial@11002000
       fw_setenv tp_boot_idx 0
14. Reboot to OpenWrt initramfs:
       reboot
15. Login as root via SSH (IP 192.168.1.1, port 22)
16. Upload OpenWrt sysupgrade.bin image to the /tmp dir of the router
17. Run sysupgrade:
       sysupgrade -n /tmp/sysupgrade.bin

Recovery
--------
1. Press Reset button and power on the router
2. Navigate to U-Boot recovery web server (http://192.168.1.1/) and
   upload the OEM firmware

Recovery (UART)
---------------
1. Place OpenWrt initramfs image on tftp server with IP 192.168.1.2
2. Attach UART, switch on the router and interrupt the boot process by
   pressing 'Ctrl-C'
3. Load and run OpenWrt initramfs image:
      tftpboot initramfs-kernel.bin
      bootm
4. Do what you need (restore partitions from a backup, install OpenWrt
   etc.)

Stock layout
------------
0x000000000000-0x000000200000 : "boot"
0x000000200000-0x000000300000 : "u-boot-env"
0x000000300000-0x000003500000 : "ubi0"
0x000003500000-0x000006700000 : "ubi1"
0x000006700000-0x000006f00000 : "userconfig"
0x000006f00000-0x000007300000 : "tp_data"

ubi0/ubi1 format
----------------
U-Boot at boot checks that all volumes are in place:
+-------------------------------+
| Volume Name: uboot   Vol ID: 0|
| Volume Name: kernel  Vol ID: 1|
| Volume Name: rootfs  Vol ID: 2|
+-------------------------------+

MAC addresses
-------------
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| label   | 00:eb:xx:xx:xx:be | label     |
| LAN     | 00:eb:xx:xx:xx:be | label     |
| WAN     | 00:eb:xx:xx:xx:bf | label+1   |
| WLAN 2g | 00:eb:xx:xx:xx:be | label     |
| WLAN 5g | 00:eb:xx:xx:xx:bd | label-1   |
+---------+-------------------+-----------+
label MAC address was found in UBI partition "tp_data", file
"default-mac". OEM wireless eeprom is also there (file
"MT7986_EEPROM.bin").

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
(cherry picked from commit e4fe3097ef)
[Fix merging conflict]
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
2023-07-01 15:16:17 +00: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
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-qihoo-360t7.dts mediatek: filogic: add Qihoo 360T7 support 2023-05-29 13:04:14 +01:00
mt7986a-asus-tuf-ax4200.dts mediatek: sync MT7986 device trees with upstream 2023-06-09 19:23:03 +01:00
mt7986a-tplink-tl-xdr4288.dts mediatek: sync MT7986 device trees with upstream 2023-06-09 19:23:03 +01:00
mt7986a-tplink-tl-xdr6086.dts mediatek: sync MT7986 device trees with upstream 2023-06-09 19:23:03 +01:00
mt7986a-tplink-tl-xdr6088.dts mediatek: sync MT7986 device trees with upstream 2023-06-09 19:23:03 +01:00
mt7986a-tplink-tl-xdr-common.dtsi mediatek: sync MT7986 device trees with upstream 2023-06-09 19:23:03 +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-09 19:23:03 +01:00
mt7986a-zyxel-ex5601-t0-stock.dts mediatek: sync MT7986 device trees with upstream 2023-06-09 19:23:03 +01:00
mt7986b-mercusys-mr90x-v1.dts mediatek: add support for Mercusys MR90X v1 2023-07-01 15:16:17 +00:00
mt7986b-netgear-wax220.dts filogic: add support for Netgear WAX220 2023-06-26 13:20:39 +02:00