I'm seeing the USB system halt with:

Jun 13 21:36:13 qb132 kernel: ehci_interrupt: unrecoverable error,
controller halted

I hadn't seen this before on any of our systems until I installed the
hub_tt_hardening patch.

The flag set is EHCI_STS_HSE, meaning:

Host System Error  R/WC. The Host Controller sets this bit to 1 when a
serious error
occurs during a host system access involving the Host Controller module.  In
a PCI
system, conditions that set this bit to 1 include PCI Parity error, PCI
Master Abort, and
PCI Target Abort. When this error occurs, the Host Controller clears the
Run/Stop bit in
the Command register to prevent further execution of the scheduled TDs.


Can "PCI Target Abort" be caused by an invalid memory address?

That USB bus is busy. There are 3 hubs including the root and 5 devices on
that USB bus. 4 of the devices have active bulk read transactions, and one
is an audio devices with bidirectional isoc transactions.

Here's the complete register dump it prints:

Jun 13 21:36:13 qb132 kernel: ehci_interrupt: unrecoverable error,
controller halted
Jun 13 21:36:13 qb132 kernel: cmd=0x00010030
Jun 13 21:36:13 qb132 kernel: EHCI_CMD_ITC_1
Jun 13 21:36:13 qb132 kernel: EHCI_CMD_ASE
Jun 13 21:36:13 qb132 kernel: EHCI_CMD_PSE
Jun 13 21:36:13 qb132 kernel: sts=0x0000d000
Jun 13 21:36:13 qb132 kernel: EHCI_STS_ASS
Jun 13 21:36:13 qb132 kernel: EHCI_STS_PSS
Jun 13 21:36:13 qb132 kernel: EHCI_STS_HCH
Jun 13 21:36:13 qb132 kernel: ien=0x00000037
Jun 13 21:36:13 qb132 kernel: frindex=0x000013ac ctrdsegm=0x00000000
periodic=0x34113000 async=0xffffffe1
Jun 13 21:36:13 qb132 kernel: port 1 status=0x00001000
Jun 13 21:36:13 qb132 kernel: port 2 status=0x00001000
Jun 13 21:36:13 qb132 kernel: port 3 status=0x00001000
Jun 13 21:36:13 qb132 kernel: port 4 status=0x00001000
Jun 13 21:36:13 qb132 kernel: port 5 status=0x00001000
Jun 13 21:36:13 qb132 kernel: port 6 status=0x00001005
Jun 13 21:36:13 qb132 kernel: port 7 status=0x00001000
Jun 13 21:36:13 qb132 kernel: port 8 status=0x00001000
Jun 13 21:36:13 qb132 kernel: ehci_dump_isoc: isochronous dump from frame
0x075:
Jun 13 21:36:13 qb132 kernel: ITD(0xc5657180) at 0x25e57180
Jun 13 21:36:13 qb132 kernel: next=0x0846e904
Jun 13 21:36:13 qb132 kernel: status[0]=0x00000220; <>
Jun 13 21:36:13 qb132 kernel: status[1]=0x00000e20; <>
Jun 13 21:36:13 qb132 kernel: status[2]=0x00001a20; <>
Jun 13 21:36:13 qb132 kernel: status[3]=0x00002620; <>
Jun 13 21:36:13 qb132 kernel: status[4]=0x00003220; <>
Jun 13 21:36:13 qb132 kernel: status[5]=0x8c003e20; <ACTIVE>
Jun 13 21:36:13 qb132 kernel: status[6]=0x8c004a20; <ACTIVE>
Jun 13 21:36:13 qb132 kernel: status[7]=0x8c005620; <ACTIVE>
Jun 13 21:36:13 qb132 kernel: bp[0]=0x12c2d204
Jun 13 21:36:13 qb132 kernel: addr=0x04; endpt=0x2
Jun 13 21:36:13 qb132 kernel: bp[1]=0x12c2ec00
Jun 13 21:36:13 qb132 kernel: dir=in; mpl=0x400
Jun 13 21:36:13 qb132 kernel:
bp[2..6]=0x12c2f003,0x12c30000,0x12c31000,0x12c32000,0x12c33000
Jun 13 21:36:13 qb132 kernel:
bp_hi=0x00000000,0x00000000,0x00000000,0x00000000,
Jun 13 21:36:13 qb132 kernel: 0x00000000,0x00000000,0x00000000
Jun 13 21:36:13 qb132 kernel: ITD(0xc446b700) at 0x0846b700
Jun 13 21:36:13 qb132 kernel: next=0x25e57180
Jun 13 21:36:13 qb132 kernel: status[0]=0x00000000; <>
Jun 13 21:36:13 qb132 kernel: status[1]=0x00000000; <>
Jun 13 21:36:13 qb132 kernel: status[2]=0x00000000; <>
Jun 13 21:36:13 qb132 kernel: status[3]=0x00000000; <>
Jun 13 21:36:13 qb132 kernel: status[4]=0x00000000; <>
Jun 13 21:36:13 qb132 kernel: status[5]=0x00000000; <>
Jun 13 21:36:13 qb132 kernel: status[6]=0x00000000; <>
Jun 13 21:36:13 qb132 kernel: status[7]=0x00000000; <>
Jun 13 21:36:13 qb132 kernel: bp[0]=0x00000000
Jun 13 21:36:13 qb132 kernel: addr=0x00; endpt=0x0
Jun 13 21:36:13 qb132 kernel: bp[1]=0x00000000
Jun 13 21:36:13 qb132 kernel: dir=out; mpl=0x00
Jun 13 21:36:13 qb132 kernel:
bp[2..6]=0x00000000,0x00000000,0x00000000,0x00000000,0x00000000
Jun 13 21:36:13 qb132 kernel:
bp_hi=0x00000000,0x00000000,0x00000000,0x00000000,
Jun 13 21:36:13 qb132 kernel: 0x00000000,0x00000000,0x00000000
Jun 13 21:36:13 qb132 kernel: SITD(0xc446e900) at 0x0846e900
Jun 13 21:36:13 qb132 kernel: next=0x08462e02
Jun 13 21:36:13 qb132 kernel: portaddr=0x00000000 dir=out addr=0 endpt=0x0
port=0x0 huba=0x0
Jun 13 21:36:13 qb132 kernel: mask=0x00000000
Jun 13 21:36:13 qb132 kernel: status=0x00000000 <> len=0x0
Jun 13 21:36:13 qb132 kernel: back=0x00000001,
bp=0x00000000,0x00000000,0x00000000,0x00000000
Jun 13 21:36:13 qb132 kernel: ehci_interrupt: blocking interrupts 0x10


-- 
Trevor Blackwell    tre...@anybots.com    650 776 7870
_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to