User Tools

Site Tools


toh:xiaomi:mini

Xiaomi Mi WiFi Mini

The Xiaomi MiWiFi Mini is a 802.11ac+bgn wireless router based on the MediaTek MT7620A SoC. It has three Ethernet ports and two radios (one SoC-based 2.4 GHz 802.11bgn and one PCI-based MT7612EN 2.4/5GHz 802.11abgnac, wired on 5GHz only, both 2x2 MiMo).

 Xiaomi MiWiFi Mini router (left view)  Xiaomi MiWiFi Mini router (front view)  Xiaomi MiWiFi Mini router (location of the screws)  Xiaomi MiWiFi Mini router (board top view)  Xiaomi MiWiFi Mini router (board back view)  Xiaomi MiWiFi Mini router (cover removed)  Xiaomi MiWiFi Mini router (potential location of the serial interface)

Hardware highlights

ModelVersionSoCCPU MHzFlash MB RAM MBWLAN HardwareWLAN2.4WLAN5.0100M portsGbit portsModemUSB
MiWiFi MiniR1CMMediaTek MT7620A58016128MediaTek MT7620A + MT7612ENb/g/na/n/ac3-No1x 2.0

Supported versions

OpenWrt installation process is tricky but possible. It requires registering to Xiaomi's web site to install the development firmware provided by the vendor that enables root SSH access to the device. See below for details. Another option would be to directly burn the SPI flash chip via a clamp and a buspirate.

Power characteristics

  • Router consumes between 1.5W and 2.1W, depending on the power supply voltage and load.
  • The power adapter is rated 12V @ 1A . The router can be powered from a battery.

Hardware

Detailed hardware

Instruction set: MIPS
Vendor: MediaTek
Bootloader: U-Boot + Xiaomi U-Boot
System-On-Chip: Ralink MT7620A
CPU @Freq MIPS 24KEc V5.0 @580 MHz
Flash size: 16 MiB
Flash Chip: Winbond W25Q128FVSIG
RAM size: 128 MiB DDR2
RAM Chip: Samsung K4T1G164QG-BCF7
Wireless No1: SoC-integrated: MT7620A 2x2 MIMO 802.11b/g/n (2.4 GHz)
Wireless No2: On-board chip: MT7612EN 2x2 MIMO 802.11a/b/g/n/ac (2.4 / 5 GHz)
Switch: MT7620 built-in 10/100 switch w/ vlan support
USB: 1x
Serial: Yes

Serial connection

The serial port of the Xiaomi MiWiFi Mini can be accessed using the TTL pins shown in the image below. A voltage level converter (such as a CP2102 TTL-USB dongle) is required. Writing to the console is disabled in the factory U-Boot. Writing to the console in the factory firmware is only possible during first boot; afterwards it is disabled by the firmware.

The following images shows the serial pins clearly marked on the board:

Xiaomi MiWiFi Mini TTL serial pins are clearly marked on the board

The communication settings are: TTL voltage, 115200 bps, 8N1.

Switch Ports

Defaults:

  • 0, 1: LAN
  • 4: WAN
  • 6: CPU

2,3,5 and 7 are disconnected. All ports are 100Mbps except the CPU port 6, which shows as 1Gbps using 'swconfig dev mt7620 show'

OpenWrt support

The Xiaomi MiWiFi Mini can run OpenWrt. Use the official release as shown above, or a recent snapshot, alternatively use this patch on OpenWrt trunk.

The MediaTek MT7612EN wireless driver package (mt76) supports the 802.11ac wireless card in AP/Client/Adhoc modes.

Attention! Wifi is nowhere near stable even in stable releases up to Chaos Calmer, more information at https://forum.openwrt.org/viewtopic.php?id=54987 possible solution for the problem described below: https://forum.openwrt.org/viewtopic.php?pid=306678#p306678

It seems that the issue of WIFI was fixed in the LEDE trunk with this commit.

WiFi performance of Chaos Calmer 15.05.1 has been very stable, and as good as the original factory firmware.

Beside Xiaomi firmware there is also PandoraBox firmware for Xiaomi Mini router. It is also based upon OpenWrt and it also uses proprietary drivers, user interface is also in Chinese. There is and English/International version of PandoraBox so try that one as well.

Quick OpenWrt installation

In case you want to skip all the Xiaomi download etc, here are some instructions to flash directly OpenWrt/PandoraBox on stock firmware via code injection bug.

NOTE

This method has been successfully tested on

STEPS * Connect and boot device

  • Connect the device to Internet (WAN port), continue when LED is blue (device online)
  • Connect a Laptop/PC/Mobile to the LAN port or the devices wifi (eg. Xiaomi_FFFF)
  • Power on and setup the Xiaomi router until it reboots and gets IP address 192.168.31.1
  • Enable telnet with code injection
  • Log-in into the router and grab the value of the stok URL parameter (for instance: "9c2428de4d17e2db7e5a6a337e6f57a3")from your browsers' address bar.
  • Replace the <STOK> placeholder and load this URL in your browser or curl, this will start telnetd on the router:
    • http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqnetwork/set_wifi_ap? ssid=whatever&encryption=NONE&enctype=NONE&channel=1%3B%2Fusr%2Fsbin%2Ftelnetd
    • It should spit out error code, for example: {"msg":"未能連線到指定Wi-Fi(Probe timeout)","code":1616} or English: {"msg":"Couldn't connect to this network(Probe timeout)","code":1616}
  • Replace the <STOK> placeholder, the current password and the desired root password and load this URL in your browser or curl, this will set the router root password
    • http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqsystem/set_name_password?oldPwd=<CURRENTPASS>&newPwd=<NEWPASS>
    • It should spit out: {"code":0}
  • Set root password through telnet
  • Telnet to the router: telnet 192.168.31.1 23
  • enter user root and <NEWPASS> chosen above.
  • Flash the latest firmware
  • Get the latest firmware, eg: # cd /tmp; wget <link to firmware-image as shown above>
  • Check the MTD layout: # cat /proc/mtd
  • If you find a line "OS1" go ahead with flashing: # mtd -r write <firmware-image you downloaded> OS1
  • After flashing is complete, the router will reboot.
  • Enable SSH
  • When finished you can login using telnet or web-interface on a LAN-connected client to host 192.168.1.1. User: root, no password.
  • SSH will be enabled after you set a password (using passwd or LuCI web interface), telnet will be disabled.

OpenWrt installation

