audk/ArmPlatformPkg
Laszlo Ersek 807c26d306 ArmVirtualizationPkg/PciHostBridgeDxe: add room for PCI resource allocation
VirtFdtDxe parses the following address space properties from the DTB (and
saves them in PCDs) :

  ProcessPciHost: Config[0x3F000000+0x1000000)
                  Bus[0x0..0xF]
                  Io[0x0+0x10000)@0x3EFF0000
                  Mem[0x10000000+0x2EFF0000)@0x0

In order to allow PCI enumeration to allocate IO and MMIO resources from
the above ranges for devices, we must add the ranges to the Global
Coherency Domain.

There are two ways for that:
- building resource descriptor HOBs in the HOB producer phase (basically,
  PEI), and letting the DXE core process them,
- calling gDS->AddIoSpace() and gDS->AddMemorySpace() during DXE.

We opt for the second method for simplicity.

In the address space maps, the corresponding ranges change from
"nonexistent" to "IO" and "MMIO", from which the gDS->AllocateIoSpace()
and gDS->AllocateMemorySpace() services can later allocate PCI BARs.

   GCD:AddIoSpace(Base=0000000000000000,Length=0000000000010000)
     GcdIoType    = I/O
     Status = Success
   GCDIoType  Range
   ========== =================================
-> I/O        0000000000000000-000000000000FFFF

   GCD:AddMemorySpace(Base=0000000010000000,Length=000000002EFF0000)
     GcdMemoryType   = MMIO
     Capabilities    = 0000000000000001
     Status = Success
   GCDMemType Range                             Capabilities     Attributes
   ========== ================================= ================ ================
   NonExist   0000000000000000-0000000003FFFFFF 0000000000000000 0000000000000000
   MMIO       0000000004000000-0000000007FFFFFF C000000000000001 8000000000000001
   NonExist   0000000008000000-000000000900FFFF 0000000000000000 0000000000000000
   MMIO       0000000009010000-0000000009010FFF C000000000000001 8000000000000001
   NonExist   0000000009011000-000000000FFFFFFF 0000000000000000 0000000000000000
-> MMIO       0000000010000000-000000003EFEFFFF C000000000000001 0000000000000000
   NonExist   000000003EFF0000-000000003FFFFFFF 0000000000000000 0000000000000000
   SystemMem  0000000040000000-00000000BFFFFFFF 800000000000000F 0000000000000008*
   NonExist   00000000C0000000-0000FFFFFFFFFFFF 0000000000000000 0000000000000000

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@16903 6f19259b-4bc3-4df7-8a09-765794883524
2015-02-23 16:03:37 +00:00
..
ArmJunoPkg ArmPlatformPkg/ArmJunoDxe: Added missing header 2015-02-04 13:06:13 +00:00
ArmRealViewEbPkg ArmPlatformPkg: Increase more ARM address Pcd entries to 64-bit. 2014-11-11 00:43:03 +00:00
ArmVExpressPkg ArmPlatformPkg/ArmVExpress-FVP-AArch64.dsc: Fixed build 2015-02-17 13:11:34 +00:00
ArmVirtualizationPkg ArmVirtualizationPkg/PciHostBridgeDxe: add room for PCI resource allocation 2015-02-23 16:03:37 +00:00
Bds ArmPlatformPkg/Bds: Signal when the variable 'Fdt' has been updated 2015-01-06 15:54:12 +00:00
Documentation ArmPlatformPkg/Documentation: Removed BaseTools-Pending-Patches.patch 2014-10-29 18:55:29 +00:00
Drivers ArmPlatformPkg: detect correct pl011 fifo depth 2015-01-23 16:10:00 +00:00
FileSystem/BootMonFs ArmPlatformPkg: Fixed builds after some ShellPkg libraries have moved 2015-01-13 18:58:00 +00:00
Include ArmPlatformPkg: detect correct pl011 fifo depth 2015-01-23 16:10:00 +00:00
Library ArmPlatformPkg: fix undefined reference to memcpy 2014-11-12 10:01:41 +00:00
MemoryInitPei ArmPlatformPkg: Increase more ARM address Pcd entries to 64-bit. 2014-11-11 00:43:03 +00:00
PlatformPei ArmPlatformPkg: Increase more ARM address Pcd entries to 64-bit. 2014-11-11 00:43:03 +00:00
PrePeiCore ArmPlatformPkg: Increase more ARM address Pcd entries to 64-bit. 2014-11-11 00:43:03 +00:00
PrePi ArmPkg,ArmPlatformPkg: Allow dynamic PCDs for memory base and size 2014-09-09 16:11:30 +00:00
Scripts ArmPlatformPkg/Scripts: Update the profiling script to work on AArch64 with the latest DS-5 2014-08-19 13:36:00 +00:00
Sec ArmPlatformPkg: Increase more ARM address Pcd entries to 64-bit. 2014-11-11 00:43:03 +00:00
ArmPlatformPkg-2ndstage.dsc ARM Packages: Added support for GCC stack protector 2014-08-20 18:01:50 +00:00
ArmPlatformPkg-2ndstage.fdf ARM Packages: Removed malicious trailing spaces 2014-08-20 11:38:45 +00:00
ArmPlatformPkg.dec ArmPlatformPkg: introduce PCDs for describing PCI address spaces 2015-02-23 16:02:44 +00:00
ArmPlatformPkg.dsc ArmPlatformPkg: separate PlatformPei and PlatformPeiLib 2014-09-16 00:56:50 +00:00
ArmPlatformPkg.fdf ARM Packages: Removed malicious trailing spaces 2014-08-20 11:38:45 +00:00
Contributions.txt */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
License.txt EDK II Packages: Added License.txt files 2012-04-12 16:40:32 +00:00