On 07/26/15 11:40, Ard Biesheuvel wrote:
> The current GIC revision detection code infers the GIC revision from
> the AA64PFR0_EL1.GIC feature bit that tells us whether the GIC system
> register interface is implemented in the hardware, and then proceeds
> to attempt and enable it.
>
> The library containing this code deliberately does not cache the
> detected revision since it may execute in place before PEI memory
> has been set up.
>
> However, since the detection code runs very often, and is quite
> heavy-weight when running under virtualization (especially KVM),
> this series refactors the GIC revision detection to:
> - use fewer system register accesses if possible (*)
> - provide an alternative that does cache the detected revision
> - use the DT supplied revision when executing on a DT based platform
>
> Changes since v1:
> - the original patch #1 which implements (*) above was already merged as
> SVN r17596, so it has been dropped from this series
> - added R-b's and acks from Laszlo
So, as far as I understand, you need reviews from Leif, for the ArmPkg
patches, and then this can be committed. Correct?
Thanks
Laszlo
> Ard Biesheuvel (6):
> ArmPkg: merge ArmGicV[23]Lib.h into ArmGicLib.h
> ArmPkg: split off ArmGicArchLib from ArmGicLib
> ArmPkg: copy ArmGicArchLib to ArmGicArchSecLib
> ArmPkg: cache detected revision in ArmGicArchLib
> ArmVirtPkg: record GIC revision in dynamic PCD
> ArmVirtPkg: implement DT-based ArmGicArchLib
>
> ArmPkg/ArmPkg.dec
> | 1 +
> ArmPkg/ArmPkg.dsc
> | 1 +
> ArmPkg/Drivers/ArmGic/ArmGicLib.c
> | 3 -
> ArmPkg/Drivers/ArmGic/ArmGicLib.inf
> | 3 +-
> ArmPkg/Drivers/ArmGic/ArmGicSecLib.c
> | 2 -
> ArmPkg/Drivers/ArmGic/ArmGicSecLib.inf
> | 3 +-
> ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c
> | 3 +-
> ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Lib.h
> | 54 ----------
> ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c
> | 3 +-
> ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Lib.h
> | 68 ------------
> ArmPkg/Include/Library/ArmGicArchLib.h
> | 33 ++++++
> ArmPkg/Include/Library/ArmGicLib.h
> | 108
> +++++++++++++++++---
> ArmPkg/{Drivers/ArmGic => Library/ArmGicArchLib}/AArch64/ArmGicArchLib.c
> | 23 ++++-
> ArmPkg/{Drivers/ArmGic => Library/ArmGicArchLib}/Arm/ArmGicArchLib.c
> | 23 ++++-
> ArmPkg/{Drivers/ArmCpuLib/ArmCortexA5xLib/ArmCortexA5xLib.inf =>
> Library/ArmGicArchLib/ArmGicArchLib.inf} | 28 +++--
> ArmPkg/{Drivers/ArmGic => Library/ArmGicArchSecLib}/AArch64/ArmGicArchLib.c
> | 2 -
> ArmPkg/{Drivers/ArmGic => Library/ArmGicArchSecLib}/Arm/ArmGicArchLib.c
> | 2 -
> ArmPlatformPkg/Drivers/ArmTrustZone/ArmTrustZone.inf =>
> ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf |
> 18 ++--
> ArmPlatformPkg/ArmPlatformPkg-2ndstage.dsc
> | 2 +
> ArmPlatformPkg/ArmPlatformPkg.dsc
> | 3 +
> ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb.dsc.inc
> | 3 +
> ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc
> | 3 +
> ArmVirtPkg/ArmVirt.dsc.inc
> | 1 +
> ArmVirtPkg/ArmVirtPkg.dec
> | 7 +-
> ArmVirtPkg/ArmVirtQemu.dsc
> | 1 +
> ArmVirtPkg/ArmVirtXen.dsc
> | 1 +
> ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.c
> | 75 ++++++++++++++
> OvmfPkg/Library/XenConsoleSerialPortLib/XenConsoleSerialPortLib.inf =>
> ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf | 25 +++--
> ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.c
> | 2 +
> ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.inf
> | 1 +
> 30 files changed, 306 insertions(+), 196 deletions(-)
> delete mode 100644 ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Lib.h
> delete mode 100644 ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Lib.h
> create mode 100644 ArmPkg/Include/Library/ArmGicArchLib.h
> copy ArmPkg/{Drivers/ArmGic =>
> Library/ArmGicArchLib}/AArch64/ArmGicArchLib.c (83%)
> copy ArmPkg/{Drivers/ArmGic => Library/ArmGicArchLib}/Arm/ArmGicArchLib.c
> (83%)
> copy ArmPkg/{Drivers/ArmCpuLib/ArmCortexA5xLib/ArmCortexA5xLib.inf =>
> Library/ArmGicArchLib/ArmGicArchLib.inf} (60%)
> rename ArmPkg/{Drivers/ArmGic =>
> Library/ArmGicArchSecLib}/AArch64/ArmGicArchLib.c (95%)
> rename ArmPkg/{Drivers/ArmGic =>
> Library/ArmGicArchSecLib}/Arm/ArmGicArchLib.c (95%)
> copy ArmPlatformPkg/Drivers/ArmTrustZone/ArmTrustZone.inf =>
> ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf (64%)
> create mode 100644 ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.c
> copy OvmfPkg/Library/XenConsoleSerialPortLib/XenConsoleSerialPortLib.inf =>
> ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf (56%)
>
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel