NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-evbarm/50110: USB hang on Rapberry Pi



>Number:         50110
>Category:       port-evbarm
>Synopsis:       USB  hang on Rapberry Pi
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-evbarm-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Aug 01 10:35:00 +0000 2015
>Originator:     Eugene Doudine
>Release:        NetBSD 7.0_RC1
>Organization:
>Environment:
NetBSD rpi 7.0_RC1 NetBSD 7.0_RC1 (RPI.201506281700Z) evbarm

The hardware is Raspberry PI B rev. 2.0, with external USB 
HDD drive connected. dmesg output is below:

etBSD 7.0_RC1 (RPI.201506281700Z)
total memory = 448 MB
avail memory = 437 MB
sysctl_createv: sysctl_create(machine_arch) returned 17
kern.module.path=/stand/evbarm/7.0/modules
timecounter: Timecounters tick every 10.000 msec
mainbus0 (root)
cpu0 at mainbus0 core 0: 700 MHz ARM1176JZ-S r0p7 (ARM11J V6ZK core)
cpu0: DC enabled IC enabled WB enabled LABT
cpu0: isar: [0]=0x140011 [1]=0x12002111 [2]=0x11231121 [3]=0x1102131, [4]=0x1141, [5]=0
cpu0: mmfr: [0]=0x1130003 [1]=0x10030302 [2]=0x1222100 [3]=0
cpu0: pfr: [0]=0x111 [1]=0x11
cpu0: 16KB/32B 4-way L1 VIPT Instruction cache
cpu0: 16KB/32B 4-way write-back-locking-C L1 VIPT Data cache
vfp0 at cpu0: VFP11, rounding, exceptions
vfp0: mvfr: [0]=0x11111111 [1]=0
obio0 at mainbus0
bcmicu0 at obio0
bcmmbox0 at obio0: VC mailbox
vcmbox0 at bcmmbox0
bcmtmr0 at obio0 intr 3: VC System Timer
vchiq0 at obio0 intr 66: BCM2835 VCHIQ
bcmpm0 at obio0: Power management, Reset and Watchdog controller
bcmdmac0 at obio0: DMA0 DMA2 DMA4 DMA5 DMA8 DMA9 DMA10
bcmrng0 at obio0: RNG
plcom0 at obio0 intr 57
plcom0: txfifo disabled
plcom0: console
genfb0 at obio0: switching to framebuffer console
genfb0: framebuffer at 0x1e402000, size 1920x1080, depth 32, stride 7680
wsdisplay0 at genfb0 kbdmux 1: console (default, vt100 emulation)
wsmux1: connecting to wsdisplay0
wsdisplay0: screen 1-3 added (default, vt100 emulation)
sdhc0 at obio0 intr 62: SDHC controller
sdhc0: interrupting on intr 62
dwctwo0 at obio0 intr 9: USB controller
bcmspi0 at obio0 intr 54: SPI
spi0 at bcmspi0: SPI bus
bsciic0 at obio0 intr 53: BSC0
iic0 at bsciic0: I2C bus
bsciic1 at obio0 intr 53: BSC1
iic1 at bsciic1: I2C bus
bcmgpio0 at obio0: GPIO [0...31]
gpio0 at bcmgpio0: 32 pins
bcmgpio1 at obio0: GPIO [32...53]
gpio1 at bcmgpio1: 22 pins
usb0 at dwctwo0: USB revision 2.0
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
timecounter: Timecounter "bcmtmr0" frequency 1000000 Hz quality 100
sdhc0: SD Host Specification 3.0, rev.153
sdhc0: using DMA transfer
sdmmc0 at sdhc0 slot 0
uhub0 at usb0: vendor 0x0000 DWC2 root hub, class 9/0, rev 2.00/1.00, addr 1
uhub0: 1 port with 1 removable, self powered
ld0 at sdmmc0: <0x02:0x544d:SD02G:0x41:0xaba35f2e:0x093>
ld0: 1876 MB, 952 cyl, 64 head, 63 sec, 512 bytes/sect x 3842048 sectors
ld0: 4-bit width, bus clock 50.000 MHz
uhub1 at uhub0 port 1: vendor 0x0424 product 0x9512, class 9/0, rev 2.00/2.00, addr 2
uhub1: multiple transaction translators
uhub1: 3 ports with 2 removable, self powered
usmsc0 at uhub1 port 1
usmsc0: vendor 0x0424 product 0xec00, rev 2.00/2.00, addr 3
usmsc0:  Ethernet address b8:27:eb:ba:d4:31
ukphy0 at usmsc0 phy 1: OUI 0x00800f, model 0x000c, rev. 3
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
umidi_search_quirk: v=5964, p=20742, i=0
umass0 at uhub1 port 2 configuration 1 interface 0
umass0: StoreJet Transcend StoreJet Transcend, rev 2.10/80.00, addr 4
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
sd0 at scsibus0 target 0 lun 0: <StoreJet, Transcend, 0> disk fixed
sd0: 931 GB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 1953525168 sectors
umidi_search_quirk: v=1367, p=8737, i=0
uhidev0 at uhub1 port 3 configuration 1 interface 0
uhidev0: ATEN UC-10KM V1.3.124, rev 1.10/1.00, addr 5, iclass 3/1
ukbd0 at uhidev0: 8 modifier keys, 6 key codes
wskbd0 at ukbd0: console keyboard, using wsdisplay0
umidi_search_quirk: v=1367, p=8737, i=1
uhidev1 at uhub1 port 3 configuration 1 interface 1
uhidev1: ATEN UC-10KM V1.3.124, rev 1.10/1.00, addr 5, iclass 3/1
ums0 at uhidev1: 5 buttons and Z dir
wsmouse0 at ums0 mux 0
boot device: sd0
root on sd0a dumps on sd0b
/: replaying log to memory
root file system type: ffs
vchiq: local ver 6 (min 3), remote ver 6.
vcaudio0 at vchiq0: auds
WARNING: no TOD clock present
WARNING: using filesystem time
WARNING: CHECK AND RESET THE DATE!
audio0 at vcaudio0: half duplex, playback, capture, independent
/: replaying log to disk
wsdisplay0: screen 4 added (default, vt100 emulation)
/data: replaying log to disk







>Description:
System predictably hangs when subjected to both network and
disk load (like copying files via NFS). It may take from several minutes
to several hours, but it always happens:

dwctwo0: dwc2_hc_chhltd_intr_dma: Channel 0 - ChHltd set, but reason is unknown
dwctwo0: hcint 0x00000002, intsts 0x04400009
dwctwo0: dwc2_update_urb_state_abn(): trimming xfer length
usb_block_allocmem: in interrupt context, size 65536
usb_block_allocmem: in interrupt context, failed
dwctwo0: dwc2_assign_and_init_hc: Failed to allocate memory to handle non-dword 
aligned buffer
usb_block_allocmem: in interrupt context, size 65536
usb_block_allocmem: in interrupt context, failed
dwctwo0: dwc2_assign_and_init_hc: Failed to allocate memory to handle non-dword 
aligned buffer
usb_block_allocmem: in interrupt context, size 65536
usb_block_allocmem: in interrupt context, failed
dwctwo0: dwc2_assign_and_init_hc: Failed to allocate memory to handle non-dword 
aligned buffer
usb_block_allocmem: in interrupt context, size 65536
usb_block_allocmem: in interrupt context, failed
dwctwo0: dwc2_assign_and_init_hc: Failed to allocate memory to handle non-dword 
aligned buffer
usb_block_allocmem: in interrupt context, size 65536
usb_block_allocmem: in interrupt context, failed
dwctwo0: dwc2_assign_and_init_hc: Failed to allocate memory to handle non-dword 
aligned buffer
usb_block_allocmem: in interrupt context, size 65536
usb_block_allocmem: in interrupt context, failed
dwctwo0: dwc2_assign_and_init_hc: Failed to allocate memory to handle non-dword 
aligned buffer
usb_block_allocmem: in interrupt context, size 65536
usb_block_allocmem: in interrupt context, failed
dwctwo0: dwc2_assign_and_init_hc: Failed to allocate memory to handle non-dword 
aligned buffer
usb_block_allocmem: in interrupt context, size 65536
usb_block_allocmem: in interrupt context, failed
dwctwo0: dwc2_assign_and_init_hc: Failed to allocate memory to handle non-dword 
aligned buffer
usmsc0: warning: Failed to read register 0x114
usmsc0: warning: MII is busy
usmsc0: usb error on tx: TIMEOUT
usmsc0: warning: Failed to read register 0x114
usmsc0: warning: MII is busy
usmsc0: warning: Failed to read register 0x114
usmsc0: warning: MII is busy
usmsc0: usb error on tx: TIMEOUT
usmsc0: warning: Failed to read register 0x114
usmsc0: warning: MII is busy
usmsc0: warning: Failed to read register 0x114
usmsc0: warning: MII is busy
usmsc0: usb error on tx: TIMEOUT
umass0: BBB bulk-in clear stall failed, TIMEOUT
usmsc0: warning: Failed to read register 0x114
usmsc0: warning: MII is busy
...
and so on

It does not look to me like a hardware problem because:

HDD has it's power connected externally, not via the on board USB.

Power source is good, currently it's connected directly to ATX 5V power (not via USB ports). The problem was reproduced exactly with several different power supplies.

Raspbian Linux works weeks w/o any problems or USB related warning messages on the same hardware with the same wokload.

>How-To-Repeat:
1. Connect an external USB HDD to raspberry PI B rev 2 board. 
To prevent possible power related problems use a good power source,
the HDD must not be powered via the onboard USB. Connect the network port to 100Mb/sec switch.
2. Make FFS partition on the connected drive
3. Export via NFS some directory on the created filesystem
4. Copy something like 100 gigabytes of files to the exported 
directory. Expected throughput is about 5mb/sec, so it will take hours. 
5. Wait 


>Fix:



Home | Main Index | Thread Index | Old Index