To install OpenWrt the first time you need an account on miwifi.com and register every single device using an iOS or Android device to get an cusomized SSH-patch.

  • Connect the device to Internet (WAN port), continue when LED is blue (device online)
  • Connect a Laptop/PC/Mobile to the LAN port or the devices wifi (eg. Xiaomi_FFFF)
  • Navigate to the web interface (http://192.168.31.1/), set the system and WiFi password
  • Upgrade the device with Xiaomi's development firmware via USB stick:
    • Download the file named miwifi_r1cm_firmware_047a3_2.x.x.bin
    • Copy the file to an empty, FAT32 formatted USB stick with MBR partition table and rename the file to miwifi.bin
    • Turn on router while reset-button pressed and USB stick plugged in
    • Release Reset-button after the orange LED starts flashing
    • Wait a minute to complete flashing and device is online again (shown by blue LED)
  • Register the device on Xiaomi's web site (using Android or iPhone app)
  • Obtain root SSH password and the binary to enable SSH:
    • The patch applies only for a specific device. If you have more than 1 device check the last 4 digits on the devices default SSID.
    • Download the SSH-Patch for the registered device and save it to an empty FAT32 formatted USB stick, filename miwifi_ssh.bin
    • Turn on Router while reset-button pressed and USB stick plugged in
    • Release Reset-button after the orange LED starts flashing
    • Wait a minute to complete flashing and device is online again (shown by blue LED)
  • SSH to the device to flash OpenWrt
    • Open a SSH connection to root@192.168.31.1
    • Login using credentials provided by the SSH download website
  • Flash the latest firmware
    • Get the latest firmware, eg: # cd /tmp; wget <link to firmware-image as shown above>
    • Check the MTD layout: # cat /proc/mtd
    • If you find a line "OS1" go ahead with flashing: # mtd -r write <firmware-image you downloaded> OS1
  • After flashing is complete, the router will reboot. When finished you can login using telnet or web-interface on a LAN-connected client to host 192.168.1.1. User: root, no password.
  • SSH will be enabled after you set a password (using passwd or LuCI web interface), telnet will be disabled.

An unofficial english version of the Android app can be obtained here: http://xiaomi.eu/community/threads/xiaomi-router-app-translation.25386/page-3#post-262621

This web page provides step by step details: http://en.miui.com/thread-64391-1-1.html. For instructions for reverting to factory firmware, please see below.

Please note that the OpenWrt binary defaults to the red color of the led instead of the orange/blue during and after finishing the boot.

Reverting to stock firmware

The factory firmware shipped with the Xiaomi MiWiFi is a highly modified OpenWrt 12.09 Attitude Adjustment (according to /etc/opkg.conf) with a completely different (i.e. non-LuCi) web interface and proprietary drivers like Tuxera NTFS.

You can revert to stock firmware by following these steps:

  • Rename downloaded file to miwifi.bin
  • Put miwifi.bin into a USB flash drive (must be FAT/FAT32)
  • Plug said USB drive to router's usb port
  • Unplug router's power
  • Press reset button and then re-plug the power
  • Keep pressing reset button until the orange status LED starts blinking
  • wait until the LED turns blue

Bootloader

The router comes with a standard U-boot bootloader, but it is not accessible (console write is disabled), and immediately boots another bootloader named "Ralink U-boot" (console write is as well disabled).

The "Ralink U-boot" allows flashing the [factory] firmware to the device using a USB stick when the reset button is pressed on power-up.

Once root SSH access is gained, factory U-boot can be overwritten with a fully-functional one (e.g. from a WRTNode).

mtd partitioning

Original boards

root@XiaoQiang:/tmp# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 01000000 00010000 "ALL"
mtd1: 00030000 00010000 "Bootloader"
mtd2: 00010000 00010000 "Config"
mtd3: 00010000 00010000 "Factory"
mtd4: 00c80000 00010000 "OS1"
mtd5: 00b26e43 00010000 "rootfs"
mtd6: 00200000 00010000 "OS2"
mtd7: 00100000 00010000 "overlay"
mtd8: 00010000 00010000 "crash"
mtd9: 00010000 00010000 "reserved"
mtd10: 00010000 00010000 "Bdata"
mtd11: 00fa0000 00010000 "firmware"

"newer" boards. (My box was labeled 2015.05)

root@XiaoQiang:~# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 01000000 00010000 "ALL"
mtd1: 00030000 00010000 "Bootloader"
mtd2: 00010000 00010000 "Config"
mtd3: 00010000 00010000 "Factory"
mtd4: 00c80000 00010000 "OS1"
mtd5: 00b19a3b 00010000 "rootfs"
mtd6: 00200000 00010000 "OS2"
mtd7: 00100000 00010000 "overlay"
mtd8: 00010000 00010000 "crash"
mtd9: 00010000 00010000 "reserved"
mtd10: 00010000 00010000 "Bdata"

On this "newer" device, you write the openwrt firmware to the "OS1" partition, not the "firmware" partition as the referenced guide says.

Bootlogs

U-Boot bootlog

This U-boot bootlog corresponds to the Xiaomi MiWifi Mini flashed with a U-boot from a WRTNode (console write enabled):

U-Boot 1.1.3 (Feb 15 2014 - 19:45:10) Board: Drogoo Wireless AP DRAM: 64 MB relocate_code Pointer at: 83fb4000 enable ephy clock...done. rf reg 29 = 5 SSC disabled. spi_wait_nsec: 29 spi device id: c2 20 18 c2 20 (2018c220) find flash: MX25L12805D raspi_read: from:30000 len:1000 raspi_read: from:30000 len:1000 ============================================ Drogoo UBoot Version: 4.1.2.0 -------------------------------------------- Drogoo Wireless ASIC (Port5<->None) DRAM component: 512 Mbits DDR, width 16 DRAM bus: 16 bit Total memory: 64 MBytes Flash component: SPI Flash Date:Feb 15 2014 Time:19:45:10 ============================================ icache: sets:512, ways:4, linesz:32 ,total:65536 dcache: sets:256, ways:4, linesz:32 ,total:32768 ##### The CPU freq = 580 MHZ #### estimate memory size =64 Mbytes Please choose the operation: 1: Load system code to SDRAM via TFTP. 2: Load system code then write to Flash via TFTP. 3: Boot system code via Flash (default). 4: Entr boot command line interface. 7: Load Boot Loader code then write to Flash via Serial. 9: Load Boot Loader code then write to Flash via TFTP. 0 3: System Boot system code via Flash. ## Booting image at bc050000 ... raspi_read: from:50000 len:40 Image Name: MIPS OpenWrt Linux-3.14.28 Image Type: MIPS Linux Kernel Image (lzma compressed) Data Size: 1107728 Bytes = 1.1 MB Load Address: 80000000 Entry Point: 80000000 raspi_read: from:50040 len:10e710 Verifying Checksum ... OK Uncompressing Kernel Image ...


Xiaomi bootlog

Original firmware boot log (miwifi_r1cm_firmware_ae50f_2.9.9)

[ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Linux version 2.6.36 (jenkins@JenkinsServer) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #1 Thu Dec 31 17:23:59 CST 2015 [ 0.000000] [ 0.000000] The CPU feqenuce set to 580 MHz [ 0.000000] PCIE: bypass PCIe DLL. [ 0.000000] PCIE: Elastic buffer control: Addr:0x68 -> 0xB4 [ 0.000000] disable all power about PCIe [ 0.000000] CPU revision is: 00019650 (MIPS 24Kc) [ 0.000000] Software DMA cache coherency [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 04000000 @ 00000000 (usable) [ 0.000000] User-defined physical RAM map: [ 0.000000] memory: 08000000 @ 00000000 (usable) [ 0.000000] Zone PFN ranges: [ 0.000000] Normal 0x00000000 -> 0x00008000 [ 0.000000] Movable zone start PFN for each node [ 0.000000] early_node_map[1] active PFN ranges [ 0.000000] 0: 0x00000000 -> 0x00008000 [ 0.000000] On node 0 totalpages: 32768 [ 0.000000] free_area_init_node: node 0, pgdat 80418ad0, node_mem_map 81000000 [ 0.000000] Normal zone: 256 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 32512 pages, LIFO batch:7 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 [ 0.000000] Kernel command line: console=ttyS1,115200n8 root=/dev/mtdblock5 uart_en=0 factory_mode=0 mem=128m [ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes) [ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) [ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) [ 0.000000] Primary instruction cache 64kB, VIPT, , 4-waylinesize 32 bytes. [ 0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes [ 0.000000] Writing ErrCtl register=00077ec0 [ 0.000000] Readback ErrCtl register=00077ec0 [ 0.000000] allocated 655360 bytes of page_cgroup [ 0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups [ 0.000000] Memory: 124640k/131072k available (3182k kernel code, 6432k reserved, 1017k data, 168k init, 0k highmem) [ 0.000000] SLUB: Genslabs=7, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:128 [ 0.000000] console [ttyS1] enabled [ 0.010000] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216) [ 0.220000] pid_max: default: 32768 minimum: 301 [ 0.220000] Mount-cache hash table entries: 512 [ 0.220000] Initializing cgroup subsys cpuacct [ 0.230000] Initializing cgroup subsys memory [ 0.230000] Initializing cgroup subsys net_cls [ 0.240000] NET: Registered protocol family 16 [ 0.240000] RALINK_GPIOMODE = 1a131c [ 0.240000] RALINK_GPIOMODE = 18131c [ 0.440000] PPLL_CFG1=0xe5c000 [ 0.450000] MT7620 PPLL lock [ 0.450000] PPLL_DRV =0x80080504 [ 0.650000] Deassert the PCIE0 RESET. [ 0.650000] start PCIe register access [ 1.150000] RALINK_RSTCTRL = 2400000 [ 1.160000] RALINK_CLKCFG1 = 75afffc0 [ 1.160000] [ 1.160000] *************** MT7620 PCIe RC mode ************* [ 1.660000] PCIE0 enabled [ 1.670000] init_rt2880pci done [ 1.670000] bio: create slab <bio-0> at 0 [ 1.680000] SCSI subsystem initialized [ 1.680000] usbcore: registered new interface driver usbfs [ 1.680000] usbcore: registered new interface driver hub [ 1.690000] usbcore: registered new device driver usb [ 1.690000] pci 0000:00:00.0: reg 10: [mem 0x00000000-0x7fffffff] [ 1.690000] pci 0000:00:00.0: reg 14: [mem 0x20200000-0x2020ffff] [ 1.690000] pci 0000:00:00.0: supports D1 [ 1.690000] pci 0000:00:00.0: PME# supported from D0 D1 D3hot [ 1.690000] pci 0000:00:00.0: PME# disabled [ 1.690000] pci 0000:01:00.0: reg 10: [mem 0x00000000-0x000fffff 64bit] [ 1.690000] pci 0000:01:00.0: reg 30: [mem 0x00000000-0x0000ffff pref] [ 1.690000] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold [ 1.690000] pci 0000:01:00.0: PME# disabled [ 1.690000] pci 0000:00:00.0: BAR 0: can't assign mem (size 0x80000000) [ 1.700000] pci 0000:00:00.0: BAR 8: assigned [mem 0x20000000-0x200fffff] [ 1.700000] pci 0000:00:00.0: BAR 9: assigned [mem 0x20100000-0x201fffff pref] [ 1.710000] pci 0000:00:00.0: BAR 1: assigned [mem 0x20200000-0x2020ffff] [ 1.710000] pci 0000:00:00.0: BAR 1: set to [mem 0x20200000-0x2020ffff] (PCI address [0x20200000-0x2020ffff] [ 1.720000] pci 0000:01:00.0: BAR 0: assigned [mem 0x20000000-0x200fffff 64bit] [ 1.720000] pci 0000:01:00.0: BAR 0: set to [mem 0x20000000-0x200fffff 64bit] (PCI address [0x20000000-0x200fffff] [ 1.730000] pci 0000:01:00.0: BAR 6: assigned [mem 0x20100000-0x2010ffff pref] [ 1.730000] pci 0000:00:00.0: PCI bridge to [bus 01-01] [ 1.740000] pci 0000:00:00.0: bridge window [io disabled] [ 1.740000] pci 0000:00:00.0: bridge window [mem 0x20000000-0x200fffff] [ 1.750000] pci 0000:00:00.0: bridge window [mem 0x20100000-0x201fffff pref] [ 1.750000] PCI: Setting latency timer of device 0000:00:00.0 to 64 [ 1.750000] BAR0 at slot 0 = 0 [ 1.760000] bus=0x0, slot = 0x0 [ 1.760000] res[0]->start = 0 [ 1.760000] res[0]->end = 0 [ 1.760000] res[1]->start = 20200000 [ 1.770000] res[1]->end = 2020ffff [ 1.770000] res[2]->start = 0 [ 1.770000] res[2]->end = 0 [ 1.770000] res[3]->start = 0 [ 1.780000] res[3]->end = 0 [ 1.780000] res[4]->start = 0 [ 1.780000] res[4]->end = 0 [ 1.780000] res[5]->start = 0 [ 1.790000] res[5]->end = 0 [ 1.790000] bus=0x1, slot = 0x0 [ 1.790000] res[0]->start = 20000000 [ 1.790000] res[0]->end = 200fffff [ 1.800000] res[1]->start = 0 [ 1.800000] res[1]->end = 0 [ 1.800000] res[2]->start = 0 [ 1.800000] res[2]->end = 0 [ 1.810000] res[3]->start = 0 [ 1.810000] res[3]->end = 0 [ 1.810000] res[4]->start = 0 [ 1.810000] res[4]->end = 0 [ 1.820000] res[5]->start = 0 [ 1.820000] res[5]->end = 0 [ 1.820000] Switching to clocksource MIPS [ 1.830000] NET: Registered protocol family 2 [ 1.830000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes) [ 1.840000] TCP established hash table entries: 4096 (order: 3, 32768 bytes) [ 1.850000] TCP bind hash table entries: 4096 (order: 2, 16384 bytes) [ 1.850000] TCP: Hash tables configured (established 4096 bind 4096) [ 1.860000] TCP reno registered [ 1.860000] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 1.870000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 1.870000] NET: Registered protocol family 1 [ 1.880000] PCI: CLS 80 bytes, default 32 [ 1.880000] RT3xxx EHCI/OHCI init. [ 1.890000] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 1.890000] JFFS2 version 2.2 (NAND) (SUMMARY) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 1.900000] msgmni has been set to 243 [ 1.910000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) [ 1.920000] io scheduler noop registered (default) [ 1.920000] RALINK_REG_PIO7140DATA b0000670 = fffe0 [ 2.030000] RALINK_REG_PIO7140DATA b0000670 = 20fffe0 [ 2.030000] Ralink gpio driver initialized [ 2.040000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 2.040000] serial8250: ttyS0 at MMIO 0x10000500 (irq = 37) is a 16550A [ 2.050000] serial8250: ttyS1 at MMIO 0x10000c00 (irq = 12) is a 16550A [ 2.060000] init reset module! [ 2.070000] brd: module loaded [ 2.070000] deice id : ef 40 18 0 0 (40180000) [ 2.070000] W25Q128BV(ef 40180000) (16384 Kbytes) [ 2.080000] mtd .name = raspi, .size = 0x01000000 (0M) .erasesize = 0x00000010 (0K) .numeraseregions = 65536 [ 2.090000] Creating 10 MTD partitions on "raspi": [ 2.090000] 0x000000000000-0x000001000000 : "ALL" [ 2.100000] 0x000000000000-0x000000030000 : "Bootloader" [ 2.110000] 0x000000030000-0x000000040000 : "Config" [ 2.110000] 0x000000040000-0x000000050000 : "Factory" [ 2.120000] 0x000000050000-0x000000cd0000 : "OS1" [ 2.120000] mtd: try split OS1 partition [ 2.130000] mtd: split_firmware [ 2.130000] mtd: firmware_partition->size 0xc80000 [ 2.130000] mtd: firmware_partition->offset 0x50000 [ 2.140000] mtd: uimage_len 1499544 [ 2.140000] mtd: rootfs_partition->size 0xb11e68 [ 2.150000] mtd: rootfs_partition->offset 0x1c0000 [ 2.150000] mtd: partition "rootfs" created automatically, ofs=1C0000, len=B11E68 [ 2.160000] 0x0000001c0000-0x000000cd1e68 : "rootfs" [ 2.170000] mtd: rootfs_len 11272192 [ 2.170000] 0x000000cd0000-0x000000ed0000 : "OS2" [ 2.180000] 0x000000ed0000-0x000000fd0000 : "overlay" [ 2.180000] 0x000000fd0000-0x000000fe0000 : "crash" [ 2.190000] 0x000000fe0000-0x000000ff0000 : "reserved" [ 2.190000] 0x000000ff0000-0x000001000000 : "Bdata" [ 2.200000] rdm_major = 253 [ 2.200000] SMACCR1 -- : 0x00006409 [ 2.210000] SMACCR0 -- : 0x807223e9 [ 2.210000] Ralink APSoC Ethernet Driver Initilization. v3.0 256 rx/tx descriptors allocated, mtu = 1500! [ 2.220000] SMACCR1 -- : 0x00006409 [ 2.220000] SMACCR0 -- : 0x807223e9 [ 2.230000] PROC INIT OK! [ 2.230000] PPP generic driver version 2.4.2 [ 2.240000] PPP MPPE Compression module registered [ 2.240000] NET: Registered protocol family 24 [ 2.240000] PPTP driver version 0.8.5 [ 2.250000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 2.380000] rt3xxx-ehci rt3xxx-ehci: Ralink EHCI Host Controller [ 2.380000] rt3xxx-ehci rt3xxx-ehci: new USB bus registered, assigned bus number 1 [ 2.420000] rt3xxx-ehci rt3xxx-ehci: irq 18, io mem 0x101c0000 [ 2.440000] rt3xxx-ehci rt3xxx-ehci: USB 0.0 started, EHCI 1.00 [ 2.440000] hub 1-0:1.0: USB hub found [ 2.450000] hub 1-0:1.0: 1 port detected [ 2.450000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 2.480000] rt3xxx-ohci rt3xxx-ohci: RT3xxx OHCI Controller [ 2.480000] rt3xxx-ohci rt3xxx-ohci: new USB bus registered, assigned bus number 2 [ 2.490000] rt3xxx-ohci rt3xxx-ohci: irq 18, io mem 0x101c1000 [ 2.560000] hub 2-0:1.0: USB hub found [ 2.560000] hub 2-0:1.0: 1 port detected [ 2.570000] usbcore: registered new interface driver cdc_acm [ 2.570000] cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters [ 2.580000] Initializing USB Mass Storage driver... [ 2.590000] usbcore: registered new interface driver usb-storage [ 2.590000] USB Mass Storage support registered. [ 2.600000] usbcore: registered new interface driver usbserial [ 2.600000] USB Serial support registered for generic [ 2.610000] usbcore: registered new interface driver usbserial_generic [ 2.620000] usbserial: USB Serial Driver core [ 2.620000] USB Serial support registered for pl2303 [ 2.630000] usbcore: registered new interface driver pl2303 [ 2.630000] pl2303: Prolific PL2303 USB to serial adaptor driver [ 2.640000] USB Serial support registered for TI USB 3410 1 port adapter [ 2.650000] USB Serial support registered for TI USB 5052 2 port adapter [ 2.650000] usbcore: registered new interface driver ti_usb_3410_5052 [ 2.660000] ti_usb_3410_5052: v0.10:TI USB 3410/5052 Serial Driver [ 2.670000] u32 classifier [ 2.670000] input device check on [ 2.670000] Actions configured [ 2.680000] Netfilter messages via NETLINK v0.30 with ipset netlink.patch. [ 2.680000] nf_conntrack version 0.5.0 (1947 buckets, 7788 max) [ 2.690000] xt_time: kernel timezone is -0000 [ 2.690000] GRE over IPv4 demultiplexor driver [ 2.700000] ip_tables: (C) 2000-2006 Netfilter Core Team, Type=Restricted Cone [ 2.710000] TCP cubic registered [ 2.710000] NET: Registered protocol family 10 [ 2.720000] NET: Registered protocol family 17 [ 2.720000] L2TP core driver, V2.0 [ 2.720000] PPPoL2TP kernel driver, V2.0 [ 2.730000] L2TP netlink interface [ 2.730000] 802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com> [ 2.740000] All bugs added by David S. Miller <davem@redhat.com> [ 2.760000] VFS: Mounted root (squashfs filesystem) readonly on device 31:5. [ 2.760000] Freeing unused kernel memory: 168k freed [ 4.490000] Raeth v3.0 (Tasklet,SkbRecycle) [ 4.490000] [ 4.490000] phy_tx_ring = 0x07f4e000, tx_ring = 0xa7f4e000 [ 4.490000] [ 4.490000] phy_rx_ring0 = 0x07fd8000, rx_ring0 = 0xa7fd8000 [ 4.490000] SMACCR1 -- : 0x00006409 [ 4.490000] SMACCR0 -- : 0x807223e9 [ 4.520000] CDMA_CSG_CFG = 81000000 [ 4.520000] GDMA1_FWD_CFG = 20710000 [ 4.870000] JFFS2 notice: (115) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found. [ 5.760000] ra2880stop()...Done [ 5.780000] Free TX/RX Ring Memory! [ 8.840000] tntfs: module license 'Commercial. For support email ntfs-support@tuxera.com.' taints kernel. [ 8.850000] Disabling lock debugging due to kernel taint [ 8.890000] Tuxera NTFS driver 3015.1.29 [Flags: R/W MODULE]. [ 9.070000] Tuxera exFAT driver version 3014.9.8 [Flags: R/W MODULE]. [ 9.240000] Tuxera FAT 12/16/32 driver version 3014.1.24 [Flags: R/W MODULE]. [ 9.380000] tun: Universal TUN/TAP device driver, 1.6 [ 9.390000] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com> [ 9.410000] Mirror/redirect action on [ 9.730000] GRE over IPv4 tunneling driver [ 10.140000] ipt: xt_cgroup_MARK installed ok. [ 10.270000] ip_set: protocol 6 [ 10.680000] sstack_init [ 12.510000] <-- RTMPAllocTxRxRingMemory, Status=0 [ 12.520000] <-- RTMPAllocAdapterBlock, Status=0 [ 14.550000] PCI: Setting latency timer of device 0000:01:00.0 to 64 [ 14.560000] <-- RTMPAllocTxRxRingMemory, Status=0 [ 14.580000] <-- RTMPAllocAdapterBlock, Status=0 [ 14.580000] pAd->CSRBaseAddress =0xc0f00000, csr_addr=0xc0f00000! [ 14.590000] <dbg> MAC_CSR0=1986146304, RtmpChipOpsHook [ 14.590000] <dbg> dev idx = 1! [ 14.600000] <dbg> get_dev_config_idx pAd->MACVersion = 76623000, pAd->ChipID = 76120044 [ 18.080000] Raeth v3.0 (Tasklet,SkbRecycle) [ 18.090000] [ 18.090000] phy_tx_ring = 0x0746c000, tx_ring = 0xa746c000 [ 18.090000] [ 18.090000] phy_rx_ring0 = 0x07f5c000, rx_ring0 = 0xa7f5c000 [ 18.090000] SMACCR1 -- : 0x00006409 [ 18.090000] SMACCR0 -- : 0x807223e9 [ 18.110000] CDMA_CSG_CFG = 81000000 [ 18.110000] GDMA1_FWD_CFG = 20710000 [ 18.160000] device eth0.1 entered promiscuous mode [ 18.160000] device eth0 entered promiscuous mode [ 18.170000] br-lan: port 1(eth0.1) entering learning state [ 18.180000] br-lan: port 1(eth0.1) entering learning state [ 18.190000] ifb0 is opened now. [ 19.740000] <dbg> MAC_CSR0=1986146304, rtmp_asic_top_init [ 19.820000] Set_Bsd_Proc 7099 Bsd 0 [ 20.180000] br-lan: port 1(eth0.1) entering forwarding state [ 23.930000] <==== rt28xx_init, Status=0 [ 29.280000] device wl0 entered promiscuous mode [ 29.290000] br-lan: port 2(wl0) entering learning state [ 29.290000] br-lan: port 2(wl0) entering learning state [ 30.010000] Set_Bsd_Proc 6771 Bsd 0 [ 31.290000] br-lan: port 2(wl0) entering forwarding state [ 32.580000] <==== rt28xx_init, Status=0 [ 32.590000] 0x1300 = 00064320 [ 35.800000] device wl1 entered promiscuous mode [ 35.800000] br-lan: port 3(wl1) entering learning state [ 35.810000] br-lan: port 3(wl1) entering learning state [ 37.810000] br-lan: port 3(wl1) entering forwarding state [ 53.000000] proxy_device_init, get br-lan ifindex=8 [ 53.000000] tproxy_device_event, br-lan UP ifindex=8 [ 53.000000] tcpproxy_init, succeed! [ 55.810000] Enabling Ralink HW NAT Module ... [ 55.820000] Ralink HW NAT Module Enabled! [ 63.080000] xqfp: forward hooks init success! [ 63.080000] xqfp:pre hooks init success! [ 63.090000] xqfp:extend init success! [ 63.090000] xqfp_mt_init init ok! [ 63.090000] xqfp: module init success!


OpenWrt bootlog

This bootlog corresponds to OpenWrt trunk r50082:

[ 0.000000] Linux version 4.4.86 (ubuntu@ubuntu) (gcc version 5.3.0 (OpenWrt GCC 5.3.0 50082) ) #6 Sun Sep 3 16:31:21 UTC 2017 [ 0.000000] Board has DDR2 [ 0.000000] Analog PMU set to hw control [ 0.000000] Digital PMU set to hw control [ 0.000000] SoC Type: MediaTek MT7620A ver:2 eco:6 [ 0.000000] bootconsole [early0] enabled [ 0.000000] CPU0 revision is: 00019650 (MIPS 24KEc) [ 0.000000] MIPS: machine is Xiaomi MiWiFi Mini [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 08000000 @ 00000000 (usable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000000000000-0x0000000007ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x0000000007ffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff] [ 0.000000] On node 0 totalpages: 32768 [ 0.000000] free_area_init_node: node 0, pgdat 80301610, node_mem_map 81000000 [ 0.000000] Normal zone: 256 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 32768 pages, LIFO batch:7 [ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes. [ 0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 [ 0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2 [ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes) [ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) [ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) [ 0.000000] Writing ErrCtl register=00077e40 [ 0.000000] Readback ErrCtl register=00077e40 [ 0.000000] Memory: 126336K/131072K available (2503K kernel code, 125K rwdata, 544K rodata, 148K init, 196K bss, 4736K reserved, 0K cma-reserved) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:256 [ 0.000000] CPU Clock: 620MHz [ 0.000000] clocksource: systick: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 583261500 ns [ 0.000000] systick: enable autosleep mode [ 0.000000] systick: running - mult: 214748, shift: 32 [ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6165356278 ns [ 0.000010] sched_clock: 32 bits at 310MHz, resolution 3ns, wraps every 6927366142ns [ 0.007921] Calibrating delay loop... 412.87 BogoMIPS (lpj=2064384) [ 0.060620] pid_max: default: 32768 minimum: 301 [ 0.065461] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.072133] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.085805] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.095811] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.102157] pinctrl core: initialized pinctrl subsystem [ 0.108165] NET: Registered protocol family 16 [ 0.115680] rt2880-pinmux pinctrl: try to register 73 pins ... [ 0.115706] pinctrl core: registered pin 0 (io0) on rt2880-pinmux [ 0.115737] pinctrl core: registered pin 1 (io1) on rt2880-pinmux [ 0.115749] pinctrl core: registered pin 2 (io2) on rt2880-pinmux [ 0.115763] pinctrl core: registered pin 3 (io3) on rt2880-pinmux [ 0.115775] pinctrl core: registered pin 4 (io4) on rt2880-pinmux [ 0.115787] pinctrl core: registered pin 5 (io5) on rt2880-pinmux [ 0.115798] pinctrl core: registered pin 6 (io6) on rt2880-pinmux [ 0.115811] pinctrl core: registered pin 7 (io7) on rt2880-pinmux [ 0.115829] pinctrl core: registered pin 8 (io8) on rt2880-pinmux [ 0.115842] pinctrl core: registered pin 9 (io9) on rt2880-pinmux [ 0.115853] pinctrl core: registered pin 10 (io10) on rt2880-pinmux [ 0.115865] pinctrl core: registered pin 11 (io11) on rt2880-pinmux [ 0.115878] pinctrl core: registered pin 12 (io12) on rt2880-pinmux [ 0.115890] pinctrl core: registered pin 13 (io13) on rt2880-pinmux [ 0.115901] pinctrl core: registered pin 14 (io14) on rt2880-pinmux [ 0.115913] pinctrl core: registered pin 15 (io15) on rt2880-pinmux [ 0.115925] pinctrl core: registered pin 16 (io16) on rt2880-pinmux [ 0.115937] pinctrl core: registered pin 17 (io17) on rt2880-pinmux [ 0.115949] pinctrl core: registered pin 18 (io18) on rt2880-pinmux [ 0.115960] pinctrl core: registered pin 19 (io19) on rt2880-pinmux [ 0.115973] pinctrl core: registered pin 20 (io20) on rt2880-pinmux [ 0.115986] pinctrl core: registered pin 21 (io21) on rt2880-pinmux [ 0.115997] pinctrl core: registered pin 22 (io22) on rt2880-pinmux [ 0.116008] pinctrl core: registered pin 23 (io23) on rt2880-pinmux [ 0.116021] pinctrl core: registered pin 24 (io24) on rt2880-pinmux [ 0.116033] pinctrl core: registered pin 25 (io25) on rt2880-pinmux [ 0.116045] pinctrl core: registered pin 26 (io26) on rt2880-pinmux [ 0.116056] pinctrl core: registered pin 27 (io27) on rt2880-pinmux [ 0.116069] pinctrl core: registered pin 28 (io28) on rt2880-pinmux [ 0.116081] pinctrl core: registered pin 29 (io29) on rt2880-pinmux [ 0.116093] pinctrl core: registered pin 30 (io30) on rt2880-pinmux [ 0.116105] pinctrl core: registered pin 31 (io31) on rt2880-pinmux [ 0.116117] pinctrl core: registered pin 32 (io32) on rt2880-pinmux [ 0.116130] pinctrl core: registered pin 33 (io33) on rt2880-pinmux [ 0.116141] pinctrl core: registered pin 34 (io34) on rt2880-pinmux [ 0.116153] pinctrl core: registered pin 35 (io35) on rt2880-pinmux [ 0.116167] pinctrl core: registered pin 36 (io36) on rt2880-pinmux [ 0.116179] pinctrl core: registered pin 37 (io37) on rt2880-pinmux [ 0.116191] pinctrl core: registered pin 38 (io38) on rt2880-pinmux [ 0.116203] pinctrl core: registered pin 39 (io39) on rt2880-pinmux [ 0.116221] pinctrl core: registered pin 40 (io40) on rt2880-pinmux [ 0.116235] pinctrl core: registered pin 41 (io41) on rt2880-pinmux [ 0.116247] pinctrl core: registered pin 42 (io42) on rt2880-pinmux [ 0.116260] pinctrl core: registered pin 43 (io43) on rt2880-pinmux [ 0.116273] pinctrl core: registered pin 44 (io44) on rt2880-pinmux [ 0.116287] pinctrl core: registered pin 45 (io45) on rt2880-pinmux [ 0.116299] pinctrl core: registered pin 46 (io46) on rt2880-pinmux [ 0.116311] pinctrl core: registered pin 47 (io47) on rt2880-pinmux [ 0.116324] pinctrl core: registered pin 48 (io48) on rt2880-pinmux [ 0.116337] pinctrl core: registered pin 49 (io49) on rt2880-pinmux [ 0.116348] pinctrl core: registered pin 50 (io50) on rt2880-pinmux [ 0.116360] pinctrl core: registered pin 51 (io51) on rt2880-pinmux [ 0.116373] pinctrl core: registered pin 52 (io52) on rt2880-pinmux [ 0.116386] pinctrl core: registered pin 53 (io53) on rt2880-pinmux [ 0.116398] pinctrl core: registered pin 54 (io54) on rt2880-pinmux [ 0.116411] pinctrl core: registered pin 55 (io55) on rt2880-pinmux [ 0.116423] pinctrl core: registered pin 56 (io56) on rt2880-pinmux [ 0.116435] pinctrl core: registered pin 57 (io57) on rt2880-pinmux [ 0.116447] pinctrl core: registered pin 58 (io58) on rt2880-pinmux [ 0.116459] pinctrl core: registered pin 59 (io59) on rt2880-pinmux [ 0.116472] pinctrl core: registered pin 60 (io60) on rt2880-pinmux [ 0.116485] pinctrl core: registered pin 61 (io61) on rt2880-pinmux [ 0.116498] pinctrl core: registered pin 62 (io62) on rt2880-pinmux [ 0.116511] pinctrl core: registered pin 63 (io63) on rt2880-pinmux [ 0.116525] pinctrl core: registered pin 64 (io64) on rt2880-pinmux [ 0.116538] pinctrl core: registered pin 65 (io65) on rt2880-pinmux [ 0.116551] pinctrl core: registered pin 66 (io66) on rt2880-pinmux [ 0.116564] pinctrl core: registered pin 67 (io67) on rt2880-pinmux [ 0.116577] pinctrl core: registered pin 68 (io68) on rt2880-pinmux [ 0.116591] pinctrl core: registered pin 69 (io69) on rt2880-pinmux [ 0.116603] pinctrl core: registered pin 70 (io70) on rt2880-pinmux [ 0.116617] pinctrl core: registered pin 71 (io71) on rt2880-pinmux [ 0.116636] pinctrl core: registered pin 72 (io72) on rt2880-pinmux [ 0.116678] pinctrl core: add 4 pinctrl maps [ 0.116711] rt2880-pinmux pinctrl: found group selector 0 for i2c [ 0.116732] rt2880-pinmux pinctrl: found group selector 6 for rgmii1 [ 0.116751] rt2880-pinmux pinctrl: found group selector 10 for rgmii2 [ 0.116773] rt2880-pinmux pinctrl: found group selector 13 for pa [ 0.116797] rt2880-pinmux pinctrl: request pin 1 (io1) for pinctrl [ 0.116817] rt2880-pinmux pinctrl: request pin 2 (io2) for pinctrl [ 0.116838] rt2880-pinmux pinctrl: request pin 24 (io24) for pinctrl [ 0.116855] rt2880-pinmux pinctrl: request pin 25 (io25) for pinctrl [ 0.116873] rt2880-pinmux pinctrl: request pin 26 (io26) for pinctrl [ 0.116889] rt2880-pinmux pinctrl: request pin 27 (io27) for pinctrl [ 0.116907] rt2880-pinmux pinctrl: request pin 28 (io28) for pinctrl [ 0.116924] rt2880-pinmux pinctrl: request pin 29 (io29) for pinctrl [ 0.116940] rt2880-pinmux pinctrl: request pin 30 (io30) for pinctrl [ 0.116957] rt2880-pinmux pinctrl: request pin 31 (io31) for pinctrl [ 0.116973] rt2880-pinmux pinctrl: request pin 32 (io32) for pinctrl [ 0.116989] rt2880-pinmux pinctrl: request pin 33 (io33) for pinctrl [ 0.117008] rt2880-pinmux pinctrl: request pin 34 (io34) for pinctrl [ 0.117026] rt2880-pinmux pinctrl: request pin 35 (io35) for pinctrl [ 0.117046] rt2880-pinmux pinctrl: request pin 60 (io60) for pinctrl [ 0.117061] rt2880-pinmux pinctrl: request pin 61 (io61) for pinctrl [ 0.117079] rt2880-pinmux pinctrl: request pin 62 (io62) for pinctrl [ 0.117098] rt2880-pinmux pinctrl: request pin 63 (io63) for pinctrl [ 0.117115] rt2880-pinmux pinctrl: request pin 64 (io64) for pinctrl [ 0.117131] rt2880-pinmux pinctrl: request pin 65 (io65) for pinctrl [ 0.117149] rt2880-pinmux pinctrl: request pin 66 (io66) for pinctrl [ 0.117166] rt2880-pinmux pinctrl: request pin 67 (io67) for pinctrl [ 0.117182] rt2880-pinmux pinctrl: request pin 68 (io68) for pinctrl [ 0.117198] rt2880-pinmux pinctrl: request pin 69 (io69) for pinctrl [ 0.117215] rt2880-pinmux pinctrl: request pin 70 (io70) for pinctrl [ 0.117231] rt2880-pinmux pinctrl: request pin 71 (io71) for pinctrl [ 0.117251] rt2880-pinmux pinctrl: request pin 20 (io20) for pinctrl [ 0.117267] rt2880-pinmux pinctrl: request pin 21 (io21) for pinctrl [ 0.117284] rt2880-pinmux pinctrl: failed to lookup the sleep state [ 0.123574] pinctrl core: add 1 pinctrl maps [ 0.123630] rt2880-pinmux pinctrl: found group selector 8 for pcie [ 0.123657] rt2880-pinmux pinctrl: request pin 36 (io36) for 10140000.pcie [ 0.376663] PCI host bridge /pcie@10140000 ranges: [ 0.381484] MEM 0x0000000020000000..0x000000002fffffff [ 0.386778] IO 0x0000000010160000..0x000000001016ffff [ 0.399349] rt2880_gpio 10000600.gpio: registering 24 gpios [ 0.405044] rt2880_gpio 10000600.gpio: registering 24 irq handlers [ 0.411459] rt2880_gpio 10000638.gpio: registering 16 gpios [ 0.417106] rt2880_gpio 10000638.gpio: registering 16 irq handlers [ 0.423503] rt2880_gpio 10000660.gpio: registering 32 gpios [ 0.429146] rt2880_gpio 10000660.gpio: registering 32 irq handlers [ 0.436186] PCI host bridge to bus 0000:00 [ 0.440339] pci_bus 0000:00: root bus resource [mem 0x20000000-0x2fffffff] [ 0.447279] pci_bus 0000:00: root bus resource [io 0xffffffff] [ 0.453311] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0] [ 0.460209] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff] [ 0.468313] pci 0000:00:00.0: [1814:0801] type 01 class 0x060400 [ 0.468359] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x7fffffff] [ 0.468381] pci 0000:00:00.0: reg 0x14: [mem 0x20200000-0x2020ffff] [ 0.468452] pci 0000:00:00.0: supports D1 [ 0.468470] pci 0000:00:00.0: PME# supported from D0 D1 D3hot [ 0.468898] pci 0000:01:00.0: [14c3:7662] type 00 class 0x028000 [ 0.468970] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x000fffff 64bit] [ 0.469031] pci 0000:01:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref] [ 0.469120] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold [ 0.469377] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01 [ 0.469406] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 01 [ 0.469460] pci 0000:00:00.0: BAR 0: no space for [mem size 0x80000000] [ 0.476124] pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x80000000] [ 0.483256] pci 0000:00:00.0: BAR 8: assigned [mem 0x20000000-0x200fffff] [ 0.490118] pci 0000:00:00.0: BAR 9: assigned [mem 0x20100000-0x201fffff pref] [ 0.497478] pci 0000:00:00.0: BAR 1: assigned [mem 0x20200000-0x2020ffff] [ 0.504380] pci 0000:01:00.0: BAR 0: assigned [mem 0x20000000-0x200fffff 64bit] [ 0.511841] pci 0000:01:00.0: BAR 6: assigned [mem 0x20100000-0x2010ffff pref] [ 0.519159] pci 0000:00:00.0: PCI bridge to [bus 01] [ 0.524221] pci 0000:00:00.0: bridge window [mem 0x20000000-0x200fffff] [ 0.531115] pci 0000:00:00.0: bridge window [mem 0x20100000-0x201fffff pref] [ 0.538488] pci 0000:00:00.0: card - bus=0x0, slot = 0x0 irq=0 [ 0.544400] pci 0000:01:00.0: card - bus=0x1, slot = 0x0 irq=4 [ 0.551296] clocksource: Switched to clocksource systick [ 0.558079] NET: Registered protocol family 2 [ 0.563366] TCP established hash table entries: 1024 (order: 0, 4096 bytes) [ 0.570407] TCP bind hash table entries: 1024 (order: 0, 4096 bytes) [ 0.576924] TCP: Hash tables configured (established 1024 bind 1024) [ 0.583430] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.589320] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.596017] NET: Registered protocol family 1 [ 0.600459] PCI: CLS 80 bytes, default 32 [ 0.604645] rt-timer 10000100.timer: maximum frequency is 1220Hz [ 0.611422] alarmtimer alarmtimer: no of_node; not parsing pinctrl DT [ 0.627197] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.633135] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.645655] io scheduler noop registered [ 0.649585] io scheduler deadline registered (default) [ 0.655093] ralink-usb-phy usbphy: invalid resource [ 0.660622] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 0.667585] serial8250 serial8250: no of_node; not parsing pinctrl DT [ 0.667953] pinctrl core: add 1 pinctrl maps [ 0.667993] rt2880-pinmux pinctrl: found group selector 3 for uartlite [ 0.668018] rt2880-pinmux pinctrl: request pin 15 (io15) for 10000c00.uartlite [ 0.668039] rt2880-pinmux pinctrl: request pin 16 (io16) for 10000c00.uartlite [ 0.668287] console [ttyS0] disabled [ 0.671941] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20, base_baud = 2500000) is a Palmchip BK-3103 [ 0.682002] console [ttyS0] enabled [ 0.689047] bootconsole [early0] disabled [ 0.698574] pinctrl core: add 1 pinctrl maps [ 0.698622] rt2880-pinmux pinctrl: found group selector 2 for spi [ 0.698649] rt2880-pinmux pinctrl: request pin 3 (io3) for 10000b00.spi [ 0.698669] rt2880-pinmux pinctrl: request pin 4 (io4) for 10000b00.spi [ 0.698687] rt2880-pinmux pinctrl: request pin 5 (io5) for 10000b00.spi [ 0.698706] rt2880-pinmux pinctrl: request pin 6 (io6) for 10000b00.spi [ 0.701686] spi spi0.0: force spi mode3 [ 0.706129] m25p80 spi0.0: w25q128 (16384 Kbytes) [ 0.710979] 7 ofpart partitions found on MTD device spi0.0 [ 0.716634] Creating 7 MTD partitions on "spi0.0": [ 0.721544] 0x000000000000-0x000000030000 : "u-boot" [ 0.728282] 0x000000030000-0x000000040000 : "u-boot-env" [ 0.735476] 0x000000040000-0x000000050000 : "factory" [ 0.742383] 0x000000050000-0x000000fd0000 : "firmware" [ 0.826421] 2 uimage-fw partitions found on MTD device firmware [ 0.832515] 0x000000050000-0x00000015c32d : "kernel" [ 0.839092] 0x00000015c32d-0x000000fd0000 : "rootfs" [ 0.845885] mtd: device 5 (rootfs) set to be root filesystem [ 0.851866] 1 squashfs-split partitions found on MTD device rootfs [ 0.858181] 0x000000670000-0x000000fd0000 : "rootfs_data" [ 0.865400] 0x000000fd0000-0x000000fe0000 : "crash" [ 0.872159] 0x000000fe0000-0x000000ff0000 : "reserved" [ 0.879084] 0x000000ff0000-0x000001000000 : "Bdata" [ 0.886771] pinctrl core: add 1 pinctrl maps [ 0.886828] rt2880-pinmux pinctrl: found group selector 12 for ephy [ 0.886852] rt2880-pinmux pinctrl: request pin 40 (io40) for 10100000.ethernet [ 0.886873] rt2880-pinmux pinctrl: request pin 41 (io41) for 10100000.ethernet [ 0.886893] rt2880-pinmux pinctrl: request pin 42 (io42) for 10100000.ethernet [ 0.886912] rt2880-pinmux pinctrl: request pin 43 (io43) for 10100000.ethernet [ 0.886931] rt2880-pinmux pinctrl: request pin 44 (io44) for 10100000.ethernet [ 0.888957] gsw: setting port4 to ephy mode [ 0.893491] mtk_soc_eth 10100000.ethernet: loaded mt7620 driver [ 0.900273] mtk_soc_eth 10100000.ethernet eth0: mediatek frame engine at 0xb0100000, irq 5 [ 0.909281] rt2880_wdt 10000120.watchdog: Initialized [ 0.915162] NET: Registered protocol family 17 [ 0.919794] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this. [ 0.932717] 8021q: 802.1Q VLAN Support v1.8 [ 0.952629] VFS: Mounted root (squashfs filesystem) readonly on device 31:5. [ 0.960590] Freeing unused kernel memory: 148K [ 3.349661] init: Console is alive [ 3.353426] init: - watchdog - [ 5.566357] usbcore: registered new interface driver usbfs [ 5.572127] usbcore: registered new interface driver hub [ 5.577642] usbcore: registered new device driver usb [ 5.585403] rt2880-pinmux pinctrl: request pin 30 (io30) for pio:30 [ 5.588207] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 5.596369] ehci-platform: EHCI generic platform driver [ 5.612098] phy phy-usbphy.0: remote usb device wakeup disabled [ 5.618149] phy phy-usbphy.0: UTMI 16bit 30MHz [ 5.622724] ehci-platform 101c0000.ehci: EHCI Host Controller [ 5.628615] ehci-platform 101c0000.ehci: new USB bus registered, assigned bus number 1 [ 5.636822] ehci-platform 101c0000.ehci: irq 26, io mem 0x101c0000 [ 5.649508] ehci-platform 101c0000.ehci: USB 2.0 started, EHCI 1.00 [ 5.656958] hub 1-0:1.0: no of_node; not parsing pinctrl DT [ 5.657010] hub 1-0:1.0: USB hub found [ 5.661233] hub 1-0:1.0: 1 port detected [ 5.667119] rt2880-pinmux pinctrl: request pin 24 (io24) for pio:24 [ 5.667302] rt2880-pinmux pinctrl: request pin 26 (io26) for pio:26 [ 5.667449] rt2880-pinmux pinctrl: request pin 29 (io29) for pio:29 [ 5.671692] init: - preinit - [ 6.454111] usb 1-1: new high-speed USB device number 2 using ehci-platform [ 6.904340] usb 1-1: no of_node; not parsing pinctrl DT [ 7.004891] random: procd: uninitialized urandom read (4 bytes read, 11 bits of entropy available) [ 7.280435] 8021q: adding VLAN 0 to HW filter on device eth0 [ 8.775157] jffs2: notice: (343) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found. [ 8.793462] mount_root: switching to jffs2 overlay [ 8.839646] procd: - early - [ 8.842690] procd: - watchdog - [ 9.344882] procd: - ubus - [ 9.556140] random: ubusd: uninitialized urandom read (4 bytes read, 19 bits of entropy available) [ 9.570964] random: ubusd: uninitialized urandom read (4 bytes read, 19 bits of entropy available) [ 9.580576] random: ubusd: uninitialized urandom read (4 bytes read, 19 bits of entropy available) [ 9.589860] random: ubusd: uninitialized urandom read (4 bytes read, 19 bits of entropy available) [ 9.599477] random: ubusd: uninitialized urandom read (4 bytes read, 19 bits of entropy available) [ 9.609252] random: ubusd: uninitialized urandom read (4 bytes read, 20 bits of entropy available) [ 9.619152] random: ubusd: uninitialized urandom read (4 bytes read, 20 bits of entropy available) [ 9.628602] random: ubusd: uninitialized urandom read (4 bytes read, 20 bits of entropy available) [ 9.638230] procd: - init - [ 10.545428] l2tp_core: L2TP core driver, V2.0 [ 10.551634] l2tp_netlink: L2TP netlink interface [ 10.558253] Netfilter messages via NETLINK v0.30. [ 10.565838] ip_set: protocol 6 [ 10.604211] Loading modules backported from Linux version wt-2017-01-31-0-ge882dff19e7f [ 10.612451] Backport generated by backports.git backports-20160324-13-g24da7d3c [ 10.664057] mt76x2e 0000:01:00.0: ASIC revision: 76120044 [ 10.676561] mt76x2e 0000:01:00.0: ROM patch already applied [ 10.684058] mt76x2e 0000:01:00.0: Firmware Version: 0.0.00 [ 10.689720] mt76x2e 0000:01:00.0: Build: 1 [ 10.693904] mt76x2e 0000:01:00.0: Build Time: 201507311614____ [ 10.707274] mt76x2e 0000:01:00.0: Firmware running! [ 10.712995] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' [ 10.840359] ip_tables: (C) 2000-2006 Netfilter Core Team [ 10.858751] nf_conntrack version 0.5.0 (1976 buckets, 7904 max) [ 10.941057] xt_time: kernel timezone is -0000 [ 11.025372] ath9k_htc 1-1:1.0: no of_node; not parsing pinctrl DT [ 11.025460] usb 1-1: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested [ 11.033025] usbcore: registered new interface driver ath9k_htc [ 11.113607] PPP generic driver version 2.4.2 [ 11.120971] NET: Registered protocol family 24 [ 11.143853] rt2800_wmac 10180000.wmac: loaded eeprom from mtd device "factory" [ 11.151313] ieee80211 phy1: rt2x00_set_rt: Info - RT chipset 6352, rev 0500 detected [ 11.159242] ieee80211 phy1: rt2x00_set_rf: Info - RF chipset 7620 detected [ 11.166779] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht' [ 11.240908] usbcore: registered new interface driver rt2800usb [ 11.251924] l2tp_ppp: PPPoL2TP kernel driver, V2.0 [ 11.452125] random: ubusd: uninitialized urandom read (4 bytes read, 23 bits of entropy available) [ 11.815597] usb 1-1: ath9k_htc: Transferred FW: ath9k_htc/htc_9271-1.4.0.fw, size: 51008 [ 12.029162] ath9k_htc 1-1:1.0: ath9k_htc: HTC initialized with 33 credits [ 12.169445] ath9k_htc 1-1:1.0: ath9k_htc: FW Version: 1.4 [ 12.175100] ath9k_htc 1-1:1.0: FW RMW support: On [ 12.179935] ath: EEPROM regdomain: 0x833a [ 12.179945] ath: EEPROM indicates we should expect a country code [ 12.179967] ath: doing EEPROM country->regdmn map search [ 12.179980] ath: country maps to regdmn code: 0x37 [ 12.179993] ath: Country alpha2 being used: GB [ 12.180002] ath: Regpair used: 0x37 [ 12.195028] ieee80211 phy2: Atheros AR9271 Rev:1 [ 16.785875] 8021q: adding VLAN 0 to HW filter on device eth0 [ 16.807239] device eth0 entered promiscuous mode [ 16.817068] device eth0.1 entered promiscuous mode [ 16.826932] br-lan: port 1(eth0.1) entered forwarding state [ 16.832750] br-lan: port 1(eth0.1) entered forwarding state [ 18.828911] br-lan: port 1(eth0.1) entered forwarding state [ 22.118066] ieee80211 phy1: rt2800_rf_self_txdc_cal: Info - RF Tx self calibration start [ 22.149245] ieee80211 phy1: rt2800_rf_self_txdc_cal: Info - RF Tx self calibration end [ 23.226323] random: nonblocking pool is initialized [ 26.764673] ieee80211 phy1: rt2800_rxiq_calibration: Info - RXIQ si=325, sq=318, riq=10, bbpval 325, vga_idx 0 [ 26.777229] ieee80211 phy1: rt2800_rxiq_calibration: Info - RXIQ si=4613, sq=4465, riq=80, bbpval 4613, vga_idx 6 [ 26.790202] ieee80211 phy1: rt2800_rxiq_calibration: Info - RXIQ si=7117, sq=6893, riq=133, bbpval 7117, vga_idx 7 [ 26.803299] ieee80211 phy1: rt2800_rxiq_calibration: Info - RXIQ si=10896, sq=10523, riq=175, bbpval 10896, vga_idx 8 [ 26.814167] ieee80211 phy1: rt2800_rxiq_calibration: Info - Sigma_i=1043, Sigma_q=1025, R_iq=1750 [ 26.823242] ieee80211 phy1: rt2800_rxiq_calibration: Info - RXIQ Sigma_i=1043, Sigma_q=1025, R_iq=1750 [ 26.832769] ieee80211 phy1: rt2800_rxiq_calibration: Info - RXIQ G_imb=-2, Ph_rx=3 [ 26.843990] ieee80211 phy1: rt2800_rxiq_calibration: Info - RXIQ si=166, sq=167, riq=1, bbpval 166, vga_idx 0 [ 26.856658] ieee80211 phy1: rt2800_rxiq_calibration: Info - RXIQ si=3724, sq=3792, riq=46, bbpval 3724, vga_idx 7 [ 26.869652] ieee80211 phy1: rt2800_rxiq_calibration: Info - RXIQ si=5704, sq=5795, riq=31, bbpval 5704, vga_idx 8 [ 26.882652] ieee80211 phy1: rt2800_rxiq_calibration: Info - RXIQ si=9020, sq=9151, riq=77, bbpval 9020, vga_idx 9 [ 26.895660] ieee80211 phy1: rt2800_rxiq_calibration: Info - RXIQ si=13818, sq=14011, riq=160, bbpval 13818, vga_idx 10 [ 26.906628] ieee80211 phy1: rt2800_rxiq_calibration: Info - Sigma_i=1175, Sigma_q=1183, R_iq=1600 [ 26.915686] ieee80211 phy1: rt2800_rxiq_calibration: Info - RXIQ Sigma_i=1175, Sigma_q=1183, R_iq=1600 [ 26.925201] ieee80211 phy1: rt2800_rxiq_calibration: Info - RXIQ G_imb=0, Ph_rx=2 [ 27.072826] device wlan0 entered promiscuous mode [ 27.081764] device wlan1 entered promiscuous mode [ 29.195661] br-lan: port 2(wlan0) entered forwarding state [ 29.201373] br-lan: port 2(wlan0) entered forwarding state [ 29.207181] br-lan: port 3(wlan1) entered forwarding state [ 29.212865] br-lan: port 3(wlan1) entered forwarding state [ 30.080468] wlan2: authenticate with e8:94:f6:1f:25:c0 [ 30.155052] br-lan: port 2(wlan0) entered forwarding state [ 30.163200] br-lan: port 3(wlan1) entered forwarding state [ 30.189602] wlan2: send auth to e8:94:f6:1f:25:c0 (try 1/3) [ 30.198096] wlan2: authenticated [ 30.205153] wlan2: associate with e8:94:f6:1f:25:c0 (try 1/3) [ 30.213444] wlan2: RX AssocResp from e8:94:f6:1f:25:c0 (capab=0x431 status=0 aid=1) [ 30.224788] wlan2: associated


Led colors

The Xiaomi MiWifi Mini has 3 LEDs. Different colors are configured by using different GPIO pins, as defined in http://git.openwrt.org/?p=openwrt.git;a=blob_plain;f=target/linux/ramips/dts/MIWIFI-MINI.dts;hb=HEAD

gpio-leds {
                compatible = "gpio-leds";

                purple {
                        label = "miwifi-mini:purple:status";
                        gpios = <&gpio1 0 1>;
                };

                yellow {
                        label = "miwifi-mini:yellow:status";
                        gpios = <&gpio1 2 1>;
                };

                red {
                        label = "miwifi-mini:red:status";
                        gpios = <&gpio1 5 1>;
                };
        };

The above is an edited version of the file from trunk ( per 12/16/2015 ); the combination marked as the color "blue" is really more of a purple color. The led can produce a nice bright blue color ( as demonstrated by the stock firmware ), however the right combination of pins is yet to be found.

Tags

toh/xiaomi/mini.txt · Last modified: 2017/09/03 23:41 by wifly