Monthly Archives: March 2014

Clock test: which C clock is the fastest?

In one of my application it gets timer a lot of times, so I must make sure which timer is faster.

I tested three common timer functions:
gettimeofday() (in windows we use GetLocalTime())
clock() (in windows we use GetTickCount())
time()

I tested them under unix/linux, each function called 1e6(1M or 1000k) times.

Result on my unix computer:

test_gettimeofday()  42.40ms
test_clock()        344.27ms
test_time()         183.65ms

Result on my Linux VPS:

test_gettimeofday() 190.00ms
test_clock()        320.00ms
test_time()         160.00ms

Result on my VoCore v0.3 (RT5350F MIPS 360MHz) board: ( it is slow ūüėÄ )

test_gettimeofday() 1370.00ms
test_clock()        1800.00ms
test_time()         520.00ms

On my board, time() win, that is out of my expectation. OpenWrt are using uLibC but not glibC whose time() is calling gettimeofday(). uLibC must be using some other way.

But for average result, looks like gettimeofday() is the winner ūüôā

source code download link: http://vonger.cn/upload/clock.c

 

Client mode(station mode) for VoCore

Test the two bug boards is so boring… No good news. After that I decide to test some new feature: client mode.

It is easy to setup OpenWrt to client mode. It connected to my home router VongerWifi.

We need to change two files.

One is /etc/config/wireless:

config wifi-device 'radio0'
        option type 'mac80211'
        option channel 'auto'
        option hwmode '11ng'
        option path '10180000.wmac'
        list ht_capab 'GF'
        list ht_capab 'SHORT-GI-20'
        list ht_capab 'SHORT-GI-40'
        list ht_capab 'RX-STBC1'
        option htmode 'HT20'

config wifi-iface
        option device 'radio0'
        option network 'wwan'
        option mode 'sta'
        option ssid 'VongerWifi'
        option encryption 'psk2'
        option key 'passwordforwifi'

add two line after /etc/config/network to enable get ip address from your home router.

config interface wwan
        option proto 'dhcp'

restart network by this script.

/etc/init.d/network restart
wifi up

Now the board shows this:

[  555.840000] wlan0: deauthenticating from 0c:82:68:24:84:86 by local choice (reason=3)
[  556.740000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[  558.510000] wlan0: authenticate with 0c:82:68:24:84:86
[  558.550000] wlan0: send auth to 0c:82:68:24:84:86 (try 1/3)
[  558.560000] wlan0: authenticated
[  558.580000] wlan0: associate with 0c:82:68:24:84:86 (try 1/3)
[  558.590000] wlan0: RX AssocResp from 0c:82:68:24:84:86 (capab=0x431 status=0 aid=4)
[  558.610000] wlan0: associated
[  558.610000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

The client mode is working now.

root@OpenWrt:/etc/config# ping -c5 vonger.cn
PING vonger.cn (209.148.85.252): 56 data bytes
64 bytes from 209.148.85.252: seq=0 ttl=46 time=347.934 ms
64 bytes from 209.148.85.252: seq=1 ttl=46 time=347.951 ms
64 bytes from 209.148.85.252: seq=2 ttl=46 time=352.602 ms
64 bytes from 209.148.85.252: seq=3 ttl=46 time=259.923 ms
64 bytes from 209.148.85.252: seq=4 ttl=46 time=269.081 ms
--- vonger.cn ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 259.923/315.498/352.602 ms

Addition:

I find I can not ping from my board to my computer, and my computer can not ping board. That is not firewall problem. I find that is route problem.

root@OpenWrt:/etc/config# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         OpenWrt.lan     0.0.0.0         UG    0      0        0 wlan0
192.168.1.0     *               255.255.255.0   U     0      0        0 br-lan
192.168.1.0     *               255.255.255.0   U     0      0        0 wlan0

There should be a default gateway to 192.168.1.1 which is my router.

route add 192.168.1.0 gw 192.168.1.1

After this, it still does not work.
use ifconfig, I find the problem, br-lan already take 192.168.1.1. Just turn off it.

ifconfig br-lan down

Now, my computer is able to ping the VoCore board and VoCore board is able to ping the computer. Everything works great.

Wifi is not working on two of my boards 3

I have some tests on the bug boards today.

Address can not be assigned because of HWAddr is not correct. HWAddr is hardware mac address.

root@OpenWrt:/# ifconfig -a
br-lan Link encap:Ethernet HWaddr 46:9B:94:0A:E6:71 
 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
 inet6 addr: fe80::449b:94ff:fe0a:e671/64 Scope:Link
 inet6 addr: fd79:c06e:e417::1/60 Scope:Global
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0 
 RX bytes:0 (0.0 B) TX bytes:1268 (1.2 KiB)
eth0 Link encap:Ethernet HWaddr FF:FF:FF:FF:FF:FF 
 BROADCAST MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000 
 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
 Interrupt:5
eth0.1 Link encap:Ethernet HWaddr FF:FF:FF:FF:FF:FF 
 BROADCAST MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0 
 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth0.2 Link encap:Ethernet HWaddr FF:FF:FF:FF:FF:FF 
 BROADCAST MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0 
 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback 
 inet addr:127.0.0.1 Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 UP LOOPBACK RUNNING MTU:65536 Metric:1
 RX packets:146 errors:0 dropped:0 overruns:0 frame:0
 TX packets:146 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0 
 RX bytes:9888 (9.6 KiB) TX bytes:9888 (9.6 KiB)
wlan0 Link encap:Ethernet HWaddr 46:9B:94:0A:E6:71 
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000 
 RX bytes:0 (0.0 B) TX bytes:1540 (1.5 KiB)

It is FF:FF:FF:FF:FF:FF

eth0 Link encap:Ethernet HWaddr FF:FF:FF:FF:FF:FF

Use ifconfig to setup that address and bring up eth0 success.

ifconfig eth0 hw ether 46:9B:94:0A:E6:71
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up
ifconfig eth0.1 hw ether 46:9B:94:0A:E6:71
ifconfig eth0.1 192.168.1.101 netmask 255.255.255.0 up
ifconfig eth0.2 hw ether 46:9B:94:0A:E6:71
ifconfig eth0.2 192.168.1.102 netmask 255.255.255.0 up

And now in ifconfig ethernets are all up.

ifconfig wlan0 192.168.1.103 netmask 255.255.255.0

setup ip for wlan0.

root@OpenWrt:/# ifconfig
br-lan Link encap:Ethernet HWaddr 46:9B:94:0A:E6:71 
 inet6 addr: fe80::449b:94ff:fe0a:e671/64 Scope:Link
 inet6 addr: fd79:c06e:e417::1/60 Scope:Global
 UP BROADCAST MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0 
 RX bytes:0 (0.0 B) TX bytes:1458 (1.4 KiB)
eth0 Link encap:Ethernet HWaddr 46:9B:94:0A:E6:71 
 inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
 inet6 addr: fe80::449b:94ff:fe0a:e671/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:46 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000 
 RX bytes:0 (0.0 B) TX bytes:15958 (15.5 KiB)
 Interrupt:5
eth0.1 Link encap:Ethernet HWaddr 46:9B:94:0A:E6:71 
 inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0 
 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth0.2 Link encap:Ethernet HWaddr 46:9B:94:0A:E6:71 
 inet addr:192.168.1.102 Bcast:192.168.1.255 Mask:255.255.255.0
 inet6 addr: fe80::449b:94ff:fe0a:e671/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0 
 RX bytes:0 (0.0 B) TX bytes:15342 (14.9 KiB)
lo Link encap:Local Loopback 
 inet addr:127.0.0.1 Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 UP LOOPBACK RUNNING MTU:65536 Metric:1
 RX packets:4468 errors:0 dropped:0 overruns:0 frame:0
 TX packets:4468 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0 
 RX bytes:303744 (296.6 KiB) TX bytes:303744 (296.6 KiB)
wlan0 Link encap:Ethernet HWaddr 46:9B:94:0A:E6:71 
 inet addr:192.168.1.103 Bcast:192.168.1.255 Mask:255.255.255.0
 UP BROADCAST MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000 
 RX bytes:0 (0.0 B) TX bytes:1748 (1.7 KiB)

Now the ifconfig result is same as the normal one. But iw dev wlan0 scan has nothing returned, wireless module still dose not work.

Another try is to call:

/etc/init.d/firewall stop
/etc/init.d/firewall disable

firewall is stopped, still dose not work.

 

This bug is not easy to locate now. I guess this must have some connection with hardware, now I have to check the ethernet driver to see what will cause it failed to start. Lucky me still have one board work. It will be a long way to find out the problem.

Wifi is not working on two of my boards 2

After get out that RT5350F from the board, I find the solder is normal. Every ball touched its pad, so this might not be solder problem.

I have to check software again. Get boot log from normal board and the bug board again, compare the two.

 

normal one:

U-Boot 1.1.3 (Nov 26 2013 - 19:17:30)
Board: Ralink APSoC DRAM: 32 MB
relocate_code Pointer at: 81fb4000
******************************
Software System Reset Occurred
******************************
spi_wait_nsec: 42 
spi device id: ef 40 17 0 0 (40170000)
find flash: W25Q64BV
raspi_read: from:30000 len:1000 
.*** Warning - bad CRC, using default environment
============================================ 
Ralink UBoot Version: 4.0.0.0
-------------------------------------------- 
ASIC 5350_MP (Port5<->None)
DRAM_CONF_FROM: Boot-Strapping 
DRAM_TYPE: SDRAM 
DRAM_SIZE: 256 Mbits
DRAM_WIDTH: 16 bits
DRAM_TOTAL_WIDTH: 16 bits
TOTAL_MEMORY_SIZE: 32 MBytes
Flash component: SPI Flash
Date:Nov 26 2013 Time:19:17:30
============================================ 
icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:128, ways:4, linesz:32 ,total:16384
##### The CPU freq = 360 MHZ #### 
 estimate memory size =32 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. 
 4 
You choosed 3
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.32
 Created: 2014-03-20 13:56:37 UTC
 Image Type: MIPS Linux Kernel Image (lzma compressed)
 Data Size: 981825 Bytes = 958.8 kB
 Load Address: 80000000
 Entry Point: 80000000
raspi_read: from:50040 len:efb41 
............... Verifying Checksum ... OK
 Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80000000) ...
## Giving linux memsize in MB, 32
Starting kernel ...
[ 0.000000] Linux version 3.10.32 (vonger@debian) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.01 r39957) ) #3 Thu Mar 20 21:56:24 HKT 2014
[ 0.000000] SoC Type: Ralink RT5350 id:1 rev:3
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU revision is: 0001964c (MIPS 24KEc)
[ 0.000000] MIPS: machine is VoCore v0.3
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 02000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x00000000-0x01ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000-0x01ffffff]
[ 0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 32 bytes
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
[ 0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2
[ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Writing ErrCtl register=0007a400
[ 0.000000] Readback ErrCtl register=0007a400
[ 0.000000] Memory: 29356k/32768k available (2132k kernel code, 3412k reserved, 544k data, 200k init, 0k highmem)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:256
[ 0.000000] CPU Clock: 360MHz
[ 0.000000] Calibrating delay loop... 239.61 BogoMIPS (lpj=1198080)
[ 0.070000] pid_max: default: 32768 minimum: 301
[ 0.070000] Mount-cache hash table entries: 512
[ 0.080000] pinctrl core: initialized pinctrl subsystem
[ 0.090000] NET: Registered protocol family 16
[ 0.130000] bio: create slab <bio-0> at 0
[ 0.140000] rt2880_gpio 10000600.gpio: registering 24 gpios
[ 0.150000] rt2880_gpio 10000600.gpio: registering 24 irq handlers
[ 0.160000] Switching to clocksource MIPS
[ 0.170000] NET: Registered protocol family 2
[ 0.180000] TCP established hash table entries: 512 (order: 0, 4096 bytes)
[ 0.200000] TCP bind hash table entries: 512 (order: -1, 2048 bytes)
[ 0.210000] TCP: Hash tables configured (established 512 bind 512)
[ 0.220000] TCP: reno registered
[ 0.230000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.240000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.250000] NET: Registered protocol family 1
[ 0.260000] rt-timer 10000100.timer: maximum frequncy is 7324Hz
[ 0.310000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.330000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.350000] msgmni has been set to 57
[ 0.360000] io scheduler noop registered
[ 0.360000] io scheduler deadline registered (default)
[ 0.380000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[ 0.390000] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20) is a 16550A
[ 0.410000] console [ttyS0] enabled, bootconsole disabled
[ 0.410000] console [ttyS0] enabled, bootconsole disabled
[ 0.440000] m25p80 spi32766.0: found s25fl064k, expected gd25q64
[ 0.450000] m25p80 spi32766.0: s25fl064k (8192 Kbytes)
[ 0.460000] 4 ofpart partitions found on MTD device spi32766.0
[ 0.470000] Creating 4 MTD partitions on "spi32766.0":
[ 0.480000] 0x000000000000-0x000000030000 : "u-boot"
[ 0.500000] 0x000000030000-0x000000040000 : "u-boot-env"
[ 0.510000] 0x000000040000-0x000000050000 : "factory"
[ 0.530000] 0x000000050000-0x000000800000 : "firmware"
[ 0.540000] 0x00000013fb81-0x000000800000 : "rootfs"
[ 0.550000] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[ 0.580000] mtd: device 4 (rootfs) set to be root filesystem
[ 0.590000] mtd: partition "rootfs_data" created automatically, ofs=0x360000, len=0x4a0000
[ 0.610000] 0x000000360000-0x000000800000 : "rootfs_data"
[ 0.630000] eth0: done loading
[ 0.640000] rt3xxx-usbphy ubsphy.3: loaded
[ 0.650000] rt2880_wdt 10000120.watchdog: Initialized
[ 0.660000] TCP: cubic registered
[ 0.670000] NET: Registered protocol family 17
[ 0.680000] 8021q: 802.1Q VLAN Support v1.8
[ 0.710000] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[ 0.720000] Freeing unused kernel memory: 200K (8029e000 - 802d0000)
procd: Console is alive
procd: - watchdog -
procd: - preinit -
[ 7.100000] rt305x-esw 10110000.esw: link changed 0x00
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
[ 8.220000] usbcore: registered new interface driver usbfs
[ 8.230000] usbcore: registered new interface driver hub
[ 8.240000] usbcore: registered new device driver usb
[ 8.260000] dwc_otg: version 2.72a 24-JUN-2008
jffs2 is ready
[ 10.910000] jffs2: notice: (260) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan) and 11 of xref (0 dead, 0 orphan) found.
switching to jffs2
procd: - early -
procd: - watchdog -
procd: - ubus -
procd: - init -
Please press Enter to activate this console.
[ 14.730000] NET: Registered protocol family 10
[ 14.750000] l2tp_core: L2TP core driver, V2.0
[ 14.760000] l2tp_netlink: L2TP netlink interface
[ 14.780000] nf_conntrack version 0.5.0 (461 buckets, 1844 max)
[ 14.810000] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 14.850000] Loading modules backported from Linux version master-2014-01-23-0-g62c147d
[ 14.860000] Backport generated by backports.git backports-20140124-0-g1256d3e
[ 14.890000] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 14.960000] xt_time: kernel timezone is -0000
[ 15.020000] cfg80211: Calling CRDA to update world regulatory domain
[ 15.040000] cfg80211: World regulatory domain updated:
[ 15.050000] cfg80211: DFS Master region: unset
[ 15.050000] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 15.070000] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 15.090000] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 15.100000] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 15.120000] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz), (300 mBi, 2000 mBm)
[ 15.130000] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (300 mBi, 2000 mBm)
[ 15.150000] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm)
[ 15.260000] PPP generic driver version 2.4.2
[ 15.280000] NET: Registered protocol family 24
[ 15.330000] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 5350, rev 0500 detected
[ 15.350000] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 5350 detected
procd: - init complete -
[ 29.350000] device eth0.1 entered promiscuous mode
[ 29.360000] device eth0 entered promiscuous mode
[ 29.380000] br-lan: port 1(eth0.1) entered forwarding state
[ 29.390000] br-lan: port 1(eth0.1) entered forwarding state
[ 30.470000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.1: link becomes ready
[ 31.390000] br-lan: port 1(eth0.1) entered forwarding state
[ 32.790000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 32.800000] device wlan0 entered promiscuous mode
[ 32.840000] br-lan: port 2(wlan0) entered forwarding state
[ 32.850000] br-lan: port 2(wlan0) entered forwarding state
[ 32.860000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 34.850000] br-lan: port 2(wlan0) entered forwarding state

 

bug one:

U-Boot 1.1.3 (Feb 15 2014 - 15:46:39)
Board: Ralink APSoC DRAM: 32 MB
relocate_code Pointer at: 81fb4000
******************************
Software System Reset Occurred
******************************
spi_wait_nsec: 42 
spi device id: ef 40 17 0 0 (40170000)
find flash: W25Q64BV
raspi_read: from:30000 len:1000 
.*** Warning - bad CRC, using default environment
============================================ 
Ralink UBoot Version: 4.0.0.0
-------------------------------------------- 
ASIC 5350_MP (Port5<->None)
DRAM_CONF_FROM: Boot-Strapping 
DRAM_TYPE: SDRAM 
DRAM_SIZE: 256 Mbits
DRAM_WIDTH: 16 bits
DRAM_TOTAL_WIDTH: 16 bits
TOTAL_MEMORY_SIZE: 32 MBytes
Flash component: SPI Flash
Date:Feb 15 2014 Time:15:46:39
============================================ 
icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:128, ways:4, linesz:32 ,total:16384
##### The CPU freq = 360 MHZ #### 
 estimate memory size =32 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. 
 3 
You choosed 3
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.32
 Created: 2014-03-20 9:29:45 UTC
 Image Type: MIPS Linux Kernel Image (lzma compressed)
 Data Size: 981903 Bytes = 958.9 kB
 Load Address: 80000000
 Entry Point: 80000000
raspi_read: from:50040 len:efb8f 
............... Verifying Checksum ... OK
 Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80000000) ...
## Giving linux memsize in MB, 32
Starting kernel ...
[ 0.000000] Linux version 3.10.32 (vonger@debian) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.01 r39957) ) #1 Thu Mar 20 17:27:09 HKT 2014
[ 0.000000] SoC Type: Ralink RT5350 id:1 rev:3
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU revision is: 0001964c (MIPS 24KEc)
[ 0.000000] MIPS: machine is Poray X8
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 02000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x00000000-0x01ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000-0x01ffffff]
[ 0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 32 bytes
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
[ 0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2
[ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Writing ErrCtl register=0003afe0
[ 0.000000] Readback ErrCtl register=0003afe0
[ 0.000000] Memory: 29352k/32768k available (2132k kernel code, 3416k reserved, 544k data, 200k init, 0k highmem)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:256
[ 0.000000] CPU Clock: 360MHz
[ 0.000000] Calibrating delay loop... 239.61 BogoMIPS (lpj=1198080)
[ 0.070000] pid_max: default: 32768 minimum: 301
[ 0.070000] Mount-cache hash table entries: 512
[ 0.080000] pinctrl core: initialized pinctrl subsystem
[ 0.090000] NET: Registered protocol family 16
[ 0.140000] bio: create slab <bio-0> at 0
[ 0.150000] rt2880_gpio 10000600.gpio: registering 24 gpios
[ 0.160000] rt2880_gpio 10000600.gpio: registering 24 irq handlers
[ 0.170000] Switching to clocksource MIPS
[ 0.180000] NET: Registered protocol family 2
[ 0.190000] TCP established hash table entries: 512 (order: 0, 4096 bytes)
[ 0.210000] TCP bind hash table entries: 512 (order: -1, 2048 bytes)
[ 0.220000] TCP: Hash tables configured (established 512 bind 512)
[ 0.230000] TCP: reno registered
[ 0.240000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.250000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.260000] NET: Registered protocol family 1
[ 0.270000] rt-timer 10000100.timer: maximum frequncy is 7324Hz
[ 0.320000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.330000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.360000] msgmni has been set to 57
[ 0.370000] io scheduler noop registered
[ 0.370000] io scheduler deadline registered (default)
[ 0.390000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[ 0.400000] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20) is a 16550A
[ 0.420000] console [ttyS0] enabled, bootconsole disabled
[ 0.420000] console [ttyS0] enabled, bootconsole disabled
[ 0.450000] m25p80 spi32766.0: found s25fl064k, expected gd25q64
[ 0.460000] m25p80 spi32766.0: s25fl064k (8192 Kbytes)
[ 0.470000] 4 ofpart partitions found on MTD device spi32766.0
[ 0.480000] Creating 4 MTD partitions on "spi32766.0":
[ 0.490000] 0x000000000000-0x000000030000 : "u-boot"
[ 0.510000] 0x000000030000-0x000000040000 : "u-boot-env"
[ 0.520000] 0x000000040000-0x000000050000 : "factory"
[ 0.540000] 0x000000050000-0x000000800000 : "firmware"
[ 0.550000] 0x00000013fbcf-0x000000800000 : "rootfs"
[ 0.560000] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[ 0.590000] mtd: device 4 (rootfs) set to be root filesystem
[ 0.600000] mtd: partition "rootfs_data" created automatically, ofs=0x360000, len=0x4a0000
[ 0.620000] 0x000000360000-0x000000800000 : "rootfs_data"
[ 0.640000] eth0: done loading
[ 0.650000] rt3xxx-usbphy ubsphy.3: loaded
[ 0.660000] rt2880_wdt 10000120.watchdog: Initialized
[ 0.670000] TCP: cubic registered
[ 0.680000] NET: Registered protocol family 17
[ 0.690000] 8021q: 802.1Q VLAN Support v1.8
[ 0.720000] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[ 0.730000] Freeing unused kernel memory: 200K (8029e000 - 802d0000)
procd: Console is alive
procd: - watchdog -
procd: - preinit -
[ 8.180000] rt305x-esw 10110000.esw: link changed 0x00
[ 8.210000] usbcore: registered new interface driver usbfs
[ 8.230000] usbcore: registered new interface driver hub
[ 8.250000] usbcore: registered new device driver usb
ifconfig: SIOCSIFFLAGS: Cannot assign requested address
[ 8.270000] dwc_otg: version 2.72a 24-JUN-2008
[ 8.290000] leds-gpio gpio-leds.4: pins are not configured from the driver
sendto(): Network is unreachable
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
jffs2 is ready
[ 11.900000] jffs2: notice: (278) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan) and 11 of xref (0 dead, 0 orphan) found.
switching to jffs2
ifconfig: SIOCSIFFLAGS: Cannot assign requested address
procd: - early -
procd: - watchdog -
procd: - ubus -
procd: - init -
Please press Enter to activate this console.
[ 15.690000] NET: Registered protocol family 10
[ 15.710000] l2tp_core: L2TP core driver, V2.0
[ 15.720000] l2tp_netlink: L2TP netlink interface
[ 15.740000] nf_conntrack version 0.5.0 (461 buckets, 1844 max)
[ 15.760000] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 15.800000] Loading modules backported from Linux version master-2014-01-23-0-g62c147d
[ 15.820000] Backport generated by backports.git backports-20140124-0-g1256d3e
[ 15.840000] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 15.920000] xt_time: kernel timezone is -0000
[ 15.970000] cfg80211: Calling CRDA to update world regulatory domain
[ 15.980000] cfg80211: World regulatory domain updated:
[ 15.990000] cfg80211: DFS Master region: unset
[ 16.000000] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 16.020000] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 16.030000] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 16.050000] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 16.060000] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz), (300 mBi, 2000 mBm)
[ 16.080000] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (300 mBi, 2000 mBm)
[ 16.100000] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm)
[ 16.210000] PPP generic driver version 2.4.2
[ 16.220000] NET: Registered protocol family 24
[ 16.290000] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 5350, rev 0500 detected
[ 16.300000] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 5350 detected
procd: - init complete -
[ 30.220000] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[ 33.170000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 33.180000] device wlan0 entered promiscuous mode
[ 33.220000] br-lan: port 1(wlan0) entered forwarding state
[ 33.230000] br-lan: port 1(wlan0) entered forwarding state
[ 33.240000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 33.260000] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[ 35.230000] br-lan: port 1(wlan0) entered forwarding state

Here is that problem:

ifconfig: SIOCSIFFLAGS: Cannot assign requested address

eth0, eth0.1, eth0.2 can not bring up because of ¬†“can not assign requested address”.

 

 

Wifi is not working on two of my boards

Today I got a weird problem.
I soldered five boards but only one of them wifi did work, two of them wifi part did not work, two of them did not work at all.
That failed two are BGA problem. I used too much paste, make it short connected, so that two failed.
But why the other two did not work?

This is ifconfig from bug one(MAC is random):

 root@OpenWrt:/# ifconfig
 br-lan Link encap:Ethernet HWaddr B2:CE:C2:57:76:D8
 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
 inet6 addr: fd78:8004:63f8::1/60 Scope:Global
 inet6 addr: fe80::b0ce:c2ff:fe57:76d8/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:0 (0.0 B) TX bytes:1268 (1.2 KiB)
lo Link encap:Local Loopback
 inet addr:127.0.0.1 Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 UP LOOPBACK RUNNING MTU:65536 Metric:1
 RX packets:98 errors:0 dropped:0 overruns:0 frame:0
 TX packets:98 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:6624 (6.4 KiB) TX bytes:6624 (6.4 KiB)
wlan0 Link encap:Ethernet HWaddr B2:CE:C2:57:76:D8
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:0 (0.0 B) TX bytes:1540 (1.5 KiB)

