Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Oct 2011 21:19:35 +0100
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        freebsd-arm@freebsd.org
Cc:        freebsd-gnats-submit@freebsd.org
Subject:   Re: arm/162159: USB errors leading to panic on DockStar 9.0-RC1/arm
Message-ID:  <201110302119.35139.hselasky@c2i.net>
In-Reply-To: <201110292242.p9TMgf3J029021@red.freebsd.org>
References:  <201110292242.p9TMgf3J029021@red.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 30 October 2011 00:42:41 Jan Bramkamp wrote:
> >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.

Hi,

This looks like an ARM specific error produced by:

src/sys/dev/usb/controller/ehci_mbus.c

--HPS



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