170ef2d OvmfPkg: AcpiTimerLib: Split into multiple phase-specific instances

11 files Authored by somlo 9 years ago, Committed by jljusten 9 years ago,
    OvmfPkg: AcpiTimerLib: Split into multiple phase-specific instances
    
    Remove local power management register access macros in favor of
    factored-out ones in OvmfPkg/Include/OvmfPlatforms.h
    
    Next, AcpiTimerLib is split out into three instances, for use during
    various stages:
    
      - BaseRom: used during SEC, PEI_CORE, and PEIM;
      - Dxe:     used during DXE_DRIVER and DXE_RUNTIME_DRIVER;
      - Base:    used by default during all other stages.
    
    Most of the code remains in AcpiTimerLib.c, to be shared by all
    instances. The two platform-dependent methods (constructor and
    InternalAcpiGetTimerTick) are provided separately by source files
    specific to each instance, namely [BaseRom|Base|Dxe]AcpiTimerLib.c.
    
    Since pre-DXE stages can't rely on storing data in global variables,
    methods specific to the "BaseRom" instance will call platform
    detection macros each time they're invoked.
    
    The "Base" instance calls platform detection macros only from its
    constructor, and caches the address required by InternalAcpiTimerTick
    in a global variable.
    
    The "Dxe" instance is very similar to "Base", except no platform
    detection macros are called at all; instead, the platform type is
    read via a dynamic PCD set from PlatformPei.
    
    Contributed-under: TianoCore Contribution Agreement 1.0
    Signed-off-by: Gabriel Somlo <somlo@cmu.edu>
    Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
    Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
    Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
    
    git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16376 6f19259b-4bc3-4df7-8a09-765794883524
    
        
OvmfPkg/Library/AcpiTimerLib/BaseRomAcpiTimerLib.inf OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.inf
file renamed
+15 -20
file modified
+8 -12
file modified
+8 -12
file modified
+8 -12