coreboot-kgpe-d16/payloads/libpayload/drivers
Julius Werner 69eea7c01a libpayload: Split EHCI bulk transfers on packet boundaries over qTDs
EHCI controllers see transfers as a queue of transfer descriptors
(qTDs), each of which can represent an aligned area of up to 20KB. Each
qTD is processed separately, which means that a single USB packet cannot
span multiple qTDs.

While this should not be a problem according to the specification, some
USB storage devices seem to get confused when a packet in the middle of
a transfer is smaller than the maximum packet size (512 bytes) due to
falling on a qTD boundary. This patch aligns the total transfer length
per qTD to 512 bytes to avoid that problem (any excess bytes will simply
roll over to the next qTD).

Change-Id: I0b5db07507699a3861b30c1a5ee774c45dda7fdd
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: http://review.coreboot.org/2651
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
2013-03-13 23:08:11 +01:00
..
storage libpayload: Export device count in storage interface 2012-11-14 17:39:03 +01:00
usb libpayload: Split EHCI bulk transfers on packet boundaries over qTDs 2013-03-13 23:08:11 +01:00
video libpayload: If no video drivers initialize in video_init, return 1. 2013-03-13 23:06:14 +01:00
Makefile.inc libpayload: only compile drivers/serial.c on machines that use it. 2013-02-16 04:48:51 +01:00
cbmem_console.c libpayload: Fix license headers 2013-02-20 02:41:24 +01:00
hid.c make keyboard reset driver generic (not pc keyboard driver dependent) 2010-03-25 18:52:24 +00:00
keyboard.c libpayload: Fix handling of CAPS LOCK key on PS/2 keyboards 2011-11-10 17:51:53 +01:00
nvram.c Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
options.c libpayload: Fix lookup by label in CMOS layouts 2012-11-30 06:05:50 +01:00
pci.c [PATCH] libpayload: Fix the PCI search function 2008-10-20 16:52:06 +00:00
serial.c libpayload: If there's no IO address space, don't try to use it for serial 2013-03-13 23:05:06 +01:00
speaker.c Fix libpayload speaker driver 2011-10-27 10:49:41 +02:00