public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [Patch][edk2-platforms/devel-MinnowBoard3] Enable Mor.
@ 2017-01-20  6:16 lushifex
  2017-01-20  6:25 ` Wei, David
  0 siblings, 1 reply; 2+ messages in thread
From: lushifex @ 2017-01-20  6:16 UTC (permalink / raw)
  To: edk2-devel; +Cc: david.wei

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: lushifex <shifeix.a.lu@intel.com>
---
 .../Common/Acpi/AcpiTablesPCAT/Platform.asl        |  13 ++--
 .../MemoryTest/NullMemoryTestDxe/NullMemoryTest.c  |  72 ++++++++-------------
 .../MemoryTest/NullMemoryTestDxe/NullMemoryTest.h  |   2 +-
 .../NullMemoryTestDxe/NullMemoryTestDxe.inf        |   4 +-
 .../NullMemoryTestDxe/NullMemoryTestDxe.uni        | Bin 2194 -> 2194 bytes
 .../NullMemoryTestDxe/NullMemoryTestDxeExtra.uni   | Bin 1372 -> 1372 bytes
 .../BroxtonPlatformPkg/PlatformDsc/Components.dsc  |   1 +
 Platform/BroxtonPlatformPkg/PlatformPkg.fdf        |   1 +
 8 files changed, 40 insertions(+), 53 deletions(-)

diff --git a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/Platform.asl b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/Platform.asl
index 7847f2f..04ea3ad 100644
--- a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/Platform.asl
+++ b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/Platform.asl
@@ -1,5 +1,5 @@
 /** @file
-  Copyright (c) 2012 - 2016, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2012 - 2017, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -19,7 +19,6 @@ External(PDC1)
 External(PDC2)
 External(PDC3)
 External(\_PR.CPU0._PPC, IntObj)
-External(\_SB.PCI0.LPCB.TPM.PTS, MethodObj)
 Name(ECUP, 1)  // EC State indicator: 1- Normal Mode 0- Low Power Mode
 Mutex(EHLD, 0) // EC Hold indicator: 0- No one accessing the EC Power State 1- Someone else is accessing the EC Power State
 
@@ -153,10 +152,12 @@ Method(_PTS,1)
   //clear GPE0_STS
   Store(Ones, G0S)
 
-  //
-  // Call TPM PTS method
-  //
-  \_SB.TPM.PTS (Arg0)
+  If (CondRefOf(\_SB.TPM.PTS)) {
+    //
+    // Call TPM PTS method
+    //
+    \_SB.TPM.PTS (Arg0)
+  }
 
   //
   // Set GPIO_116 (SOC_CODEC_IRQ) 20k pull-down for device I2S audio codec INT343A before enter S3/S4
diff --git a/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.c b/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.c
index a3f5971..b506f13 100644
--- a/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.c
+++ b/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.c
@@ -2,7 +2,7 @@
   Implementation of Generic Memory Test Protocol which does not perform real memory test.
   Also clears memory when the MemoryOverwriteRequest bit is set.
 
-  Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -19,7 +19,6 @@
 #include <Library/UefiLib.h>
 #include <Library/IoLib.h>
 #include <Guid/MemoryOverwriteControl.h>
-#include <CMOSMap.h>
 
 UINT64                            mTestedSystemMemory = 0;
 UINT64                            mTotalSystemMemory  = 0;
@@ -151,19 +150,12 @@ BOOLEAN
 IsMemoryOverwriteRequested (
   )
 {
-  BOOLEAN bRetValue = 0;
-  EFI_STATUS Status;
-  UINT64 MemoryOverwriteReq = 0;
-  UINTN  VariableSize;
-  UINT8  CmosRegValue;
-
-  DEBUG((EFI_D_INFO, "+IsMemoryOverwriteRequested\n"));
+  BOOLEAN     bRetValue = 0;
+  EFI_STATUS  Status;
+  UINT64      MemoryOverwriteReq = 0;
+  UINTN       VariableSize;
 
-  //
-  // Read the CMOS Register EFI_CMOS_CLEAN_RESET
-  //
-  IoWrite8(CmosIo_72, EFI_CMOS_CLEAN_RESET);
-  CmosRegValue = IoRead8(CmosIo_73);
+  DEBUG ((EFI_D_INFO, "IsMemoryOverwriteRequested\n"));
 
   //
   // Get the MOR variable
@@ -187,25 +179,18 @@ IsMemoryOverwriteRequested (
                       &MemoryOverwriteReq
                       );
     } else {
+      MemoryOverwriteReq = 0;
       DEBUG ((EFI_D_ERROR, "IsMemoryOverwriteRequested: Failed to Get MOR Variable - Status = %r\n", Status));
     }
     goto Exit;
   }
-
-  DEBUG ((EFI_D_INFO, "IsMemoryOverwriteRequested: MOR Control Value = %02x, CmosRegValue = %02x\n", MemoryOverwriteReq, CmosRegValue));
-
-  if ((MOR_CLEAR_MEMORY_VALUE(MemoryOverwriteReq)) &&
-    (((CmosRegValue != B_MAGIC_CLEAN_RESET_VALUE) && (MOR_DISABLE_AUTO_DETECT_VALUE(MemoryOverwriteReq) == 0)) ||
-    (MOR_DISABLE_AUTO_DETECT_VALUE(MemoryOverwriteReq) == 1))
-    )
-  {
-    DEBUG((EFI_D_INFO, "IsMemoryOverwriteRequested: Un-controlled Reset detected and hence requesting the Memory Clear\n"));
+   if (MOR_CLEAR_MEMORY_VALUE (MemoryOverwriteReq)) {
+    DEBUG ((EFI_D_INFO, "IsMemoryOverwriteRequested: Un-controlled Reset detected and hence requesting the Memory Clear\n"));
     bRetValue = 1;
   }
 
 Exit:
-  IoWrite8(CmosIo_73, B_MAGIC_INIT_VALUE); // Initialize to a known value
-  DEBUG((EFI_D_INFO, "-IsMemoryOverwriteRequested: bRetValue = %d\n", bRetValue));
+  DEBUG ((EFI_D_INFO, "IsMemoryOverwriteRequested: bRetValue = %d\n", bRetValue));
   return bRetValue;
 }
 
@@ -219,16 +204,15 @@ HandleMorRequest (
   //
   // Check if there is a need for memory overwrite.
   //
-  bCleanMemory = IsMemoryOverwriteRequested();
+  bCleanMemory = IsMemoryOverwriteRequested ();
 
   //
   // Clear memory if OS requested a memory overwrite operation.
   // This is being done for the memory used by OS => Stolen memory is not cleared as OS cannot store keys in UEFI Stolen memory
   //
-  if (bCleanMemory)
-  {
-    DEBUG((EFI_D_INFO, "Clearing the memory per MOR request.\n"));
-    ClearAvailableSystemMemory();
+  if (bCleanMemory) {
+    DEBUG ((EFI_D_INFO, "Clearing the memory per MOR request.\n"));
+    ClearAvailableSystemMemory ();
   }
 
   return;
@@ -308,17 +292,17 @@ InitializeMemoryTest (
       // For those reserved memory that have not been tested, simply promote to system memory.
       //
       gDS->RemoveMemorySpace (
-            MemorySpaceMap[Index].BaseAddress,
-            MemorySpaceMap[Index].Length
-            );
+             MemorySpaceMap[Index].BaseAddress,
+             MemorySpaceMap[Index].Length
+             );
 
       gDS->AddMemorySpace (
-            EfiGcdMemoryTypeSystemMemory,
-            MemorySpaceMap[Index].BaseAddress,
-            MemorySpaceMap[Index].Length,
-            MemorySpaceMap[Index].Capabilities &~
-            (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED | EFI_MEMORY_RUNTIME)
-            );
+             EfiGcdMemoryTypeSystemMemory,
+             MemorySpaceMap[Index].BaseAddress,
+             MemorySpaceMap[Index].Length,
+             MemorySpaceMap[Index].Capabilities &~
+             (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED | EFI_MEMORY_RUNTIME)
+             );
 
       mTestedSystemMemory += MemorySpaceMap[Index].Length;
       mTotalSystemMemory += MemorySpaceMap[Index].Length;
@@ -425,11 +409,11 @@ GenCompatibleRangeTest (
   gDS->RemoveMemorySpace (StartAddress, Length);
 
   gDS->AddMemorySpace (
-        EfiGcdMemoryTypeSystemMemory,
-        StartAddress,
-        Length,
-        Descriptor.Capabilities &~(EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED | EFI_MEMORY_RUNTIME)
-        );
+         EfiGcdMemoryTypeSystemMemory,
+         StartAddress,
+         Length,
+         Descriptor.Capabilities &~(EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED | EFI_MEMORY_RUNTIME)
+         );
 
   return EFI_SUCCESS;
 }
diff --git a/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.h b/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.h
index 5065bf9..a7f453d 100644
--- a/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.h
+++ b/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.h
@@ -1,7 +1,7 @@
 /** @file
   Include file of the NULL memory test driver.
 
-  Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
diff --git a/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf b/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
index 3db2784..fdbb089 100644
--- a/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
+++ b/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
@@ -2,7 +2,7 @@
 #  This driver installs Generic Memory Test Protocol which does not perform real memory test.
 #  Also clears memory when the MemoryOverwriteRequest bit is set.
 #
-#  Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
@@ -36,7 +36,7 @@
 [Packages]
   MdeModulePkg/MdeModulePkg.dec
   MdePkg/MdePkg.dec
-  BroxtonPlatformPkg/PlatformPkg.dec # required for CMOSMap.h
+  BroxtonPlatformPkg/PlatformPkg.dec
 
 [LibraryClasses]
   MemoryAllocationLib
diff --git a/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.uni b/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.uni
index 5dd1545aa796652aea0686060dfa5da6793dc32a..e08347d80d260cffcf139590514cb810d0c8b145 100644
GIT binary patch
delta 14
VcmbOvI7x7W6eFYgW@*N9b^soL1D5~*

delta 14
VcmbOvI7x7W6eFYAW@*N9b^soF1C{^)

diff --git a/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxeExtra.uni b/Platform/BroxtonPlatformPkg/Common/SampleCode/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxeExtra.uni
index 997aba5a6ef429bdff615e25d28073938cd51eab..5ec80856921237fc5732b0f47575f0e7f68076a8 100644
GIT binary patch
delta 12
Ucmcb^b%$%h5k~WkN2jv@03`MWY5)KL

