openwrt/target/linux
Ozgur Can Leonard d009033911 ramips: add support for Xiaomi Mi Router 3 Pro
Hardware:

CPU:   MediaTek MT7621AT (2x880MHz)
RAM:   512MB DDR3
FLASH: 256MB NAND
WiFi:  2.4GHz 4x4 MT7615 b/g/n (Needs driver, See Issues!)
WiFI:  5GHz 4x4 MT7615 a/n/ac  (Needs driver, See Issues!)
USB:   1x 3.0
ETH:   1x WAN 10/100/1000 3x LAN 10/100/1000
LED:   Power/Status
BTN:   RESET
UART:  115200 8n1

Partition layout and boot:

Stock Xiaomi firmware has the MTD split into (among others)

- kernel0 (@0x200000)
- kernel1 (@0x600000)
- rootfs0
- rootfs1
- overlay (ubi)

Xiaomi uboot expects to find kernels at 0x200000 & 0x600000
referred to as system 1 & system 2 respectively.
a kernel is considered suitable for handing control over
if its linux magic number exists & uImage CRC are correct.
If either of those conditions fail, a matching sys'n'_fail flag
is set in uboot env & a restart performed in the hope that the
alternate kernel is okay.
If neither kernel checksums ok and both are marked failed, system 2
is booted anyway.

Note uboot's tftp flash install writes the transferred
image to both kernel partitions.

Installation:

Similar to the Xiaomi MIR3G, we keep stock Xiaomi firmware in
kernel0 for ease of recovery, and install OpenWRT into kernel1 and
after.

The installation file for OpenWRT is a *squashfs-factory.bin file that
contains the kernel and a ubi partition. This is flashed as follows:

nvram set flag_try_sys1_failed=1
nvram set flag_try_sys2_failed=0
nvram commit
dd if=factory.bin bs=1M count=4 | mtd write - kernel1
dd if=factory.bin bs=1M skip=4 | mtd write - rootfs0
reboot

Reverting to stock:

The part of stock firmware we've kept in kernel0 allows us to run stock
recovery, which will re-flash stock firmware from a *.bin file on a USB.

For this we do the following:

fw_setenv flag_try_sys1_failed 0
fw_setenv flag_try_sys2_failed 1
reboot

After reboot the LED status light will blink red, at which point pressing
the 'reset' button will cause stock firmware to be installed from USB.

Issues:

OpenWRT currently does not have support for the MT7615 wifi chips. There is
ongoing work to add mt7615 support to the open source mt76 driver. Until that
support is in place, there are closed-source kernel modules that can be used.

See: https://forum.openwrt.org/t/support-for-xiaomi-wifi-r3p-pro/20290/170

