2013/12/24 Kevin O'Connor kevin@koconnor.net:
On Sun, Dec 22, 2013 at 09:54:02PM -0500, Kevin O'Connor wrote:
On Fri, Dec 13, 2013 at 02:25:39PM -0500, Kevin O'Connor wrote:
On Fri, Dec 13, 2013 at 01:27:45PM -0500, Kevin O'Connor wrote:
01.342: xhci hcc=40050af hcs=4000440
I think this means that Context Size (CSZ) == 64 bytes and the controller isn't compatible with the seabios driver?
FYI, with the (incredibly ugly) patch below, I get a little further.
FYI, with the (incredibly ugly) patch from the previous mail and with a USB3 flash drive I seem to get slightly further.
FYI, it seems my USB3 controller really wants to see 64bit writes to pci registers. With the change below (on top of the other changes) I can now boot my e350m1 from a USB3 flash drive.
I'm still seeing failures on my keyboard/mouse though:
01.146: XHCI port #2: 0x00200a03, powered, enabled, pls 0, speed 2 [Low] 01.163: xhci_control: control xfer failed (cc 6)
and on my USB2 flash drive:
01.132: XHCI port #1: 0x00200e03, powered, enabled, pls 0, speed 3 [High] 01.163: xhci_update_pipe: reconf ctl endpoint pkt size: 8 -> 64 01.168: xhci_alloc_pipe: configure endpoint: failed (cc 17) 01.169: xhci_alloc_pipe: configure endpoint: failed (cc 17) 01.169: Unable to configure USB MSC device.
-Kevin
diff --git a/src/hw/usb-xhci.c b/src/hw/usb-xhci.c index dc98e5d..d0df6ee 100644 --- a/src/hw/usb-xhci.c +++ b/src/hw/usb-xhci.c @@ -379,6 +379,7 @@ static void xhci_process_events(struct usb_xhci_s *xhci) u32 addr = (u32)(&ir->erdp_low); u32 erdp = (u32)(evts->ring + nidx); pci_writel(addr, erdp);
}pci_writel((u32)(&ir->erdp_high), 0);
}
This is captured on my f2a85-m, with CONFIG_DEBUG_LEVEL=7:
SeaBIOS (version rel-1.7.4-0-g96917a8-dirty-20131224_014301-debian) init usb XHCI init on dev 00:10.0: regs @ 0xf01c8000, 4 ports, 32 slots XHCI extcap 0x1 @ f01c8500 XHCI protocol USB 3.00, 2 ports (offset 1) XHCI protocol USB 2.00, 2 ports (offset 3) configure_xhci: resetting xhci_hub_detect port #1: 0x000002a0, powered, pls 5, speed 0 [ - ] xhci_hub_detect port #2: 0x000002a0, powered, pls 5, speed 0 [ - ] xhci_hub_detect port #3: 0x000002a0, powered, pls 5, speed 0 [ - ] xhci_hub_detect port #4: 0x000002a0, powered, pls 5, speed 0 [ - ] XHCI no devices found XHCI init on dev 00:10.1: regs @ 0xf01ca000, 4 ports, 32 slots XHCI extcap 0x1 @ f01ca500 XHCI protocol USB 3.00, 2 ports (offset 1) XHCI protocol USB 2.00, 2 ports (offset 3) configure_xhci: resetting xhci_hub_detect port #1: 0x000002a0, powered, pls 5, speed 0 [ - ] xhci_hub_detect port #2: 0x000002a0, powered, pls 5, speed 0 [ - ] xhci_hub_detect port #3: 0x000202e1, powered, pls 7, speed 0 [ - ] xhci_hub_reset port #3: 0x000202e1, powered, pls 7, speed 0 [ - ] XHCI port #3: 0x00200a03, powered, enabled, pls 0, speed 2 [Low] set_address 0x000ee020 xhci_alloc_pipe: usbdev 0xbf102590, ring 0xbf11eb00, slotid 0, epid 1 xhci_cmd_enable_slot: xhci_trb_queue: ring 0xbf11ed00 [nidx 1, len 0] xhci_process_events: status change port #3 xhci_process_events: status change port #4 xhci_process_events: status change port #3 xhci_process_events: ring 0xbf11ed00 [trb 0xbf11ed00, evt 0xbf11ee00, type 33, eidx 1, cc 1] xhci_control: enable slot: got slotid 1 xhci_control: root port 3, route 0x0 xhci_cmd_address_device: slotid 1 xhci_trb_queue: ring 0xbf11ed00 [nidx 2, len 0] xhci_process_events: ring 0xbf11ed00 [trb 0xbf11ed10, evt 0xbf11ee00, type 33, eidx 2, cc 1] xhci_update_pipe: usbdev 0xbf102590, ring 0xbf11eb00, slotid 1, epid 1 config_usb: 0xbf11ec20 xhci_trb_queue: ring 0xbf11eb00 [nidx 1, len 8] xhci_trb_queue: ring 0xbf11eb00 [nidx 2, len 8] xhci_trb_queue: ring 0xbf11eb00 [nidx 3, len 0] xhci_xfer_kick: ring 0xbf11eb00, slotid 1, epid 1 WARNING - Timeout at xhci_event_wait:405! xhci_control: control xfer failed (cc -1) xhci_cmd_disable_slot: slotid 1 xhci_trb_queue: ring 0xbf11ed00 [nidx 3, len 0] xhci_process_events: ring 0xbf11ed00 [trb 0xbf11ed20, evt 0xbf11ee00, type 33, eidx 3, cc 1] xhci_hub_detect port #4: 0x000202e1, powered, pls 7, speed 0 [ - ] xhci_hub_reset port #4: 0x000202e1, powered, pls 7, speed 0 [ - ] XHCI port #4: 0x00200e03, powered, enabled, pls 0, speed 3 [High] set_address 0x000ee020 xhci_alloc_pipe: usbdev 0xbf102590, ring 0xbf11e900, slotid 0, epid 1 xhci_cmd_enable_slot: xhci_trb_queue: ring 0xbf11ed00 [nidx 4, len 0] xhci_process_events: status change port #4 xhci_process_events: ring 0xbf11ed00 [trb 0xbf11ed30, evt 0xbf11ee00, type 33, eidx 4, cc 1] xhci_control: enable slot: got slotid 1 xhci_control: root port 4, route 0x0 xhci_cmd_address_device: slotid 1 xhci_trb_queue: ring 0xbf11ed00 [nidx 5, len 0] xhci_process_events: ring 0xbf11ed00 [trb 0xbf11ed40, evt 0xbf11ee00, type 33, eidx 5, cc 1] xhci_update_pipe: usbdev 0xbf102590, ring 0xbf11e900, slotid 1, epid 1 config_usb: 0xbf11ea20 xhci_trb_queue: ring 0xbf11e900 [nidx 1, len 8] xhci_trb_queue: ring 0xbf11e900 [nidx 2, len 8] xhci_trb_queue: ring 0xbf11e900 [nidx 3, len 0] xhci_xfer_kick: ring 0xbf11e900, slotid 1, epid 1 xhci_process_events: ring 0xbf11e900 [trb 0xbf11e920, evt 0xbf11ea00, type 32, eidx 3, cc 6] xhci_control: control xfer failed (cc 6) xhci_cmd_disable_slot: slotid 1 xhci_trb_queue: ring 0xbf11ed00 [nidx 6, len 0] xhci_process_events: ring 0xbf11ed00 [trb 0xbf11ed50, evt 0xbf11ee00, type 33, eidx 6, cc 1] XHCI no devices found
An USB keyboard is attached to port #3 and some Kingston USB flash drive to port #4 - neither are responsive or show up in the boot menu.
Idwer