openwrt/target/linux
Roland Reinl e3a6945b58 mediatek: Add support for D-Link EAGLE PRO AI M32
Specification:
 - MT7622BV SoC with 2.4GHz wifi
 - MT7975AN + MT7915AN for 5GHz
 - MT7531BE Switch
 - 512MB RAM
 - 128 MB flash
 - 3 LEDs (red, orange, white)
 - 2 buttons (WPS and Reset)

MAC addresses:
 - WAN MAC is stored in partition "Odm" at offset 0x83
 - LAN (as printed on the device) is WAN MAC + 1
 - WLAN MAC (2.4 GHz) is WAN MAC + 2
 - WLAN MAC (5GHz) is WAN MAC + 3

Disassembly: Remove 4 screws in the bottom and 2 screws in the top (after removing the blue cover on the top), then the board can be pulled out.

The pins for the serial console are already labeled on the board (VCC, TX, RX, GND). Serial settings: 3.3V, 115200,8n1

Flashing via Recovery Web Interface:
- Set your IP address to 192.168.0.10, subnetmask 255.255.255.25
- Press the reset button while powering on the deivce
- Keep the reset button pressed until the status LED blinks fast
- Open a Chromium based and goto http://192.168.0.1
- Download openwrt-mediatek-mt7622-dlink_eagle-pro-ai-m32-a1-squashfs-recovery.bin

Flashing via uBoot:
- Open the case, connect to the UART console
- Set your IP address to 10.10.10.3, subnet mask 255.255.255.0. Connect to one of the LAN interfaces of the router
- Run a tftp server which provides openwrt-mediatek-mt7622-dlink_eagle-pro-ai-m32-initramfs-kernel.bin. You can rename the file to iverson_uImage (no extension), then you don't have to enter the whole file name in uboot later.
- Power on the device and select "1. System Load Linux to SDRAM via TFTP." in the boot menu
- Enter image file, tftp server IP and device IP (if they differ from the default).
- TFTP download to RAM will start. After a few seconds OpenWrt initramfs should start
- The initramfs is accessible via 192.168.1.1, change your IP address accordingly (or use multiple IP addresses on your interface)
- Create a backup of the Kernel1 partition, this file is required if a revert to stock should be done later
- Perform a sysupgrade using openwrt-mediatek-mt7622-dlink_eagle-pro-ai-m32-squashfs-sysupgrade.bin
- Reboot the device. OpenWrt should start from flash now

Revert back to stock using the Recovery Web Interface:
- Set your IP address to 192.168.0.10, subnetmask 255.255.255.25
- Press the reset button while powering on the deivce
- Keep the reset button pressed until the status LED blinks fast
- Open a Chromium based and goto http://192.168.0.1
- Flash a decrypted firmware image from D-Link. Decrypting an firmware image is described below.

Decrypting a D-Link firmware image:
- Download https://github.com/RolandoMagico/firmware-utils/blob/M32/src/m32-firmware-util.c
- Compile a binary from the downloaded file, e.g. gcc m32-firmware-util.c -lcrypto -o m32-firmware-util
- Run ./m32-firmware-util M32 --DecryptFactoryImage <OriginalFirmware> <OutputFile>
- Example for firmware 1.03.01_HOTFIX: ./m32-firmware-util M32 --DecryptFactoryImage M32-REVA_1.03.01_HOTFIX.enc.bin M32-REVA_1.03.01_HOTFIX.decrypted.bin

Revert back to stock using uBoot:
- Open the case, connect to the UART console
- Set your IP address to 10.10.10.3, subnet mask 255.255.255.0. Connect to one of the LAN interfaces of the router
- Run a tftp server which provides the previously created backup of the Kernel1 partition. You can rename the file to iverson_uImage (no extension), then you don't have to enter the whole file name in uboot later.
- Power on the device and select "2. System Load Linux Kernel then write to Flash via TFTP." in the boot menu
- Enter image file, tftp server IP and device IP (if they differ from the default).
- TFTP download to FLASH will start. After a few seconds the stock firmware should start again

There is also an image openwrt-mediatek-mt7622-dlink_eagle-pro-ai-m32-a1-squashfs-tftp.bin which can directly be flashed via U-Boot and TFTP. It can be used if no backup of the Kernel1 partition is reuqired.

