On 10/15/15 01:26, Michael Kinney wrote:
> Public branch: <https://github.com/mdkinney/edk2/tree/AddSmmUefiCpuPkg_V2>

I diffed this against my own CRLF-ization of your v1 patches, plus two
patches applied ("UefiCpuPkg: CpuDxe: Fix ASSERT() when only 1 CPU
detected", "UefiCpuPkg: PiSmmCpuDxeSmm: prepare PT in InitPaging before
filling in PDE").

> Changes from PATCH v1 to PATCH v2:
> 1) Fix CRLF line ending issues reported by Laszlo

Confirmed.

> 2) Break up into a larger set of smaller patches

Thanks for that!

> 3) Remove APState field from ACPI_CPU_DATA structure

Confirmed.

> 4) Use module type specific CpuExceptionHandlerLib in DSC file
>    instead of Null library instance

Confirmed.

> 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.

Confirmed. Paolo's patch has been squashed in. (With an empty line removed.)

> 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

Confirmed.

> 7) Remove BUGBUG comment and call to ClearSmi() that is not required.
>    SMI should be cleared by root SMI handler.

Confirmed, and this is great.

Further changes I can find:

8) as mentioned above, "UefiCpuPkg: CpuDxe: Fix ASSERT() when only 1 CPU
detected" has been squashed in (from yourself).

9) SerialPortLib has been resolved to the Null instance, in
[LibraryClasses]. I'm not sure this is necessary. It certainly doesn't
hurt. On the other hand, that line has two trailing space characters;
those would be nice to remove.

10) "Include/Guid/UefiCpuPkgTokenSpace.h" has been dropped. So has the
reference to it.

I think this addresses all of my comments from earlier. I'll respond
individually to the three patches you CC'd me on.

In addition, I can see you've pushed a v3 as well. As far as I can see
(at ba4853cc0ac915755a7e8ded308c3504b8a32785), the v2-v3 differences are
small cleanups (comments, some fields renamed, additions of .h files to
.inf files). I think whatever I'll comment on those three patches
mentioned above, you can carry forward to v3.

One extra note: many of the changed comment lines in v3 have trailing
space characters; please consider dropping them.

Thanks!
Laszlo

> 
> 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
> 

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

Reply via email to