This is ifconfig from normal one:

 root@OpenWrt:/# ifconfig
 br-lan Link encap:Ethernet HWaddr 00:0A:EB:38:0C:21
 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
 inet6 addr: fe80::20a:ebff:fe38:c21/64 Scope:Link
 inet6 addr: fd6a:16a0:a482::1/60 Scope:Global
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:0 (0.0 B) TX bytes:1464 (1.4 KiB)
eth0 Link encap:Ethernet HWaddr 00:0A:EB:38:0C:21
 inet6 addr: fe80::20a:ebff:fe38:c21/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:78 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:0 (0.0 B) TX bytes:26842 (26.2 KiB)
 Interrupt:5
eth0.1 Link encap:Ethernet HWaddr 00:0A:EB:38:0C:21
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:0 (0.0 B) TX bytes:1464 (1.4 KiB)
eth0.2 Link encap:Ethernet HWaddr 00:0A:EB:38:0C:21
 inet6 addr: fe80::20a:ebff:fe38:c21/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:0 (0.0 B) TX bytes:23595 (23.0 KiB)
lo Link encap:Local Loopback
 inet addr:127.0.0.1 Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 UP LOOPBACK RUNNING MTU:65536 Metric:1
 RX packets:1394 errors:0 dropped:0 overruns:0 frame:0
 TX packets:1394 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:95424 (93.1 KiB) TX bytes:95424 (93.1 KiB)
