UDK2017 UefiCpuPkg Notes
- Update CPU MP drivers to support single CPU configuration.
- Add CPU MP Initialize Library and add MP support in CpuDxe.
- Add SMM Communication PPI and Handler Modules.
- Add SecCore module and Platform Sec Library class/instance.
- Add PiSmmCpuDxeSmm and SMM CPU features Library class/instance.
- Add STM support.
- Add CpuFeatures modules to initialize CPU SDM features.
- Add ASSERT to handle local APIC not config properly.
- Add the following header files under /Include:
AcpiCpuData.h - CPU S3 data.
CpuHotPlug.h - CPU Hot Plug Data. - 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. - 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. - Add the following header files under /Include/Protocol:
SmmCpuService.h - SMM CPU Service protocol definition.
SmMonitorInit.h - STM service protocol definition. - 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. - 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 - MtrrLib: Add API MtrrSetMemoryAttributeInMtrrSettings().
- LocalApicLib: Add API GetProcessorLocationByApicId().
- CpuMpPei: Fix pack(1) issue on x64 arch.
- CpuMpPei: Fix potential AP mwait wakeup issue.
- CpuMpPei: Fix BistData ouput error.
- MtrrSetMemoryAttributeInMtrrSettings() or MtrrSetMemoryAttribute() may report Out Of Resource for certain cache settings, while the number of MTRR registers is sufficent.