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