[SeaBIOS] [PATCH] xhci: allocate scratch pad buffers

Kevin O'Connor kevin at koconnor.net
Fri Dec 13 05:11:55 CET 2013


On Mon, Dec 09, 2013 at 08:59:23AM +0100, Gerd Hoffmann wrote:
>   Hi,
> 
> > XHCI init on dev 00:10.1: regs @ 0xf014a000, 4 ports, 32 slots
> 
> What hardware is this?
> 
> > |bf0fe000| xhci_control: enable slot: got slotid 1
> 
> Enable slot worked.  Good.
> Was a problem before, but possibly on other hardware (other reporter).
> 
> > |bf0fe000| xhci_cmd_address_device: slotid 1
> > |bf0fe000| xhci_trb_queue: ring 0xbf11ed00 [nidx 2, len 0]
> > init megasas
> > |bf0fe000| xhci_process_events: ring 0xbf11ed00 [trb 0xbf11ed10, evt
> > 0xbf11ee00, type 33, eidx 2, cc 1]
> 
> Address device works too.
> 
> > |bf0fe000| xhci_update_pipe: usbdev 0xbf102170, ring 0xbf11e500,
> > slotid 1, epid 1
> > |bf0fe000| config_usb: 0xbf11e620
> > |bf0fe000| xhci_trb_queue: ring 0xbf11e500 [nidx 1, len 8]
> > |bf0fe000| xhci_trb_queue: ring 0xbf11e500 [nidx 2, len 8]
> > |bf0fe000| xhci_trb_queue: ring 0xbf11e500 [nidx 3, len 0]
> > |bf0fe000| xhci_xfer_kick: ring 0xbf11e500, slotid 1, epid 1
> 
> > |bf0fe000| WARNING - Timeout at xhci_event_wait:404!
> > |bf0fe000| xhci_control: control xfer failed (cc -1)
> 
> First control transfer times out.  Hmm.

FYI, I get a failure on my e350m1:

00.987: Start bios (version rel-1.7.3-126-g454d41b-dirty-20131212_221712-morn.localdomain)
[...]
00.992: XHCI init on dev 04:00.0: regs @ 0xf0100000, 4 ports, 64 slots
00.992: XHCI    extcap 0x1 @ f0101000
00.992: XHCI    protocol USB  2.00, 2 ports (offset 1)
00.992: XHCI    protocol USB  3.00, 2 ports (offset 3)
[...]
01.093: /c7fba000\ Start thread
01.093: |c7fba000| xhci_hub_detect port #2: 0x000202e1, powered, pls 7, speed 0 [ - ]
01.093: |c7fba000| xhci_hub_reset port #2: 0x000202e1, powered, pls 7, speed 0 [ - ]
01.093: |c7fba000| _free 0xc7fb6000 (detail=0xc7fb8aa0)
01.093: |c7fba000| XHCI port #2: 0x00200a03, powered, enabled, pls 0, speed 2 [Low]
01.093: |c7fba000| set_address 0x000ed9d0
01.093: |c7fba000| _malloc zone=0xc7fcfed3 handle=ffffffff size=316 align=100 ret=0xc7fde700 (detail=0xc7fb8ad0)
01.093: |c7fba000| _malloc zone=0xc7fcfed7 handle=ffffffff size=2100 align=40 ret=0x000ec7c0 (detail=0xc7fb8aa0)
01.093: |c7fba000| xhci_alloc_pipe: usbdev 0xc7fc3670, ring 0xc7fde700, slotid 0, epid 1
01.094: |c7fba000| _free 0xc7fb4000 (detail=0xc7fbffd0)
01.094: |c7fba000| xhci_cmd_enable_slot:
01.094: |c7fba000| xhci_trb_queue: ring 0xc7fde900 [nidx 1, len 0]
01.094: |c7fba000| xhci_process_events: status change port #2
01.094: |c7fba000| xhci_process_events: status change port #2
01.094: |c7fba000| xhci_process_events: ring 0xc7fde900 [trb 0xc7fde900, evt 0xc7fdea00, type 33, eidx 1, cc 1]
01.094: |c7fba000| xhci_control: enable slot: got slotid 1
01.094: |c7fba000| xhci_control: root port 2, route 0x0
01.094: |c7fba000| xhci_cmd_address_device: slotid 1
01.094: |c7fba000| xhci_trb_queue: ring 0xc7fde900 [nidx 2, len 0]
01.094: |c7fba000| xhci_process_events: ring 0xc7fde900 [trb 0xc7fde910, evt 0xc7fdea00, type 33, eidx 2, cc 17]
01.094: |c7fba000| xhci_control: address device: failed (cc 17)
01.094: |c7fba000| xhci_cmd_disable_slot: slotid 1
01.094: |c7fba000| xhci_trb_queue: ring 0xc7fde900 [nidx 3, len 0]
01.094: |c7fba000| xhci_process_events: ring 0xc7fde900 [trb 0xc7fde920, evt 0xc7fdea00, type 33, eidx 3, cc 1]
01.094: |c7fba000| _free 0xc7fc3670 (detail=0xc7fc3690)
01.094: \c7fba000/ End thread

I've also tried a high speed usb flash device and that fails in a
similar way.  I don't have any usb3 flash drives.

-Kevin



More information about the SeaBIOS mailing list