arm/162159: USB errors leading to panic on DockStar 9.0-RC1/arm
Hans Petter Selasky
hselasky at c2i.net
Sun Oct 30 20:32:44 UTC 2011
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 at 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 at 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
More information about the freebsd-arm
mailing list