WRTnode jest kolejnym modułem w którym przede wszystkim liczy się wielkość. Na niewielkiej płytce (50x45mm) umieszczono podstawowe elementy takie jak: procesor, pamięć flash, pamięć ram, złącze zasilania, dwie anteny oraz zestaw złącz z wyprowadzonymi sygnałami GPIO i innymi
Strona projektu:
http://wrtnode.com/Na płytce umieszczono:
- SoC: MediaTek MT7620N 600MHz (580MHz) - MIPS24KEc
- 64MB DDR2 ram
- 16MB flash
- pełne radio 2T2R 802.11n 2.4 GHz
oraz wyprowadzenia do
- 23 GPIO
- JTAG
- SPI
- UART
- USB 2.0
Dostępny jest interfejs szeregowy, pracujący z prędkością 115200 (bootloader) oraz 57600 (sam kernel/system). Czemu zdecydowano się na takie udziwnienie - tego bliżej nie określono, należy jednak pamiętać o tym jeżeli chcemy się posługiwać tym łączem.
Sama płytka wystarcza do realizacji routera bezprzewodowego, korzystania z gpio itd. Możliwe jest także wykorzystanie płytki bazowej (
motherboard, dock) która zawiera dodatkowe złącza. Przykładowa płytka zawiera 3xUSB 2.0 (zrealizowane przy pomocy zewnętrznego chipa USB), jedno złącze miniusb do zasilania, port RJ45, wyprowadzenie konsoli szeregowej oraz złącze z sygnałami do kamery.
Pobór prądu:
0.13A - sam moduł, wifi wyłączone
0.17A - sam moduł, wifi włączone
0.14A - dock (RJ45 dołączony) + wifi wyłączone
0.20A - dock (RJ45 dołączony) + wifi włączone
Oczywiście pobór mocy wzrośnie po dołączeniu urządzeń USB.
Wydajność procesora MT7620N w porównaniu do Atherosa stosowanego w routerach w teście CPUBench:
mem pi e float
2.8s 8.1s 8.0s 0.5s TP-LINK TL-WR1043ND Atheros AR9132 rev 2 400MHz
1.8s 4.8s 4.7s 0.3s Netgear WNDR3700v2 Atheros AR7161 rev 2 680MHz
2.1s 5.3s 4.4s 0.3s TP-LINK TL-WDR3600 Atheros AR9344 rev 2 560MHz
1.9s 4.2s 8.7s 0.3s TP-LINK TL-WR1043ND v2 Qualcomm Atheros QCA9558 rev 0 720MHz
2.6s 5.8s 5.7s 0.3s WRTnode MediaTek MT7620N ver:2 eco:3 580MHz
Jak widać ustępuje on już Atheros AR9344, nie mówiąc o starym układzie AR7161.
SoC MediaTek jest obecnie dość znanym układem wykorzystywanym w niektórych konstrukcjach. W terminologii OpenWrt jest to ramips, nie jest więc zaskoczeniem że domyślnie działa na nim właśnie OpenWrt (trunk) z LuCI. WRTnode jest wspierane przez ten system, niewielkie zawirowania są związane z licencją sterownika układu radiowego, ale miejmy nadzieję że zostaną one szybko rozwiązanie. Producenci tej płytki dostarczają własną implementację sterownika, dzięki czemu całość jest normalnie funkcjonalna.
Jest to standardowy OpenWrt, dodane są dodatkowe elementy (np. Aria2) aby zapewnić na starcie od razu pewną funkcjonalność. Nic nie stoi na przeszkodzie aby zainstalować sobie standardowy obraz z openwrt.org, choć należy pamiętać wtedy o sterownikach wifi.
Parę informacji o systemie:
BusyBox v1.19.4 (2014-03-19 21:19:44 UTC) built-in shell (ash)
Enter 'help' for a list of built-in commands.
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
BARRIER BREAKER (0.9, r39634)
-----------------------------------------------------
* 1/2 oz Galliano Pour all ingredients into
* 4 oz cold Coffee an irish coffee mug filled
* 1 1/2 oz Dark Rum with crushed ice. Stir.
* 2 tsp. Creme de Cacao
-----------------------------------------------------
root@OpenWrt:/# cat /proc/cpuinfo
system type : Ralink MT7620N ver:2 eco:3
machine : WRTnode
processor : 0
cpu model : MIPS 24KEc V5.0
BogoMIPS : 385.84
wait instruction : yes
microsecond timers : yes
tlb_entries : 32
extra interrupt vector : yes
hardware watchpoint : yes, count: 4, address/irw mask: [0x0000, 0x0f78, 0x0f78, 0x0fd8]
isa : mips1 mips2 mips32r1 mips32r2
ASEs implemented : mips16 dsp
shadow register sets : 1
kscratch registers : 0
core : 0
VCED exceptions : not available
VCEI exceptions : not available
root@OpenWrt:/# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 7.5M 348.0K 7.2M 5% /
/dev/root 7.3M 7.3M 0 100% /rom
tmpfs 30.0M 236.0K 29.8M 1% /tmp
/dev/mtdblock5 7.5M 348.0K 7.2M 5% /overlay
overlayfs:/overlay 7.5M 348.0K 7.2M 5% /
tmpfs 512.0K 0 512.0K 0% /dev
root@OpenWrt:/# free
total used free shared buffers
Mem: 61492 29200 32292 0 3604
-/+ buffers: 25596 35896
Swap: 0 0 0
Start systemu:
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
*** Warning - bad CRC, using default environment
============================================
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.10.28
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1153913 Bytes = 1.1 MB
Load Address: 80000000
Entry Point: 80000000
raspi_read: from:50040 len:119b79
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80000000) ...
## Giving linux memsize in MB, 64
Starting kernel ...
[ 0.000000] Linux version 3.10.28 (noel@na) (gcc version 4.6.4 (OpenWrt/Linaro GCC 4.6-2013.05 r39634) ) #2 Fri Mar 21 22:14:56 UTC 2014
[ 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: Ralink MT7620N ver:2 eco:3
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU revision is: 00019650 (MIPS 24KEc)
[ 0.000000] MIPS: machine is WRTnode
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 04000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x00000000-0x03ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000-0x03ffffff]
[ 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] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
[ 0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2
[ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Writing ErrCtl register=0005dc69
[ 0.000000] Readback ErrCtl register=0005dc69
[ 0.000000] Memory: 61316k/65536k available (2594k kernel code, 4220k reserved, 621k data, 176k init, 0k highmem)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:128
[ 0.000000] CPU Clock: 580MHz
[ 0.000000] Console: colour dummy device 80x25
[ 0.000000] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216)
[ 0.060000] pid_max: default: 32768 minimum: 301
[ 0.060000] Mount-cache hash table entries: 512
[ 0.070000] pinctrl core: initialized pinctrl subsystem
[ 0.070000] NET: Registered protocol family 16
[ 0.100000] bio: create slab <bio-0> at 0
[ 0.100000] rt2880_gpio 10000600.gpio: registering 24 gpios
[ 0.110000] rt2880_gpio 10000600.gpio: registering 24 irq handlers
[ 0.110000] rt2880_gpio 10000660.gpio: registering 32 gpios
[ 0.120000] rt2880_gpio 10000660.gpio: registering 32 irq handlers
[ 0.120000] rt2880_gpio 10000688.gpio: registering 1 gpios
[ 0.130000] rt2880_gpio 10000688.gpio: registering 1 irq handlers
[ 0.130000] usbcore: registered new interface driver usbfs
[ 0.140000] usbcore: registered new interface driver hub
[ 0.140000] usbcore: registered new device driver usb
[ 0.150000] Switching to clocksource MIPS
[ 0.170000] NET: Registered protocol family 2
[ 0.170000] TCP established hash table entries: 512 (order: 0, 4096 bytes)
[ 0.180000] TCP bind hash table entries: 512 (order: -1, 2048 bytes)
[ 0.180000] TCP: Hash tables configured (established 512 bind 512)
[ 0.190000] TCP: reno registered
[ 0.190000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.200000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.210000] NET: Registered protocol family 1
[ 0.210000] rt-timer 10000100.timer: maximum frequncy is 2441Hz
[ 0.230000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.240000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.250000] msgmni has been set to 119
[ 0.250000] io scheduler noop registered
[ 0.260000] io scheduler deadline registered (default)
[ 0.260000] usbcore: registered new interface driver udlfb
[ 0.270000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[ 0.280000] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20) is a 16550A
[ 0.280000] console [ttyS0] enabled, bootconsole disabled
[ 0.310000] m25p80 spi32766.0: found mx25l12805d, expected w25q128
[ 0.320000] m25p80 spi32766.0: mx25l12805d (16384 Kbytes)
[ 0.330000] 4 ofpart partitions found on MTD device spi32766.0
[ 0.340000] Creating 4 MTD partitions on "spi32766.0":
[ 0.350000] 0x000000000000-0x000000030000 : "u-boot"
[ 0.370000] 0x000000030000-0x000000040000 : "u-boot-env"
[ 0.380000] 0x000000040000-0x000000050000 : "factory"
[ 0.390000] 0x000000050000-0x000001000000 : "firmware"
[ 0.400000] 0x000000169bb9-0x000001000000 : "rootfs"
[ 0.410000] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[ 0.440000] mtd: device 4 (rootfs) set to be root filesystem
[ 0.450000] mtd: partition "rootfs_data" created automatically, ofs=0x880000, len=0x780000
[ 0.470000] 0x000000880000-0x000001000000 : "rootfs_data"
[ 0.480000] ralink_soc_eth 10100000.ethernet: loaded mt7530 driver
[ 0.490000] eth0: done loading
[ 0.500000] rt3xxx-usbphy ubsphy.3: loaded
[ 0.510000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.520000] ehci-platform: EHCI generic platform driver
[ 0.730000] rt3xxx-usbphy ubsphy.3: remote usb device wakeup disabled
[ 0.750000] rt3xxx-usbphy ubsphy.3: UTMI 16bit 30MHz
[ 0.760000] ehci-platform 101c0000.ehci: EHCI Host Controller
[ 0.770000] ehci-platform 101c0000.ehci: new USB bus registered, assigned bus number 1
[ 0.780000] ehci-platform 101c0000.ehci: irq 26, io mem 0x101c0000
[ 0.820000] ehci-platform 101c0000.ehci: USB 2.0 started, EHCI 1.00
[ 0.830000] hub 1-0:1.0: USB hub found
[ 0.840000] hub 1-0:1.0: 1 port detected
[ 0.840000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.860000] ohci-platform 101c1000.ohci: Generic Platform OHCI Controller
[ 0.870000] ohci-platform 101c1000.ohci: new USB bus registered, assigned bus number 2
[ 0.890000] ohci-platform 101c1000.ohci: irq 26, io mem 0x101c1000
[ 0.960000] hub 2-0:1.0: USB hub found
[ 0.970000] hub 2-0:1.0: 1 port detected
[ 0.980000] rt2880_wdt 10000120.watchdog: Initialized
[ 0.990000] TCP: cubic registered
[ 0.990000] NET: Registered protocol family 17
[ 1.000000] 8021q: 802.1Q VLAN Support v1.8
[ 1.020000] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[ 1.040000] Freeing unused kernel memory: 176K (80324000 - 80350000)
procd: Console is alive
procd: - watchdog -
procd: - preinit -
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[ 6.280000] rt2880-pinmux pinctrl.1: pin 1 is not set to gpio mux
[ 6.290000] rt2880-pinmux pinctrl.1: request() failed for pin 1
[ 6.300000] rt2880-pinmux pinctrl.1: pin-1 (pio:1) status -22
[ 6.310000] gpio-keys-polled gpio-keys-polled.5: unable to claim gpio 1, err=-22
[ 6.330000] gpio-keys-polled: probe of gpio-keys-polled.5 failed with error -22
[ 6.350000] SCSI subsystem initialized
[ 6.370000] leds-gpio gpio-leds.4: pins are not configured from the driver
[ 6.390000] usbcore: registered new interface driver usb-storage
kmod: ran 1 iterations
[ 7.880000] jffs2: notice: (401) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan) and 16 of xref (0 dead, 3 orphan) found.
mount_root: jffs2 is ready
[ 8.070000] jffs2: notice: (398) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan) and 16 of xref (0 dead, 3 orphan) found.
procd: - early -
procd: - watchdog -
Failed to connect to ubus
procd: - ubus -
procd: - init -
Please press Enter to activate this console.
[ 11.390000] NET: Registered protocol family 10
[ 11.410000] NTFS driver 2.1.30 [Flags: R/O MODULE].
[ 11.470000] nf_conntrack version 0.5.0 (960 buckets, 3840 max)
[ 11.490000] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 11.520000] Ralink/MTK WiFi EEPROM API Driver for OpenWrt Trunk. Copyright 2013 lintel<lintel.huang@gmail.com>
[ 11.540000] Ralink/MTK WiFi EEPROM API:Installed.
[ 11.550000] Ralink/MTK WiFi EEPROM API:SoC is MT7620.
[ 12.470000] rt2860v2_ap: module license 'Proprietary' taints kernel.
[ 12.480000] Disabling lock debugging due to kernel taint
[ 12.540000]
[ 12.540000]
[ 12.540000] === pAd = c0561000, size = 871592 ===
[ 12.540000]
[ 12.560000] <-- RTMPAllocTxRxRingMemory, Status=0
[ 12.570000] <-- RTMPAllocAdapterBlock, Status=0
[ 12.580000] AP Driver version-2.7.1.6
[ 12.610000] Linux video capture interface: v2.00
[ 12.660000] hidraw: raw HID events driver (C) Jiri Kosina
[ 12.710000] fuse init (API version 7.22)
[ 12.730000] usbcore: registered new interface driver cdc_acm
[ 12.740000] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 12.820000] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 12.970000] usbcore: registered new interface driver usbhid
[ 12.980000] usbhid: USB HID core driver
[ 13.000000] usbcore: registered new interface driver usbserial
[ 13.010000] usbcore: registered new interface driver usbserial_generic
[ 13.020000] usbserial: USB Serial support registered for generic
[ 13.040000] usbcore: registered new interface driver uvcvideo
[ 13.050000] USB Video Class driver (1.1.1)
[ 13.080000] xt_time: kernel timezone is -0000
[ 13.090000] usbcore: registered new interface driver ftdi_sio
[ 13.100000] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 13.130000] PPP generic driver version 2.4.2
[ 13.140000] NET: Registered protocol family 24
[ 13.160000] usbcore: registered new interface driver snd-usb-audio
[ 17.580000] device eth0.1 entered promiscuous mode
[ 17.590000] device eth0 entered promiscuous mode
[ 17.600000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.1: link becomes ready
[ 17.620000] br-lan: port 1(eth0.1) entered forwarding state
[ 17.630000] br-lan: port 1(eth0.1) entered forwarding state
[ 19.630000] br-lan: port 1(eth0.1) entered forwarding state
[ 22.040000] RtmpOSNetDevDetach(): RtmpOSNetDeviceDetach(), dev->name=ra0!
[ 22.540000]
[ 22.540000]
[ 22.540000] === pAd = c0b09000, size = 871592 ===
[ 22.540000]
[ 22.560000] <-- RTMPAllocTxRxRingMemory, Status=0
[ 22.570000] <-- RTMPAllocAdapterBlock, Status=0
[ 22.580000] AP Driver version-2.7.1.6
[ 22.710000] RX DESC a250d000 size = 2048
[ 22.750000] RTMP_TimerListAdd: add timer obj c0ba0ec8!
[ 22.760000] RTMP_TimerListAdd: add timer obj c0b6a878!
[ 22.770000] RTMP_TimerListAdd: add timer obj c0b6d0c4!
[ 22.780000] RTMP_TimerListAdd: add timer obj c0b6d184!
[ 22.790000] RTMP_TimerListAdd: add timer obj c0b6d244!
[ 22.800000] RTMP_TimerListAdd: add timer obj c0b6d304!
[ 22.810000] RTMP_TimerListAdd: add timer obj c0b6d3c4!
[ 22.820000] RTMP_TimerListAdd: add timer obj c0b6d484!
[ 22.830000] RTMP_TimerListAdd: add timer obj c0b6d544!
[ 22.840000] RTMP_TimerListAdd: add timer obj c0b6d604!
[ 22.850000] RTMP_TimerListAdd: add timer obj c0b6d6c4!
[ 22.860000] RTMP_TimerListAdd: add timer obj c0b6d784!
[ 22.870000] RTMP_TimerListAdd: add timer obj c0b6d844!
[ 22.880000] RTMP_TimerListAdd: add timer obj c0b6d904!
[ 22.890000] RTMP_TimerListAdd: add timer obj c0b6d9c4!
[ 22.900000] RTMP_TimerListAdd: add timer obj c0b6da84!
[ 22.910000] RTMP_TimerListAdd: add timer obj c0b6db44!
[ 22.920000] RTMP_TimerListAdd: add timer obj c0b6dc04!
[ 22.930000] RTMP_TimerListAdd: add timer obj c0b6a84c!
[ 22.940000] RTMP_TimerListAdd: add timer obj c0b6d098!
[ 22.950000] RTMP_TimerListAdd: add timer obj c0b6d158!
[ 22.960000] RTMP_TimerListAdd: add timer obj c0b6d218!
[ 22.970000] RTMP_TimerListAdd: add timer obj c0b6d2d8!
[ 22.980000] RTMP_TimerListAdd: add timer obj c0b6d398!
[ 22.990000] RTMP_TimerListAdd: add timer obj c0b6d458!
[ 23.000000] RTMP_TimerListAdd: add timer obj c0b6d518!
[ 23.010000] RTMP_TimerListAdd: add timer obj c0b6d5d8!
[ 23.020000] RTMP_TimerListAdd: add timer obj c0b6d698!
[ 23.030000] RTMP_TimerListAdd: add timer obj c0b6d758!
[ 23.040000] RTMP_TimerListAdd: add timer obj c0b6d818!
[ 23.050000] RTMP_TimerListAdd: add timer obj c0b6d8d8!
[ 23.060000] RTMP_TimerListAdd: add timer obj c0b6d998!
[ 23.070000] RTMP_TimerListAdd: add timer obj c0b6da58!
[ 23.080000] RTMP_TimerListAdd: add timer obj c0b6db18!
[ 23.090000] RTMP_TimerListAdd: add timer obj c0b6dbd8!
[ 23.100000] RTMP_TimerListAdd: add timer obj c0b6a820!
[ 23.110000] RTMP_TimerListAdd: add timer obj c0b6d0f0!
[ 23.120000] RTMP_TimerListAdd: add timer obj c0b6d1b0!
[ 23.130000] RTMP_TimerListAdd: add timer obj c0b6d270!
[ 23.140000] RTMP_TimerListAdd: add timer obj c0b6d330!
[ 23.160000] RTMP_TimerListAdd: add timer obj c0b6d3f0!
[ 23.170000] RTMP_TimerListAdd: add timer obj c0b6d4b0!
[ 23.180000] RTMP_TimerListAdd: add timer obj c0b6d570!
[ 23.190000] RTMP_TimerListAdd: add timer obj c0b6d630!
[ 23.200000] RTMP_TimerListAdd: add timer obj c0b6d6f0!
[ 23.210000] RTMP_TimerListAdd: add timer obj c0b6d7b0!
[ 23.220000] RTMP_TimerListAdd: add timer obj c0b6d870!
[ 23.230000] RTMP_TimerListAdd: add timer obj c0b6d930!
[ 23.240000] RTMP_TimerListAdd: add timer obj c0b6d9f0!
[ 23.250000] RTMP_TimerListAdd: add timer obj c0b6dab0!
[ 23.260000] RTMP_TimerListAdd: add timer obj c0b6db70!
[ 23.270000] RTMP_TimerListAdd: add timer obj c0b6dc30!
[ 23.280000] RTMP_TimerListAdd: add timer obj c0b111e8!
[ 23.290000] RTMP_TimerListAdd: add timer obj c0b10ddc!
[ 23.300000] RTMP_TimerListAdd: add timer obj c0b111b8!
[ 23.310000] RTMP_TimerListAdd: add timer obj c0b11560!
[ 23.320000] RTMP_TimerListAdd: add timer obj c0b112b0!
[ 23.330000] RTMP_TimerListAdd: add timer obj c0b112e0!
[ 23.340000] RTMP_TimerListAdd: add timer obj c0b114a0!
[ 23.350000] RTMP_TimerListAdd: add timer obj c0b114d0!
[ 23.360000] RTMP_TimerListAdd: add timer obj c0b14494!
[ 23.370000] RTMP_TimerListAdd: add timer obj c0b14088!
[ 23.380000] RTMP_TimerListAdd: add timer obj c0b14464!
[ 23.390000] RTMP_TimerListAdd: add timer obj c0b1480c!
[ 23.400000] RTMP_TimerListAdd: add timer obj c0b1455c!
[ 23.410000] RTMP_TimerListAdd: add timer obj c0b1458c!
[ 23.420000] RTMP_TimerListAdd: add timer obj c0b1474c!
[ 23.430000] RTMP_TimerListAdd: add timer obj c0b1477c!
[ 23.440000] RTMP_TimerListAdd: add timer obj c0b17740!
[ 23.450000] RTMP_TimerListAdd: add timer obj c0b17334!
[ 23.460000] RTMP_TimerListAdd: add timer obj c0b17710!
[ 23.470000] RTMP_TimerListAdd: add timer obj c0b17ab8!
[ 23.480000] RTMP_TimerListAdd: add timer obj c0b17808!
[ 23.490000] RTMP_TimerListAdd: add timer obj c0b17838!
[ 23.500000] RTMP_TimerListAdd: add timer obj c0b179f8!
[ 23.510000] RTMP_TimerListAdd: add timer obj c0b17a28!
[ 23.520000] RTMP_TimerListAdd: add timer obj c0b1a9ec!
[ 23.530000] RTMP_TimerListAdd: add timer obj c0b1a5e0!
[ 23.540000] RTMP_TimerListAdd: add timer obj c0b1a9bc!
[ 23.550000] RTMP_TimerListAdd: add timer obj c0b1ad64!
[ 23.560000] RTMP_TimerListAdd: add timer obj c0b1aab4!
[ 23.580000] RTMP_TimerListAdd: add timer obj c0b1aae4!
[ 23.590000] RTMP_TimerListAdd: add timer obj c0b1aca4!
[ 23.600000] RTMP_TimerListAdd: add timer obj c0b1acd4!
[ 23.610000] RTMP_TimerListAdd: add timer obj c0b1dc98!
[ 23.620000] RTMP_TimerListAdd: add timer obj c0b1d88c!
[ 23.630000] RTMP_TimerListAdd: add timer obj c0b1dc68!
[ 23.640000] RTMP_TimerListAdd: add timer obj c0b1e010!
[ 23.650000] RTMP_TimerListAdd: add timer obj c0b1dd60!
[ 23.660000] RTMP_TimerListAdd: add timer obj c0b1dd90!
[ 23.670000] RTMP_TimerListAdd: add timer obj c0b1df50!
[ 23.680000] RTMP_TimerListAdd: add timer obj c0b1df80!
[ 23.690000] RTMP_TimerListAdd: add timer obj c0b20f44!
[ 23.700000] RTMP_TimerListAdd: add timer obj c0b20b38!
[ 23.710000] RTMP_TimerListAdd: add timer obj c0b20f14!
[ 23.720000] RTMP_TimerListAdd: add timer obj c0b212bc!
[ 23.730000] RTMP_TimerListAdd: add timer obj c0b2100c!
[ 23.740000] RTMP_TimerListAdd: add timer obj c0b2103c!
[ 23.750000] RTMP_TimerListAdd: add timer obj c0b211fc!
[ 23.760000] RTMP_TimerListAdd: add timer obj c0b2122c!
[ 23.770000] RTMP_TimerListAdd: add timer obj c0b241f0!
[ 23.780000] RTMP_TimerListAdd: add timer obj c0b23de4!
[ 23.790000] RTMP_TimerListAdd: add timer obj c0b241c0!
[ 23.800000] RTMP_TimerListAdd: add timer obj c0b24568!
[ 23.810000] RTMP_TimerListAdd: add timer obj c0b242b8!
[ 23.820000] RTMP_TimerListAdd: add timer obj c0b242e8!
[ 23.830000] RTMP_TimerListAdd: add timer obj c0b244a8!
[ 23.840000] RTMP_TimerListAdd: add timer obj c0b244d8!
[ 23.850000] RTMP_TimerListAdd: add timer obj c0b2749c!
[ 23.860000] RTMP_TimerListAdd: add timer obj c0b27090!
[ 23.870000] RTMP_TimerListAdd: add timer obj c0b2746c!
[ 23.880000] RTMP_TimerListAdd: add timer obj c0b27814!
[ 23.890000] RTMP_TimerListAdd: add timer obj c0b27564!
[ 23.900000] RTMP_TimerListAdd: add timer obj c0b27594!
[ 23.910000] RTMP_TimerListAdd: add timer obj c0b27754!
[ 23.920000] RTMP_TimerListAdd: add timer obj c0b27784!
[ 23.930000] RTMP_TimerListAdd: add timer obj c0b6cc7c!
[ 23.940000] RTMP_TimerListAdd: add timer obj c0b6c870!
[ 23.950000] RTMP_TimerListAdd: add timer obj c0b6cc4c!
[ 23.960000] RTMP_TimerListAdd: add timer obj c0b6cff4!
[ 23.970000] RTMP_TimerListAdd: add timer obj c0b6cd44!
[ 23.990000] RTMP_TimerListAdd: add timer obj c0b6cd74!
[ 24.000000] RTMP_TimerListAdd: add timer obj c0b6ccac!
[ 24.010000] RTMP_TimerListAdd: add timer obj c0b6ccdc!
[ 24.020000] RTMP_TimerListAdd: add timer obj c0b6cd0c!
[ 24.030000] RTMP_TimerListAdd: add timer obj c0b77834!
[ 24.040000] RTMP_TimerListAdd: add timer obj c0b77950!
[ 24.050000] RTMP_TimerListAdd: add timer obj c0b77860!
[ 24.060000] RTMP_TimerListAdd: add timer obj c0b6edac!
[ 24.070000] RTMP_TimerListAdd: add timer obj c0b0e668!
[ 24.080000] RTMP_TimerListAdd: add timer obj c0b11914!
[ 24.090000] RTMP_TimerListAdd: add timer obj c0b14bc0!
[ 24.100000] RTMP_TimerListAdd: add timer obj c0b17e6c!
[ 24.110000] RTMP_TimerListAdd: add timer obj c0b1b118!
[ 24.120000] RTMP_TimerListAdd: add timer obj c0b1e3c4!
[ 24.130000] RTMP_TimerListAdd: add timer obj c0b21670!
[ 24.140000] RTMP_TimerListAdd: add timer obj c0b2491c!
[ 24.150000] RTMP_TimerListAdd: add timer obj c0b6eac0!
[ 24.160000] RTMP_TimerListAdd: add timer obj c0b6ee14!
[ 24.290000] APSDCapable[0]=0
[ 24.300000] APSDCapable[1]=0
[ 24.300000] APSDCapable[2]=0
[ 24.310000] APSDCapable[3]=0
[ 24.310000] APSDCapable[4]=0
[ 24.320000] APSDCapable[5]=0
[ 24.320000] APSDCapable[6]=0
[ 24.330000] APSDCapable[7]=0
[ 24.340000] APSDCapable[8]=0
[ 24.340000] APSDCapable[9]=0
[ 24.350000] APSDCapable[10]=0
[ 24.350000] APSDCapable[11]=0
[ 24.360000] APSDCapable[12]=0
[ 24.360000] APSDCapable[13]=0
[ 24.370000] APSDCapable[14]=0
[ 24.380000] APSDCapable[15]=0
[ 24.380000] default ApCliAPSDCapable[0]=0
[ 24.600000] Key1Str is Invalid key length(0) or Type(0)
[ 24.610000] Key2Str is Invalid key length(0) or Type(0)
[ 24.620000] Key3Str is Invalid key length(0) or Type(0)
[ 24.630000] Key4Str is Invalid key length(0) or Type(0)
[ 24.850000] eb:09:33:3f:92:c3:96:d8:fb:3d:0f:ce:7f:ba:af:00:
[ 24.860000] da:e2:f9:a8:6d:b3:2d:ce:b2:e2:72:31:69:ba:68:e8:
[ 24.870000]
[ 24.870000] I/F(apcli0) Key1Str is Invalid key length!
[ 24.910000] 1. Phy Mode = 9
[ 24.920000] 2. Phy Mode = 9
[ 24.920000] EEPROM:Read from [factory] offset 0x0,length 0x200.
procd: - init complete -
[ 25.730000] E2PROM: D0 target power=0xff20
[ 25.730000] E2PROM: 40 MW Power Delta= 0
[ 25.740000] 3. Phy Mode = 9
[ 25.750000] RTMP_TimerListAdd: add timer obj c0b0e260!
[ 25.760000] AntCfgInit: primary/secondary ant 0/1
Initialize RF Central Registers for E2 !!!
[ 25.780000] Initialize RF Central Registers for E3 !!!
[ 25.790000] Initialize RF Channel Registers for E2 !!!
[ 25.800000] Initialize RF Channel Registers for E3 !!!
[ 25.810000] Initialize RF DCCal Registers for E2 !!!
[ 25.820000] Initialize RF DCCal Registers for E3 !!!
[ 25.830000] D1 = 2, D2 = 12, CalCode = 23 !!!
[ 25.840000] RT6352_Temperature_Init : BBPR49 = 0x2
[ 25.850000] RT6352_Temperature_Init : TemperatureRef25C = 0xfffffff8
[ 25.860000] Current Temperature from BBP_R49=0xfffffff8
[ 25.870000] RT6352_TssiTableAdjust: upper_bound = 0x7F decimal: 127
[ 25.880000] RT6352_TssiTableAdjust: lower_bound = 0xFFFFFF80 decimal: -128
[ 25.900000] *** RT6352_TssiTableAdjust: G Tssi[-7 .. +7] = -128 -1 -1 -1 -128 -1 -1
[ 25.900000] - -1 - -1 -1 -1 -1 -1 -1 -1, offset=-8, tuning=0
[ 25.930000] RT6352_TssiTableAdjust: G Tssi[-7 .. +7] = -128 -9 -9 -9 -128 -9 -9 - -9 - -9 -9 -9 -9 -9 -9 -9, offset=-8, tuning=0
[ 25.950000] mp_temperature=0xffffffff, step = +7
[ 25.960000] E2PROM: G Tssi[-7 .. +7] = -128 -9 -9 -9 -128 -9 -9 - -9 - -9 -9 -9 -9 -9 -9 -9, offset=-8, tuning=0
[ 25.980000] TX BW Filter Calibration !!!
[ 26.120000] RX BW Filter Calibration !!!
[ 26.360000] LOFT Calibration Done!
[ 26.370000] IQCalibration Start!
[ 26.390000] IQCalibration Done! CH = 0, (gain= 3, phase=3d)
[ 26.400000] IQCalibration Start!
[ 26.420000] IQCalibration Done! CH = 1, (gain= f, phase=3d)
[ 26.430000] TX IQ Calibration Done!
[ 26.470000] internal ALC is not enabled in NVM !
[ 26.480000] bAutoTxAgcG = 0
[ 26.490000] MCS Set = ff ff 00 00 01
[ 26.560000] Main bssid = 64:51:7e:33:9d:74
[ 26.570000] <==== rt28xx_init, Status=0
[ 26.890000] 0x1300 = 00064380
[ 27.610000] device ra0 entered promiscuous mode
[ 27.620000] br-lan: port 2(ra0) entered forwarding state
[ 27.630000] br-lan: port 2(ra0) entered forwarding state
[ 29.630000] br-lan: port 2(ra0) entered forwarding state