usb: xhci: Initialize scratchpad buffer array and scratchpad buffers
authorBin Meng <bmeng.cn@gmail.com>
Wed, 19 Jul 2017 13:49:55 +0000 (21:49 +0800)
committerMarek Vasut <marex@denx.de>
Fri, 28 Jul 2017 21:34:16 +0000 (23:34 +0200)
commit209b98de01d26ef199c887934cd025fdbd761d16
tree35ee1adbb9e467c1e15aa82cb86fbb82632df33d
parent43eb0d448867f9f3c7b02957a2196ac987840a17
usb: xhci: Initialize scratchpad buffer array and scratchpad buffers

The scratchpad buffer array is used to define the locations of
statically allocated memory pages that are available for the
private use of the xHC. The xHCI spec explicitly mentions that
system software shall allocate the scratchpad buffers before
placing the xHC in to Run mode (Run/Stop (R/S) = ‘1’), however
U-Boot is missing this part.

This causes xHC on Intel platform does not respond the very first
'enable slot' command that is given to xHC and the 'enable slot'
command completion event TRB is never generated and xHC seems to
hang forever.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
Tested-by: Stefan Roese <sr@denx.de>
drivers/usb/host/xhci-mem.c
drivers/usb/host/xhci.h