mirror of https://github.com/acidanthera/audk.git
DynamicTablesPkg: AcpiSsdtPcieLibArm: Allow use of segment number as UID
Add support for selecting to use index or segment number as UID and name. This allows the path of the nodes to be well known. For example, if the PCIe node needs to be notified from by an interrupt for a Generic Event Device Signed-off-by: Jeff Brasen <jbrasen@nvidia.com> Reviewed-by: Pierre Gondois <pierre.gondois@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
This commit is contained in:
parent
45297e6c9b
commit
8c92a9508e
|
@ -60,5 +60,8 @@
|
|||
# Non BSA Compliant 16550 Serial HID
|
||||
gEdkiiDynamicTablesPkgTokenSpaceGuid.PcdNonBsaCompliant16550SerialHid|""|VOID*|0x40000008
|
||||
|
||||
# Use PCI segment numbers as UID
|
||||
gEdkiiDynamicTablesPkgTokenSpaceGuid.PcdPciUseSegmentAsUid|FALSE|BOOLEAN|0x40000009
|
||||
|
||||
[Guids]
|
||||
gEdkiiDynamicTablesPkgTokenSpaceGuid = { 0xab226e66, 0x31d8, 0x4613, { 0x87, 0x9d, 0xd2, 0xfa, 0xb6, 0x10, 0x26, 0x3c } }
|
||||
|
|
|
@ -981,6 +981,7 @@ BuildSsdtPciTableEx (
|
|||
UINTN Index;
|
||||
EFI_ACPI_DESCRIPTION_HEADER **TableList;
|
||||
ACPI_PCI_GENERATOR *Generator;
|
||||
UINT32 Uid;
|
||||
|
||||
ASSERT (This != NULL);
|
||||
ASSERT (AcpiTableInfo != NULL);
|
||||
|
@ -1036,13 +1037,29 @@ BuildSsdtPciTableEx (
|
|||
*Table = TableList;
|
||||
|
||||
for (Index = 0; Index < PciCount; Index++) {
|
||||
if (PcdGetBool (PcdPciUseSegmentAsUid)) {
|
||||
Uid = PciInfo[Index].PciSegmentGroupNumber;
|
||||
if (Uid > MAX_PCI_ROOT_COMPLEXES_SUPPORTED) {
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
"ERROR: SSDT-PCI: Pci root complexes segment number: %d."
|
||||
" Greater than maximum number of Pci root complexes supported = %d.\n",
|
||||
Uid,
|
||||
MAX_PCI_ROOT_COMPLEXES_SUPPORTED
|
||||
));
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
} else {
|
||||
Uid = Index;
|
||||
}
|
||||
|
||||
// Build a SSDT table describing the Pci devices.
|
||||
Status = BuildSsdtPciTable (
|
||||
Generator,
|
||||
CfgMgrProtocol,
|
||||
AcpiTableInfo,
|
||||
&PciInfo[Index],
|
||||
Index,
|
||||
Uid,
|
||||
&TableList[Index]
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
|
|
@ -30,3 +30,6 @@
|
|||
AmlLib
|
||||
BaseLib
|
||||
SsdtPcieSupportLib
|
||||
|
||||
[Pcd]
|
||||
gEdkiiDynamicTablesPkgTokenSpaceGuid.PcdPciUseSegmentAsUid
|
||||
|
|
Loading…
Reference in New Issue