Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Laszlo Ersek 65bb13b0fd ArmVirtualizationPkg/VirtFdtDxe: parse "pci-host-ecam-generic" properties
In the Linux kernel tree,
"Documentation/devicetree/bindings/pci/host-generic-pci.txt" describes the
device tree bindings of a Generic PCI host controller.

Recent QEMU patches from Alexander Graf implement such a controller on the
"virt" machine type of qemu-system-(aarch64|arm):

  pcie@10000000 {
    //
    //                    (devfn<<8, 0, 0)  PCI irq
    //                    ----------------  -------
    interrupt-map-mask = <0x1800 0x0 0x0    0x7>;

    //                                        gic      irq
    //               (devfn<<8, 0, 0)  pin+1  phandle  (type, nr, level)
    //               ----------------  -----  -------- -----------------
    interrupt-map = <   0x0 0x0 0x0    0x1    0x8001   0x0 0x3 0x4
                        0x0 0x0 0x0    0x2    0x8001   0x0 0x4 0x4
                        0x0 0x0 0x0    0x3    0x8001   0x0 0x5 0x4
                        0x0 0x0 0x0    0x4    0x8001   0x0 0x6 0x4
                      0x800 0x0 0x0    0x1    0x8001   0x0 0x4 0x4
                      0x800 0x0 0x0    0x2    0x8001   0x0 0x5 0x4
                      0x800 0x0 0x0    0x3    0x8001   0x0 0x6 0x4
                      0x800 0x0 0x0    0x4    0x8001   0x0 0x3 0x4
                     0x1000 0x0 0x0    0x1    0x8001   0x0 0x5 0x4
                     0x1000 0x0 0x0    0x2    0x8001   0x0 0x6 0x4
                     0x1000 0x0 0x0    0x3    0x8001   0x0 0x3 0x4
                     0x1000 0x0 0x0    0x4    0x8001   0x0 0x4 0x4
                     0x1800 0x0 0x0    0x1    0x8001   0x0 0x6 0x4
                     0x1800 0x0 0x0    0x2    0x8001   0x0 0x3 0x4
                     0x1800 0x0 0x0    0x3    0x8001   0x0 0x4 0x4
                     0x1800 0x0 0x0    0x4    0x8001   0x0 0x5 0x4>;

    #interrupt-cells = <0x1>;

    //
    //                   child base      cpu base
    //        type       address         address         size
    //        ---------  --------------  --------------  --------------
    ranges = <0x1000000  0x0        0x0  0x0 0x3eff0000  0x0    0x10000
              0x2000000  0x0 0x10000000  0x0 0x10000000  0x0 0x2eff0000>;

    //
    //     PCIe config     PCIe config
    //     space base      space size
    //     --------------  -------------
    reg = <0x0 0x3f000000  0x0 0x1000000>;

    //
    // allowed bus numbers; inclusive range
    //
    bus-range = <0x0 0xf>;

    #size-cells = <0x2>;
    #address-cells = <0x3>;
    device_type = "pci";
    compatible = "pci-host-ecam-generic";
  };

Parse those properties of the compatible="pci-host-ecam-generic" node into
PCDs that are relevant for PCI enumeration in edk2:

- gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress controls
  MdePkg/Library/BasePciExpressLib,

- gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration controls
  OvmfPkg/AcpiPlatformDxe at this point,

- the rest have been introduced earlier in this patchset, and will control
  PCI range checks and translation.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Olivier Martin <olivier.martin@arm.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16894 6f19259b-4bc3-4df7-8a09-765794883524
2015-02-23 16:02:50 +00:00
AppPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
ArmPkg ArmPkg/ArmGic: enable ARE bit before driving GICv3 in native mode 2015-02-16 10:27:02 +00:00
ArmPlatformPkg ArmVirtualizationPkg/VirtFdtDxe: parse "pci-host-ecam-generic" properties 2015-02-23 16:02:50 +00:00
BaseTools BaseTools/GenFw: Set the PE/COFF attribute BaseOfData with the address of the first '.data' section 2015-02-11 08:20:17 +00:00
BeagleBoardPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CryptoPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
DuetPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkCompatibilityPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkShellBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkShellPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EmbeddedPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EmulatorPkg EmulatorPkg: Update web page and wiki urls 2015-02-05 18:25:01 +00:00
FatBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
IntelFrameworkModulePkg Remove invalid value sync action when changing value. Else later save change action will fail. 2015-02-12 08:40:16 +00:00
IntelFrameworkPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
IntelFspPkg Fix build error. 2015-02-13 06:17:23 +00:00
IntelFspWrapperPkg Fix comments format error.Fsp1.1 update. 2015-02-12 15:13:37 +00:00
MdeModulePkg MdeModulePkg: Update SMBIOS revision to 3.0. 2015-02-15 05:01:59 +00:00
MdePkg MdePkg: Add new definitions for SMBIOS 3.0. 2015-02-15 05:01:27 +00:00
NetworkPkg NetworkPkg: Code refine to avoid NULL pointer dereferenced. 2015-02-13 01:00:47 +00:00
Nt32Pkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
Omap35xxPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
OptionRomPkg OptionRomPkg: FrameBufferBltLib: drop set but not used variable 2015-02-23 16:02:21 +00:00
OvmfPkg OvmfPkg/QemuVideoDxe: enable ARM builds 2015-02-23 16:02:29 +00:00
PcAtChipsetPkg PcAtChipsetPkg/PciHostBridgeDxe: drop PciAddress, PciData 2015-02-23 16:02:39 +00:00
PerformancePkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
SecurityPkg Add the missed local variable initialization to remove the possible warning. 2015-02-05 05:37:10 +00:00
ShellBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
ShellPkg ShellPkg/UefiShellLib: Fixed ARM compiler error 2015-02-23 11:13:58 +00:00
SourceLevelDebugPkg Use MaxPacketSize as the initial buffer size to read data. 2015-02-05 01:15:09 +00:00
StdLib */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
StdLibPrivateInternalFiles */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
UefiCpuPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
Vlv2DeviceRefCodePkg Add patch-able PCD to support binary modification of MRC module. 2015-02-13 02:13:43 +00:00
Vlv2TbltDevicePkg Upgrade BIOS version to V0.78. 2015-02-13 02:14:12 +00:00
.gitignore EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
BuildNotes2.txt Update to new SVN URL in readme.txt 2013-06-08 05:26:39 +00:00
Edk2Setup.bat Updated version, missed the last two commits and to add the SVN Revision property (last part of the version value). 2014-08-22 16:08:47 +00:00
Maintainers.txt Maintainers.txt: http://tianocore.github.io => http://www.tianocore.org 2015-02-05 18:24:33 +00:00
edksetup.bat Update edksetup.bat to support Microsoft Visual Studio 2013 when building the Nt32Pkg emulation platform (enabled using the --nt32 flag). 2014-10-30 17:09:25 +00:00
edksetup.sh edksetup.sh: Ensure that WORKSPACE points to the top of an edk2 checkout 2014-07-28 17:37:40 +00:00