wlan0 Link encap:Ethernet HWaddr 00:0A:EB:38:0C:21
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:0 (0.0 B) TX bytes:236 (236.0 B)

I think that is solid problem, tomorrow I will get off that BGA chip and then we will know what happened.

Oh, I forget to connect the antenna

7D3255A9-61F4-405A-AB66-9E24D581E176

But my computer is able to connect to it!

Miracle!!

In fact, even I did not connect any antenna to the board but there is a very very short “antenna” on board. And my computer is just 1m from that board. Then, it connected. LOL ūüėÄ

RT5350F is so hot…

Today I use a infrared thermometer on the RT5350F chip, the¬†temperature is 68~70¬įC…

On the datasheet its working¬†temperature is -10¬įC~55¬įC…

How is this possible? I did not run my customised application yet. T-T

VoCore v0.3 Wifi test success

Another good day!

I can not wait for the new 2.2nH and 2.7nH from chip reseller. So I just get two 2.7nH from my old board then solid it onto VoCore v0.3, now it works. Fantastic!

Here are some screen captures from my board:

ZakeNetwork is a HiFi router, the distance from VoCore is about 8m(-70dBm), another is about 1m(-40dBm).

Using command¬†iw dev wlan0 scan | grep -E ‘SSID|signal’

930D92EF-2B43-47C4-882B-7801165B73C5

 

Pictures from the new wifi valid VoCore v0.3. ūüôā

IMG_20140319_140046

IMG_20140319_140704

VoCore’s OpenWrt State

  PID USER       VSZ STAT COMMAND
    1 root      1344 S    /sbin/procd
    2 root         0 SW   [kthreadd]
    3 root         0 SW   [ksoftirqd/0]
    4 root         0 SW   [kworker/0:0]
    5 root         0 SW<  [kworker/0:0H]
    6 root         0 SW   [kworker/u2:0]
    7 root         0 SW<  [khelper]
    8 root         0 SW   [kworker/u2:1]
   63 root         0 SW<  [writeback]
   65 root         0 SW<  [bioset]
   67 root         0 SW<  [kblockd]
   90 root         0 SW   [kworker/0:1]
   96 root         0 SW   [kswapd0]
  141 root         0 SW   [fsnotify_mark]
  165 root         0 SW   [spi32766]
  205 root         0 SW<  [deferwq]
  256 root         0 SW   [khubd]
  331 root       884 S    /sbin/ubusd
  332 root      1496 S    /bin/ash --login
  413 root         0 SW<  [cfg80211]
  562 root      1312 S    /sbin/logd
  575 root      1512 S    /sbin/netifd
  616 root      1488 S    /usr/sbin/telnetd -F -l /bin/login.sh
  654 nobody     964 S    /usr/sbin/dnsmasq -C /var/etc/dnsmasq.conf -k
  734 root      1496 S    udhcpc -p /var/run/udhcpc-eth0.2.pid -s /lib/netifd/dhcp.script -f -t 0 -i eth0.2 -C
  760 root         0 SWN  [jffs2_gcd_mtd5]
  792 root      1160 S    /usr/sbin/dropbear -F -P /var/run/dropbear.1.pid -p 22
  797 root      1496 S    /usr/sbin/ntpd -n -p 0.openwrt.pool.ntp.org 1.openwrt.pool.ntp.org 2.openwrt.pool.ntp.org 3.openwrt.pool.
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                    5184       268      4916   5% /
/dev/root                 1792      1792         0 100% /rom
tmpfs                    14788        44     14744   0% /tmp
tmpfs                    14788         8     14780   0% /tmp/root
tmpfs                      512         0       512   0% /dev
/dev/mtdblock5            5184       268      4916   5% /overlay
overlayfs:/overlay        5184       268      4916   5% /

vocore.bin size 2883588(0x2c0004) => download here. In bootloader, use loadb command to transfer it from local to vocore memory. Then call cp.linux 2c0004 to copy it to flash. If there already exists old linux, call erase linux to delete old one.

The offical bootloader loadb command might not working. We have to change some code on its uboot. Details here: https://forum.openwrt.org/viewtopic.php?id=44472