Skip to content
Snippets Groups Projects
Commit 85eb961b authored by Michael Brown's avatar Michael Brown
Browse files

[xhci] Allow for permanent failure of the command mechanism


Some xHCI controllers (observed with the Thunderbolt ports on a
ThinkPad X1 Extreme Gen3 and a ThinkPad P53) seem to suffer a
catastrophic failure at the point that ExitBootServices() is called if
the IOMMU is enabled.  The symptoms appear to be consistent with
another UEFI driver (e.g. the IOMMU driver, or the Thunderbolt driver)
having torn down the DMA mappings, leaving the xHCI controller unable
to write to host memory.  The observable effect is that all commands
fail with a timeout, and attempts to abort command execution similarly
fail since the xHCI controller is unable to report the abort
completion.

Check for failure to abort a command, and respond by performing a full
device reset (as recommended by the xHCI specification) and by marking
the device as permanently failed.

Reported-by: default avatarAndreas Hammarskjöld <junior@2PintSoftware.com>
Signed-off-by: default avatarMichael Brown <mcb30@ipxe.org>
parent f24a2794
No related branches found
Tags 4.3.0
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment