Exposing PCIE configuration spaces as ECAM compatible

US11971839B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11971839-B2
Application numberUS-202217869272-A
CountryUS
Kind codeB2
Filing dateJul 20, 2022
Priority dateJul 20, 2022
Publication dateApr 30, 2024
Grant dateApr 30, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Disclosed are various approaches for exposing peripheral component interconnect express (PCIe) configuration space implementations as Enhanced Configuration Access Mechanism (ECAM)-compatible. In some examples, a bridge device is identified on a segment corresponding to a root complex of a computing device. An endpoint device is connected to a bus downstream from the bridge device. A synthetic segment identifier is assigned to the bus once the endpoint device is identified as connected to the bus. Synthetic address data is generated for the endpoint device. The synthetic address data includes the synthetic segment identifier for the bus and sets a bus identifier of the bus to zero regardless of a hierarchical position of the bus in a standard peripheral component interconnect express (PCIe) bus hierarchy.

First claim

Opening claim text (preview).

Therefore, the following is claimed: 1. A non-transitory computer-readable medium comprising machine-readable instructions, wherein the instructions, when executed by at least one processor, cause a computing device to at least: identify, by firmware instructions executed by the at least one processor, that a bridge device is on a segment corresponding to a root complex of the computing device; detect, by the firmware instructions, that an endpoint device is connected to a bus downstream from the bridge device; assign, by the firmware instructions, a synthetic segment identifier to the bus based at least in part on the endpoint device being identified as connected to the bus; and generate, by the firmware instructions, synthetic address data that includes the synthetic segment identifier, and sets a bus identifier of the bus to zero regardless of a hierarchical position of the bus in a standard peripheral component interconnect express (PCIe) bus hierarchy. 2. The non-transitory computer-readable medium of claim 1 , wherein the instructions, when executed by the at least one processor, cause the computing device to at least: load, by the firmware instructions, ACPI data into a memory of the computing device, the ACPI data comprising at least a portion of the synthetic address data. 3. The non-transitory computer-readable medium of claim 2 , wherein the instructions, when executed by the at least one processor, cause the computing device to at least: access, by an operating system, the endpoint device based at least in part on the ACPI data comprising the at least the portion of the synthetic address data. 4. The non-transitory computer-readable medium of claim 2 , wherein the instructions, when executed by the at least one processor, cause the computing device to at least: mark, by the firmware instructions, the bridge device as disabled in the ACPI data. 5. The non-transitory computer-readable medium of claim 1 , wherein the instructions, when executed by the at least one processor, cause the computing device to at least: identify, by the firmware instructions, a filtering problem or a minimum granule size problem that causes a function of the endpoint device to errantly respond to a nonzero device identifier. 6. The non-transitory computer-readable medium of claim 5 , wherein the instructions, when executed by the at least one processor, cause the computing device to at least: add, by the firmware instructions, 0x8000 to a base address corresponding to the synthetic segment identifier. 7. The non-transitory computer-readable medium of claim 6 , wherein the instructions, when executed by the at least one processor, cause the computing device to at least: generate, by the firmware instructions, an input output remapping table that indicates a predetermined instruction that handles functions corresponding to a synthetic segment base address modification comprising the 0x8000 added to the base address. 8. A system, comprising: a computing device comprising at least one processor; and at least one memory comprising machine-readable instructions, wherein the instructions, when executed by the at least one processor, cause the computing device to at least: identify, by firmware instructions executed by the at least one processor, that a bridge device is on a segment corresponding to a root complex of the computing device; detect, by the firmware instructions, that an endpoint device is connected to a bus downstream from the bridge device; assign, by the firmware instructions, a synthetic segment identifier to the bus based at least in part on the endpoint device being identified as connected to the bus; and generate, by the firmware instructions, synthetic address data that includes the synthetic segment identifier, and sets a bus identifier of the bus to zero. 9. The system of claim 8 , wherein the instructions, when executed by the at least one processor, cause the computing device to at least: load, by the firmware instructions, ACPI data into a memory of the computing device, the ACPI data comprising at least a portion of the synthetic address data. 10. The system of claim 9 , wherein the instructions, when executed by the at least one processor, cause the computing device to at least: access, by an operating system, the endpoint device based at least in part on the ACPI data comprising the at least the portion of the synthetic address data. 11. The system of claim 9 , wherein the instructions, when executed by the at least one processor, cause the computing device to at least: mark, by the firmware instructions, the bridge device as disabled in the ACPI data. 12. The system of claim 8 , wherein the instructions, when executed by the at least one processor, cause the computing device to at least: identify, by the firmware instructions, a filtering problem or a minimum granule size problem that causes a function of the endpoint device to errantly respond to a nonzero device identifier. 13. The system of claim 12 , wherein the instructions, when executed by the at least one processor, cause the computing device to at least: add, by the firmware instructions, 0x8000 to a base address corresponding to the synthetic segment identifier. 14. The system of claim 13 , wherein the instructions, when executed by the at least one processor, cause the computing device to at least: generate, by the firmware instructions, an input output remapping table that indicates a predetermined instruction to handle functions corresponding to a synthetic segment base address modification comprising the 0x8000 added to the base address. 15. A method comprising: identifying, by firmware instructions executed by at least one processor, that a bridge device is on a segment corresponding to a root complex of a computing device; detecting, by the firmware instructions, that an endpoint device is connected to a bus downstream from the bridge device; assigning, by the firmware instructions, a synthetic segment identifier to the bus based at least in part on the endpoint device being identified as connected to the bus; and generating, by the firmware instructions, synthetic address data that includes the synthetic segment identifier, and sets a bus identifier of the bus to zero. 16. The method of claim 15 , further comprising: loading, by the firmware instructions, ACPI data into a memory of the computing device, the ACPI data comprising at least a portion of the synthetic address data. 17. The method of claim 16 , further comprising: accessing, by an operating system, the endpoint device based at least in part on the ACPI data comprising the at least the portion of the synthetic address data. 18. The method of claim 16 , further comprising: marking, by the firmware instructions, the bridge device as disabled in the ACPI data. 19. The method of claim 15 , further comprising: identifying, by the firmware instructions, a filtering problem or a minimum granule size problem that causes a function of the endpoint device to errantly respond to a nonzero device identifier. 20. The method of claim 19 , further comprising: adding, by the firmware instructions, 0x8000 to a base address corresponding to the synthetic segment identifier.

Assignees

Inventors

Classifications

  • being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus · CPC title

  • PCI express · CPC title

  • on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247) · CPC title

  • with address mapping · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11971839B2 cover?
Disclosed are various approaches for exposing peripheral component interconnect express (PCIe) configuration space implementations as Enhanced Configuration Access Mechanism (ECAM)-compatible. In some examples, a bridge device is identified on a segment corresponding to a root complex of a computing device. An endpoint device is connected to a bus downstream from the bridge device. A synthetic …
Who is the assignee on this patent?
VMware LLC, Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06F13/4221. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 30 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).