Public branch: <https://github.com/mdkinney/edk2/tree/AddSmmUefiCpuPkg_V2>

Changes from PATCH v1 to PATCH v2:
1) Fix CRLF line ending issues reported by Laszlo 
2) Break up into a larger set of smaller patches
3) Remove APState field from ACPI_CPU_DATA structure
4) Use module type specific CpuExceptionHandlerLib in DSC file
   instead of Null library instance
5) Swap PTE init order for QEMU compatibility.
   Current PTE initialization algorithm works on HW but breaks QEMU
   emulator.  Update the PTE initialization order to be compatible
   with both.
6) Update comment block that describes 32KB SMBASE alignment requirement
   to match contents of Intel(R) 64 and IA-32 Architectures Software
   Developer's Manual
7) Remove BUGBUG comment and call to ClearSmi() that is not required.
   SMI should be cleared by root SMI handler.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <[email protected]>
Cc: Laszlo Ersek <[email protected]>
Cc: Paolo Bonzini <[email protected]>

Michael Kinney (16):
  UefiCpuPkg: Add Cpuid.h include files for CPUID related defines
  UefiCpuPkg: Update CPU MP drivers to support single CPU configuration
  UefiCpuPkg: Add SMM Communication PPI and Handler Modules
  UefiCpuPkg: Add PlatformSecLib
  UefiCpuPkg: Add SecCore module
  UefiCpuPkg: Add SecCore module and supporting library class and PCD
  UefiCpuPkg: Add SmmCpuFeaturesLib
  UefiCpuPkg: Add SmmCpuPlatformHookLib
  UefiCpuPkg: Add SMM CPU Service Protocol
  UefiCpuPkg: Add SMRAM Save State include file
  UefiCpuPkg: Add ACPI CPU Data include file
  UefiCpuPkg: Add CPU Hot Plug Data include file
  UefiCpuPkg: Update DEC/DSC files for new includes and libraries
  UefiCpuPkg: Add PiSmmCpuDxeSmm module no IA32/X64 files
  UefiCpuPkg: Add PiSmmCpuDxeSmm module IA32 files
  UefiCpuPkg: Add PiSmmCpuDxeSmm module X64 files

 UefiCpuPkg/CpuDxe/CpuMp.c                          |   49 +-
 UefiCpuPkg/CpuMpPei/CpuMpPei.c                     |   34 +-
 UefiCpuPkg/CpuMpPei/CpuMpPei.h                     |    1 +
 UefiCpuPkg/Include/AcpiCpuData.h                   |   71 +
 UefiCpuPkg/Include/CpuHotPlugData.h                |   33 +
 UefiCpuPkg/Include/Library/PlatformSecLib.h        |   70 +
 UefiCpuPkg/Include/Library/SmmCpuFeaturesLib.h     |  366 +++++
 UefiCpuPkg/Include/Library/SmmCpuPlatformHookLib.h |  109 ++
 UefiCpuPkg/Include/Protocol/SmmCpuService.h        |  209 +++
 UefiCpuPkg/Include/Register/Cpuid.h                |   51 +
 UefiCpuPkg/Include/Register/LocalApic.h            |   13 -
 UefiCpuPkg/Include/Register/SmramSaveStateMap.h    |  190 +++
 UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.c     |    1 +
 .../BaseXApicX2ApicLib/BaseXApicX2ApicLib.c        |    1 +
 .../PlatformSecLibNull/PlatformSecLibNull.c        |   90 ++
 .../PlatformSecLibNull/PlatformSecLibNull.inf      |   37 +
 .../PlatformSecLibNull/PlatformSecLibNull.uni      |  Bin 0 -> 1646 bytes
 .../Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.c  |  559 ++++++++
 .../SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf        |   39 +
 .../SmmCpuFeaturesLib/SmmCpuFeaturesLib.uni        |  Bin 0 -> 1674 bytes
 .../SmmCpuPlatformHookLibNull.c                    |  108 ++
 .../SmmCpuPlatformHookLibNull.inf                  |   40 +
 .../SmmCpuPlatformHookLibNull.uni                  |  Bin 0 -> 1606 bytes
 .../PiSmmCommunication/PiSmmCommunicationPei.c     |  425 ++++++
 .../PiSmmCommunication/PiSmmCommunicationPei.inf   |   70 +
 .../PiSmmCommunication/PiSmmCommunicationPei.uni   |  Bin 0 -> 2066 bytes
 .../PiSmmCommunicationPeiExtra.uni                 |  Bin 0 -> 1374 bytes
 .../PiSmmCommunication/PiSmmCommunicationPrivate.h |   30 +
 .../PiSmmCommunication/PiSmmCommunicationSmm.c     |  269 ++++
 .../PiSmmCommunication/PiSmmCommunicationSmm.inf   |   82 ++
 .../PiSmmCommunication/PiSmmCommunicationSmm.uni   |  Bin 0 -> 3004 bytes
 .../PiSmmCommunicationSmmExtra.uni                 |  Bin 0 -> 1396 bytes
 UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c                  |  491 +++++++
 UefiCpuPkg/PiSmmCpuDxeSmm/CpuService.c             |  486 +++++++
 UefiCpuPkg/PiSmmCpuDxeSmm/CpuService.h             |  181 +++
 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/MpFuncs.S           |  165 +++
 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/MpFuncs.asm         |  168 +++
 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c           |  132 ++
 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/Semaphore.c         |   45 +
 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.S          |  191 +++
 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.asm        |  193 +++
 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiException.S      |  911 ++++++++++++
 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiException.asm    |  738 ++++++++++
 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.S           |   84 ++
 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.asm         |   94 ++
 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmProfileArch.c    |   80 ++
 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmProfileArch.h    |   97 ++
 UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c              | 1327 +++++++++++++++++
 UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c         | 1489 ++++++++++++++++++++
 UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h         |  638 +++++++++
 UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf       |  159 +++
 UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.uni       |  Bin 0 -> 1868 bytes
 UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmmExtra.uni  |  Bin 0 -> 1382 bytes
 UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c             | 1441 +++++++++++++++++++
 UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.h             |  132 ++
 UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfileInternal.h     |  172 +++
 UefiCpuPkg/PiSmmCpuDxeSmm/SmramSaveState.c         |  672 +++++++++
 UefiCpuPkg/PiSmmCpuDxeSmm/SyncTimer.c              |  116 ++
 UefiCpuPkg/PiSmmCpuDxeSmm/X64/MpFuncs.S            |  204 +++
 UefiCpuPkg/PiSmmCpuDxeSmm/X64/MpFuncs.asm          |  206 +++
 UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c            |  692 +++++++++
 UefiCpuPkg/PiSmmCpuDxeSmm/X64/Semaphore.c          |   64 +
 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.S           |  217 +++
 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.asm         |  221 +++
 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiException.S       |  610 ++++++++
 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiException.asm     |  413 ++++++
 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmInit.S            |  141 ++
 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmInit.asm          |  132 ++
 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmProfileArch.c     |  316 +++++
 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmProfileArch.h     |  105 ++
 UefiCpuPkg/SecCore/FindPeiCore.c                   |  198 +++
 UefiCpuPkg/SecCore/Ia32/ResetVec.asm16             |  106 ++
 UefiCpuPkg/SecCore/Ia32/ResetVec.nasmb             |  103 ++
 UefiCpuPkg/SecCore/SecCore.inf                     |   72 +
 UefiCpuPkg/SecCore/SecCore.uni                     |  Bin 0 -> 2908 bytes
 UefiCpuPkg/SecCore/SecCoreExtra.uni                |  Bin 0 -> 1320 bytes
 UefiCpuPkg/SecCore/SecMain.c                       |  295 ++++
 UefiCpuPkg/SecCore/SecMain.h                       |  109 ++
 UefiCpuPkg/UefiCpuPkg.dec                          |  122 +-
 UefiCpuPkg/UefiCpuPkg.dsc                          |   34 +-
 UefiCpuPkg/UefiCpuPkg.uni                          |  Bin 6628 -> 22066 bytes
 81 files changed, 17452 insertions(+), 57 deletions(-)
 create mode 100644 UefiCpuPkg/Include/AcpiCpuData.h
 create mode 100644 UefiCpuPkg/Include/CpuHotPlugData.h
 create mode 100644 UefiCpuPkg/Include/Library/PlatformSecLib.h
 create mode 100644 UefiCpuPkg/Include/Library/SmmCpuFeaturesLib.h
 create mode 100644 UefiCpuPkg/Include/Library/SmmCpuPlatformHookLib.h
 create mode 100644 UefiCpuPkg/Include/Protocol/SmmCpuService.h
 create mode 100644 UefiCpuPkg/Include/Register/Cpuid.h
 create mode 100644 UefiCpuPkg/Include/Register/SmramSaveStateMap.h
 create mode 100644 UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.c
 create mode 100644 UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.inf
 create mode 100644 UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNull.uni
 create mode 100644 UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.c
 create mode 100644 UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
 create mode 100644 UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.uni
 create mode 100644 
UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.c
 create mode 100644 
UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf
 create mode 100644 
UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.uni
 create mode 100644 UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationPei.c
 create mode 100644 UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationPei.inf
 create mode 100644 UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationPei.uni
 create mode 100644 UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationPeiExtra.uni
 create mode 100644 UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationPrivate.h
 create mode 100644 UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationSmm.c
 create mode 100644 UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationSmm.inf
 create mode 100644 UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationSmm.uni
 create mode 100644 UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationSmmExtra.uni
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/CpuService.c
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/CpuService.h
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/MpFuncs.S
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/MpFuncs.asm
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/Semaphore.c
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.S
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.asm
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiException.S
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiException.asm
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.S
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.asm
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmProfileArch.c
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmProfileArch.h
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.uni
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmmExtra.uni
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.h
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfileInternal.h
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/SmramSaveState.c
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/SyncTimer.c
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/X64/MpFuncs.S
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/X64/MpFuncs.asm
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/X64/Semaphore.c
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.S
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.asm
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiException.S
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiException.asm
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmInit.S
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmInit.asm
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmProfileArch.c
 create mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmProfileArch.h
 create mode 100644 UefiCpuPkg/SecCore/FindPeiCore.c
 create mode 100644 UefiCpuPkg/SecCore/Ia32/ResetVec.asm16
 create mode 100644 UefiCpuPkg/SecCore/Ia32/ResetVec.nasmb
 create mode 100644 UefiCpuPkg/SecCore/SecCore.inf
 create mode 100644 UefiCpuPkg/SecCore/SecCore.uni
 create mode 100644 UefiCpuPkg/SecCore/SecCoreExtra.uni
 create mode 100644 UefiCpuPkg/SecCore/SecMain.c
 create mode 100644 UefiCpuPkg/SecCore/SecMain.h

-- 
1.9.5.msysgit.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to