delta 12
Ucmcb^b%$%h5k|9(N2jv@03`7RX#fBK

diff --git a/Platform/BroxtonPlatformPkg/PlatformDsc/Components.dsc b/Platform/BroxtonPlatformPkg/PlatformDsc/Components.dsc
index 0edcd98..1366b2b 100644
--- a/Platform/BroxtonPlatformPkg/PlatformDsc/Components.dsc
+++ b/Platform/BroxtonPlatformPkg/PlatformDsc/Components.dsc
@@ -185,6 +185,7 @@
 
 !if $(FTPM_ENABLE) == TRUE
   SecurityPkg/Tcg/MemoryOverwriteControl/TcgMor.inf
+  SecurityPkg/Tcg/MemoryOverwriteRequestControlLock/TcgMorLockSmm.inf
 
   SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf {
     <LibraryClasses>
diff --git a/Platform/BroxtonPlatformPkg/PlatformPkg.fdf b/Platform/BroxtonPlatformPkg/PlatformPkg.fdf
index 404efd1..790f188 100644
--- a/Platform/BroxtonPlatformPkg/PlatformPkg.fdf
+++ b/Platform/BroxtonPlatformPkg/PlatformPkg.fdf
@@ -533,6 +533,7 @@ APRIORI DXE {
 
 !if $(FTPM_ENABLE) == TRUE
   INF SecurityPkg/Tcg/MemoryOverwriteControl/TcgMor.inf
+  INF SecurityPkg/Tcg/MemoryOverwriteRequestControlLock/TcgMorLockSmm.inf
   INF RuleOverride = DRIVER_ACPITABLE $(PLATFORM_PACKAGE_COMMON)/SampleCode/SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.inf
 !endif
 
-- 
2.7.0.windows.1




^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-01-20  6:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-20  6:16 [Patch][edk2-platforms/devel-MinnowBoard3] Enable Mor lushifex
2017-01-20  6:25 ` Wei, David

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox