diff options
author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2015-07-28 20:45:25 +0000 |
---|---|---|
committer | abiesheuvel <abiesheuvel@Edk2> | 2015-07-28 20:45:25 +0000 |
commit | ae26410e285bf0320252f99fe25055d467f86824 (patch) | |
tree | 353d32f2a339723c1ca5f047cd67d73e52ff37c8 /ArmVirtPkg | |
parent | f94522c823610a4b44486835aca195c267bd3953 (diff) | |
download | edk2-ae26410e285bf0320252f99fe25055d467f86824.tar.gz edk2-ae26410e285bf0320252f99fe25055d467f86824.tar.bz2 edk2-ae26410e285bf0320252f99fe25055d467f86824.zip |
ArmVirtPkg: record GIC revision in dynamic PCD
In order to allow a ArmGicArchLib to be implemented that returns
the supported GIC revision based on the device tree, add handling
to VirtFdtDxe to record the GIC revision at DT parsing time.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Tested-by: Leif Lindholm <leif.lindholm@linaro.org>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18101 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmVirtPkg')
-rw-r--r-- | ArmVirtPkg/ArmVirtPkg.dec | 5 | ||||
-rw-r--r-- | ArmVirtPkg/ArmVirtQemu.dsc | 1 | ||||
-rw-r--r-- | ArmVirtPkg/ArmVirtXen.dsc | 1 | ||||
-rw-r--r-- | ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.c | 2 | ||||
-rw-r--r-- | ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.inf | 1 |
5 files changed, 10 insertions, 0 deletions
diff --git a/ArmVirtPkg/ArmVirtPkg.dec b/ArmVirtPkg/ArmVirtPkg.dec index 9833c5aa68..d987035515 100644 --- a/ArmVirtPkg/ArmVirtPkg.dec +++ b/ArmVirtPkg/ArmVirtPkg.dec @@ -68,6 +68,11 @@ gArmVirtTokenSpaceGuid.PcdFwCfgSelectorAddress|0x0|UINT64|0x00000004
gArmVirtTokenSpaceGuid.PcdFwCfgDataAddress|0x0|UINT64|0x00000005
+ #
+ # Supported GIC revision (2, 3, ...)
+ #
+ gArmVirtTokenSpaceGuid.PcdArmGicRevision|0x0|UINT32|0x00000008
+
[PcdsFeatureFlag]
#
# "Map PCI MMIO as Cached"
diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc index a2a82a4dba..c199cac72c 100644 --- a/ArmVirtPkg/ArmVirtQemu.dsc +++ b/ArmVirtPkg/ArmVirtQemu.dsc @@ -205,6 +205,7 @@ gArmTokenSpaceGuid.PcdGicDistributorBase|0x0
gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0
+ gArmVirtTokenSpaceGuid.PcdArmGicRevision|0x0
## PL031 RealTimeClock
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0
diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc index 3a53debedd..b4007ff3c6 100644 --- a/ArmVirtPkg/ArmVirtXen.dsc +++ b/ArmVirtPkg/ArmVirtXen.dsc @@ -127,6 +127,7 @@ gArmTokenSpaceGuid.PcdGicDistributorBase|0x0
gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0
+ gArmVirtTokenSpaceGuid.PcdArmGicRevision|0x0
## PL031 RealTimeClock
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0
diff --git a/ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.c b/ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.c index c9a181a871..73db63078f 100644 --- a/ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.c +++ b/ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.c @@ -441,6 +441,7 @@ InitializeVirtFdtDxe ( PcdSet32 (PcdGicDistributorBase, (UINT32)DistBase);
PcdSet32 (PcdGicInterruptInterfaceBase, (UINT32)CpuBase);
+ PcdSet32 (PcdArmGicRevision, 2);
DEBUG ((EFI_D_INFO, "Found GIC @ 0x%Lx/0x%Lx\n", DistBase, CpuBase));
break;
@@ -470,6 +471,7 @@ InitializeVirtFdtDxe ( PcdSet32 (PcdGicDistributorBase, (UINT32)DistBase);
PcdSet32 (PcdGicRedistributorsBase, (UINT32)RedistBase);
+ PcdSet32 (PcdArmGicRevision, 3);
DEBUG ((EFI_D_INFO, "Found GIC v3 (re)distributor @ 0x%Lx (0x%Lx)\n",
DistBase, RedistBase));
diff --git a/ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.inf b/ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.inf index 3477db039f..657b4e8801 100644 --- a/ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.inf +++ b/ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.inf @@ -53,6 +53,7 @@ gArmVirtTokenSpaceGuid.PcdArmPsciMethod
gArmVirtTokenSpaceGuid.PcdFwCfgSelectorAddress
gArmVirtTokenSpaceGuid.PcdFwCfgDataAddress
+ gArmVirtTokenSpaceGuid.PcdArmGicRevision
gArmTokenSpaceGuid.PcdGicDistributorBase
gArmTokenSpaceGuid.PcdGicRedistributorsBase
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase
|