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

Kevin O'Connor kevin at koconnor.net
Mon Dec 23 03:54:02 CET 2013


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.

-Kevin


01.350: Start bios (version rel-1.7.3-137-g477a8ef-dirty-20131222_214354-morn.localdomain)
01.355: /c7fa2000\ Start thread
01.355: |c7fa2000| init usb
01.355: |c7fa2000| _malloc zone=0xc7fafed7 size=108 align=10 ret=0x000eda50 (detail=0xc7fa3a60)
01.355: |c7fa2000| XHCI init on dev 04:00.0: regs @ 0xf0000000, 4 ports, 64 slots
01.355: |c7fa2000| XHCI    extcap 0x1 @ f0001000
01.355: |c7fa2000| XHCI    protocol USB  2.00, 2 ports (offset 1)
01.355: |c7fa2000| XHCI    protocol USB  3.00, 2 ports (offset 3)
01.355: |c7fa2000| _malloc zone=0xc7fafec7 size=4096 align=1000 ret=0xc7fa1000 (detail=0xc7fa3a30)
01.455: |c7fa2000| _malloc zone=0xc7fafec7 size=32 align=10 ret=0xc7fa3890 (detail=0xc7fa38b0)
01.455: |c7fa2000| EHCI init on dev 00:12.2 (regs=0xf014b420)
01.455: |c7fa2000| _malloc zone=0xc7fafec7 size=4096 align=1000 ret=0xc7f9f000 (detail=0xc7fa3860)
01.456: |c7fa2000| _malloc zone=0xc7fafec7 size=32 align=10 ret=0xc7fa3450 (detail=0xc7fa3470)
01.456: |c7fa2000| EHCI init on dev 00:13.2 (regs=0xf014b520)
01.456: |c7fa2000| _malloc zone=0xc7fafec7 size=4096 align=1000 ret=0xc7f9b000 (detail=0xc7fa3420)
01.456: /c7f99000\ Start thread
01.456: |c7f99000| xhci_hub_detect port #4: 0x00021203, powered, enabled, pls 0, speed 4 [Super]
01.456: |c7f99000| XHCI port #4: 0x00021203, powered, enabled, pls 0, speed 4 [Super]
01.456: |c7f99000| set_address 0x000eda50
01.456: |c7f99000| _malloc zone=0xc7fafed3 size=316 align=100 ret=0xc7fbf800 (detail=0xc7fa0ea0)
01.456: |c7f99000| _malloc zone=0xc7fafed7 size=4180 align=40 ret=0x000ec080 (detail=0xc7fa0e70)
01.456: |c7f99000| xhci_alloc_pipe: usbdev 0xc7fa0f00, ring 0xc7fbf800, slotid 0, epid 1
01.456: |c7f99000| xhci_cmd_enable_slot:
01.457: |c7f99000| xhci_trb_queue: ring 0xc7fbfc00 [nidx 1, len 0]
01.457: |c7f99000| xhci_process_events: status change port #4
01.457: |c7f99000| xhci_process_events: ring 0xc7fbfc00 [trb 0xc7fbfc00, evt 0xc7fbfd00, type 33, eidx 1, cc 1]
01.457: |c7f99000| xhci_control: enable slot: got slotid 1
01.457: |c7f99000| xhci_control: root port 4, route 0x0
01.457: |c7f99000| xhci_cmd_address_device: slotid 1
01.457: |c7f99000| xhci_trb_queue: ring 0xc7fbfc00 [nidx 2, len 0]
01.457: |c7f99000| xhci_process_events: ring 0xc7fbfc00 [trb 0xc7fbfc10, evt 0xc7fbfd00, type 33, eidx 2, cc 1]
01.457: |c7f99000| xhci_update_pipe: usbdev 0xc7fa0f00, ring 0xc7fbf800, slotid 1, epid 1
01.457: |c7f99000| config_usb: 0xc7fbf920
01.457: |c7f99000| xhci_trb_queue: ring 0xc7fbf800 [nidx 1, len 8]
01.457: |c7f99000| xhci_trb_queue: ring 0xc7fbf800 [nidx 2, len 8]
01.457: |c7f99000| xhci_trb_queue: ring 0xc7fbf800 [nidx 3, len 0]
01.457: |c7f99000| xhci_xfer_kick: ring 0xc7fbf800, slotid 1, epid 1
01.458: |c7f99000| xhci_process_events: ring 0xc7fbf800 [trb 0xc7fbf820, evt 0xc7fbf900, type 32, eidx 3, cc 1]
01.457: |c7f99000| device rev=0300 cls=00 sub=00 proto=00 size=09
01.457: |c7f99000| xhci_update_pipe: usbdev 0xc7fa0f00, ring 0xc7fbf800, slotid 1, epid 1
01.457: |c7f99000| xhci_update_pipe: reconf ctl endpoint pkt size: 8 -> 9
01.458: |c7f99000| xhci_cmd_evaluate_context: slotid 1, add 0x2, del 0x0
01.457: |c7f99000| xhci_trb_queue: ring 0xc7fbfc00 [nidx 3, len 0]
01.458: |c7f99000| xhci_process_events: ring 0xc7fbfc00 [trb 0xc7fbfc20, evt 0xc7fbfd00, type 33, eidx 3, cc 1]
01.458: |c7f99000| xhci_trb_queue: ring 0xc7fbf800 [nidx 4, len 8]
01.458: |c7f99000| xhci_trb_queue: ring 0xc7fbf800 [nidx 5, len 9]
01.458: |c7f99000| xhci_trb_queue: ring 0xc7fbf800 [nidx 6, len 0]
01.458: |c7f99000| xhci_xfer_kick: ring 0xc7fbf800, slotid 1, epid 1
01.459: |c7f99000| xhci_process_events: ring 0xc7fbf800 [trb 0xc7fbf850, evt 0xc7fbf900, type 32, eidx 6, cc 1]
01.459: |c7f99000| _malloc zone=0xc7fafec7 size=44 align=10 ret=0xc7fa3880 (detail=0xc7fa38b0)
01.459: |c7f99000| xhci_trb_queue: ring 0xc7fbf800 [nidx 7, len 8]
01.459: |c7f99000| xhci_trb_queue: ring 0xc7fbf800 [nidx 8, len 44]
01.459: |c7f99000| xhci_trb_queue: ring 0xc7fbf800 [nidx 9, len 0]
01.459: |c7f99000| xhci_xfer_kick: ring 0xc7fbf800, slotid 1, epid 1
01.460: |c7f99000| xhci_process_events: ring 0xc7fbf800 [trb 0xc7fbf880, evt 0xc7fbf900, type 32, eidx 9, cc 1]
01.460: |c7f99000| xhci_trb_queue: ring 0xc7fbf800 [nidx 10, len 8]
01.460: |c7f99000| xhci_trb_queue: ring 0xc7fbf800 [nidx 11, len 0]
01.460: |c7f99000| xhci_xfer_kick: ring 0xc7fbf800, slotid 1, epid 1
01.461: |c7f99000| xhci_process_events: ring 0xc7fbf800 [trb 0xc7fbf8a0, evt 0xc7fbf900, type 32, eidx 11, cc 1]
01.461: |c7f99000| _malloc zone=0xc7fafed7 size=316 align=100 ret=0x000ebf00 (detail=0xc7fa3290)
01.461: |c7f99000| xhci_alloc_pipe: usbdev 0xc7fa0f00, ring 0x000ebf00, slotid 1, epid 3
01.461: |c7f99000| xhci_cmd_configure_endpoint: slotid 1, add 0x9, del 0x0
01.461: |c7f99000| xhci_trb_queue: ring 0xc7fbfc00 [nidx 4, len 0]
01.462: |c7f99000| xhci_process_events: ring 0xc7fbfc00 [trb 0xc7fbfc30, evt 0xc7fbfd00, type 33, eidx 4, cc 1]
01.461: |c7f99000| _malloc zone=0xc7fafed7 size=316 align=100 ret=0x000ebd00 (detail=0xc7fa3a90)
01.462: |c7f99000| xhci_alloc_pipe: usbdev 0xc7fa0f00, ring 0x000ebd00, slotid 1, epid 4
01.462: |c7f99000| xhci_cmd_configure_endpoint: slotid 1, add 0x11, del 0x0
01.461: |c7f99000| xhci_trb_queue: ring 0xc7fbfc00 [nidx 5, len 0]
01.462: |c7f99000| xhci_process_events: ring 0xc7fbfc00 [trb 0xc7fbfc40, evt 0xc7fbfd00, type 33, eidx 5, cc 1]
01.462: |c7f99000| xhci_trb_queue: ring 0xc7fbf800 [nidx 12, len 8]
01.462: |c7f99000| xhci_trb_queue: ring 0xc7fbf800 [nidx 13, len 1]
01.462: |c7f99000| xhci_trb_queue: ring 0xc7fbf800 [nidx 14, len 0]
01.462: |c7f99000| xhci_xfer_kick: ring 0xc7fbf800, slotid 1, epid 1
01.463: |c7f99000| xhci_process_events: ring 0xc7fbf800 [trb 0xc7fbf8d0, evt 0xc7fbf900, type 32, eidx 14, cc 1]
01.463: |c7f99000| _malloc zone=0xc7fafecf size=48 align=10 ret=0x000f4c30 (detail=0xc7fa35e0)
01.463: |c7f99000| Searching bootorder for: /pci at i0cf8/pci-bridge at 15,2/usb at 0/storage at 4/*@0/*@0,0
01.463: |c7f99000| Searching bootorder for: /pci at i0cf8/pci-bridge at 15,2/usb at 0/usb-*@4
01.463: |c7f99000| xhci_trb_queue: ring 0x000ebd00 [nidx 1, len 31]
01.463: |c7f99000| xhci_xfer_kick: ring 0x000ebd00, slotid 1, epid 4
01.464: |c7f99000| xhci_process_events: ring 0x000ebd00 [trb 0x000ebd00, evt 0x000ebe00, type 32, eidx 1, cc 1]
01.464: |c7f99000| xhci_trb_queue: ring 0x000ebf00 [nidx 1, len 36]
01.464: |c7f99000| xhci_xfer_kick: ring 0x000ebf00, slotid 1, epid 3
01.465: |c7f99000| xhci_process_events: ring 0x000ebf00 [trb 0x000ebf00, evt 0x000ec000, type 32, eidx 1, cc 1]
01.465: |c7f99000| xhci_trb_queue: ring 0x000ebf00 [nidx 2, len 13]
01.465: |c7f99000| xhci_xfer_kick: ring 0x000ebf00, slotid 1, epid 3
01.465: |c7f99000| xhci_process_events: ring 0x000ebf00 [trb 0x000ebf10, evt 0x000ec000, type 32, eidx 2, cc 1]
01.465: |c7f99000| USB MSC vendor='ADATA' product='USB Flash Drive' rev='1.00' type=0 removable=1
01.465: |c7f99000| scsi_is_ready (drive=0x000f4c30)
01.465: |c7f99000| xhci_trb_queue: ring 0x000ebd00 [nidx 2, len 31]
01.465: |c7f99000| xhci_xfer_kick: ring 0x000ebd00, slotid 1, epid 4
01.466: |c7f99000| xhci_process_events: ring 0x000ebd00 [trb 0x000ebd10, evt 0x000ebe00, type 32, eidx 2, cc 1]
01.466: |c7f99000| xhci_process_events: unknown event, type 37, cc 21
01.466: |c7f99000| xhci_trb_queue: ring 0x000ebf00 [nidx 3, len 13]
01.466: |c7f99000| xhci_xfer_kick: ring 0x000ebf00, slotid 1, epid 3
02.040: |c7f99000| WARNING - Timeout at xhci_event_wait:405!
02.040: |c7f99000| xhci_send_bulk: bulk xfer failed (cc -1)
02.040: |c7f99000| USB transmission failed
02.040: |c7f99000| xhci_trb_queue: ring 0x000ebd00 [nidx 3, len 31]
02.040: |c7f99000| xhci_xfer_kick: ring 0x000ebd00, slotid 1, epid 4
03.040: |c7f99000| WARNING - Timeout at xhci_event_wait:405!
03.040: |c7f99000| xhci_send_bulk: bulk xfer failed (cc -1)
03.040: |c7f99000| USB transmission failed
03.040: |c7f99000| xhci_trb_queue: ring 0x000ebd00 [nidx 4, len 31]
03.040: |c7f99000| xhci_xfer_kick: ring 0x000ebd00, slotid 1, epid 4
04.040: |c7f99000| WARNING - Timeout at xhci_event_wait:405!
04.041: |c7f99000| xhci_send_bulk: bulk xfer failed (cc -1)
04.041: |c7f99000| USB transmission failed
04.041: |c7f99000| xhci_trb_queue: ring 0x000ebd00 [nidx 5, len 31]
04.041: |c7f99000| xhci_xfer_kick: ring 0x000ebd00, slotid 1, epid 4
05.041: |c7f99000| WARNING - Timeout at xhci_event_wait:405!
05.041: |c7f99000| xhci_send_bulk: bulk xfer failed (cc -1)
05.041: |c7f99000| USB transmission failed
05.041: |c7f99000| xhci_trb_queue: ring 0x000ebd00 [nidx 6, len 31]
05.041: |c7f99000| xhci_xfer_kick: ring 0x000ebd00, slotid 1, epid 4
06.041: |c7f99000| WARNING - Timeout at xhci_event_wait:405!
06.041: |c7f99000| xhci_send_bulk: bulk xfer failed (cc -1)
06.041: |c7f99000| USB transmission failed
06.041: |c7f99000| xhci_trb_queue: ring 0x000ebd00 [nidx 7, len 31]
06.041: |c7f99000| xhci_xfer_kick: ring 0x000ebd00, slotid 1, epid 4
07.041: |c7f99000| WARNING - Timeout at xhci_event_wait:405!
07.041: |c7f99000| xhci_send_bulk: bulk xfer failed (cc -1)
07.041: |c7f99000| USB transmission failed
07.041: |c7f99000| test unit ready failed
07.041: |c7f99000| scsi_is_ready returned -1
07.041: |c7f99000| Unable to configure USB MSC drive.
07.041: |c7f99000| _free 0x000f4c30 (detail=0xc7fa35e0)
07.041: |c7f99000| Unable to configure USB MSC device.
07.041: |c7f99000| _free 0xc7fa3880 (detail=0xc7fa38b0)
07.041: |c7f99000| xhci_cmd_disable_slot: slotid 1
07.041: |c7f99000| xhci_trb_queue: ring 0xc7fbfc00 [nidx 6, len 0]
08.041: |c7f99000| WARNING - Timeout at xhci_event_wait:405!
08.041: |c7f99000| _free 0xc7fa0f00 (detail=0xc7fa0f20)
08.042: \c7f99000/ End thread



More information about the SeaBIOS mailing list