12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /** @file
- SSDT Pcie Table Generator.
- Copyright (c) 2021, Arm Limited. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- @par Reference(s):
- - PCI Firmware Specification - Revision 3.0
- - ACPI 6.4 specification:
- - s6.2.13 "_PRT (PCI Routing Table)"
- - s6.1.1 "_ADR (Address)"
- - linux kernel code
- - Arm Base Boot Requirements v1.0
- **/
- #ifndef SSDT_PCIE_GENERATOR_H_
- #define SSDT_PCIE_GENERATOR_H_
- /** Pci address attributes.
- This can also be denoted as space code, address space or ss.
- */
- #define PCI_SS_CONFIG 0
- #define PCI_SS_IO 1
- #define PCI_SS_M32 2
- #define PCI_SS_M64 3
- /** Maximum Pci root complexes supported by this generator.
- Note: This is not a hard limitation and can be extended if needed.
- Corresponding changes would be needed to support the Name and
- UID fields describing the Pci root complexes.
- */
- #define MAX_PCI_ROOT_COMPLEXES_SUPPORTED 256
- // _SB scope of the AML namespace.
- #define SB_SCOPE "\\_SB_"
- #pragma pack(1)
- /** A structure holding the Pcie generator and additional private data.
- */
- typedef struct AcpiPcieGenerator {
- /// ACPI Table generator header
- ACPI_TABLE_GENERATOR Header;
- // Private fields are defined from here.
- /// Table to map: Index <-> Pci device
- MAPPING_TABLE DeviceTable;
- } ACPI_PCI_GENERATOR;
- #pragma pack()
- #endif // SSDT_PCIE_GENERATOR_H_
|