From: lushifex <shifeix.a.lu@intel.com>
To: edk2-devel@lists.01.org
Cc: david.wei@intel.com;
Subject: [Patch][edk2-platforms/devel-MinnowBoard3] Enable Mor.
Date: Fri, 20 Jan 2017 14:16:03 +0800 [thread overview]
Message-ID: <4cf59319-3bf5-4fcb-a9c6-97d267eea76d@SHWDEOPENPSI011.local> (raw)
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
| 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
next reply other threads:[~2017-01-20 6:16 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-20 6:16 lushifex [this message]
2017-01-20 6:25 ` [Patch][edk2-platforms/devel-MinnowBoard3] Enable Mor Wei, David
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4cf59319-3bf5-4fcb-a9c6-97d267eea76d@SHWDEOPENPSI011.local \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox