<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/MdeModulePkg/Bus/Usb, branch master</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2026-09-21T06:06:06+00:00</updated>
<entry>
<title>MdeModulePkg/UsbBusDxe: Raise TPL to CALLBACK for wanted UsbIo connect</title>
<updated>2026-09-21T06:06:06+00:00</updated>
<author>
<name>Marlboro_Chuang</name>
<email>Marlboro_Chuang@dell.com</email>
</author>
<published>2025-07-27T08:35:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=2ba169b02f7eebb34816c2d02a1cd9f92a524b1a'/>
<id>urn:sha1:2ba169b02f7eebb34816c2d02a1cd9f92a524b1a</id>
<content type='text'>
Raise TPL to TPL_CALLBACK around the ConnectController() call in
UsbBusRecursivelyConnectWantedUsbIo() and restore the original TPL
afterward.

UsbBusRecursivelyConnectWantedUsbIo() is normally reached through the
DriverBinding Start routine invoked by gBS-&gt;ConnectController(), which
runs at TPL_APPLICATION. While the wanted UsbIo handle is being
connected, the USB device can be removed. The device removal polling
event in UsbBus runs at TPL_CALLBACK. If the connect runs at
TPL_APPLICATION, that event can preempt the connection and cause
commands to be sent to a stale or non-existent USB device address,
producing a lot of timeout transfers.

This differs from UsbConnectDriver(), which is called from the
enumeration polling event (XHCI async event) and is usually already
at TPL_CALLBACK or TPL_NOTIFY. That function uses RestoreTPL()/
RaiseTPL() to ensure ConnectController() runs at TPL_CALLBACK.

Signed-off-by: Marlboro_Chuang &lt;marlboro.chuang@dell.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/UsbBusDxe: Handle a quirk in Interface descriptor</title>
<updated>2026-09-21T04:54:36+00:00</updated>
<author>
<name>Marlboro_Chuang</name>
<email>Marlboro_Chuang@dell.com</email>
</author>
<published>2025-07-27T10:39:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=82138022d2c283b6bbddb1cc575e2d2f8e66f779'/>
<id>urn:sha1:82138022d2c283b6bbddb1cc575e2d2f8e66f779</id>
<content type='text'>
Some specific device requires a quirk in the Interface descriptor for
InterfaceNumber to work properly

[Suggested Solution]
Implement the mechanism to ensure the first InterfaceNumber not equal
to zero.

Signed-off-by: Marlboro_Chuang &lt;marlboro.chuang@dell.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/UsbBusDxe: Fix UsbPortReset might run into recursive loop</title>
<updated>2026-07-31T10:54:54+00:00</updated>
<author>
<name>Jared Pan</name>
<email>jared.pan@dell.com</email>
</author>
<published>2026-06-23T03:09:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=7c2ec06a93ef36396db6f46f983a94d2aa26acdb'/>
<id>urn:sha1:7c2ec06a93ef36396db6f46f983a94d2aa26acdb</id>
<content type='text'>
UsbSelectConfig will introduce the UsbConnectDriver call.
If this UsbPortReset is happened in the Usb device driver Start() routine and the device FW can not be recovered by PortReset, the UsbSelectConfig will introduce the recursive loop.

[Suggested solution]
Since UsbPortReset should not change the Bus Topology, the Reset flow should only SetAddress and reconfigure the device.

Signed-off-by: Marlboro Chuang &lt;marlboro.chuang@dell.com&gt;
Signed-off-by: Jared Pan &lt;jared.pan@dell.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/UsbBusDxe: BOS Descriptor Check for SS Devices</title>
<updated>2026-07-22T07:25:57+00:00</updated>
<author>
<name>Jared Pan</name>
<email>jared.pan@dell.com</email>
</author>
<published>2026-07-13T08:10:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=4d5f8e68a1e9baec74c8bd73c0dd09a596c1c3f9'/>
<id>urn:sha1:4d5f8e68a1e9baec74c8bd73c0dd09a596c1c3f9</id>
<content type='text'>
Some SuperSpeed-capable devices may fall back to High-Speed
mode and cause subsequent commands to fail.

[Suggested Solution]
Check the BOS descriptor to verify SuperSpeed support and
trigger a port reset if needed to re-enumerate the device
properly.

Signed-off-by: Marlboro Chuang &lt;marlboro.chuang@dell.com&gt;
Signed-off-by: Jared Pan &lt;jared.pan@dell.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/UsbBusPei: Use dynamic buffer for USB configuration data</title>
<updated>2026-07-21T03:50:20+00:00</updated>
<author>
<name>DC-Damien</name>
<email>damien.chen@dell.com</email>
</author>
<published>2026-06-05T08:29:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=6a9c048ba54c7e27898b861410741f5b27bfb2d6'/>
<id>urn:sha1:6a9c048ba54c7e27898b861410741f5b27bfb2d6</id>
<content type='text'>
USB devices whose configuration descriptor TotalLength exceeds 1024
bytes (e.g. IR cameras with large descriptor tables) previously hit
an EFI_DEVICE_ERROR hard-limit and failed to enumerate in PEI.

Replace the fixed array with a UINT8 * pointer and dynamically
allocate the exact amount of memory required via
PeiServicesAllocatePool() after the TotalLength is learned from the
initial 4-byte descriptor probe.

Signed-off-by: Damien Chen &lt;damien.chen@dell.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/UsbBusDxe: Manufacturer String Descriptor Caching</title>
<updated>2026-06-30T11:47:34+00:00</updated>
<author>
<name>Jared Pan</name>
<email>jared.pan@dell.com</email>
</author>
<published>2026-06-23T03:43:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=8c0dea946f5187016fc79e723275f9c94024d725'/>
<id>urn:sha1:8c0dea946f5187016fc79e723275f9c94024d725</id>
<content type='text'>
Certain devices require immediate follow-up commands
after reading the LANGID string to fetch Manufacturer,
Product, or SerialNumber strings.

[Suggested Solution]
These strings are now cached after initial retrieval
to allow UsbIoGetStringDescriptor() to return them
directly, improving efficiency and stability.

Signed-off-by: Marlboro Chuang &lt;marlboro.chuang@dell.com&gt;
Signed-off-by: Jared Pan &lt;jared.pan@dell.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/UsbBusDxe: Improve USB enumerating process</title>
<updated>2026-06-30T10:35:12+00:00</updated>
<author>
<name>Jared Pan</name>
<email>jared.pan@dell.com</email>
</author>
<published>2026-06-23T02:36:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=23ebccb46c5c9e594fe777fef9ede4de2e4b584d'/>
<id>urn:sha1:23ebccb46c5c9e594fe777fef9ede4de2e4b584d</id>
<content type='text'>
The patch enhances the USB enumeration process in EDK2 to improve compatibility with non-standards-compliant devices that may fail during standard enumeration sequences.
The suggested solution is based on USB specifications and references implementations from both Linux and Windows environments.

[Suggested solution]
- Integrated a retry mechanism to sequentially execute enumeration scripts, inspired by the enumeration flows of Windows, Linux, and EDK2. This improves robustness when handling corner-case devices.
- Do sanity check while the device report the device descriptor.
- AMD XHCI might need to wait for more time while sending the CLEAR_FEATURE reuqest.

Signed-off-by: Marlboro Chuang &lt;marlboro.chuang@dell.com&gt;
Signed-off-by: Jared Pan &lt;jared.pan@dell.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: UsbNetwork: Fix uninitialized variable warnings</title>
<updated>2026-06-24T14:49:50+00:00</updated>
<author>
<name>Tuan Phan</name>
<email>tuan.phan@oss.qualcomm.com</email>
</author>
<published>2026-01-24T04:20:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=55834be5d1ee44d9e8a8d885d55b889ecc422d0d'/>
<id>urn:sha1:55834be5d1ee44d9e8a8d885d55b889ecc422d0d</id>
<content type='text'>
In NetworkCommonDriverStart(), if gPxe is not NULL, TmpPxePointer should
be initialized as it is referenced later in the clean up code.

Signed-off-by: Tuan Phan &lt;tuan.phan@oss.qualcomm.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Remove Depex section in UEFI_DRIVER and UEFI_APPLICATION</title>
<updated>2026-06-09T05:51:07+00:00</updated>
<author>
<name>Qihang Gao</name>
<email>gaoqihang@loongson.cn</email>
</author>
<published>2026-03-23T08:34:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=84a180f8aaa88fa6ae6802f9bf73f4ccd4b0ac91'/>
<id>urn:sha1:84a180f8aaa88fa6ae6802f9bf73f4ccd4b0ac91</id>
<content type='text'>
According to INF specification, UEFI_DRIVER and UEFI_APPLICATION
cannot have Depex section. So remove it.

Signed-off-by: Qihang Gao &lt;gaoqihang@loongson.cn&gt;
</content>
</entry>
<entry>
<title>MdePkg,MdeModulePkg: Fix Spelling Errors in Atapi Definitions</title>
<updated>2026-05-08T02:15:34+00:00</updated>
<author>
<name>Oliver Smith-Denny</name>
<email>osde@microsoft.com</email>
</author>
<published>2026-04-13T16:55:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=7c440a7a2b5518bdbf6e6015b66fdc7ed8f066c3'/>
<id>urn:sha1:7c440a7a2b5518bdbf6e6015b66fdc7ed8f066c3</id>
<content type='text'>
Fix spelling errors in definitions in Atapi.h.
Update consumers in MdeModulePkg.

Continuous-integration-options: PatchCheck.ignore-multi-package

Signed-off-by: Oliver Smith-Denny &lt;osde@microsoft.com&gt;
</content>
</entry>
</feed>
