xhci: Allocate and free the xhci inctx structure on each use.

The inctx struct isn't long lived, so it doesn't need to be allocated
in permanent memory.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
xhci: Move set_address code from xhci_control to xhci_alloc_pipe.

It's easier to run the set_address from xhci_alloc_pipe as there is
more information available there.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
xhci: Eliminate 'struct xhci_device'.

Eliminate the xhci_device struct by storing the slotid in usbdevice_s
and in xhci_pipe.  The remaining storage in that struct (xhci_devctx)
is available from xhci->devs.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
xhci: Support xhci controllers with 64 byte contexts.

At least some real-world controllers require 64 byte contexts.  Detect
this case and handle it appropriately.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
xhci: Allow the XHCI USB controller to be enabled for coreboot.

Initial tests look promising and at least two different real-world
chipsets show limited functionality with the support enabled.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
xhci: Report the "protocol defined" and PSIC bits of extended capabilities.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
xhci: Add temporary debugging for USB configure command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>