MikroTik RB750Gr3 (non-native support, obsoleted with OpenWrt-19.07)
Native support
Attention! You can not and will not be able to upgrade to 19.07.0+ this non-native support version.
Non-native support was only available in OpenWRT 18.06 release!
On January 5th, 2019 a patchset has been accepted to support the native (RouterBOOT) bootloader on this device: installation doesn't require replacing the bootloader (as described below) and is expected instead to follow the common procedure for MikroTik devices. Accepted and merged patches can be found here.
Native support support is described here: rb750gr3
In case you have questions you are welcome to participate in forum.openwrt.org.
Supported Versions
Hardware Highlights
Installation
how to boot openwrt kernel using dhcp pxe
NOTE
The factory bootloader (RouterBOOT) and firmware (RouterOS) do not provide any console output, making it difficult to develop an OpenWrt image that works with factory firmware installer (NetInstall) so the boot loader needs to be replaced with U-Boot. The quickest way to install OpenWrt is to flash a full flash image with U-Boot to the SPI flash chip. Alternatively, a special version of LEDE can be booted on the device in RAM using TFTP, and the boot loader can be flashed from there. A compatible pre-compiled version of U-Boot can be found here
Downloads
Version | Release date | firmware link | Notes |
18.06.5 | 11-Nov-2019 | https://downloads.openwrt.org/releases/18.06.5/targets/ramips/mt7621/openwrt-18.06.5-ramips-mt7621-rb750gr3-initramfs-kernel.bin | dhcp pxe boot kernel |
18.06.5 | 11-Nov-2019 | https://downloads.openwrt.org/releases/18.06.5/targets/ramips/mt7621/openwrt-18.06.5-ramips-mt7621-rb750gr3-squashfs-sysupgrade.bin | sysupgrade firmware |
Do not use master/trunk images, they won't boot.
Flash u-boot
Replacing Boot Loader using SPI Programmer and loading OpenWrt via tftp
IMPORTANT THE PROCEDURE DESCRIBED HERE CANNOT BE REVERTED!
- U-Boot to replace RouterBOOT (initial flash requires SPI programmer or netbooting specially prepare LEDE image)
- Power OFF the router
- Connect SPI programmer to the Winbond W25Q128 SPI flash chip
- Power up the SPI chip directly through the 3.3V VCC pin
- Flash uboot.bin with your SPI programmer
- Disconnect SPI programmer
- Build LEDE with both initramfs & squashfs image
- Connect to TTL serial console
- Start TFTP server on your computer
- Power up router and use U-Boot to load image over TFTP and boot
- Load the initramfs image and boot router
- Connect to OpenWrt over SSH and copy the squashfs image
- sysupgrade and enjoy your OpenWrt'd RB750Gr3
Replacing bootloader and flashing OpenWrt/LEDE in one go using an SPI flasher
Necessary resources
- U-Boot (build it yourself or use the pre-built binary MikroTik-RB750Gr3.bin): https://github.com/jwangac/u-boot/tree/master/MikroTik-RB750Gr3
- Build or download the latest stable squashfs for OpenWrt or LEDE (LEDE: https://downloads.lede-project.org/releases/17.01.2/targets/ramips/mt7621/lede-17.01.2-ramips-mt7621-rb750gr3-squashfs-sysupgrade.bin)
- You need a SPI flasher and knowledge of how to connect it. Below, flashrom is used together with a bus pirate. You can also use an arduino or a Raspberry Pi.
Constructing the image
It's possible to immediately flash both U-Boot and OpenWrt to the router at the same time.
The final image file will have the following layout:
Type | Description | Size |
---|---|---|
u-boot.bin | U-boot bootloader | 192 KiB |
u-boot-env.bin | Environment variables for U-boot. Empty, filled with 0xFF bytes | 64 KiB |
factory.bin | Empty, filled with 0xFF bytes, but must contain MAC address | 64 KiB |
OpenWrt/LEDE squashfs | Correct squashfs .bin file for the RB750gr3 | Variable (Depends on current build) |
- The u-boot.bin file is simply the u-boot binary file you built (or the pre-built one from the github repo above).
- The u-boot-env.bin file is an empty file filled with all binary ones (0xF in hex).
Construct the u-boot-env.bin file with the command:
head -c 64KiB /dev/zero | tr "\000" "\377" > u-boot-env.bin
The factory.bin file can be constructed the same way, but you must insert the mac address for your device at the address 0xe000:
head -c 64KiB /dev/zero | tr "\000" "\377" > factory.bin
To insert your mac address you can use a hexeditor like hexcurse. When using hexcurse, Ctrl+H will show the help screen, Ctrl+G will let you GOTO the address (0x)e000. Insert your mac address (without the semi-colons) and then use Ctrl+S to save and Ctrl+Q to quit.
Use hexdump to verify that your factory.bin file is correct. Before inserting the mac address the output from hexdump should look like this:
$ hexdump factory.bin 0000000 ffff ffff ffff ffff ffff ffff ffff ffff * 0010000
After inserting the mac address it should look like this (With an example mac address of AA:BB:CC:DD:EE:FF):
$ hexdump factory.bin 0000000 ffff ffff ffff ffff ffff ffff ffff ffff * 000e000 aabb ccdd eeff ffff ffff ffff ffff ffff 000e010 ffff ffff ffff ffff ffff ffff ffff ffff * 0010000
Now you can concatenate the u-boot.bin, u-boot-env.bin, factory.bin and squashfs files:
cat u-boot.bin u-boot-env.bin factory.bin lede-17.01.2-ramips-mt7621-rb750gr3-squashfs-sysupgrade.bin > final.bin
Flashing the image to the chip
Warning Make sure to make a backup of the flash chips contents before flashing the image you constructed! This way, if something goes wrong, you can try flashing the stock image again.
There is an unoccupied pin header on the PCB of the 750Gr3 which can be used to write the flash without having to de-solder it from the board. The pinout of this header is:
Header Pin | Purpose |
---|---|
1 | CLK |
2,10 | GND |
3 | DO |
4 | VCC |
5 | CS |
6,7 | Not Connected |
8 | Program ( see note below ) |
9 | DI |
When programming the flash chip, pin 8 should be tied to GND. This freezes operation of the SoC so that it doesn't interfere with the programming process. You should also NOT connect VCC to the programmer, instead power the 750gr3 using its normal power supply. This removes the possibility of overloading the USB/Programmer supply.
Although the original author of this section used a Bus Pirate, you can obtain CH341A type USB EEPROM programmer for very little money. There are several advantages to this, one of which being that the programmer has a 16 pin EEPROM socket on board, so you can simply wire the header of the 750gr3 to a DIL socket and plug it in. If you do this, you should wire the pins as follows:
750Gr3 Header Pin | DIL pin |
---|---|
1 | 10 |
2 | 1 |
3 | 6 |
5 | 5 |
8 | 8 |
9 | 9 |
All other pins should remain disconnected. To be safe, you should first plug the DIL into the programmer - this connects pin 8 of the header to GND and prevents the 750 booting up. Then, power on the 750. Then plug the programmer into the USB. It probably doesn't matter, but this order prevents any signals being applied to the flash chip before the chip itself is powered.
The exact procedure for flashing the image to the W25Q128FV flash chip depends on your flasher. In this example, I used a bus pirate with flashrom. The connections and commands follow this guide: https://www.flashrom.org/Bus_Pirate. Using the bus pirate, reading and writing to the chip can take a very long time!
To make a backup using flashrom and the bus pirate, run the following command multiple times, making sure that each time you get the same image (to be sure you can trust the flasher and chip).
flashrom -p buspirate_spi:dev=/dev/ttyUSB0 -r stock_rb750gr3.bin
Finally, to write your constructed image:
flashrom -p buspirate_spi:dev=/dev/ttyUSB0 -w final.bin
Note If flashrom is taking a long time and you want to make sure it's still working, use the -VVV argument to enable verbose output.
You should now be able to boot the device and connect to it via SSH like normal after installing OpenWrt/LEDE.
Troubleshooting Make sure the chip is recognized/probed correctly by flashrom. Check all the connections, use a SOIC8 test clamp to connect to the chip (you can find one on ebay or amazon).
Replacing U-Boot Using LEDE
For this, you need to compile a slightly different initramfs version of LEDE, so that it's possible to boot it over the network using the standard MikroTik boot loader. Using this method, it's possible to get LEDE installed without any special hardware ( i.e. no SPI programmer and no access to the console ) however be warned that without access to the console, if you make a mistake or anything goes wrong when you try to write the flash, you'll end up with a bricked device... so be warned!
- Clone the LEDE repository and download/install the feeds:
- git clone http://git.lede-project.org/source.git
- cd source
- ./scripts/feeds update -a
- ./scripts/feeds install -a
- Download this kernel patch and place it in target/linux/ramips/patches-4.9/
- make menuconfig
- Select MediaTek Ralink MIPS as target system
- Select MT7621 based boards as Subtarget
- Select MikroTik RB750Gr3 as Target Profile
- Save the config and exit
- make kernel_menuconfig (this will take a while the first time.)
- Under Machine Selection, select MikroTik RB750-Gr3 (RouterBoot) in Devicetree Selection
- Save the config and exit
- make
- You should see a file called vmlinux-initramfs.elf in build_dir/target-mipsel_24kc_musl/linux-ramips_mt7621/ - this is the file you need to netboot. Put it on your TFTP server box and set the DHCP boot file option to point to it.
- Connect your 750Gr3 Ethernet port 1 to the DHCP/TFTP server. Press and hold the reset button whilst powering it on. Keep pressing the reset button until the USR light goes out (it will flash a few times first, don't let go until it goes off completely.)
- After a while, you should here a beep. Leave it 20-30 seconds more, then connect a computer to Ethernet 2 of the RB750Gr3. It should obtain an IP address, and you should be able to SSH to 192.168.1.1 (no password.)
If all worked correctly, you should now have an SSH connection to a LEDE install running in RAM, with read/write access to firmware partitions on the flash. You can now transfer the boot loader image (uboot.bin), u-boot environment (u-boot-env.bin), factory image (factory.bin) and the squashfs LEDE image using scp.
Preparing required flash images files:
See this thread for information about the four files you'll need:
- An image for the u-boot (u-boot.bin) partition is available on github (jwangac)
- The file for u-boot-env (u-boot-env.bin) partition should be written with all 0xFF bytes (see above mentioned thread for details)
- The factory (factory.bin) partition should also be written with 0xFF bytes, but note that U-Boot expects the MAC address to be written to offset 0xE000 in that partition. You need to enter the MAC address listed on the bottom tag of your RB750Gr3 to offset 0xE000 using a hex editor - do not attempt the flash without this!
- The firmware partition needs to be written with the squashfs LEDE image (e.g. lede-*-ramips-mt7621-rb750gr3-squashfs-sysupgrade.bin)
You should write the four images to their appropriate mtd partitions without rebooting - the device won't boot if only one of them is written. They can be written using the mtd command, though again do not attempt this if you don't know how!
Failsafe mode
While booting (slow blink of user LED), both reset and mode buttons will enter OpenWrt failsafe mode. → failsafe_and_factory_reset
Specific configuration
Network interfaces
The default network configuration is:
Interface Name | Description | Default configuration |
---|---|---|
br-lan | LAN | EXAMPLE 192.168.1.1/24 |
vlan1 (eth0.1) | LAN ports (Ether2 to Ether4) | br-lan |
vlan2 (eth0.2) | WAN port (Ether1) | Dual-stack DHCP Client |
Buttons
→ hardware.button on howto use and configure the hardware button(s). Here, we merely name the buttons, so we can use them in the above Howto.
The MikroTik RB750Gr3 has the following buttons:
BUTTON | Event |
---|---|
Reset | reset |
Mode | wps |
Hardware
Info
Architecture | MIPS |
---|---|
Vendor | MediaTek |
Bootloader | U-Boot (flashed over RouterBOOT) |
System-On-Chip | MediaTek MT7621AT (MIPS 1004Kc) |
CPU/Speed | 880MHz |
Flash-Chip | Winbond 25Q128FVSG |
Flash size | 16 MiB |
RAM | 256 MiB DDR3 |
Ethernet | 10/100/1000 Mbit/s w/ vlan support |
USB | 1x 2.0 |
Serial | Yes |
JTAG | SPI header only |
Flash Layout
Layer0 | m25p80 spi32766.0: w25q128 (16384 KiB) | |||||
---|---|---|---|---|---|---|
Layer1 | mtd0 u-boot 0x000000000000-0x000000030000 192 KiB | mtd1 u-boot-env 0x000000030000-0x000000040000 64 KiB | mtd2 factory 0x000000040000-0x000000050000 64 KiB | mtd3 firmware 0x000000040000-0x000000050000 16064 KiB |
||
Layer2 | mtd4 kernel (uimage-fw) 0x000000050000-0x0000001c0959 1474,3 KiB | mtd5 rootfs (uimage-fw) 0x0000001c0959-0x000001000000 14589,6 KiB |
||||
Layer3 | mtd6 rootfs_data (squashfs-split) 0x000000320000-0x000001000000 13184 KiB |
Photos
Opening the case
Case is held together by plastic clips on the bottom of case. To open, using screwdriver push clips in slots outwards, this will release bottom panel.
Serial
→ port.serial general information about the serial port, serial port cable, etc.
Notice: 2018/09/15: I tried connecting serial to the pinouts as pictured, but they are labelled incorrectly. In this case, connect TX to TX and RX to RX, instead of TX to RX as it is normally
Serial connection parameters for MikroTik RB750Gr3 | 57600, 8N1 |
---|
JTAG
→ port.jtag general information about the JTAG port, JTAG cable, etc.
How to connect to the JTAG Port of this specific device:
Insert photo of PCB with markings for JTAG port
Bootlogs
OEM bootlog
OpenWrt bootlog
[ 0.000000] Linux version 4.4.25 (me@example.com) (gcc version 5.4.0 (LEDE GCC 5.4.0 r1935) ) #0 SMP Wed Oct 19 00:26:03 2016 [ 0.000000] SoC Type: MediaTek MT7621 ver:1 eco:3 [ 0.000000] bootconsole [early0] enabled [ 0.000000] CPU0 revision is: 0001992f (MIPS 1004Kc) [ 0.000000] MIPS: machine is MikroTik RB750Gr3 [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 10000000 @ 00000000 (usable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000000000000-0x000000000fffffff] [ 0.000000] HighMem empty [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x000000000fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000000fffffff] [ 0.000000] On node 0 totalpages: 65536 [ 0.000000] free_area_init_node: node 0, pgdat 80455000, node_mem_map 81000000 [ 0.000000] Normal zone: 512 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 65536 pages, LIFO batch:15 [ 0.000000] VPE topology {2,2} total 4 [ 0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes. [ 0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes [ 0.000000] MIPS secondary cache 256kB, 8-way, linesize 32 bytes. [ 0.000000] PERCPU: Embedded 10 pages/cpu @8120c000 s8416 r8192 d24352 u40960 [ 0.000000] pcpu-alloc: s8416 r8192 d24352 u40960 alloc=10*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024 [ 0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2 [ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes) [ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) [ 0.000000] Writing ErrCtl register=0005a4c8 [ 0.000000] Readback ErrCtl register=0005a4c8 [ 0.000000] Memory: 254656K/262144K available (3543K kernel code, 160K rwdata, 820K rodata, 200K init, 247K bss, 7488K reserved, 0K cma-reserved, 0K highmem) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] Hierarchical RCU implementation. [ 0.000000] NR_IRQS:256 [ 0.000000] clocksource: GIC: mask: 0xffffffffffffffff max_cycles: 0xcaf478abb4, max_idle_ns: 440795247997 ns [ 0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836475000000ns [ 0.010000] Calibrating delay loop... 586.13 BogoMIPS (lpj=2930688) [ 0.070000] pid_max: default: 32768 minimum: 301 [ 0.070000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.080000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.090000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes. [ 0.090000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes [ 0.090000] MIPS secondary cache 256kB, 8-way, linesize 32 bytes. [ 0.090000] CPU1 revision is: 0001992f (MIPS 1004Kc) [ 0.190000] Synchronize counters for CPU 1: done. [ 0.200000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes. [ 0.200000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes [ 0.200000] MIPS secondary cache 256kB, 8-way, linesize 32 bytes. [ 0.200000] CPU2 revision is: 0001992f (MIPS 1004Kc) [ 0.300000] Synchronize counters for CPU 2: done. [ 0.310000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes. [ 0.310000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes [ 0.310000] MIPS secondary cache 256kB, 8-way, linesize 32 bytes. [ 0.310000] CPU3 revision is: 0001992f (MIPS 1004Kc) [ 0.410000] Synchronize counters for CPU 3: done. [ 0.410000] Brought up 4 CPUs [ 0.420000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.430000] pinctrl core: initialized pinctrl subsystem [ 0.440000] NET: Registered protocol family 16 [ 0.450000] rt2880-pinmux pinctrl: try to register 61 pins ... [ 0.450000] pinctrl core: registered pin 0 (io0) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 1 (io1) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 2 (io2) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 3 (io3) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 4 (io4) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 5 (io5) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 6 (io6) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 7 (io7) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 8 (io8) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 9 (io9) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 10 (io10) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 11 (io11) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 12 (io12) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 13 (io13) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 14 (io14) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 15 (io15) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 16 (io16) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 17 (io17) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 18 (io18) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 19 (io19) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 20 (io20) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 21 (io21) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 22 (io22) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 23 (io23) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 24 (io24) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 25 (io25) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 26 (io26) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 27 (io27) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 28 (io28) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 29 (io29) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 30 (io30) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 31 (io31) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 32 (io32) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 33 (io33) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 34 (io34) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 35 (io35) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 36 (io36) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 37 (io37) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 38 (io38) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 39 (io39) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 40 (io40) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 41 (io41) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 42 (io42) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 43 (io43) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 44 (io44) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 45 (io45) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 46 (io46) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 47 (io47) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 48 (io48) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 49 (io49) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 50 (io50) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 51 (io51) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 52 (io52) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 53 (io53) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 54 (io54) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 55 (io55) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 56 (io56) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 57 (io57) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 58 (io58) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 59 (io59) on rt2880-pinmux [ 0.450000] pinctrl core: registered pin 60 (io60) on rt2880-pinmux [ 0.450000] pinctrl core: add 3 pinctrl maps [ 0.450000] rt2880-pinmux pinctrl: found group selector 1 for i2c [ 0.450000] rt2880-pinmux pinctrl: found group selector 8 for rgmii2 [ 0.450000] rt2880-pinmux pinctrl: found group selector 10 for sdhci [ 0.450000] rt2880-pinmux pinctrl: request pin 3 (io3) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 4 (io4) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 22 (io22) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 23 (io23) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 24 (io24) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 25 (io25) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 26 (io26) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 27 (io27) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 28 (io28) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 29 (io29) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 30 (io30) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 31 (io31) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 32 (io32) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 33 (io33) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 41 (io41) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 42 (io42) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 43 (io43) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 44 (io44) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 45 (io45) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 46 (io46) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 47 (io47) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: request pin 48 (io48) for pinctrl [ 0.450000] rt2880-pinmux pinctrl: failed to lookup the sleep state [ 0.450000] FPU Affinity set after 11720 emulations [ 0.510000] mt7621_gpio 1e000600.gpio: registering 32 gpios [ 0.520000] mt7621_gpio 1e000600.gpio: registering 32 gpios [ 0.530000] mt7621_gpio 1e000600.gpio: registering 32 gpios [ 0.540000] clocksource: Switched to clocksource GIC [ 0.560000] NET: Registered protocol family 2 [ 0.570000] TCP established hash table entries: 2048 (order: 1, 8192 bytes) [ 0.580000] TCP bind hash table entries: 2048 (order: 2, 16384 bytes) [ 0.590000] TCP: Hash tables configured (established 2048 bind 2048) [ 0.610000] UDP hash table entries: 256 (order: 1, 8192 bytes) [ 0.620000] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes) [ 0.630000] NET: Registered protocol family 1 [ 0.640000] PCI: CLS 0 bytes, default 32 [ 0.640000] alarmtimer alarmtimer: no of_node; not parsing pinctrl DT [ 0.640000] futex hash table entries: 1024 (order: 3, 32768 bytes) [ 0.650000] Crashlog allocated RAM at address 0x3f00000 [ 0.670000] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.680000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.710000] io scheduler noop registered [ 0.710000] io scheduler deadline registered (default) [ 0.730000] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled [ 0.740000] serial8250 serial8250: no of_node; not parsing pinctrl DT [ 0.740000] console [ttyS0] disabled [ 0.750000] 1e000c00.uartlite: ttyS0 at MMIO 0x1e000c00 (irq = 33, base_baud = 3125000) is a 16550A [ 0.760000] console [ttyS0] enabled [ 0.780000] bootconsole [early0] disabled [ 0.800000] MediaTek Nand driver init, version v2.1 Fix AHB virt2phys error [ 0.810000] pinctrl core: add 1 pinctrl maps [ 0.810000] rt2880-pinmux pinctrl: found group selector 9 for spi [ 0.810000] rt2880-pinmux pinctrl: request pin 34 (io34) for 1e000b00.spi [ 0.810000] rt2880-pinmux pinctrl: request pin 35 (io35) for 1e000b00.spi [ 0.810000] rt2880-pinmux pinctrl: request pin 36 (io36) for 1e000b00.spi [ 0.810000] rt2880-pinmux pinctrl: request pin 37 (io37) for 1e000b00.spi [ 0.810000] rt2880-pinmux pinctrl: request pin 38 (io38) for 1e000b00.spi [ 0.810000] rt2880-pinmux pinctrl: request pin 39 (io39) for 1e000b00.spi [ 0.810000] rt2880-pinmux pinctrl: request pin 40 (io40) for 1e000b00.spi [ 0.810000] spi-mt7621 1e000b00.spi: sys_freq: 50000000 [ 0.820000] m25p80 spi32766.0: using chunked io (size=32) [ 0.830000] m25p80 spi32766.0: w25q128 (16384 Kbytes) [ 0.840000] 4 ofpart partitions found on MTD device spi32766.0 [ 0.860000] Creating 4 MTD partitions on "spi32766.0": [ 0.870000] 0x000000000000-0x000000030000 : "u-boot" [ 0.880000] 0x000000030000-0x000000040000 : "u-boot-env" [ 0.890000] 0x000000040000-0x000000050000 : "factory" [ 0.900000] 0x000000050000-0x000001000000 : "firmware" [ 0.940000] 2 uimage-fw partitions found on MTD device firmware [ 0.950000] 0x000000050000-0x0000001c0959 : "kernel" [ 0.960000] 0x0000001c0959-0x000001000000 : "rootfs" [ 0.970000] mtd: device 5 (rootfs) set to be root filesystem [ 0.980000] 1 squashfs-split partitions found on MTD device rootfs [ 1.000000] 0x000000320000-0x000001000000 : "rootfs_data" [ 1.010000] netif_napi_add() called with weight 128 on device eth%d [ 1.040000] libphy: mdio: probed [ 1.050000] mtk_soc_eth 1e100000.ethernet: loaded mt7530 driver [ 1.060000] mtk_soc_eth 1e100000.ethernet eth0: mediatek frame engine at 0xbe100000, irq 10 [ 1.080000] mt7621_wdt 1e000100.wdt: Initialized [ 1.090000] NET: Registered protocol family 10 [ 1.100000] NET: Registered protocol family 17 [ 1.110000] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this. [ 1.140000] 8021q: 802.1Q VLAN Support v1.8 [ 1.150000] hctosys: unable to open rtc device (rtc0) [ 1.170000] VFS: Mounted root (squashfs filesystem) readonly on device 31:5. [ 1.180000] Freeing unused kernel memory: 200K (8046e000 - 804a0000) [ 1.360000] random: nonblocking pool is initialized [ 2.050000] init: Console is alive [ 2.050000] init: - watchdog - [ 2.410000] usbcore: registered new interface driver usbfs [ 2.420000] usbcore: registered new interface driver hub [ 2.430000] usbcore: registered new device driver usb [ 2.450000] xhci-mtk 1e1c0000.xhci: xHCI Host Controller [ 2.460000] xhci-mtk 1e1c0000.xhci: new USB bus registered, assigned bus number 1 [ 2.480000] xhci-mtk 1e1c0000.xhci: hcc params 0x01401198 hci version 0x96 quirks 0x00210010 [ 2.490000] xhci-mtk 1e1c0000.xhci: irq 29, io mem 0x1e1c0000 [ 2.510000] hub 1-0:1.0: no of_node; not parsing pinctrl DT [ 2.510000] hub 1-0:1.0: USB hub found [ 2.510000] hub 1-0:1.0: 2 ports detected [ 2.520000] xhci-mtk 1e1c0000.xhci: xHCI Host Controller [ 2.530000] xhci-mtk 1e1c0000.xhci: new USB bus registered, assigned bus number 2 [ 2.550000] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM. [ 2.570000] hub 2-0:1.0: no of_node; not parsing pinctrl DT [ 2.570000] hub 2-0:1.0: USB hub found [ 2.570000] hub 2-0:1.0: 1 port detected [ 2.580000] init: - preinit - [ 6.070000] jffs2: notice: (371) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found. [ 6.100000] mount_root: switching to jffs2 overlay [ 6.120000] urandom-seed: Seeding with /etc/urandom.seed [ 6.220000] procd: - early - [ 6.230000] procd: - watchdog - [ 6.890000] procd: - ubus - [ 6.950000] procd: - init - [ 7.090000] ip6_tables: (C) 2000-2006 Netfilter Core Team [ 7.110000] ip_tables: (C) 2000-2006 Netfilter Core Team [ 7.120000] nf_conntrack version 0.5.0 (3982 buckets, 15928 max) [ 7.240000] xt_time: kernel timezone is -0000 [ 7.250000] PPP generic driver version 2.4.2 [ 7.260000] NET: Registered protocol family 24 [ 10.350000] device eth0 entered promiscuous mode [ 10.360000] device eth0.1 entered promiscuous mode [ 10.370000] br-lan: port 1(eth0.1) entered forwarding state [ 10.390000] br-lan: port 1(eth0.1) entered forwarding state [ 12.390000] br-lan: port 1(eth0.1) entered forwarding state