Flahsing via OEM web interface is currently not possible, the OEM images are encrypted and require a specific memory layout which is not compatible to the partition layout of OpenWrt.

Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
2023-11-12 17:33:41 +01:00
..
airoha kernel: bump 5.15 to 5.15.125 2023-08-09 22:06:24 +02:00
apm821xx apm821xx: WNDR4700: fix broken sysupgrade, factory images 2023-10-20 18:13:57 +02:00
archs38 treewide: remove files for building 5.10 kernel 2023-05-12 13:02:43 +02:00
armsr armsr: preserve configuration during sysupgrade 2023-10-20 00:36:32 +02:00
at91 treewide: remove files for building 5.10 kernel 2023-05-12 13:02:43 +02:00
ath25 kernel: bump 5.15 to 5.15.125 2023-08-09 22:06:24 +02:00
ath79 kernel: bump 5.15 to 5.15.138 2023-11-10 17:33:59 +01:00
bcm27xx kernel: bump 6.1 to 6.1.61 2023-11-03 13:02:30 +01:00
bcm47xx kernel: bump 5.15 to 5.15.133 2023-10-04 21:03:12 +02:00
bcm53xx bcm53xx: refresh kernel config for 6.1 2023-11-06 13:25:59 +01:00
bcm63xx kernel: bump 5.15 to 5.15.125 2023-08-09 22:06:24 +02:00
bcm4908 kernel: bump 5.15 to 5.15.137 2023-10-27 19:43:06 +01:00
bmips kernel: bump 6.1 to 6.1.60 2023-10-26 12:08:52 +02:00
gemini gemini: usb-fotg210: remove uneeded dependency on @USB_SUPPORT 2023-11-08 22:01:44 +01:00
generic kernel: bump 6.1 to 6.1.62 2023-11-10 17:37:12 +01:00
imx kernel: backport NVMEM patches queued for the v6.5 2023-06-16 09:45:38 +02:00
ipq40xx ipq40xx: wpj428: switch to zimage to fit kernel partition 2023-10-20 18:13:57 +02:00
ipq806x ipq806x: setup DSA port conduit in board.d 2023-11-10 12:30:34 +01:00
ixp4xx ixp4xx: Add USRobotics USR8200 support 2023-10-25 11:29:29 +02:00
kirkwood kirkwood: add support for Iomega Storcenter ix4-200d 2023-05-20 15:35:37 +02:00
lantiq kernel: bump 5.15 to 5.15.138 2023-11-10 17:33:59 +01:00
layerscape treewide: disable CONFIG_SLUB_DEBUG in target configs 2023-11-09 21:23:01 +01:00
malta kernel: remove CRYPTO_BLAKE2S from all >=5.15 2023-07-08 16:54:01 +02:00
mediatek mediatek: Add support for D-Link EAGLE PRO AI M32 2023-11-12 17:33:41 +01:00
mpc85xx mpc85xx: add Enterasys WS-AP3715i reset button 2023-09-27 23:13:36 +02:00
mvebu mvebu: fix PXA I2C bus with recovery 2023-11-12 14:28:21 +01:00
mxs mxs: add testing kernel 6.1 2023-07-01 12:54:30 +02:00
octeon kernel: bump 5.15 to 5.15.125 2023-08-09 22:06:24 +02:00
octeontx kernel: bump 5.15 to 5.15.138 2023-11-10 17:33:59 +01:00
omap treewide: remove files for building 5.10 kernel 2023-05-12 13:02:43 +02:00
oxnas treewide: disable CONFIG_SLUB_DEBUG in target configs 2023-11-09 21:23:01 +01:00
pistachio kernel: fix mtd/NVMEM regression affecting U-Boot env NVMEM driver 2023-10-31 17:33:28 +01:00
qoriq treewide: disable CONFIG_SLUB_DEBUG in target configs 2023-11-09 21:23:01 +01:00
qualcommax ipq807x: fix wrong define for LAN and WAN ess mask 2023-11-10 20:19:45 +01:00
ramips ramips: mt7621: use lzma-loader for Sercomm NA502 2023-11-12 15:32:24 +01:00
realtek realtek: add support for TP-Link T1600G-28TS v3 2023-10-20 18:13:57 +02:00
rockchip treewide: disable CONFIG_SLUB_DEBUG in target configs 2023-11-09 21:23:01 +01:00
sifiveu treewide: disable CONFIG_SLUB_DEBUG in target configs 2023-11-09 21:23:01 +01:00
sunxi sunxi: enable cpufreq driver for H6 SoC 2023-10-28 18:31:43 +02:00
tegra treewide: remove files for building 5.10 kernel 2023-05-12 13:02:43 +02:00
uml kernel: bump 6.1 to 6.1.53 2023-09-23 13:10:28 +02:00
x86 x86: add support for Mellanox Spectrum SN2000 Switches 2023-10-31 21:12:15 +01:00
zynq generic: enable CONFIG_ARM_CRYPTO for 32bit arm targets 2023-05-10 19:01:45 +02:00
Makefile