Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Oct 2011 22:42:41 GMT
From:      Jan Bramkamp <crest@tzi.de>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   arm/162159: USB errors leading to panic on DockStar 9.0-RC1/arm
Message-ID:  <201110292242.p9TMgf3J029021@red.freebsd.org>
Resent-Message-ID: <201110292250.p9TMo77L055900@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         162159
>Category:       arm
>Synopsis:       USB errors leading to panic on DockStar 9.0-RC1/arm
>Confidential:   no
>Severity:       critical
>Priority:       low
>Responsible:    freebsd-arm
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Oct 29 22:50:07 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Jan Bramkamp
>Release:        9.0-RC1 r226591
>Organization:
>Environment:
FreeBSD fb9ds.crest.dn42 9.0-RC1 FreeBSD 9.0-RC1 #5: Sat Oct 29 19:57:58 C EST 2011     root@t420.crest.dn42:/usr/obj/arm.arm/usr/src/sys/DOCKSTAR  a rm

>Description:
FreeBSD 9.0-RC1 boots into Multiuser on DockStar. A few seconds of disk I/O on USB mass storage devices later "USB error: address decoding error (addr=$HEX)" floods the RS232 console. They are stop as soon as all disk I/O is stopped. syslogd turns this into a feedback loop. (Nearly?) each log write results in new log messages. A "portsnap fetch" is enough on a fresh installation triggered the panic below.


console:
   fb9ds# portsnap fetch
   Looking up portsnap.FreeBSD.org mirrors... 5 mirrors found.
   Fetching snapshot tag from portsnap5.FreeBSD.org... done.
   Fetching snapshot metadata... done.
   Fetching snapshot generated at Sat Oct 29 00:11:11 UTC 2011:
   0e7e93882dbe7d6994a5598cd1cb310ecc53958054d3df100% of   64 MB  778 kBps 00m00s
   Extracting snapshot... done.
   Verifying snapshot integrity... 
 

backtrace:
 db> bt 
 Tracing pid 42848 tid 100070 td 0xc23ae000
 kdb_enter() at kdb_enter+0x14
 scp=0xc0a68174 rlv=0xc0a3da34 (panic+0xa0)
         rsp=0xc85129e0 rfp=0xc85129f4
         r5=0xc0c4933c r4=0x00000100
 panic() at panic+0x1c
 scp=0xc0a3d9b0 rlv=0xc0a75480 (turnstile_claim+0x204)
         rsp=0xc8512a08 rfp=0xc8512a20
 turnstile_claim() at turnstile_claim+0x104
 scp=0xc0a75380 rlv=0xc0a75608 (turnstile_wait+0x17c)
         rsp=0xc8512a24 rfp=0xc8512a48
         r6=0xc182e2a0 r5=0xc23ae000
         r4=0x00000000
 turnstile_wait() at turnstile_wait+0x14
 scp=0xc0a754a0 rlv=0xc0a30848 (_mtx_lock_sleep+0xbc)
         rsp=0xc8512a4c rfp=0xc8512a64
         r10=0xc21a4990 r8=0x00000000
         r7=0x00000000 r6=0xc23ae000 r5=0xc182e2a0 r4=0xc0d14780
 _mtx_lock_sleep() at _mtx_lock_sleep+0x14
 scp=0xc0a307a0 rlv=0xc0a30900 (_mtx_lock_flags+0x74)
         rsp=0xc8512a68 rfp=0xc8512a84
         r6=0xc0d200c0 r5=0x00000000
         r4=0x00000000
 _mtx_lock_flags() at _mtx_lock_flags+0x10
 scp=0xc0a3089c rlv=0xc0bd5a3c (vm_fault_hold+0x1548)
         rsp=0xc8512a88 rfp=0xc8512bb0
         r6=0x0000029c r5=0x00000000
         r4=0x0029c000
 vm_fault_hold() at vm_fault_hold+0x10
 scp=0xc0bd4504 rlv=0xc0bd6080 (vm_fault+0x38)
         rsp=0xc8512bb4 rfp=0xc8512bc8
         r10=0x00000002 r9=0xc8512ef8
         r8=0xc8512c70 r7=0xc23ae000 r6=0x20405000 r5=0x00000000
         r4=0x00000002
 vm_fault() at vm_fault+0x10
 scp=0xc0bd6058 rlv=0xc0c02490 (data_abort_handler+0x1e8)
         rsp=0xc8512bcc rfp=0xc8512c6c
         r4=0xc23a3360
 data_abort_handler() at data_abort_handler+0x10
 scp=0xc0c022b8 rlv=0xc0bf4b38 (address_exception_entry+0x50)
         rsp=0xc8512c70 rfp=0x00000000
         r10=0xc8512ef8 r9=0x00000000
         r8=0x00000000 r7=0x00000000 r6=0x00000000 r5=0xffff1004
         r4=0x656b614d