Signed-off-by: Ozgur Can Leonard <ozgurcan@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
[02_network remaps, Added link to notes]
2019-03-13 16:25:34 +01:00
..
adm5120 kernel: bump 3.18 to 3.18.133 2019-01-28 18:17:32 +01:00
adm8668 kernel: bump 3.18 to 3.18.133 2019-01-28 18:17:32 +01:00
apm821xx apm821xx: speed up ath9k-caldata extraction 2019-03-02 12:59:48 +01:00
ar7 kernel: bump 4.9 to 4.9.153 2019-01-28 18:17:32 +01:00
ar71xx ar71xx: enable QCA955x SGMII fixup on Rambutan 2019-03-06 22:02:56 +01:00
arc770 treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
archs38 treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
armvirt armvirt: 32: enable CONFIG_ARM_LPAE 2019-02-19 13:13:49 +00:00
at91 kernel: Build: Split kmod-regmap 2019-01-27 00:16:13 +01:00
ath25 kernel: bump 4.14 to 4.14.79 2018-11-05 16:00:00 +01:00
ath79 ath79: add support for LibreRouter v1 2019-03-13 16:25:34 +01:00
au1000 treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
bcm53xx bcm53xx: add first DTS changes queued for the Linux 5.1 2019-02-01 07:09:27 +01:00
brcm47xx kernel: bump 4.19 to 4.19.18 2019-01-28 18:17:32 +01:00
brcm63xx brcm63xx: dts: Unify naming of gpio-led nodes 2019-02-05 16:28:12 +01:00
brcm2708 kernel: add kmod-input-touchscreen-ads7846 2019-02-24 01:17:01 +02:00
cns3xxx kernel: bump 4.19 to 4.19.21 2019-02-14 16:45:01 +01:00
gemini gemini: Generate harddisk image for DNS-313 2019-02-20 18:51:31 +01:00
generic kernel: bump 4.9 to 4.9.162 2019-03-07 16:32:23 +01:00
imx6 kernel: disable CONFIG_USB_IMX21_HCD in default for kernel 4.14 2019-02-17 19:22:39 +01:00
ipq40xx ipq40xx: fix FRITZBox 7530 NAND controller node 2019-03-13 16:25:34 +01:00
ipq806x ipq806x: fix LED configuration for NEC Aterm WG2600HP 2019-02-28 11:54:09 +01:00
ixp4xx kernel: bump 4.9 to 4.9.160 2019-02-25 17:33:16 +01:00
kirkwood kernel: bump 4.19 to 4.19.24 2019-02-22 10:53:42 +01:00
lantiq lantiq: Refresh kernel 4.14 configuration 2019-03-10 19:05:49 +01:00
layerscape layerscape: use wrapped nand_do_upgrade for traverse-ls1043 boards 2019-03-10 17:48:23 +01:00
malta malta: Add support for kernel 4.19 2019-01-13 16:31:40 +01:00
mcs814x kernel: bump 3.18 to 3.18.119 2018-08-20 13:03:23 +02:00
mediatek kernel: bump 4.14 to 4.14.99 2019-02-14 16:45:01 +01:00
mpc85xx mpc85xx: Fix Aerohive HiveAP-330 initramfs image 2019-03-02 13:04:54 +01:00
mvebu kernel: bump 4.14 to 4.14.104 2019-03-05 13:19:43 +01:00
mxs mxs: disable unused serial drivers 2019-03-11 19:35:43 +01:00
octeon octeon: fix typo in platform.sh 2019-01-12 19:40:13 +01:00
octeontx kernel: enable memory compaction 2018-10-09 14:29:55 +02:00
omap kernel: bump 4.14 to 4.14.77 2018-10-19 10:01:57 +02:00
omap24xx omap24xx: remove referece to not existing kmod-usb-musb-tusb6010 2018-01-15 13:13:34 +01:00
orion treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
oxnas oxnas: install wireless driver on pogoplugpro 2019-03-12 14:18:42 +01:00
pistachio kernel: bump 4.14 to 4.14.91 2019-01-07 17:09:06 +01:00
ppc40x kernel: only optimized for size if small_flash 2018-07-12 18:15:32 +02:00
ppc44x kernel: only optimized for size if small_flash 2018-07-12 18:15:32 +02:00
ramips ramips: add support for Xiaomi Mi Router 3 Pro 2019-03-13 16:25:34 +01:00
rb532 kernel: bump 4.14 to 4.14.86 2018-12-10 11:48:44 +01:00
samsung kernel: Deactivate CONFIG_COMPAT_BRK 2018-12-26 17:32:48 +01:00
sunxi sunxi: add support for Orange Pi PC Plus 2019-03-09 18:55:15 +01:00
uml treewide: use wpad-basic for not small flash targets 2018-10-16 15:07:41 +01:00
x86 x86: video: disable buildtin amdgpu DRM driver 2019-02-17 19:22:39 +01:00
xburst kernel: bump 3.18 to 3.18.119 2018-08-20 13:03:23 +02:00
zynq kernel: Deactivate CONFIG_COMPAT_BRK 2018-12-26 17:32:48 +01:00
Makefile