* [edk2-platforms][PATCH v1 0/3] MinPlatformPkg: Add SpiFvbServiceStandaloneMm
@ 2021-02-06 0:15 Michael Kubacki
2021-02-06 0:15 ` [edk2-platforms][PATCH v1 1/3] MinPlatformPkg/SpiFlashCommonLibNull: Make MODULE_TYPE BASE Michael Kubacki
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Michael Kubacki @ 2021-02-06 0:15 UTC (permalink / raw)
To: devel; +Cc: Chasel Chiu, Nate DeSimone, Liming Gao, Eric Dong
From: Michael Kubacki <michael.kubacki@microsoft.com>
Adds a new component called SpiFvbServiceStandaloneMm that serves
as a Standalone MM compatible SPI FVB service driver.
Note that a MM_STANDALONE version of SpiFlashCommonLib is being
prepared to be sent but for the time being the module can be added
to the MinPlatformPkg build and rely upon a NULL instance in the
build.
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Eric Dong <eric.dong@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Michael Kubacki (3):
MinPlatformPkg/SpiFlashCommonLibNull: Make MODULE_TYPE BASE
MinPlatformPkg/MinPlatformPkg.dsc: Add basic MM_STANDALONE libraries
MinPlatformPkg/SpiFvbService: Add Standalone MM support
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common => }/FvbInfo.c | 0
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common => }/SpiFvbServiceCommon.c | 0
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Smm/SpiFvbServiceSmm.c => SpiFvbServiceMm.c} | 34 +++++------------
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.c | 32 ++++++++++++++++
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceTraditionalMm.c | 32 ++++++++++++++++
Platform/Intel/MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/SpiFlashCommonLibNull.inf | 4 +-
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common => }/SpiFvbServiceCommon.h | 4 --
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.h | 22 +++++++++++
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf | 17 +++++----
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{SpiFvbServiceSmm.inf => SpiFvbServiceStandaloneMm.inf} | 40 ++++++++++----------
Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc | 9 +++++
11 files changed, 138 insertions(+), 56 deletions(-)
rename Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common => }/FvbInfo.c (100%)
rename Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common => }/SpiFvbServiceCommon.c (100%)
rename Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Smm/SpiFvbServiceSmm.c => SpiFvbServiceMm.c} (89%)
create mode 100644 Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.c
create mode 100644 Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceTraditionalMm.c
rename Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common => }/SpiFvbServiceCommon.h (94%)
create mode 100644 Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.h
copy Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{SpiFvbServiceSmm.inf => SpiFvbServiceStandaloneMm.inf} (64%)
--
2.28.0.windows.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [edk2-platforms][PATCH v1 1/3] MinPlatformPkg/SpiFlashCommonLibNull: Make MODULE_TYPE BASE
2021-02-06 0:15 [edk2-platforms][PATCH v1 0/3] MinPlatformPkg: Add SpiFvbServiceStandaloneMm Michael Kubacki
@ 2021-02-06 0:15 ` Michael Kubacki
2021-02-11 2:22 ` Nate DeSimone
2021-02-06 0:15 ` [edk2-platforms][PATCH v1 2/3] MinPlatformPkg/MinPlatformPkg.dsc: Add basic MM_STANDALONE libraries Michael Kubacki
2021-02-06 0:15 ` [edk2-platforms][PATCH v1 3/3] MinPlatformPkg/SpiFvbService: Add Standalone MM support Michael Kubacki
2 siblings, 1 reply; 8+ messages in thread
From: Michael Kubacki @ 2021-02-06 0:15 UTC (permalink / raw)
To: devel; +Cc: Chasel Chiu, Nate DeSimone, Liming Gao, Eric Dong
From: Michael Kubacki <michael.kubacki@microsoft.com>
This NULL library can be used to link against a MODULE_TYPE other
than BASE and that would be useful as it is a NULL class instance.
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Eric Dong <eric.dong@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
---
Platform/Intel/MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/SpiFlashCommonLibNull.inf | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Platform/Intel/MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/SpiFlashCommonLibNull.inf b/Platform/Intel/MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/SpiFlashCommonLibNull.inf
index d4964681de3d..75ef1cb921df 100644
--- a/Platform/Intel/MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/SpiFlashCommonLibNull.inf
+++ b/Platform/Intel/MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/SpiFlashCommonLibNull.inf
@@ -12,8 +12,8 @@ [Defines]
BASE_NAME = SpiFlashCommonLibNull
FILE_GUID = F35BBEE7-A681-443E-BB15-07AF9FABBDED
VERSION_STRING = 1.0
- MODULE_TYPE = DXE_SMM_DRIVER
- LIBRARY_CLASS = SpiFlashCommonLib|DXE_SMM_DRIVER
+ MODULE_TYPE = BASE
+ LIBRARY_CLASS = SpiFlashCommonLib
#
# The following information is for reference only and not required by the build tools.
#
--
2.28.0.windows.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [edk2-platforms][PATCH v1 2/3] MinPlatformPkg/MinPlatformPkg.dsc: Add basic MM_STANDALONE libraries
2021-02-06 0:15 [edk2-platforms][PATCH v1 0/3] MinPlatformPkg: Add SpiFvbServiceStandaloneMm Michael Kubacki
2021-02-06 0:15 ` [edk2-platforms][PATCH v1 1/3] MinPlatformPkg/SpiFlashCommonLibNull: Make MODULE_TYPE BASE Michael Kubacki
@ 2021-02-06 0:15 ` Michael Kubacki
2021-02-11 2:22 ` Nate DeSimone
2021-02-06 0:15 ` [edk2-platforms][PATCH v1 3/3] MinPlatformPkg/SpiFvbService: Add Standalone MM support Michael Kubacki
2 siblings, 1 reply; 8+ messages in thread
From: Michael Kubacki @ 2021-02-06 0:15 UTC (permalink / raw)
To: devel; +Cc: Chasel Chiu, Nate DeSimone, Liming Gao, Eric Dong
From: Michael Kubacki <michael.kubacki@microsoft.com>
Adds a fundamental set of library instances that are needed to build
MM_STANDALONE modules.
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Eric Dong <eric.dong@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
---
Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
index d0b559381720..5e88de43e08d 100644
--- a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
+++ b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
@@ -2,6 +2,7 @@
# Platform description.
#
# Copyright (c) 2017 - 2020, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) Microsoft Corporation.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -112,6 +113,12 @@ [LibraryClasses.common.DXE_SMM_DRIVER]
TestPointCheckLib|MinPlatformPkg/Test/Library/TestPointCheckLib/SmmTestPointCheckLib.inf
TestPointLib|MinPlatformPkg/Test/Library/TestPointLib/SmmTestPointLib.inf
+[LibraryClasses.common.MM_STANDALONE]
+ DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
+ MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmMemoryAllocationLib/StandaloneMmMemoryAllocationLib.inf
+ MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/StandaloneMmServicesTableLib.inf
+ StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf
+
###################################################################################################
#
# Components Section - list of the modules and components that will be processed by compilation
--
2.28.0.windows.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [edk2-platforms][PATCH v1 3/3] MinPlatformPkg/SpiFvbService: Add Standalone MM support
2021-02-06 0:15 [edk2-platforms][PATCH v1 0/3] MinPlatformPkg: Add SpiFvbServiceStandaloneMm Michael Kubacki
2021-02-06 0:15 ` [edk2-platforms][PATCH v1 1/3] MinPlatformPkg/SpiFlashCommonLibNull: Make MODULE_TYPE BASE Michael Kubacki
2021-02-06 0:15 ` [edk2-platforms][PATCH v1 2/3] MinPlatformPkg/MinPlatformPkg.dsc: Add basic MM_STANDALONE libraries Michael Kubacki
@ 2021-02-06 0:15 ` Michael Kubacki
2021-02-11 2:20 ` [edk2-devel] " Nate DeSimone
2 siblings, 1 reply; 8+ messages in thread
From: Michael Kubacki @ 2021-02-06 0:15 UTC (permalink / raw)
To: devel; +Cc: Chasel Chiu, Nate DeSimone, Liming Gao, Eric Dong
From: Michael Kubacki <michael.kubacki@microsoft.com>
Adds support for MM_STANDALONE. Retains the directory path to the
SMM INF instance for backward compatibility with existing platforms.
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Eric Dong <eric.dong@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
---
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common => }/FvbInfo.c | 0
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common => }/SpiFvbServiceCommon.c | 0
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Smm/SpiFvbServiceSmm.c => SpiFvbServiceMm.c} | 34 +++++------------
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.c | 32 ++++++++++++++++
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceTraditionalMm.c | 32 ++++++++++++++++
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common => }/SpiFvbServiceCommon.h | 4 --
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.h | 22 +++++++++++
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf | 17 +++++----
Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{SpiFvbServiceSmm.inf => SpiFvbServiceStandaloneMm.inf} | 40 ++++++++++----------
Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc | 2 +
10 files changed, 129 insertions(+), 54 deletions(-)
diff --git a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/FvbInfo.c b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/FvbInfo.c
similarity index 100%
rename from Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/FvbInfo.c
rename to Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/FvbInfo.c
diff --git a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServiceCommon.c b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceCommon.c
similarity index 100%
rename from Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServiceCommon.c
rename to Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceCommon.c
diff --git a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Smm/SpiFvbServiceSmm.c b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.c
similarity index 89%
rename from Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Smm/SpiFvbServiceSmm.c
rename to Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.c
index 251fcae30b90..3175f5f32e31 100644
--- a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Smm/SpiFvbServiceSmm.c
+++ b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.c
@@ -1,14 +1,15 @@
/** @file
- Common driver source for several Serial Flash devices
+ MM driver source for several Serial Flash devices
which are compliant with the Intel(R) Serial Flash Interface Compatibility Specification.
-Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
-SPDX-License-Identifier: BSD-2-Clause-Patent
+ Copyright (c) Microsoft Corporation.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include "SpiFvbServiceCommon.h"
-#include <Library/SmmServicesTableLib.h>
+#include <Library/MmServicesTableLib.h>
+#include <Library/UefiDriverEntryPoint.h>
#include <Protocol/SmmFirmwareVolumeBlock.h>
/**
@@ -74,7 +75,7 @@ InstallFvbProtocol (
//
FvbHandle = NULL;
- Status = gSmst->SmmInstallProtocolInterface (
+ Status = gMmst->MmInstallProtocolInterface (
&FvbHandle,
&gEfiSmmFirmwareVolumeBlockProtocolGuid,
EFI_NATIVE_INTERFACE,
@@ -82,7 +83,7 @@ InstallFvbProtocol (
);
ASSERT_EFI_ERROR (Status);
- Status = gSmst->SmmInstallProtocolInterface (
+ Status = gMmst->MmInstallProtocolInterface (
&FvbHandle,
&gEfiDevicePathProtocolGuid,
EFI_NATIVE_INTERFACE,
@@ -92,22 +93,13 @@ InstallFvbProtocol (
}
/**
-
The function does the necessary initialization work for
Firmware Volume Block Driver.
- @param[in] ImageHandle The firmware allocated handle for the UEFI image.
- @param[in] SystemTable A pointer to the EFI system table.
-
- @retval EFI_SUCCESS This funtion always return EFI_SUCCESS.
- It will ASSERT on errors.
-
**/
-EFI_STATUS
-EFIAPI
+VOID
FvbInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ VOID
)
{
EFI_FVB_INSTANCE *FvbInstance;
@@ -219,8 +211,7 @@ FvbInitialize (
mFvbModuleGlobal.FvbInstance = (EFI_FVB_INSTANCE *) AllocateRuntimeZeroPool (BufferSize);
if (mFvbModuleGlobal.FvbInstance == NULL) {
ASSERT (FALSE);
- Status = EFI_OUT_OF_RESOURCES;
- goto ERROR;
+ return;
}
MaxLbaSize = 0;
@@ -276,9 +267,4 @@ FvbInitialize (
}
}
-
- return EFI_SUCCESS;
-
-ERROR:
- return Status;
}
diff --git a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.c b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.c
new file mode 100644
index 000000000000..252c818d6551
--- /dev/null
+++ b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.c
@@ -0,0 +1,32 @@
+/** @file
+ MM driver source for several Serial Flash devices
+ which are compliant with the Intel(R) Serial Flash Interface Compatibility Specification.
+
+ Copyright (c) Microsoft Corporation.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "SpiFvbServiceCommon.h"
+#include "SpiFvbServiceMm.h"
+
+/**
+ The driver Standalone MM entry point.
+
+ @param[in] ImageHandle Image handle of this driver.
+ @param[in] MmSystemTable A pointer to the MM system table.
+
+ @retval EFI_SUCCESS This function always returns EFI_SUCCESS.
+
+**/
+EFI_STATUS
+EFIAPI
+SpiFvbStandaloneMmInitialize (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_MM_SYSTEM_TABLE *MmSystemTable
+ )
+{
+ FvbInitialize ();
+
+ return EFI_SUCCESS;
+}
diff --git a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceTraditionalMm.c b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceTraditionalMm.c
new file mode 100644
index 000000000000..1c2dac70e3c6
--- /dev/null
+++ b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceTraditionalMm.c
@@ -0,0 +1,32 @@
+/** @file
+ MM driver source for several Serial Flash devices
+ which are compliant with the Intel(R) Serial Flash Interface Compatibility Specification.
+
+ Copyright (c) Microsoft Corporation.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "SpiFvbServiceCommon.h"
+#include "SpiFvbServiceMm.h"
+
+/**
+ The driver Traditional MM entry point.
+
+ @param[in] ImageHandle Image handle of this driver.
+ @param[in] SystemTable A pointer to the EFI system table.
+
+ @retval EFI_SUCCESS This function always returns EFI_SUCCESS.
+
+**/
+EFI_STATUS
+EFIAPI
+SpiFvbTraditionalMmInitialize (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ FvbInitialize ();
+
+ return EFI_SUCCESS;
+}
diff --git a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServiceCommon.h b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceCommon.h
similarity index 94%
rename from Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServiceCommon.h
rename to Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceCommon.h
index 6379fc86d52e..e9d69e985814 100644
--- a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServiceCommon.h
+++ b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceCommon.h
@@ -15,9 +15,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Protocol/DevicePath.h>
#include <Protocol/FirmwareVolumeBlock.h>
-#include <Library/UefiDriverEntryPoint.h>
-#include <Library/UefiBootServicesTableLib.h>
-#include <Library/UefiLib.h>
#include <Library/BaseLib.h>
#include <Library/DebugLib.h>
#include <Library/BaseMemoryLib.h>
@@ -159,4 +156,3 @@ extern FV_INFO mPlatformFvBaseAddress[];
extern FV_INFO mPlatformDefaultBaseAddress[];
#endif
-
diff --git a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.h b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.h
new file mode 100644
index 000000000000..36af1130c8ee
--- /dev/null
+++ b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.h
@@ -0,0 +1,22 @@
+/** @file
+ Definitions common to MM implementation in this driver.
+
+ Copyright (c) Microsoft Corporation.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef _SPI_FVB_SERVICE_MM_H_
+#define _SPI_FVB_SERVICE_MM_H_
+
+/**
+ The function does the necessary initialization work for
+ Firmware Volume Block Driver.
+
+**/
+VOID
+FvbInitialize (
+ VOID
+ );
+
+#endif
diff --git a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf
index d59c499b2e9e..10e51e11756f 100644
--- a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf
+++ b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf
@@ -2,6 +2,7 @@
# Component description file for the Serial Flash device Runtime driver.
#
# Copyright (c) 2017-2019, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) Microsoft Corporation.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -14,7 +15,8 @@ [Defines]
VERSION_STRING = 1.0
MODULE_TYPE = DXE_SMM_DRIVER
PI_SPECIFICATION_VERSION = 1.10
- ENTRY_POINT = FvbInitialize
+ ENTRY_POINT = SpiFvbTraditionalMmInitialize
+
#
# The following information is for reference only and not required by the build tools.
#
@@ -28,11 +30,10 @@ [LibraryClasses]
BaseMemoryLib
DebugLib
BaseLib
- UefiLib
UefiBootServicesTableLib
UefiDriverEntryPoint
SpiFlashCommonLib
- SmmServicesTableLib
+ MmServicesTableLib
[Packages]
MdePkg/MdePkg.dec
@@ -48,10 +49,12 @@ [Pcd]
gMinPlatformPkgTokenSpaceGuid.PcdFlashFvMicrocodeSize ## CONSUMES
[Sources]
- Common/SpiFvbServiceCommon.c
- Common/FvbInfo.c
- Common/SpiFvbServiceCommon.h
- Smm/SpiFvbServiceSmm.c
+ FvbInfo.c
+ SpiFvbServiceCommon.h
+ SpiFvbServiceCommon.c
+ SpiFvbServiceMm.h
+ SpiFvbServiceMm.c
+ SpiFvbServiceTraditionalMm.c
[Protocols]
gEfiDevicePathProtocolGuid ## PRODUCES
diff --git a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.inf
similarity index 64%
copy from Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf
copy to Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.inf
index d59c499b2e9e..9f08d3673f41 100644
--- a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf
+++ b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.inf
@@ -1,20 +1,22 @@
### @file
-# Component description file for the Serial Flash device Runtime driver.
+# Component description file for the Serial Flash device Standalone MM driver.
#
# Copyright (c) 2017-2019, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) Microsoft Corporation.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
###
[Defines]
- INF_VERSION = 0x00010017
- BASE_NAME = SpiFvbServiceSmm
- FILE_GUID = 68A10D85-6858-4402-B070-028B3EA21747
+ INF_VERSION = 0x0001001B
+ BASE_NAME = SpiFvbServiceStandaloneMm
+ FILE_GUID = E6313655-8BD0-4EAB-B319-AD5E212CE6AB
VERSION_STRING = 1.0
- MODULE_TYPE = DXE_SMM_DRIVER
- PI_SPECIFICATION_VERSION = 1.10
- ENTRY_POINT = FvbInitialize
+ MODULE_TYPE = MM_STANDALONE
+ PI_SPECIFICATION_VERSION = 0x00010032
+ ENTRY_POINT = SpiFvbStandaloneMmInitialize
+
#
# The following information is for reference only and not required by the build tools.
#
@@ -22,17 +24,15 @@ [Defines]
#
[LibraryClasses]
- PcdLib
- MemoryAllocationLib
- CacheMaintenanceLib
+ BaseLib
BaseMemoryLib
+ CacheMaintenanceLib
DebugLib
- BaseLib
- UefiLib
- UefiBootServicesTableLib
- UefiDriverEntryPoint
+ MemoryAllocationLib
+ PcdLib
+ MmServicesTableLib
SpiFlashCommonLib
- SmmServicesTableLib
+ StandaloneMmDriverEntryPoint
[Packages]
MdePkg/MdePkg.dec
@@ -48,10 +48,12 @@ [Pcd]
gMinPlatformPkgTokenSpaceGuid.PcdFlashFvMicrocodeSize ## CONSUMES
[Sources]
- Common/SpiFvbServiceCommon.c
- Common/FvbInfo.c
- Common/SpiFvbServiceCommon.h
- Smm/SpiFvbServiceSmm.c
+ FvbInfo.c
+ SpiFvbServiceCommon.h
+ SpiFvbServiceCommon.c
+ SpiFvbServiceMm.h
+ SpiFvbServiceMm.c
+ SpiFvbServiceStandaloneMm.c
[Protocols]
gEfiDevicePathProtocolGuid ## PRODUCES
diff --git a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
index 5e88de43e08d..0460fd5a3206 100644
--- a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
+++ b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
@@ -117,6 +117,7 @@ [LibraryClasses.common.MM_STANDALONE]
DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmMemoryAllocationLib/StandaloneMmMemoryAllocationLib.inf
MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/StandaloneMmServicesTableLib.inf
+ SpiFlashCommonLib|MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/SpiFlashCommonLibNull.inf
StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf
###################################################################################################
@@ -155,6 +156,7 @@ [Components]
MinPlatformPkg/Bds/Library/DxePlatformBootManagerLib/DxePlatformBootManagerLib.inf
MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf
+ MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.inf
MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/SpiFlashCommonLibNull.inf
MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMemoryConfig.inf
--
2.28.0.windows.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v1 3/3] MinPlatformPkg/SpiFvbService: Add Standalone MM support
2021-02-06 0:15 ` [edk2-platforms][PATCH v1 3/3] MinPlatformPkg/SpiFvbService: Add Standalone MM support Michael Kubacki
@ 2021-02-11 2:20 ` Nate DeSimone
2021-02-11 20:21 ` Michael Kubacki
0 siblings, 1 reply; 8+ messages in thread
From: Nate DeSimone @ 2021-02-11 2:20 UTC (permalink / raw)
To: devel@edk2.groups.io, mikuback@linux.microsoft.com
Cc: Chiu, Chasel, Liming Gao, Dong, Eric
Hi Michael,
Given that MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.c is almost identical to MinPlatformPkg/Flash/SpiFvbService/Smm/SpiFvbServiceSmm.c, it seems a little inappropriate to remove Intel's copyright from that file. You are welcome to add a Microsoft copyright of course. Other than that, your patch series look's good!
Thanks,
Nate
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Michael
> Kubacki
> Sent: Friday, February 5, 2021 4:15 PM
> To: devel@edk2.groups.io
> Cc: Chiu, Chasel <chasel.chiu@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Dong, Eric <eric.dong@intel.com>
> Subject: [edk2-devel] [edk2-platforms][PATCH v1 3/3]
> MinPlatformPkg/SpiFvbService: Add Standalone MM support
>
> From: Michael Kubacki <michael.kubacki@microsoft.com>
>
> Adds support for MM_STANDALONE. Retains the directory path to the SMM
> INF instance for backward compatibility with existing platforms.
>
> Cc: Chasel Chiu <chasel.chiu@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: Eric Dong <eric.dong@intel.com>
> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
> ---
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common =>
> }/FvbInfo.c | 0
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common =>
> }/SpiFvbServiceCommon.c | 0
>
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Smm/SpiFvbServiceSm
> m.c => SpiFvbServiceMm.c} | 34 +++++------------
>
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandalon
> eMm.c | 32 ++++++++++++++++
>
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceTraditiona
> lMm.c | 32 ++++++++++++++++
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common =>
> }/SpiFvbServiceCommon.h | 4 --
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.h
> | 22 +++++++++++
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf
> | 17 +++++----
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{SpiFvbServiceSmm.inf
> => SpiFvbServiceStandaloneMm.inf} | 40 ++++++++++----------
> Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> | 2 +
> 10 files changed, 129 insertions(+), 54 deletions(-)
>
> diff --git
> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/FvbInfo.c
> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/FvbInfo.c
> similarity index 100%
> rename from
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/FvbInfo.c
> rename to Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/FvbInfo.c
> diff --git
> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServi
> ceCommon.c
> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceComm
> on.c
> similarity index 100%
> rename from
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServic
> eCommon.c
> rename to
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceCommon.
> c
> diff --git
> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Smm/SpiFvbServiceS
> mm.c
> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.c
> similarity index 89%
> rename from
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Smm/SpiFvbServiceSm
> m.c
> rename to
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.c
> index 251fcae30b90..3175f5f32e31 100644
> ---
> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Smm/SpiFvbServiceS
> mm.c
> +++
> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.
> +++ c
> @@ -1,14 +1,15 @@
> /** @file
> - Common driver source for several Serial Flash devices
> + MM driver source for several Serial Flash devices
> which are compliant with the Intel(R) Serial Flash Interface Compatibility
> Specification.
>
> -Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> -SPDX-License-Identifier: BSD-2-Clause-Patent
> + Copyright (c) Microsoft Corporation.<BR>
> + SPDX-License-Identifier: BSD-2-Clause-Patent
>
> **/
>
> #include "SpiFvbServiceCommon.h"
> -#include <Library/SmmServicesTableLib.h>
> +#include <Library/MmServicesTableLib.h> #include
> +<Library/UefiDriverEntryPoint.h>
> #include <Protocol/SmmFirmwareVolumeBlock.h>
>
> /**
> @@ -74,7 +75,7 @@ InstallFvbProtocol (
> //
> FvbHandle = NULL;
>
> - Status = gSmst->SmmInstallProtocolInterface (
> + Status = gMmst->MmInstallProtocolInterface (
> &FvbHandle,
> &gEfiSmmFirmwareVolumeBlockProtocolGuid,
> EFI_NATIVE_INTERFACE, @@ -82,7 +83,7 @@ InstallFvbProtocol (
> );
> ASSERT_EFI_ERROR (Status);
>
> - Status = gSmst->SmmInstallProtocolInterface (
> + Status = gMmst->MmInstallProtocolInterface (
> &FvbHandle,
> &gEfiDevicePathProtocolGuid,
> EFI_NATIVE_INTERFACE, @@ -92,22 +93,13 @@ InstallFvbProtocol
> ( }
>
> /**
> -
> The function does the necessary initialization work for
> Firmware Volume Block Driver.
>
> - @param[in] ImageHandle The firmware allocated handle for the UEFI
> image.
> - @param[in] SystemTable A pointer to the EFI system table.
> -
> - @retval EFI_SUCCESS This funtion always return EFI_SUCCESS.
> - It will ASSERT on errors.
> -
> **/
> -EFI_STATUS
> -EFIAPI
> +VOID
> FvbInitialize (
> - IN EFI_HANDLE ImageHandle,
> - IN EFI_SYSTEM_TABLE *SystemTable
> + VOID
> )
> {
> EFI_FVB_INSTANCE *FvbInstance;
> @@ -219,8 +211,7 @@ FvbInitialize (
> mFvbModuleGlobal.FvbInstance = (EFI_FVB_INSTANCE *)
> AllocateRuntimeZeroPool (BufferSize);
> if (mFvbModuleGlobal.FvbInstance == NULL) {
> ASSERT (FALSE);
> - Status = EFI_OUT_OF_RESOURCES;
> - goto ERROR;
> + return;
> }
>
> MaxLbaSize = 0;
> @@ -276,9 +267,4 @@ FvbInitialize (
>
> }
> }
> -
> - return EFI_SUCCESS;
> -
> -ERROR:
> - return Status;
> }
> diff --git
> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandal
> oneMm.c
> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandal
> oneMm.c
> new file mode 100644
> index 000000000000..252c818d6551
> --- /dev/null
> +++ b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSta
> +++ ndaloneMm.c
> @@ -0,0 +1,32 @@
> +/** @file
> + MM driver source for several Serial Flash devices
> + which are compliant with the Intel(R) Serial Flash Interface Compatibility
> Specification.
> +
> + Copyright (c) Microsoft Corporation.<BR>
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#include "SpiFvbServiceCommon.h"
> +#include "SpiFvbServiceMm.h"
> +
> +/**
> + The driver Standalone MM entry point.
> +
> + @param[in] ImageHandle Image handle of this driver.
> + @param[in] MmSystemTable A pointer to the MM system table.
> +
> + @retval EFI_SUCCESS This function always returns EFI_SUCCESS.
> +
> +**/
> +EFI_STATUS
> +EFIAPI
> +SpiFvbStandaloneMmInitialize (
> + IN EFI_HANDLE ImageHandle,
> + IN EFI_MM_SYSTEM_TABLE *MmSystemTable
> + )
> +{
> + FvbInitialize ();
> +
> + return EFI_SUCCESS;
> +}
> diff --git
> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceTraditio
> nalMm.c
> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceTraditio
> nalMm.c
> new file mode 100644
> index 000000000000..1c2dac70e3c6
> --- /dev/null
> +++ b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceTra
> +++ ditionalMm.c
> @@ -0,0 +1,32 @@
> +/** @file
> + MM driver source for several Serial Flash devices
> + which are compliant with the Intel(R) Serial Flash Interface Compatibility
> Specification.
> +
> + Copyright (c) Microsoft Corporation.<BR>
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#include "SpiFvbServiceCommon.h"
> +#include "SpiFvbServiceMm.h"
> +
> +/**
> + The driver Traditional MM entry point.
> +
> + @param[in] ImageHandle Image handle of this driver.
> + @param[in] SystemTable A pointer to the EFI system table.
> +
> + @retval EFI_SUCCESS This function always returns EFI_SUCCESS.
> +
> +**/
> +EFI_STATUS
> +EFIAPI
> +SpiFvbTraditionalMmInitialize (
> + IN EFI_HANDLE ImageHandle,
> + IN EFI_SYSTEM_TABLE *SystemTable
> + )
> +{
> + FvbInitialize ();
> +
> + return EFI_SUCCESS;
> +}
> diff --git
> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServi
> ceCommon.h
> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceComm
> on.h
> similarity index 94%
> rename from
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServic
> eCommon.h
> rename to
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceCommon.
> h
> index 6379fc86d52e..e9d69e985814 100644
> ---
> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServi
> ceCommon.h
> +++
> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceCom
> +++ mon.h
> @@ -15,9 +15,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #include
> <Protocol/DevicePath.h> #include <Protocol/FirmwareVolumeBlock.h>
>
> -#include <Library/UefiDriverEntryPoint.h> -#include
> <Library/UefiBootServicesTableLib.h>
> -#include <Library/UefiLib.h>
> #include <Library/BaseLib.h>
> #include <Library/DebugLib.h>
> #include <Library/BaseMemoryLib.h>
> @@ -159,4 +156,3 @@ extern FV_INFO
> mPlatformFvBaseAddress[];
> extern FV_INFO mPlatformDefaultBaseAddress[];
>
> #endif
> -
> diff --git
> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.h
> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.h
> new file mode 100644
> index 000000000000..36af1130c8ee
> --- /dev/null
> +++
> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.
> +++ h
> @@ -0,0 +1,22 @@
> +/** @file
> + Definitions common to MM implementation in this driver.
> +
> + Copyright (c) Microsoft Corporation.<BR>
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#ifndef _SPI_FVB_SERVICE_MM_H_
> +#define _SPI_FVB_SERVICE_MM_H_
> +
> +/**
> + The function does the necessary initialization work for
> + Firmware Volume Block Driver.
> +
> +**/
> +VOID
> +FvbInitialize (
> + VOID
> + );
> +
> +#endif
> diff --git
> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.in
> f
> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.in
> f
> index d59c499b2e9e..10e51e11756f 100644
> ---
> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.in
> f
> +++
> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm
> +++ .inf
> @@ -2,6 +2,7 @@
> # Component description file for the Serial Flash device Runtime driver.
> #
> # Copyright (c) 2017-2019, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) Microsoft Corporation.<BR>
> #
> # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -14,7 +15,8 @@
> [Defines]
> VERSION_STRING = 1.0
> MODULE_TYPE = DXE_SMM_DRIVER
> PI_SPECIFICATION_VERSION = 1.10
> - ENTRY_POINT = FvbInitialize
> + ENTRY_POINT = SpiFvbTraditionalMmInitialize
> +
> #
> # The following information is for reference only and not required by the
> build tools.
> #
> @@ -28,11 +30,10 @@ [LibraryClasses]
> BaseMemoryLib
> DebugLib
> BaseLib
> - UefiLib
> UefiBootServicesTableLib
> UefiDriverEntryPoint
> SpiFlashCommonLib
> - SmmServicesTableLib
> + MmServicesTableLib
>
> [Packages]
> MdePkg/MdePkg.dec
> @@ -48,10 +49,12 @@ [Pcd]
> gMinPlatformPkgTokenSpaceGuid.PcdFlashFvMicrocodeSize ##
> CONSUMES
>
> [Sources]
> - Common/SpiFvbServiceCommon.c
> - Common/FvbInfo.c
> - Common/SpiFvbServiceCommon.h
> - Smm/SpiFvbServiceSmm.c
> + FvbInfo.c
> + SpiFvbServiceCommon.h
> + SpiFvbServiceCommon.c
> + SpiFvbServiceMm.h
> + SpiFvbServiceMm.c
> + SpiFvbServiceTraditionalMm.c
>
> [Protocols]
> gEfiDevicePathProtocolGuid ## PRODUCES
> diff --git
> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.in
> f
> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandal
> oneMm.inf
> similarity index 64%
> copy from
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf
> copy to
> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandalon
> eMm.inf
> index d59c499b2e9e..9f08d3673f41 100644
> ---
> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.in
> f
> +++ b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSta
> +++ ndaloneMm.inf
> @@ -1,20 +1,22 @@
> ### @file
> -# Component description file for the Serial Flash device Runtime driver.
> +# Component description file for the Serial Flash device Standalone MM
> driver.
> #
> # Copyright (c) 2017-2019, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) Microsoft Corporation.<BR>
> #
> # SPDX-License-Identifier: BSD-2-Clause-Patent # ###
>
> [Defines]
> - INF_VERSION = 0x00010017
> - BASE_NAME = SpiFvbServiceSmm
> - FILE_GUID = 68A10D85-6858-4402-B070-028B3EA21747
> + INF_VERSION = 0x0001001B
> + BASE_NAME = SpiFvbServiceStandaloneMm
> + FILE_GUID = E6313655-8BD0-4EAB-B319-AD5E212CE6AB
> VERSION_STRING = 1.0
> - MODULE_TYPE = DXE_SMM_DRIVER
> - PI_SPECIFICATION_VERSION = 1.10
> - ENTRY_POINT = FvbInitialize
> + MODULE_TYPE = MM_STANDALONE
> + PI_SPECIFICATION_VERSION = 0x00010032
> + ENTRY_POINT = SpiFvbStandaloneMmInitialize
> +
> #
> # The following information is for reference only and not required by the
> build tools.
> #
> @@ -22,17 +24,15 @@ [Defines]
> #
>
> [LibraryClasses]
> - PcdLib
> - MemoryAllocationLib
> - CacheMaintenanceLib
> + BaseLib
> BaseMemoryLib
> + CacheMaintenanceLib
> DebugLib
> - BaseLib
> - UefiLib
> - UefiBootServicesTableLib
> - UefiDriverEntryPoint
> + MemoryAllocationLib
> + PcdLib
> + MmServicesTableLib
> SpiFlashCommonLib
> - SmmServicesTableLib
> + StandaloneMmDriverEntryPoint
>
> [Packages]
> MdePkg/MdePkg.dec
> @@ -48,10 +48,12 @@ [Pcd]
> gMinPlatformPkgTokenSpaceGuid.PcdFlashFvMicrocodeSize ##
> CONSUMES
>
> [Sources]
> - Common/SpiFvbServiceCommon.c
> - Common/FvbInfo.c
> - Common/SpiFvbServiceCommon.h
> - Smm/SpiFvbServiceSmm.c
> + FvbInfo.c
> + SpiFvbServiceCommon.h
> + SpiFvbServiceCommon.c
> + SpiFvbServiceMm.h
> + SpiFvbServiceMm.c
> + SpiFvbServiceStandaloneMm.c
>
> [Protocols]
> gEfiDevicePathProtocolGuid ## PRODUCES
> diff --git a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> index 5e88de43e08d..0460fd5a3206 100644
> --- a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> +++ b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> @@ -117,6 +117,7 @@ [LibraryClasses.common.MM_STANDALONE]
> DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
>
> MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmMemoryAll
> ocationLib/StandaloneMmMemoryAllocationLib.inf
>
> MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/Stan
> daloneMmServicesTableLib.inf
> +
> +
> SpiFlashCommonLib|MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/
> S
> + piFlashCommonLibNull.inf
>
> StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntry
> Point/StandaloneMmDriverEntryPoint.inf
>
>
> ##########################################################
> #########################################
> @@ -155,6 +156,7 @@ [Components]
>
> MinPlatformPkg/Bds/Library/DxePlatformBootManagerLib/DxePlatformBoot
> ManagerLib.inf
>
> MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf
> + MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.inf
>
> MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/SpiFlashCommonLib
> Null.inf
>
> MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMemoryConfig.inf
> --
> 2.28.0.windows.1
>
>
>
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#71385): https://edk2.groups.io/g/devel/message/71385
> Mute This Topic: https://groups.io/mt/80420930/1767664
> Group Owner: devel+owner@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub
> [nathaniel.l.desimone@intel.com]
> -=-=-=-=-=-=
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [edk2-platforms][PATCH v1 1/3] MinPlatformPkg/SpiFlashCommonLibNull: Make MODULE_TYPE BASE
2021-02-06 0:15 ` [edk2-platforms][PATCH v1 1/3] MinPlatformPkg/SpiFlashCommonLibNull: Make MODULE_TYPE BASE Michael Kubacki
@ 2021-02-11 2:22 ` Nate DeSimone
0 siblings, 0 replies; 8+ messages in thread
From: Nate DeSimone @ 2021-02-11 2:22 UTC (permalink / raw)
To: mikuback@linux.microsoft.com, devel@edk2.groups.io
Cc: Chiu, Chasel, Liming Gao, Dong, Eric
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
> -----Original Message-----
> From: mikuback@linux.microsoft.com <mikuback@linux.microsoft.com>
> Sent: Friday, February 5, 2021 4:15 PM
> To: devel@edk2.groups.io
> Cc: Chiu, Chasel <chasel.chiu@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Dong, Eric <eric.dong@intel.com>
> Subject: [edk2-platforms][PATCH v1 1/3]
> MinPlatformPkg/SpiFlashCommonLibNull: Make MODULE_TYPE BASE
>
> From: Michael Kubacki <michael.kubacki@microsoft.com>
>
> This NULL library can be used to link against a MODULE_TYPE other than BASE
> and that would be useful as it is a NULL class instance.
>
> Cc: Chasel Chiu <chasel.chiu@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: Eric Dong <eric.dong@intel.com>
> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
> ---
>
> Platform/Intel/MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/SpiFla
> shCommonLibNull.inf | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git
> a/Platform/Intel/MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/Spi
> FlashCommonLibNull.inf
> b/Platform/Intel/MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/Spi
> FlashCommonLibNull.inf
> index d4964681de3d..75ef1cb921df 100644
> ---
> a/Platform/Intel/MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/Spi
> FlashCommonLibNull.inf
> +++
> b/Platform/Intel/MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/
> +++ SpiFlashCommonLibNull.inf
> @@ -12,8 +12,8 @@ [Defines]
> BASE_NAME = SpiFlashCommonLibNull
> FILE_GUID = F35BBEE7-A681-443E-BB15-07AF9FABBDED
> VERSION_STRING = 1.0
> - MODULE_TYPE = DXE_SMM_DRIVER
> - LIBRARY_CLASS = SpiFlashCommonLib|DXE_SMM_DRIVER
> + MODULE_TYPE = BASE
> + LIBRARY_CLASS = SpiFlashCommonLib
> #
> # The following information is for reference only and not required by the
> build tools.
> #
> --
> 2.28.0.windows.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [edk2-platforms][PATCH v1 2/3] MinPlatformPkg/MinPlatformPkg.dsc: Add basic MM_STANDALONE libraries
2021-02-06 0:15 ` [edk2-platforms][PATCH v1 2/3] MinPlatformPkg/MinPlatformPkg.dsc: Add basic MM_STANDALONE libraries Michael Kubacki
@ 2021-02-11 2:22 ` Nate DeSimone
0 siblings, 0 replies; 8+ messages in thread
From: Nate DeSimone @ 2021-02-11 2:22 UTC (permalink / raw)
To: mikuback@linux.microsoft.com, devel@edk2.groups.io
Cc: Chiu, Chasel, Liming Gao, Dong, Eric
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
> -----Original Message-----
> From: mikuback@linux.microsoft.com <mikuback@linux.microsoft.com>
> Sent: Friday, February 5, 2021 4:15 PM
> To: devel@edk2.groups.io
> Cc: Chiu, Chasel <chasel.chiu@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Dong, Eric <eric.dong@intel.com>
> Subject: [edk2-platforms][PATCH v1 2/3]
> MinPlatformPkg/MinPlatformPkg.dsc: Add basic MM_STANDALONE libraries
>
> From: Michael Kubacki <michael.kubacki@microsoft.com>
>
> Adds a fundamental set of library instances that are needed to build
> MM_STANDALONE modules.
>
> Cc: Chasel Chiu <chasel.chiu@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: Eric Dong <eric.dong@intel.com>
> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
> ---
> Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> index d0b559381720..5e88de43e08d 100644
> --- a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> +++ b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> @@ -2,6 +2,7 @@
> # Platform description.
> #
> # Copyright (c) 2017 - 2020, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) Microsoft Corporation.<BR>
> #
> # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -112,6 +113,12 @@
> [LibraryClasses.common.DXE_SMM_DRIVER]
>
> TestPointCheckLib|MinPlatformPkg/Test/Library/TestPointCheckLib/SmmTe
> stPointCheckLib.inf
>
> TestPointLib|MinPlatformPkg/Test/Library/TestPointLib/SmmTestPointLib.in
> f
>
> +[LibraryClasses.common.MM_STANDALONE]
> + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
> +
> +MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmMemoryA
> llocatio
> +nLib/StandaloneMmMemoryAllocationLib.inf
> +
> +MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/Sta
> ndalo
> +neMmServicesTableLib.inf
> +
> +StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntr
> yPoin
> +t/StandaloneMmDriverEntryPoint.inf
> +
>
> ##########################################################
> #########################################
> #
> # Components Section - list of the modules and components that will be
> processed by compilation
> --
> 2.28.0.windows.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v1 3/3] MinPlatformPkg/SpiFvbService: Add Standalone MM support
2021-02-11 2:20 ` [edk2-devel] " Nate DeSimone
@ 2021-02-11 20:21 ` Michael Kubacki
0 siblings, 0 replies; 8+ messages in thread
From: Michael Kubacki @ 2021-02-11 20:21 UTC (permalink / raw)
To: devel, nathaniel.l.desimone; +Cc: Chiu, Chasel, Liming Gao, Dong, Eric
Hi Nate,
Thanks for the review. I apologize, that was a mistake due to quickly
changing file headers based on what VS Code showed as new files. I will
update it in a v2.
Thanks,
Michael
On 2/10/2021 6:20 PM, Nate DeSimone wrote:
> Hi Michael,
>
> Given that MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.c is almost identical to MinPlatformPkg/Flash/SpiFvbService/Smm/SpiFvbServiceSmm.c, it seems a little inappropriate to remove Intel's copyright from that file. You are welcome to add a Microsoft copyright of course. Other than that, your patch series look's good!
>
> Thanks,
> Nate
>
>> -----Original Message-----
>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Michael
>> Kubacki
>> Sent: Friday, February 5, 2021 4:15 PM
>> To: devel@edk2.groups.io
>> Cc: Chiu, Chasel <chasel.chiu@intel.com>; Desimone, Nathaniel L
>> <nathaniel.l.desimone@intel.com>; Liming Gao
>> <gaoliming@byosoft.com.cn>; Dong, Eric <eric.dong@intel.com>
>> Subject: [edk2-devel] [edk2-platforms][PATCH v1 3/3]
>> MinPlatformPkg/SpiFvbService: Add Standalone MM support
>>
>> From: Michael Kubacki <michael.kubacki@microsoft.com>
>>
>> Adds support for MM_STANDALONE. Retains the directory path to the SMM
>> INF instance for backward compatibility with existing platforms.
>>
>> Cc: Chasel Chiu <chasel.chiu@intel.com>
>> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
>> Cc: Liming Gao <gaoliming@byosoft.com.cn>
>> Cc: Eric Dong <eric.dong@intel.com>
>> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
>> ---
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common =>
>> }/FvbInfo.c | 0
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common =>
>> }/SpiFvbServiceCommon.c | 0
>>
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Smm/SpiFvbServiceSm
>> m.c => SpiFvbServiceMm.c} | 34 +++++------------
>>
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandalon
>> eMm.c | 32 ++++++++++++++++
>>
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceTraditiona
>> lMm.c | 32 ++++++++++++++++
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{Common =>
>> }/SpiFvbServiceCommon.h | 4 --
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.h
>> | 22 +++++++++++
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf
>> | 17 +++++----
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/{SpiFvbServiceSmm.inf
>> => SpiFvbServiceStandaloneMm.inf} | 40 ++++++++++----------
>> Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
>> | 2 +
>> 10 files changed, 129 insertions(+), 54 deletions(-)
>>
>> diff --git
>> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/FvbInfo.c
>> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/FvbInfo.c
>> similarity index 100%
>> rename from
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/FvbInfo.c
>> rename to Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/FvbInfo.c
>> diff --git
>> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServi
>> ceCommon.c
>> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceComm
>> on.c
>> similarity index 100%
>> rename from
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServic
>> eCommon.c
>> rename to
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceCommon.
>> c
>> diff --git
>> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Smm/SpiFvbServiceS
>> mm.c
>> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.c
>> similarity index 89%
>> rename from
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Smm/SpiFvbServiceSm
>> m.c
>> rename to
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.c
>> index 251fcae30b90..3175f5f32e31 100644
>> ---
>> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Smm/SpiFvbServiceS
>> mm.c
>> +++
>> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.
>> +++ c
>> @@ -1,14 +1,15 @@
>> /** @file
>> - Common driver source for several Serial Flash devices
>> + MM driver source for several Serial Flash devices
>> which are compliant with the Intel(R) Serial Flash Interface Compatibility
>> Specification.
>>
>> -Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
>> -SPDX-License-Identifier: BSD-2-Clause-Patent
>> + Copyright (c) Microsoft Corporation.<BR>
>> + SPDX-License-Identifier: BSD-2-Clause-Patent
>>
>> **/
>>
>> #include "SpiFvbServiceCommon.h"
>> -#include <Library/SmmServicesTableLib.h>
>> +#include <Library/MmServicesTableLib.h> #include
>> +<Library/UefiDriverEntryPoint.h>
>> #include <Protocol/SmmFirmwareVolumeBlock.h>
>>
>> /**
>> @@ -74,7 +75,7 @@ InstallFvbProtocol (
>> //
>> FvbHandle = NULL;
>>
>> - Status = gSmst->SmmInstallProtocolInterface (
>> + Status = gMmst->MmInstallProtocolInterface (
>> &FvbHandle,
>> &gEfiSmmFirmwareVolumeBlockProtocolGuid,
>> EFI_NATIVE_INTERFACE, @@ -82,7 +83,7 @@ InstallFvbProtocol (
>> );
>> ASSERT_EFI_ERROR (Status);
>>
>> - Status = gSmst->SmmInstallProtocolInterface (
>> + Status = gMmst->MmInstallProtocolInterface (
>> &FvbHandle,
>> &gEfiDevicePathProtocolGuid,
>> EFI_NATIVE_INTERFACE, @@ -92,22 +93,13 @@ InstallFvbProtocol
>> ( }
>>
>> /**
>> -
>> The function does the necessary initialization work for
>> Firmware Volume Block Driver.
>>
>> - @param[in] ImageHandle The firmware allocated handle for the UEFI
>> image.
>> - @param[in] SystemTable A pointer to the EFI system table.
>> -
>> - @retval EFI_SUCCESS This funtion always return EFI_SUCCESS.
>> - It will ASSERT on errors.
>> -
>> **/
>> -EFI_STATUS
>> -EFIAPI
>> +VOID
>> FvbInitialize (
>> - IN EFI_HANDLE ImageHandle,
>> - IN EFI_SYSTEM_TABLE *SystemTable
>> + VOID
>> )
>> {
>> EFI_FVB_INSTANCE *FvbInstance;
>> @@ -219,8 +211,7 @@ FvbInitialize (
>> mFvbModuleGlobal.FvbInstance = (EFI_FVB_INSTANCE *)
>> AllocateRuntimeZeroPool (BufferSize);
>> if (mFvbModuleGlobal.FvbInstance == NULL) {
>> ASSERT (FALSE);
>> - Status = EFI_OUT_OF_RESOURCES;
>> - goto ERROR;
>> + return;
>> }
>>
>> MaxLbaSize = 0;
>> @@ -276,9 +267,4 @@ FvbInitialize (
>>
>> }
>> }
>> -
>> - return EFI_SUCCESS;
>> -
>> -ERROR:
>> - return Status;
>> }
>> diff --git
>> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandal
>> oneMm.c
>> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandal
>> oneMm.c
>> new file mode 100644
>> index 000000000000..252c818d6551
>> --- /dev/null
>> +++ b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSta
>> +++ ndaloneMm.c
>> @@ -0,0 +1,32 @@
>> +/** @file
>> + MM driver source for several Serial Flash devices
>> + which are compliant with the Intel(R) Serial Flash Interface Compatibility
>> Specification.
>> +
>> + Copyright (c) Microsoft Corporation.<BR>
>> + SPDX-License-Identifier: BSD-2-Clause-Patent
>> +
>> +**/
>> +
>> +#include "SpiFvbServiceCommon.h"
>> +#include "SpiFvbServiceMm.h"
>> +
>> +/**
>> + The driver Standalone MM entry point.
>> +
>> + @param[in] ImageHandle Image handle of this driver.
>> + @param[in] MmSystemTable A pointer to the MM system table.
>> +
>> + @retval EFI_SUCCESS This function always returns EFI_SUCCESS.
>> +
>> +**/
>> +EFI_STATUS
>> +EFIAPI
>> +SpiFvbStandaloneMmInitialize (
>> + IN EFI_HANDLE ImageHandle,
>> + IN EFI_MM_SYSTEM_TABLE *MmSystemTable
>> + )
>> +{
>> + FvbInitialize ();
>> +
>> + return EFI_SUCCESS;
>> +}
>> diff --git
>> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceTraditio
>> nalMm.c
>> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceTraditio
>> nalMm.c
>> new file mode 100644
>> index 000000000000..1c2dac70e3c6
>> --- /dev/null
>> +++ b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceTra
>> +++ ditionalMm.c
>> @@ -0,0 +1,32 @@
>> +/** @file
>> + MM driver source for several Serial Flash devices
>> + which are compliant with the Intel(R) Serial Flash Interface Compatibility
>> Specification.
>> +
>> + Copyright (c) Microsoft Corporation.<BR>
>> + SPDX-License-Identifier: BSD-2-Clause-Patent
>> +
>> +**/
>> +
>> +#include "SpiFvbServiceCommon.h"
>> +#include "SpiFvbServiceMm.h"
>> +
>> +/**
>> + The driver Traditional MM entry point.
>> +
>> + @param[in] ImageHandle Image handle of this driver.
>> + @param[in] SystemTable A pointer to the EFI system table.
>> +
>> + @retval EFI_SUCCESS This function always returns EFI_SUCCESS.
>> +
>> +**/
>> +EFI_STATUS
>> +EFIAPI
>> +SpiFvbTraditionalMmInitialize (
>> + IN EFI_HANDLE ImageHandle,
>> + IN EFI_SYSTEM_TABLE *SystemTable
>> + )
>> +{
>> + FvbInitialize ();
>> +
>> + return EFI_SUCCESS;
>> +}
>> diff --git
>> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServi
>> ceCommon.h
>> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceComm
>> on.h
>> similarity index 94%
>> rename from
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServic
>> eCommon.h
>> rename to
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceCommon.
>> h
>> index 6379fc86d52e..e9d69e985814 100644
>> ---
>> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/Common/SpiFvbServi
>> ceCommon.h
>> +++
>> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceCom
>> +++ mon.h
>> @@ -15,9 +15,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #include
>> <Protocol/DevicePath.h> #include <Protocol/FirmwareVolumeBlock.h>
>>
>> -#include <Library/UefiDriverEntryPoint.h> -#include
>> <Library/UefiBootServicesTableLib.h>
>> -#include <Library/UefiLib.h>
>> #include <Library/BaseLib.h>
>> #include <Library/DebugLib.h>
>> #include <Library/BaseMemoryLib.h>
>> @@ -159,4 +156,3 @@ extern FV_INFO
>> mPlatformFvBaseAddress[];
>> extern FV_INFO mPlatformDefaultBaseAddress[];
>>
>> #endif
>> -
>> diff --git
>> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.h
>> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.h
>> new file mode 100644
>> index 000000000000..36af1130c8ee
>> --- /dev/null
>> +++
>> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceMm.
>> +++ h
>> @@ -0,0 +1,22 @@
>> +/** @file
>> + Definitions common to MM implementation in this driver.
>> +
>> + Copyright (c) Microsoft Corporation.<BR>
>> + SPDX-License-Identifier: BSD-2-Clause-Patent
>> +
>> +**/
>> +
>> +#ifndef _SPI_FVB_SERVICE_MM_H_
>> +#define _SPI_FVB_SERVICE_MM_H_
>> +
>> +/**
>> + The function does the necessary initialization work for
>> + Firmware Volume Block Driver.
>> +
>> +**/
>> +VOID
>> +FvbInitialize (
>> + VOID
>> + );
>> +
>> +#endif
>> diff --git
>> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.in
>> f
>> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.in
>> f
>> index d59c499b2e9e..10e51e11756f 100644
>> ---
>> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.in
>> f
>> +++
>> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm
>> +++ .inf
>> @@ -2,6 +2,7 @@
>> # Component description file for the Serial Flash device Runtime driver.
>> #
>> # Copyright (c) 2017-2019, Intel Corporation. All rights reserved.<BR>
>> +# Copyright (c) Microsoft Corporation.<BR>
>> #
>> # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -14,7 +15,8 @@
>> [Defines]
>> VERSION_STRING = 1.0
>> MODULE_TYPE = DXE_SMM_DRIVER
>> PI_SPECIFICATION_VERSION = 1.10
>> - ENTRY_POINT = FvbInitialize
>> + ENTRY_POINT = SpiFvbTraditionalMmInitialize
>> +
>> #
>> # The following information is for reference only and not required by the
>> build tools.
>> #
>> @@ -28,11 +30,10 @@ [LibraryClasses]
>> BaseMemoryLib
>> DebugLib
>> BaseLib
>> - UefiLib
>> UefiBootServicesTableLib
>> UefiDriverEntryPoint
>> SpiFlashCommonLib
>> - SmmServicesTableLib
>> + MmServicesTableLib
>>
>> [Packages]
>> MdePkg/MdePkg.dec
>> @@ -48,10 +49,12 @@ [Pcd]
>> gMinPlatformPkgTokenSpaceGuid.PcdFlashFvMicrocodeSize ##
>> CONSUMES
>>
>> [Sources]
>> - Common/SpiFvbServiceCommon.c
>> - Common/FvbInfo.c
>> - Common/SpiFvbServiceCommon.h
>> - Smm/SpiFvbServiceSmm.c
>> + FvbInfo.c
>> + SpiFvbServiceCommon.h
>> + SpiFvbServiceCommon.c
>> + SpiFvbServiceMm.h
>> + SpiFvbServiceMm.c
>> + SpiFvbServiceTraditionalMm.c
>>
>> [Protocols]
>> gEfiDevicePathProtocolGuid ## PRODUCES
>> diff --git
>> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.in
>> f
>> b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandal
>> oneMm.inf
>> similarity index 64%
>> copy from
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf
>> copy to
>> Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandalon
>> eMm.inf
>> index d59c499b2e9e..9f08d3673f41 100644
>> ---
>> a/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.in
>> f
>> +++ b/Platform/Intel/MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSta
>> +++ ndaloneMm.inf
>> @@ -1,20 +1,22 @@
>> ### @file
>> -# Component description file for the Serial Flash device Runtime driver.
>> +# Component description file for the Serial Flash device Standalone MM
>> driver.
>> #
>> # Copyright (c) 2017-2019, Intel Corporation. All rights reserved.<BR>
>> +# Copyright (c) Microsoft Corporation.<BR>
>> #
>> # SPDX-License-Identifier: BSD-2-Clause-Patent # ###
>>
>> [Defines]
>> - INF_VERSION = 0x00010017
>> - BASE_NAME = SpiFvbServiceSmm
>> - FILE_GUID = 68A10D85-6858-4402-B070-028B3EA21747
>> + INF_VERSION = 0x0001001B
>> + BASE_NAME = SpiFvbServiceStandaloneMm
>> + FILE_GUID = E6313655-8BD0-4EAB-B319-AD5E212CE6AB
>> VERSION_STRING = 1.0
>> - MODULE_TYPE = DXE_SMM_DRIVER
>> - PI_SPECIFICATION_VERSION = 1.10
>> - ENTRY_POINT = FvbInitialize
>> + MODULE_TYPE = MM_STANDALONE
>> + PI_SPECIFICATION_VERSION = 0x00010032
>> + ENTRY_POINT = SpiFvbStandaloneMmInitialize
>> +
>> #
>> # The following information is for reference only and not required by the
>> build tools.
>> #
>> @@ -22,17 +24,15 @@ [Defines]
>> #
>>
>> [LibraryClasses]
>> - PcdLib
>> - MemoryAllocationLib
>> - CacheMaintenanceLib
>> + BaseLib
>> BaseMemoryLib
>> + CacheMaintenanceLib
>> DebugLib
>> - BaseLib
>> - UefiLib
>> - UefiBootServicesTableLib
>> - UefiDriverEntryPoint
>> + MemoryAllocationLib
>> + PcdLib
>> + MmServicesTableLib
>> SpiFlashCommonLib
>> - SmmServicesTableLib
>> + StandaloneMmDriverEntryPoint
>>
>> [Packages]
>> MdePkg/MdePkg.dec
>> @@ -48,10 +48,12 @@ [Pcd]
>> gMinPlatformPkgTokenSpaceGuid.PcdFlashFvMicrocodeSize ##
>> CONSUMES
>>
>> [Sources]
>> - Common/SpiFvbServiceCommon.c
>> - Common/FvbInfo.c
>> - Common/SpiFvbServiceCommon.h
>> - Smm/SpiFvbServiceSmm.c
>> + FvbInfo.c
>> + SpiFvbServiceCommon.h
>> + SpiFvbServiceCommon.c
>> + SpiFvbServiceMm.h
>> + SpiFvbServiceMm.c
>> + SpiFvbServiceStandaloneMm.c
>>
>> [Protocols]
>> gEfiDevicePathProtocolGuid ## PRODUCES
>> diff --git a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
>> b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
>> index 5e88de43e08d..0460fd5a3206 100644
>> --- a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
>> +++ b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
>> @@ -117,6 +117,7 @@ [LibraryClasses.common.MM_STANDALONE]
>> DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
>>
>> MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmMemoryAll
>> ocationLib/StandaloneMmMemoryAllocationLib.inf
>>
>> MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/Stan
>> daloneMmServicesTableLib.inf
>> +
>> +
>> SpiFlashCommonLib|MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/
>> S
>> + piFlashCommonLibNull.inf
>>
>> StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntry
>> Point/StandaloneMmDriverEntryPoint.inf
>>
>>
>> ##########################################################
>> #########################################
>> @@ -155,6 +156,7 @@ [Components]
>>
>> MinPlatformPkg/Bds/Library/DxePlatformBootManagerLib/DxePlatformBoot
>> ManagerLib.inf
>>
>> MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceSmm.inf
>> + MinPlatformPkg/Flash/SpiFvbService/SpiFvbServiceStandaloneMm.inf
>>
>> MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/SpiFlashCommonLib
>> Null.inf
>>
>> MinPlatformPkg/FspWrapper/SaveMemoryConfig/SaveMemoryConfig.inf
>> --
>> 2.28.0.windows.1
>>
>>
>>
>> -=-=-=-=-=-=
>> Groups.io Links: You receive all messages sent to this group.
>> View/Reply Online (#71385): https://edk2.groups.io/g/devel/message/71385
>> Mute This Topic: https://groups.io/mt/80420930/1767664
>> Group Owner: devel+owner@edk2.groups.io
>> Unsubscribe: https://edk2.groups.io/g/devel/unsub
>> [nathaniel.l.desimone@intel.com]
>> -=-=-=-=-=-=
>>
>
>
>
>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-02-11 20:21 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-02-06 0:15 [edk2-platforms][PATCH v1 0/3] MinPlatformPkg: Add SpiFvbServiceStandaloneMm Michael Kubacki
2021-02-06 0:15 ` [edk2-platforms][PATCH v1 1/3] MinPlatformPkg/SpiFlashCommonLibNull: Make MODULE_TYPE BASE Michael Kubacki
2021-02-11 2:22 ` Nate DeSimone
2021-02-06 0:15 ` [edk2-platforms][PATCH v1 2/3] MinPlatformPkg/MinPlatformPkg.dsc: Add basic MM_STANDALONE libraries Michael Kubacki
2021-02-11 2:22 ` Nate DeSimone
2021-02-06 0:15 ` [edk2-platforms][PATCH v1 3/3] MinPlatformPkg/SpiFvbService: Add Standalone MM support Michael Kubacki
2021-02-11 2:20 ` [edk2-devel] " Nate DeSimone
2021-02-11 20:21 ` Michael Kubacki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox