<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/MdeModulePkg/Bus, branch dependabot/github_actions/actions/setup-python-7</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-python-7</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-python-7'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2026-07-22T07:25:57+00:00</updated>
<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/PciBusDxe: Honor SpecificFlag for PMem64 in UpdatePciInfo</title>
<updated>2026-07-17T09:03:00+00:00</updated>
<author>
<name>Phil Noh</name>
<email>Phil.Noh@amd.com</email>
</author>
<published>2026-06-25T20:41:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=c70637de12e0d5cee78ebf5a0b5d09cdb1db53c9'/>
<id>urn:sha1:c70637de12e0d5cee78ebf5a0b5d09cdb1db53c9</id>
<content type='text'>
When UpdatePciInfo() downgrades a PciBarTypePMem64 BAR to a 32-bit type
via EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL, it unconditionally
assigns PciBarTypePMem32 regardless of SpecificFlag, placing the BAR in
the prefetchable bridge window even when the platform intended the
non-prefetchable window.

The ACPI resource descriptor's SpecificFlag field encodes the intended
prefetchability of the constrained resource, using the bit:
EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE.

Fix this by checking the bit in SpecificFlag to select PciBarTypePMem32 or
PciBarTypeMem32, consistent with DumpPpbPaddingResource() in
PciEnumeratorSupport.c that uses the bit as the sole discriminator
between the two 32-bit BAR types.

Signed-off-by: Phil Noh &lt;Phil.Noh@amd.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Fix incorrect EfiPciWidth* enum literals</title>
<updated>2026-07-14T00:06:22+00:00</updated>
<author>
<name>Mingjie Shen</name>
<email>shen497@purdue.edu</email>
</author>
<published>2026-07-08T01:01:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=049dc848c4b94b9eb003eb744ccfd519104bbefb'/>
<id>urn:sha1:049dc848c4b94b9eb003eb744ccfd519104bbefb</id>
<content type='text'>
In arguments of EFI_PCI_IO_PROTOCOL member functions, replace the
EfiPciWidth* enum literals from
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH with the matching
EfiPciIoWidth* values from EFI_PCI_IO_PROTOCOL_WIDTH.

This keeps the call sites aligned with the protocol they actually use.
The old values were copied from EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL code,
so they obscured the intent of the calls and relied on an explicit
cast.