dmesg.boot (after a reboot):

 KDB: debugger backends: ddb
 KDB: current backend: ddb
 Copyright (c) 1992-2011 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 9.0-RC1 #5: Sat Oct 29 19:57:58 CEST 2011
     root@t420.crest.dn42:/usr/obj/arm.arm/usr/src/sys/DOCKSTAR arm
 CPU: Feroceon 88FR131 rev 1 (Marvell core)
   DC enabled IC enabled WB enabled EABT branch prediction enabled
   16KB/32B 4-way Instruction cache
   16KB/32B 4-way write-back-locking-C Data cache
 real memory  = 134217728 (128 MB)
 avail memory = 125227008 (119 MB)
 SOC: Marvell 88F6281 rev A0, TClock 200MHz
 simplebus0: <Flattened device tree simple bus> on fdtbus0
 ic0: <Marvell Integrated Interrupt Controller> mem 0xf1020200-0xf102023b on simplebus0
 timer0: <Marvell CPU Timer> mem 0xf1020300-0xf102032f irq 1 on simplebus0
 Event timer "CPUTimer0" frequency 200000000 Hz quality 1000
 Timecounter "CPUTimer1" frequency 200000000 Hz quality 1000
 gpio0: <Marvell Integrated GPIO Controller> mem 0xf1010100-0xf101011f irq 35,36,37,38,39,40,41 on  simplebus0
 rtc0: <Marvell Integrated RTC> mem 0xf1010300-0xf1010307 on simplebus0
 mge0: <Marvell Gigabit Ethernet controller> mem 0xf1072000-0xf1073fff irq 12,13,14,11,46 on simpl ebus0
 mge0: Ethernet address: 02:50:43:91:f7:ea
 miibus0: <MII bus> on mge0
 ukphy0: <Generic IEEE 802.3u media interface> PHY 0 on miibus0
 ukphy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000b aseT-FDX, 1000baseT-FDX-master, auto
 uart0: <16550 or compatible> mem 0xf1012000-0xf101201f irq 33 on simplebus0
 uart0: console (1056,n,8,1)
 uart1: <16550 or compatible> mem 0xf1012100-0xf101211f irq 34 on simplebus0
 ehci0: <Marvell Integrated USB 2.0 controller> mem 0xf1050000-0xf1050fff irq 48,19 on simplebus0
 usbus0: EHCI version 1.0
 usbus0: set host controller mode
 usbus0: <Marvell Integrated USB 2.0 controller> on ehci0
 cryptosoft0: <software crypto> on motherboard
 Timecounters tick every 1.000 msec
 IPsec: Initialized Security Association Processing.
 ipfw2 (+ipv6) initialized, divert enabled, nat loadable, rule-based forwarding enabled, default t o accept, logging disabled
 DUMMYNET 0 with IPv6 initialized (100409)
 load_dn_sched dn_sched FIFO loaded
 load_dn_sched dn_sched PRIO loaded
 load_dn_sched dn_sched QFQ loaded
 load_dn_sched dn_sched RR loaded
 load_dn_sched dn_sched WF2Q+ loaded
 usbus0: 480Mbps High Speed USB v2.0
 Root mount waiting for: usbus0
 ugen0.1: <Marvell> at usbus0
 uhub0: <Marvell EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
 uhub0: 1 port with 1 removable, self powered
 Root mount waiting for: usbus0
 ugen0.2: <vendor 0x05e3> at usbus0
 uhub1: <vendor 0x05e3 USB2.0 Hub, class 9/0, rev 2.00/6.03, addr 2> on usbus0

 Root mount waiting for: usbus0
 uhub1: 4 ports with 4 removable, self powered
 Root mount waiting for: usbus0
 ugen0.3: <SMI Corporation> at usbus0
 umass0: <SMI Corporation USB DISK, class 0/0, rev 2.00/11.00, addr 3> on usbus0
 da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
 da0: <USB Stick 2.0 ME 1100> Removable Direct Access SCSI-0 device 
 da0: 40.000MB/s transfers
 da0: 1912MB (3915776 512 byte sectors: 255H 63S/T 243C)
 ugen0.4: <vendor 0x0d8c> at usbus0
 uaudio0: <vendor 0x0d8c C-Media USB Headphone Set, class 0/0, rev 1.10/1.00, addr 4> on usbus0
 uaudio0: Play: 48000 Hz, 2 ch, 16-bit S-LE PCM format
 uaudio0: Record: 48000 Hz, 1 ch, 16-bit S-LE PCM format
 uaudio0: No midi sequencer
 pcm0: <USB audio> on uaudio0
 Trying to mount root from ufs:/dev/ufs/root []...
 WARNING: / was not properly dismounted

