<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/MdeModulePkg/Bus, 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: Print unknown error code instead of asserting</title>
<updated>2026-09-02T17:34:24+00:00</updated>
<author>
<name>Chris Fernald</name>
<email>chfernal@microsoft.com</email>
</author>
<published>2026-07-22T16:36:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=2e53034f67fba2209468fdde33b6d0e0c24f767f'/>
<id>urn:sha1:2e53034f67fba2209468fdde33b6d0e0c24f767f</id>
<content type='text'>
DumpUicCmdExecResult &amp; DumpQueryResponseResult are called to dump the
result of UIC commands after a failure. Depending on the nature of the
failure, not all information may have been properly initialized. This is
already handled in callers with existing retry logic, but the assert in
the dump command can cause a crash in debug builds for due to hardware
race conditions on first attempt.

Signed-off-by: Chris Fernald &lt;chfernal@microsoft.com&gt;</content>
</entry>
<entry>
<title>MdeModulePkg: Fix unchecked return status</title>
<updated>2026-08-05T02:13:24+00:00</updated>
<author>
<name>Aaron Pop</name>
<email>aaronpop@microsoft.com</email>
</author>
<published>2025-10-22T18:33:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=0f0515f71ba3645823ae17638532099d1e5d5144'/>
<id>urn:sha1:0f0515f71ba3645823ae17638532099d1e5d5144</id>
<content type='text'>
https://github.com/github/codeql/blob/codeql-cli-2.7.3/csharp/ql/src/API%20Abuse/UncheckedReturnValue.qhelp

When a function has a return status, it should
be checked to verify the function completed successfully.

Failing to check the return status can result in null pointer
dereferences or use of uninitialized variables.

Signed-off-by: Aaron Pop &lt;aaronpop@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Fix missing NULL tests</title>
<updated>2026-08-05T02:13:24+00:00</updated>
<author>
<name>Aaron Pop</name>
<email>aaronpop@microsoft.com</email>
</author>
<published>2025-10-22T18:33:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=0bc1db4adfbdf0160a9c60eec18a23f3e282f4ab'/>
<id>urn:sha1:0bc1db4adfbdf0160a9c60eec18a23f3e282f4ab</id>
<content type='text'>
https://github.com/github/codeql/blob/codeql-cli-2.7.3/cpp/ql/src/Critical/MissingNullTest.qhelp

For items which allocate memory, or get a pointer from another
structure, it is important to validate that the pointers
are not null before they are dereferenced.

Signed-off-by: Aaron Pop &lt;aaronpop@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Fix comparison with wider widths</title>
<updated>2026-08-05T02:13:24+00:00</updated>
<author>
<name>Aaron Pop</name>
<email>aaronpop@microsoft.com</email>
</author>
<published>2025-10-22T18:33:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=bf0dc7d78701c93a2edeeadcb0daca58f4af91a6'/>
<id>urn:sha1:bf0dc7d78701c93a2edeeadcb0daca58f4af91a6</id>
<content type='text'>
https://codeql.github.com/codeql-query-help/cpp/cpp-comparison-with-wider-type

If the narrow type (smaller range) is compared against a wide type
(larger range), the narrow value may overflow before reaching the wide
value. This can cause unexpected behavior, such as:

Infinite loops (loop condition never becomes false).
Incorrect logic (comparison results are misleading).

Signed-off-by: Aaron Pop &lt;aaronpop@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/NvmExpressHci.c: Save time when BIOS reset with NVMes</title>
<updated>2026-08-01T03:58:29+00:00</updated>
<author>
<name>Theo</name>
<email>theo.tao@foxmail.com</email>
</author>
<published>2026-01-08T12:26:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=bc71cc972d5ea3cb38d4c454a68b02138b23c774'/>
<id>urn:sha1:bc71cc972d5ea3cb38d4c454a68b02138b23c774</id>
<content type='text'>
Dispatch Shutdown Notification to every NVMe first, then polling
every NVMe t omaake sure all NVMe's shutdown processing is
completed.This will help to save a lot time when BIOS trigger
reset for Servers whose have many NVMes. Tested on a platform
with AMD EPYC cpu with 26 NVMes, this method reduce reset time
from 3 minutes to 10 seconds.

Signed-off-by: Theo &lt;theo.tao@foxmail.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>
</feed>