This mimics commit 8ba64a9a9417 ("UefiPayloadPkg: Fix build failure with
CLANGPDB").

Generated by coccinelle script.

``` smpl
@initialize:python@
@@

def to_pci_io_width(name):
    return name.replace("EfiPciWidth", "EfiPciIoWidth", 1)

@normalize@
typedef EFI_PCI_IO_PROTOCOL;
typedef EDKII_PCI_DEVICE_PPI;
type T =~ "^EFI_PCI_IO_PROTOCOL_WIDTH$";
EFI_PCI_IO_PROTOCOL *x;
EDKII_PCI_DEVICE_PPI *y;
identifier bad =~ "EfiPciWidth(Uint|FifoUint|FillUint)(8|16|32|64)";
identifier top_op =~ "^(PollMem|PollIo|CopyMem)$";
identifier space =~ "^(Mem|Io|Pci)$";
identifier rw =~ "^(Read|Write)$";
fresh identifier good = script:python(bad) { to_pci_io_width(bad) };
expression first;
expression list rest;
@@
(
  x-&gt;top_op
|
  y-&gt;PciIo.top_op
|
  x-&gt;space.rw
|
  y-&gt;PciIo.space.rw
) (
  first,
- (T)bad
+ good
  ,
  rest
  )
```

Verified with:
- `build -p MdeModulePkg/MdeModulePkg.dsc -m MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf -a IA32 -b DEBUG -t GCC`
- `build -p MdeModulePkg/MdeModulePkg.dsc -m MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf -a X64 -b DEBUG -t GCC`

Signed-off-by: Mingjie Shen &lt;shen497@purdue.edu&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/PciBusDxe: Fix Mem64 BAR handling in IsPciDeviceRejected()</title>
<updated>2026-06-29T02:25:40+00:00</updated>
<author>
<name>Jiaqing Zhao</name>
<email>Zhao.Jiaqing@amd.com</email>
</author>
<published>2026-06-18T08:27:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=e3e93cf092974c5a27ea7e2f63affc1b52db0106'/>
<id>urn:sha1:e3e93cf092974c5a27ea7e2f63affc1b52db0106</id>
<content type='text'>
IsPciDeviceRejected() masks BAR value with 0xFFFFFFF0 before testing
the type bits (2:1) that mark a 64-bit memory BAR, essentially clears
them, making the 64-bit BAR code path unreachable and treated as if
it were 32-bit.

The function rejects a device when BAR looks unprogrammed by comparing
if its size mask equals its value. When a 64-bit BAR is mistaken for a
32-bit one, only its lower part is compared, possibly leading a valid
BAR being falsely rejected. For example, a 2G BAR with size mask
0x80000000 at 0x180000000 matches and the device is dropped.

This code runs during light enumeration (PciEnumeratorLight), used when
PCI resources are already assigned by the platform (e.g. Xen HVM, where
hvmloader programs the BARs). The rejected device never receives a
PciIo handle, so no driver can bind to it. For example, a virtio-vga
with a 64-bit BAR vanishes under OVMF on Xen, leaving the guest with
no graphics output.

Fix by testing the type bits on the raw BAR value before masking.

Signed-off-by: Jiaqing Zhao &lt;Zhao.Jiaqing@amd.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Follow pragma once coding convention</title>
<updated>2026-06-25T19:40:31+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2026-06-18T15:58:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=16b41f7d023d4977b8ae828da814fe3d6a125200'/>
<id>urn:sha1:16b41f7d023d4977b8ae828da814fe3d6a125200</id>
<content type='text'>
Update recent changes in MdeModulePkg to follow the latest EDK II
C Coding Standards Specification (5.3) to use '#pragma once' instead
of traditional macro-based include guards in header files.

https://tianocore-docs.github.io/edk2-CCodingStandardsSpecification/draft/5_source_files/53_include_files.html#53-include-files

Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: CxlDxe: Fix IA32 Build Break</title>
<updated>2026-06-25T15:15:38+00:00</updated>
<author>
<name>Oliver Smith-Denny</name>
<email>osde@microsoft.com</email>
</author>
<published>2026-06-18T17:46:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=a5fcc0a6ac0acd67c65a5fb2c3b91806251791a5'/>
<id>urn:sha1:a5fcc0a6ac0acd67c65a5fb2c3b91806251791a5</id>
<content type='text'>
CxlDxe is currently compiled as part of the MdeModulePkg
IA32 CI. When running CI with VS2022 version 14.44.35228.0,
the CI build fails with:

CxlDxe.lib(CxlDxe.obj) : unresolved external symbol __allmul
CxlDxe(CxlDxe.obj) : unresolved external symbol __allshl

CxlDxe is not intended to run on IA32 DXE systems, as such
systems are legacy, but until edk2 drops build support for
IA32 DXE (or at least CI for it), the build needs to work.

This fixes the 64 bit multiplication/shifting that occurs
in CxlDxe to use the BaseLib functions that avoid the
compiler intrinsics.

Signed-off-by: Oliver Smith-Denny &lt;osde@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/PciBusDxe: Scan funcs when func 0 is absent</title>
<updated>2026-06-25T13:09:52+00:00</updated>
<author>
<name>Dongyan Qian</name>
<email>qiandongyan@loongson.cn</email>
</author>
<published>2026-05-13T07:54:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=5ac1b95b3e630b05a51d2037106c2774a5cf7370'/>
<id>urn:sha1:5ac1b95b3e630b05a51d2037106c2774a5cf7370</id>
<content type='text'>
The PCI specification normally requires function 0 to be present
before functions 1 through 7 are used. PciBusDxe therefore stops
scanning a slot when probing function 0 fails.

Some virtualized PCI topologies may expose selected non-zero functions
to a guest while function 0 is hidden. Add an opt-in Feature PCD so a
platform can continue collecting device information for functions 1
through 7 when function 0 is absent.

The default remains FALSE, so existing platform behavior is unchanged
unless the platform explicitly enables the PCD.

Signed-off-by: Dongyan Qian &lt;qiandongyan@loongson.cn&gt;
</content>
</entry>
</feed>