dmesg (problem reappears after a few seconds):
 USB error: address decoding error (addr=0x4190200)
 USB error: address decoding error (addr=0x4191000)
 USB error: address decoding error (addr=0x41981c0)
 USB error: address decoding error (addr=0x4199000)
 USB error: address decoding error (addr=0x41a0200)
 USB error: address decoding error (addr=0x41a1000)
 USB error: address decoding error (addr=0x41a8000)
 USB error: address decoding error (addr=0x41a9000)
 USB error: address decoding error (addr=0x41b0200)
 USB error: address decoding error (addr=0x41b1000)
 USB error: address decoding error (addr=0x41b8000)
 USB error: address decoding error (addr=0x41b9000)
 USB error: address decoding error (addr=0x41c0000)
 USB error: address decoding error (addr=0x41c1000)
 USB error: address decoding error (addr=0x41c8200)
 USB error: address decoding error (addr=0x41c9000)
 USB error: address decoding error (addr=0x41ca000)
 USB error: address decoding error (addr=0x41d11c0)
 USB error: address decoding error (addr=0x41d2000)
 USB error: address decoding error (addr=0x41d9100)
 USB error: address decoding error (addr=0x41c9000)
 USB error: address decoding error (addr=0x41c9000)
 ... more of the same format (/usr/src/sys/dev/usb/controller/ehci_mv.c

kernel config:
 #
 # Custom kernel for Seagate DockStar (Marvell SheevaPlug based) devices.
 #
 # $FreeBSD: stable/9/sys/arm/conf/DOCKSTAR 224699 2011-08-07 20:16:46Z rmacklem $
 #
 
 ident           DOCKSTAR
 include         "../mv/kirkwood/std.sheevaplug"
 
 options         SOC_MV_KIRKWOOD
 makeoptions     MODULES_OVERRIDE=""
 
 #makeoptions    DEBUG=-g                #Build kernel with gdb(1) debug symbols
 makeoptions     WERROR="-Werror"
 
 options         SCHED_4BSD              #4BSD scheduler
 options         INET                    #InterNETworking
 options         INET6                   #IPv6 communications protocols
 options         FFS                     #Berkeley Fast Filesystem
 options         NFSCL                   #New Network Filesystem Client
 options         NFSLOCKD                #Network Lock Manager
 options         NFS_ROOT                #NFS usable as /, requires NFSCL
 #options        BOOTP
 #options        BOOTP_NFSROOT
 #options        BOOTP_NFSV3
 #options        BOOTP_COMPAT
 #options        BOOTP_WIRED_TO=mge0
 
 # Root fs on USB device
 options        ROOTDEVNAME=\"ufs:/dev/ufs/root\"
 
 options         SYSVSHM                 #SYSV-style shared memory
 options         SYSVMSG                 #SYSV-style message queues
 options         SYSVSEM                 #SYSV-style semaphores
 options         _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
 options         MUTEX_NOINLINE
 options         RWLOCK_NOINLINE
 options         NO_FFS_SNAPSHOT
 options         NO_SWAPPING
 
 # Debugging
 options         ALT_BREAK_TO_DEBUGGER
 options         DDB
 options         KDB
 
 # Pseudo devices
 device          md
 device          random
 device          pty
 device          loop
 
 # Serial ports
 device          uart
 
 # Networking
 device          ether
 device          mge                     # Marvell Gigabit Ethernet controller
 device          mii
 device          bpf
 options         HZ=1000
 options         DEVICE_POLLING
 device          vlan
 
 # USB
 #options        USB_DEBUG       # enable debug msgs
 device          usb
 device          ehci
 device          uhci
 device          ohci
 device          umass
 device          scbus
 device          pass
 device          da
 
 # Flattened Device Tree
 options         FDT
 options         FDT_DTB_STATIC
 makeoptions     FDT_DTS_FILE=dockstar.dts
 
 # Crypto
 device          crypto
 options         KGSSAPI
 
 # IPSec
 device          enc
 options         IPSEC
 options         IPSEC_NAT_T
 
 # Disk Encryption
 options         GEOM_ELI
 
 # IPFW support
 options         IPFIREWALL
 options         IPFIREWALL_DEFAULT_TO_ACCEPT
 options         IPFIREWALL_FORWARD
 options         IPFIREWALL_VERBOSE
 options         IPFIREWALL_VERBOSE_LIMIT=100
 options         DUMMYNET
 options         IPDIVERT
 
 # Partition support
 options         GEOM_PART_BSD
 options         GEOM_PART_GPT
 options         GEOM_PART_MBR
 options         GEOM_LABEL
 
 # UFS
 options         UFS_ACL
 options         UFS_DIRHASH
 options         SOFTUPDATES
 
 # FAT support
 options         MSDOSFS
 
 # Misc FSs
 options         PROCFS
 options         PSEUDOFS
 
 # Sound
 device          sound
 device          snd_uaudio

>How-To-Repeat:
cd /usr/src
make buildworld buildkernel # tested on amd64
make buildworld buildkernel TARGET_ARCH=arm KERNCONF=DOCKSTAR
gpart create -s mbr da0 # da0 is a umass dev
gpart add -s 64M -t fat32 -i 1 && newfs_msdos -F 32 -L KERN da0s1
gpart add -t freebsd && newfs -jLroot
mount -t msdosfs /dev/msdosfs/KERN # use jeff doozans u-boot to boot from fat32
cp /usr/obj/arm.arm/usr/src/sys/DOCKSTAR/kernel.bin /mnt
umount /mnt
mount /dev/ufs/root /mnt
make installworld distribution TARGET_ARCH=arm DESTDIR=/mnt
dd of=/mnt/etc/rc.conf <<EOF
  hostname="fb9ds.crest.dn42"
  ifconfig_mge0="DHCP"
  sshd_enable="YES"
  ntpdate_enable="YES"
  ntpd_enable="YES"
>Fix:
no known fix/workaround

>Release-Note:
>Audit-Trail:
>Unformatted:
 >>EOF
 echo /dev/ufs/root / ufs rw,noatime,noclusterr,noclusterw 1 1 >/mnt/etc/fstab
 umount /mnt
 # insert usb stick/disk into dockstar, boot and start portsnap fetch extract.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201110292242.p9TMgf3J029021>