Skip to content

Latest commit

 

History

History
88 lines (80 loc) · 4.29 KB

UefiCpuPkgNotes.md

File metadata and controls

88 lines (80 loc) · 4.29 KB

UDK2017 UefiCpuPkg Notes

NEW FEATURES AND CHANGES

  1. Update CPU MP drivers to support single CPU configuration.
  2. Add CPU MP Initialize Library and add MP support in CpuDxe.
  3. Add SMM Communication PPI and Handler Modules.
  4. Add SecCore module and Platform Sec Library class/instance.
  5. Add PiSmmCpuDxeSmm and SMM CPU features Library class/instance.
  6. Add STM support.
  7. Add CpuFeatures modules to initialize CPU SDM features.
  8. Add ASSERT to handle local APIC not config properly.

PACKAGE INTERFACE CHANGES

  1. Add the following header files under /Include:
    AcpiCpuData.h - CPU S3 data.
    CpuHotPlug.h - CPU Hot Plug Data.
  2. Add the following header files under /Include/Guid:
    CpuFeaturesInitDone.h - CPU Features Init Done PPI/Protocol should be installed after CPU features are initialized.
    CpuFeaturesSetDone.h - CPU Features Set Done PPI/Protocol should be installed after CPU features configuration are set.
    MicrocodeFmp.h - gMicrocodeFmpImageTypeIdGuid definition.
    MsegSmram.h - Defines the HOB GUID used to describe the MSEG memory region allocated in PEI.
  3. Add the following header files under /Include/Library:
    MicrocodeFlashAccessLib.h - Microcode flash device access library.
    MpInitLib.h - Multiple-Processor initialization Library.
    PlatformSecLib.h - Defines interface for platform to perform platform specific initialization in SEC phase.
    RegisterCpuFeaturesLib.h - Register and manage CPU features.
    SmmCpuFeaturesLib.h - Provides CPU specific functions to support the PiSmmCpuDxeSmm module.
    SmmCpuPlatformHookLib.h - SMM CPU Platform Hook Library.
  4. Add the following header files under /Include/Protocol:
    SmmCpuService.h - SMM CPU Service protocol definition.
    SmMonitorInit.h - STM service protocol definition.
  5. Add the following header files under /Include/Register:
    ArchitecturalMsr.h - Architectural MSRs definitions.
    Msr/xxxMsr.h - Non-Architectural MSRs definitions of xxx processors.
    Msr.h - All Architectural and non-Architectural MSRs.
    Cpuid.h - Include files for CPUID related definitions.
    Microcode.h - Microcode Definitions.
    SmramSaveStateMap.h - SMRAM Save State Map Definitions.
    StmApi.h - STM API definitions.
    StmResourceDescriptor.h - STM Resource Descriptor.
    StmStatusCode.h - STM Status Codes.
  6. Add the following PCDs in UefiCpuPkg.dec file.
    PcdCpuSmmProfileEnable
    PcdCpuSmmProfileRingBuffer
    PcdCpuSmmProfileSize
    PcdCpuSmmBlockStartupThisAp
    PcdCpuSmmStackGuard
    PcdCpuSmmEnableBspElection
    PcdCpuHotPlugSupport
    PcdCpuSmmDebug
    PcdCpuSmmFeatureControlMsrLock
    PcdPeiTemporaryRamStackSize
    PcdCpuSmmStackSize
    PcdCpuSmmCodeAccessCheckEnable
    PcdCpuNumberOfReservedVariableMtrrs
    PcdCpuSmmStmExceptionStackSize
    PcdCpuMsegSize
    PcdCpuFeaturesSupport
    PcdCpuFeaturesUserConfiguration
    PcdCpuFeaturesCapability
    PcdCpuFeaturesSetting
    PcdCpuFeaturesInitAfterSmmRelocation
    PcdCpuFeaturesInitOnS3Resume
    PcdCpuMicrocodePatchAddress
    PcdCpuMicrocodePatchRegionSize
    PcdCpuSmmStaticPageTable
    PcdCpuSmmApSyncTimeout
    PcdCpuSmmSyncMode
    PcdCpuClockModulationDutyCycle
    PcdIsPowerOnReset
    PcdCpuS3DataAddress
    PcdCpuHotPlugDataAddress
  7. MtrrLib: Add API MtrrSetMemoryAttributeInMtrrSettings().
  8. LocalApicLib: Add API GetProcessorLocationByApicId().

BUG FIXES

  1. CpuMpPei: Fix pack(1) issue on x64 arch.
  2. CpuMpPei: Fix potential AP mwait wakeup issue.
  3. CpuMpPei: Fix BistData ouput error.

KNOWN ISSUES

  1. MtrrSetMemoryAttributeInMtrrSettings() or MtrrSetMemoryAttribute() may report Out Of Resource for certain cache settings, while the number of MTRR registers is sufficent.