USB stability problem on AR9331 with stable/10

Bernd Walter ticso at cicely7.cicely.de
Sat Jan 3 03:02:30 UTC 2015


This happens on Carambola 2 as well as on a Dragino system.
Both are using the AR9331 SoC with 64MB RAM.
I'd used the freebsd-wifi-build-read-only build, but I'm not using
the memory disk setup, instead I'd setup rootfs on an USB stick.
Plus I use NFS for /usr/ports, /usr/obj, 256MB swapfile and /tmp
I'd tried different sticks with same result.
Under normal load everything seems to run fine.
No I want to install some ports - requiring ports-mgmt/pkg as
prerequisite, which is quite big to compile and at some
point the USB stick errors out.

login: Jan  2 18:03:51 apx2 msu[831]: accepted ticso to root
(da0:umass-sim0:0:0:0): . CDB: 28 00 00 7c 3d 00 00 00 48 00 
(da0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
(da0:umass-sim0:0:0:0): Retrying command
(da0:umass-sim0:0:0:0): . CDB: 28 00 00 7c 3d 00 00 00 48 00 
(da0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
(da0:umass-sim0:0:0:0): Retrying command
(da0:umass-sim0:0:0:0): . CDB: 28 00 00 7c 3d 00 00 00 48 00 
(da0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
(da0:umass-sim0:0:0:0): Retrying command
(da0:umass-sim0:0:0:0): . CDB: 28 00 00 7c 3d 00 00 00 48 00 
(da0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
(da0:umass-sim0:0:0:0): Retrying command
(da0:umass-sim0:0:0:0): . CDB: 28 00 00 7c 3d 00 00 00 48 00 
(da0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
(da0:umass-sim0:0:0:0): Error 5, Retries exhausted
g_vfs_done():da0a[READ(offset=4171210752, length=12288)]error = 5
g_vfs_done():da0a[READ(offset=1361854464, length=12288)]error = 5
g_vfs_done():da0a[READ(offset=4019220480, length=61440)]error = 5
g_vfs_done():da0a[READ(offset=4151885824, length=65536)]error = 5
g_vfs_done():da0a[READ(offset=4168736768, length=36864)]error = 5
vnode_pager_getpages: I/O read error
vm_fault: pager read error, pid 570 (syslogd)
...

Bootmessages on a Dragino, on which I'm currently testing:
*********************************************
*        U-Boot 1.1.4  (Jun  3 2014)        *
*********************************************

AP121 (AR9331) U-Boot for Dragino v2 MS14

DRAM:   64 MB DDR 16-bit
FLASH:  Winbond W25Q128 (16 MB)
CLOCKS: 400/400/200/33 MHz (CPU/RAM/AHB/SPI)

LED on during eth initialization...

Hit any key to stop autobooting:  0 

Booting image at: 0x9F050000

   Image name:   FreeBSD
   Created:      2015-01-02  12:27:56 UTC
   Image type:   MIPS Linux Kernel Image (lzma compressed)
   Data size:    1523753 Bytes = 1.5 MB
   Load address: 0x80050000
   Entry point:  0x80050100

Uncompressing kernel image... OK!
Starting kernel...

CPU platform: Atheros AR9330 rev 1
CPU Frequency=400 MHz
CPU DDR Frequency=400 MHz
CPU AHB Frequency=200 MHz
platform frequency: 400000000
CPU reference clock: 25 MHz
arguments: 
  a0 = 00000007
  a1 = a3ec3fac
  a2 = a3ec4850
  a3 = 00000010
Cmd line:argv is invalid
Environment:
envp is invalid
Cache info:
  picache_stride    = 4096
  picache_loopcount = 16
  pdcache_stride    = 4096
  pdcache_loopcount = 8
cpu0: MIPS Technologies processor v116.147
  MMU: Standard TLB, 16 entries
  L1 i-cache: 4 ways of 512 sets, 32 bytes per line
  L1 d-cache: 4 ways of 256 sets, 32 bytes per line
  Config1=0x9ee3519e<PerfCount,WatchRegs,MIPS16,EJTAG>
  Config3=0x20
KDB: debugger backends: ddb
KDB: current backend: ddb
Copyright (c) 1992-2015 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 10.1-STABLE #0 r276531M: Fri Jan  2 12:50:27 CET 2015
    ticso at cicely1.cicely.de:/home/builder/carambola2/obj/mips/mips.mips/home/builder/carambola2/10/sys/CARAMBOLA2 mips
gcc version 4.2.1 20070831 patched [FreeBSD]
real memory  = 67108864 (65536K bytes)
avail memory = 58490880 (55MB)
random device not loaded; using insecure entropy
random: <Software, Yarrow> initialized
nexus0: <MIPS32 root nexus>
clock0: <Generic MIPS32 ticker> on nexus0
Timecounter "MIPS32" frequency 200000000 Hz quality 800
Event timer "MIPS32" frequency 200000000 Hz quality 800
argemdio0: <Atheros AR71xx built-in ethernet interface, MDIO controller> at mem 0x1a000000-0x1a000fff on nexus0
mdio0: <MDIO> on argemdio0
mdioproxy0: <MII/MDIO proxy, MDIO side> on mdio0
arswitch0: <Atheros AR7240 Ethernet Switch> on mdio0
miibus0: <MII bus> on arswitch0
ukphy0: <Generic IEEE 802.3u media interface> PHY 0 on miibus0
ukphy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
miibus1: <MII bus> on arswitch0
ukphy1: <Generic IEEE 802.3u media interface> PHY 1 on miibus1
ukphy1:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
miibus2: <MII bus> on arswitch0
ukphy2: <Generic IEEE 802.3u media interface> PHY 2 on miibus2
ukphy2:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
miibus3: <MII bus> on arswitch0
ukphy3: <Generic IEEE 802.3u media interface> PHY 3 on miibus3
ukphy3:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
etherswitch0: <Switch controller> on arswitch0
mdio1: <MDIO> on arswitch0
mdioproxy1: <MII/MDIO proxy, MDIO side> on mdio1
apb0 at irq 4 on nexus0
uart0: <ar933x> on apb0
uart0: console (115200,n,8,1)
gpio0: <Atheros AR71XX GPIO driver> on apb0
gpio0: [GIANT-LOCKED]
gpio0: function_set: 0x0
gpio0: function_clear: 0x0
gpio0: gpio pinmask=0x1803
gpioc0: <GPIO controller> on gpio0
gpiobus0: <GPIO bus> on gpio0
gpioled0: <GPIO led> at pin(s) 0 on gpiobus0
gpioled1: <GPIO led> at pin(s) 1 on gpiobus0
ehci0: <AR71XX Integrated USB 2.0 controller> at mem 0x1b000100-0x1bffffff irq 1 on nexus0
usbus0: set host controller mode
usbus0: EHCI version 1.0
usbus0: set host controller mode
usbus0 on ehci0
arge0: <Atheros AR71xx built-in ethernet interface> at mem 0x19000000-0x19000fff irq 2 on nexus0
miiproxy0: <MII/MDIO proxy, MII side> on arge0
miiproxy0: attached to target mdio1
arge0: finishing attachment, phymask 0010, proxy set 
miibus4: <MII bus> on miiproxy0
ukphy4: <Generic IEEE 802.3u media interface> PHY 4 on miibus4
ukphy4:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
arge0: Ethernet address: 62:73:64:71:f1:8e
arge1: <Atheros AR71xx built-in ethernet interface> at mem 0x1a000000-0x1a000fff irq 3 on nexus0
arge1: finishing attachment, phymask 0000, proxy null 
arge1: Ethernet address: 62:73:64:c0:e7:37
ath0: Vendor=0x168c, Device=0x0035
ath0: Vendor=0x168c, Device=0x0035
ath0: <Atheros AR933x> at mem 0x18100000-0x1811ffff irq 0 on nexus0
ath0: eeprom @ 0x1fff0000 (16384 bytes)
ath0: eeprom data @ 0xbfff0000
ar9300_set_stub_functions: setting stub functions
ar9300_set_stub_functions: setting stub functions
Bootstrap clock 25MHz
ar9300_attach: calling ar9300_hw_attach
ar9300_hw_attach: calling ar9300_eeprom_attach
ar9300_flash_map: unimplemented for now
Restoring Cal data from DRAM
ar9300_hw_attach: ar9300_eeprom_attach returned 0
ath0: RX status length: 48
ath0: RX buffer size: 4096
ath0: TX descriptor length: 128
ath0: TX status length: 36
ath0: TX buffers per descriptor: 4
ar9300_freebsd_setup_x_tx_desc: called, 0x0/0, 0x0/0, 0x0/0
ath0: ath_edma_setup_rxfifo: type=0, FIFO depth = 16 entries
ath0: ath_edma_setup_rxfifo: type=1, FIFO depth = 128 entries
ath0: [HT] enabling HT modes
ath0: [HT] enabling short-GI in 20MHz mode
ath0: [HT] 1 stream STBC receive enabled
ath0: [HT] 1 RX streams; 1 TX streams
ath0: AR9330 mac 512.1 RF5110 phy 2275.1
ath0: 2GHz radio: 0x0000; 5GHz radio: 0x0000
spi0: <AR71XX SPI> at mem 0x1f000000-0x1f00000f on nexus0
spibus0: <spibus bus> on spi0
mx25l0: <M25Pxx Flash Family> at cs 0 on spibus0
mx25l0: w25q128, sector 65536 bytes, 256 sectors
ar71xx_wdog0: <Atheros AR71XX watchdog timer> on nexus0
Timecounters tick every 1.000 msec
arswitch0port1: link state changed to DOWN
arswitch0port2: link state changed to DOWN
arswitch0port3: link state changed to DOWN
arswitch0port4: link state changed to DOWN
usbus0: 480Mbps High Speed USB v2.0
ugen0.1: <Atheros> at usbus0
uhub0: <Atheros EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
random: unblocking device.
Root mount waiting for: usbus0
uhub0: 1 port with 1 removable, self powered
arswitch0port1: link state changed to UP
Root mount waiting for: usbus0
ugen0.2: <GenesysLogic> at usbus0
uhub1: <GenesysLogic USB2.0 Hub, class 9/0, rev 2.10/4.01, addr 2> on usbus0
uhub1: MTT enabled
Root mount waiting for: usbus0
uhub1: 4 ports with 0 removable, self powered
ugen0.3: <Alcor Tech> at usbus0
umass0: <Alcor Tech Intenso Rainbow Line, class 0/0, rev 2.00/1.12, addr 3> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x4101
umass0:0:0:-1: Attached to scbus0
da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
da0: <Intenso Rainbow Line 8.05> Fixed Direct Access SCSI-4 device 
da0: Serial Number 14022600001415
da0: 40.000MB/s transfers
da0: 60000MB (122880000 512 byte sectors: 255H 63S/T 7648C)
da0: quirks=0x2<NO_6_BYTE>
Trying to mount root from ufs:da0a []...
WARNING: / was not properly dismounted
warning: no time-of-day clock registered, system time will not be set accurately
Setting hostuuid: b7150377-92a0-11e4-82f7-b97c4c6ba68a.
Setting hostid: 0xd75b006b.
Entropy harvesting: interrupts ethernet point_to_point swi.
swapon: mdconfig (attach) error: md99 on file=/home/swap0
Starting file system checks:
/dev/da0a: 11733 files, 76619 used, 14800282 free (242 frags, 1850005 blocks, 0.0% fragmentation)
Mounting local file systems:.
Writing entropy file:.
...

In a recent USB problem case I have had top running and since the
system didn't panic it got updated:
last pid:  4488;  load averages:  0.79,  0.66,  0.70     up 0+00:27:20  02:19:42
64 processes:  2 running, 35 sleeping, 15 zombie, 12 waiting
CPU:  1.5% user,  0.0% nice,  3.1% system,  0.0% interrupt, 95.4% idle
Mem: 3964K Active, 2132K Inact, 19M Wired, 444K Cache, 15M Buf, 31M Free
Swap: 256M Total, 5072K Used, 251M Free, 1% Inuse

  PID USERNAME   PRI NICE   SIZE    RES STATE    TIME    WCPU COMMAND
   10 root       155 ki31     0K     8K RUN     13:28  92.82% idle
    2 root        -8    -     0K    16K -        0:19   1.95% cam{doneq0}
    1 root       -16    0  9240K    16K vnread   0:18   1.90% init
  842 root        40    0 11924K   732K RUN      0:40   1.03% top
   11 root       -92    -     0K    96K WAIT     3:38   0.00% intr{int3 arge1}
  753 root        -8    -     0K     8K mdwait   1:20   0.00% md99
   13 root       -16    -     0K     8K -        0:25   0.00% rand_harvestq
   12 root        -8    -     0K    24K -        0:06   0.00% geom{g_up}
   11 root       -92    -     0K    96K WAIT     0:06   0.00% intr{int0 ath0}
    4 root       -16    -     0K     8K psleep   0:05   0.00% pagedaemon
    0 root       -16    0     0K    56K swapin   0:05   0.00% kernel{swapper}
    0 root       -92    0     0K    56K -        0:04   0.00% kernel{ath0 taskq}
   11 root       -60    -     0K    96K WAIT     0:02   0.00% intr{swi4: clock}
   12 root        -8    -     0K    24K -        0:01   0.00% geom{g_down}
   14 root       -72    -     0K    32K -        0:01   0.00% usb{usbus0}
  831 ticso       40    0 17884K   416K select   0:01   0.00% sshd
   11 root       -88    -     0K    96K WAIT     0:01   0.00% intr{int1 ehci0}
  566 root         8    0 10192K   768K nanslp   0:01   0.00% mount_nfs
  828 root        41    0 17884K     8K select   0:01   0.00% sshd
  839 root        16    0 11392K     8K pause    0:01   0.00% tcsh
  833 ticso       16    0 11392K     8K pause    0:00   0.00% tcsh
   16 root       -16    -     0K     8K -        0:00   0.00% schedcpu
   11 root       -76    -     0K    96K WAIT     0:00   0.00% intr{swi0: uart}
    9 root        16    -     0K     8K syncer   0:00   0.00% syncer
   14 root       -68    -     0K    32K -        0:00   0.00% usb{usbus0}
   14 root       -68    -     0K    32K -        0:00   0.00% usb{usbus0}
    7 root       -16    -     0K    16K sdflus   0:00   0.00% bufdaemon{/ worker}
    7 root       -16    -     0K    16K psleep   0:00   0.00% bufdaemon{bufdaemon}
    8 root        -4    -     0K     8K vlruwt   0:00   0.00% vnlru
    0 root       -92    0     0K    56K -        0:00   0.00% kernel{ath0 net80211 ta}
   11 root       -52    -     0K    96K WAIT     0:00   0.00% intr{swi6: task queue}
  778 smmsp       16    0 13952K     8K pause    0:00   0.00% sendmail
   12 root        -8    -     0K    24K -        0:00   0.00% geom{g_event}
    0 root         8    0     0K    56K -        0:00   0.00% kernel{thread taskq}
    2 root        -8    -     0K    16K -        0:00   0.00% cam{scanner}
    3 root        -8    -     0K     8K jobque   0:00   0.00% task: mx25l flash
   11 root       -72    -     0K    96K WAIT     0:00   0.00% intr{swi1: netisr 0}
    6 root       155 ki31     0K     8K pgzero   0:00   0.00% pagezero
    0 root        -8    0     0K    56K -        0:00   0.00% kernel{CAM taskq}
   14 root       -68    -     0K    32K -        0:00   0.00% usb{usbus0}
    5 root        16    -     0K     8K psleep   0:00   0.00% vmdaemon
   15 root         8    -     0K     8K aldslp   0:00   0.00% ALQ Daemon
    0 root         8    0     0K    56K -        0:00   0.00% kernel{ffs_trim taskq}

Nothing obvious beside that obviously a big process died, but since it
also kicked out the compiling ssh-session.

My local tree changes:
[62]cicely1# svn diff
Index: sys/mips/conf/AR933X_BASE
===================================================================
--- sys/mips/conf/AR933X_BASE   (revision 276531)
+++ sys/mips/conf/AR933X_BASE   (working copy)
@@ -29,17 +29,17 @@
 
 options        SCHED_4BSD              #4BSD scheduler
 options        INET                    #InterNETworking
-#options       INET6                   #InterNETworking
-#options       NFSCL                   #Network Filesystem Client
+options        INET6                   #InterNETworking
+options        NFSCL                   #Network Filesystem Client
 options        PSEUDOFS                #Pseudo-filesystem framework
 options        _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
 
 # Don't include the SCSI/CAM strings in the default build
-options        SCSI_NO_SENSE_STRINGS
-options        SCSI_NO_OP_STRINGS
+#options       SCSI_NO_SENSE_STRINGS
+#options       SCSI_NO_OP_STRINGS
 
 # .. And no sysctl strings
-options        NO_SYSCTL_DESCR
+#options       NO_SYSCTL_DESCR
 
 # Limit IO size
 options        NBUF=128
@@ -59,7 +59,7 @@
 #options       WITNESS
 #options       WITNESS_SKIPSPIN
 options        FFS                     #Berkeley Fast Filesystem
-#options       SOFTUPDATES             #Enable FFS soft updates support
+options        SOFTUPDATES             #Enable FFS soft updates support
 #options       UFS_ACL                 #Support for access control lists
 #options       UFS_DIRHASH             #Improve performance on big directories
 options        NO_FFS_SNAPSHOT         # We don't require snapshot support
@@ -122,3 +122,6 @@
 device         if_bridge
 device         gpio
 device         gpioled
+
+device         gif
+device         vlan
Index: sys/mips/conf/CARAMBOLA2
===================================================================
--- sys/mips/conf/CARAMBOLA2    (revision 276531)
+++ sys/mips/conf/CARAMBOLA2    (working copy)
@@ -43,11 +43,13 @@
 options        AR71XX_ENV_UBOOT
 
 # uzip - to boot natively from flash
-device         geom_uncompress
-options        GEOM_UNCOMPRESS
+#device                geom_uncompress
+#options       GEOM_UNCOMPRESS
 
 # Used for the static uboot partition map
-device          geom_map
+#device          geom_map
 
 # Boot off of the rootfs, as defined in the geom_map setup.
-options        ROOTDEVNAME=\"ufs:map/rootfs.uncompress\"
+#options       ROOTDEVNAME=\"ufs:map/rootfs.uncompress\"
+options                ROOTDEVNAME=\"ufs:da0a\"
+

-- 
B.Walter <bernd at bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.


More information about the freebsd-mips mailing list