Date   

Re: [PATCH 2/3] MdePkg: Refactor BaseRngLib to support AARCH64 in addition to X86

Sami Mujawar
 

Hi Rebecca,

Please see my response inline marked [SAMI].

Regards,

Sami Mujawar

On 28/04/2021 09:44 PM, Rebecca Cran wrote:
Make BaseRngLib more generic by moving x86 specific functionality from
BaseRng.c into Rand/RdRand.c, and adding AArch64/Rndr.c, which supports
the optional ARMv8.5 RNG instructions RNDR and RNDRRS that are a part of
FEAT_RNG.

Signed-off-by: Rebecca Cran <rebecca@...>
---
 MdePkg/MdePkg.dec                               |   9 +-
 MdePkg/MdePkg.dsc                               |   4 +-
 MdePkg/Library/BaseRngLib/BaseRngLib.inf        |  16 ++-
 MdePkg/Library/BaseRngLib/BaseRngLibInternals.h |  31 +++++
 MdePkg/Library/BaseRngLib/AArch64/Rndr.c        | 121 ++++++++++++++++++++
 MdePkg/Library/BaseRngLib/BaseRng.c             |  55 +++------
 MdePkg/Library/BaseRngLib/Rand/RdRand.c         | 103 +++++++++++++++++
 MdePkg/Library/BaseRngLib/BaseRngLib.uni        |   6 +-
 8 files changed, 291 insertions(+), 54 deletions(-)

diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
index 8965e903e093..b49f88d8e18f 100644
--- a/MdePkg/MdePkg.dec
+++ b/MdePkg/MdePkg.dec
@@ -267,6 +267,11 @@ [LibraryClasses]
   #
   RegisterFilterLib|Include/Library/RegisterFilterLib.h
 
+[LibraryClasses.IA32, LibraryClasses.X64, LibraryClasses.AARCH64]
+  ##  @libraryclass  Provides services to generate random number.
+  #
+  RngLib|Include/Library/RngLib.h
+
 [LibraryClasses.IA32, LibraryClasses.X64]
   ##  @libraryclass  Abstracts both S/W SMI generation and detection.
   ##
@@ -288,10 +293,6 @@ [LibraryClasses.IA32, LibraryClasses.X64]
   #
   SmmPeriodicSmiLib|Include/Library/SmmPeriodicSmiLib.h
 
-  ##  @libraryclass  Provides services to generate random number.
-  #
-  RngLib|Include/Library/RngLib.h
-
   ##  @libraryclass  Provides services to log the SMI handler registration.
   SmiHandlerProfileLib|Include/Library/SmiHandlerProfileLib.h
 
diff --git a/MdePkg/MdePkg.dsc b/MdePkg/MdePkg.dsc
index d363419006ea..a94959169b2f 100644
--- a/MdePkg/MdePkg.dsc
+++ b/MdePkg/MdePkg.dsc
@@ -145,6 +145,9 @@ [Components.IA32, Components.X64, Components.ARM, Components.AARCH64]
   MdePkg/Test/UnitTest/Library/BaseSafeIntLib/TestBaseSafeIntLibSmm.inf
   MdePkg/Test/UnitTest/Library/BaseSafeIntLib/TestBaseSafeIntLibUefiShell.inf
 
+[Components.IA32, Components.X64, Components.AARCH64]
+  MdePkg/Library/BaseRngLib/BaseRngLib.inf
+
 [Components.IA32, Components.X64]
   MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
   MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev.inf
@@ -168,7 +171,6 @@ [Components.IA32, Components.X64]
   MdePkg/Library/BaseS3StallLib/BaseS3StallLib.inf
   MdePkg/Library/SmmMemLib/SmmMemLib.inf
   MdePkg/Library/SmmIoLib/SmmIoLib.inf
-  MdePkg/Library/BaseRngLib/BaseRngLib.inf
   MdePkg/Library/SmmPciExpressLib/SmmPciExpressLib.inf
   MdePkg/Library/SmiHandlerProfileLibNull/SmiHandlerProfileLibNull.inf
   MdePkg/Library/MmServicesTableLib/MmServicesTableLib.inf
diff --git a/MdePkg/Library/BaseRngLib/BaseRngLib.inf b/MdePkg/Library/BaseRngLib/BaseRngLib.inf
index 31740751c69c..1dc3249a8c20 100644
--- a/MdePkg/Library/BaseRngLib/BaseRngLib.inf
+++ b/MdePkg/Library/BaseRngLib/BaseRngLib.inf
@@ -1,9 +1,10 @@
 ## @file
 #  Instance of RNG (Random Number Generator) Library.
 #
-#  BaseRng Library that uses CPU RdRand instruction access to provide
-#  high-quality random numbers.
+#  BaseRng Library that uses CPU RNG instructions (e.g. RdRand) to
+#  provide high-quality random numbers.
 #
+#  Copyright (c) 2020, NUVIA Inc. All rights reserved.<BR>
 #  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
 #
 #  SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -22,11 +23,18 @@ [Defines]
   CONSTRUCTOR                    = BaseRngLibConstructor
 
 #
-#  VALID_ARCHITECTURES           = IA32 X64
+#  VALID_ARCHITECTURES           = IA32 X64 AARCH64
 #
 
-[Sources.Ia32, Sources.X64]
+[Sources]
   BaseRng.c
+  BaseRngLibInternals.h
+
+[Sources.Ia32, Sources.X64]
+  Rand/RdRand.c
+
+[Sources.AARCH64]
+  AArch64/Rndr.c
 
 [Packages]
   MdePkg/MdePkg.dec
diff --git a/MdePkg/Library/BaseRngLib/BaseRngLibInternals.h b/MdePkg/Library/BaseRngLib/BaseRngLibInternals.h
new file mode 100644
index 000000000000..44fda69c9eec
--- /dev/null
+++ b/MdePkg/Library/BaseRngLib/BaseRngLibInternals.h
@@ -0,0 +1,31 @@
+/** @file
+
+  Architecture specific interface to RNG functionality.
+
+Copyright (c) 2020, NUVIA Inc. All rights reserved.<BR>
+
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef BASE_RNGLIB_INTERNALS_H_
+
+BOOLEAN
+EFIAPI
+ArchGetRandomNumber16 (
+  OUT UINT16 *Rand
+  );
+
+BOOLEAN
+EFIAPI
+ArchGetRandomNumber32 (
+  OUT UINT32 *Rand
+  );
+
+BOOLEAN
+EFIAPI
+ArchGetRandomNumber64 (
+  OUT UINT64 *Rand
+  );
[SAMI] Please add doxygen headers for the above functions.
[/SAMI]
+
+#endif    // BASE_RNGLIB_INTERNALS_H_
diff --git a/MdePkg/Library/BaseRngLib/AArch64/Rndr.c b/MdePkg/Library/BaseRngLib/AArch64/Rndr.c
new file mode 100644
index 000000000000..19643237923a
--- /dev/null
+++ b/MdePkg/Library/BaseRngLib/AArch64/Rndr.c
@@ -0,0 +1,121 @@
+/** @file
+  Random number generator service that uses the RNDR instruction
+  to provide high-quality random numbers.
+
+  Copyright (c) 2020, NUVIA Inc. All rights reserved.<BR>
+  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <Library/BaseLib.h>
+#include <Library/DebugLib.h>
+
+#include <Library/RngLib.h>
+
+#include "BaseRngLibInternals.h"
+
+//
+// Bit mask used to determine if RNDR instruction is supported.
+//
+#define RNDR_MASK                  ((UINT64)MAX_UINT16 << 60U)
+
+/**
+  The constructor function checks whether or not RNDR instruction is supported
+  by the host hardware.
+
+  The constructor function checks whether or not RNDR instruction is supported.
+  It will ASSERT() if RNDR instruction is not supported.
+  It will always return RETURN_SUCCESS.
+
+  @retval RETURN_SUCCESS   The constructor always returns EFI_SUCCESS.
+
+**/
+RETURN_STATUS
[SAMI] Should the return type be EFI_STATUS? See https://edk2-docs.gitbook.io/edk-ii-module-writer-s-guide/3_module_development/33_additional_steps_for_library_instances#3-3-2-1-types-of-library-constructor-functions
+EFIAPI
+BaseRngLibConstructor (
+  VOID
+  )
+{
+  UINT64 Isar0;
+  //
+  // Determine RNDR support by examining bits 63:60 of the ISAR0 register returned by
+  // MSR. A non-zero value indicates that the processor supports the RNDR instruction.
+  //
+  Isar0 = ArmReadIdIsar0 ();
+  ASSERT ((Isar0 & RNDR_MASK) != 0);
+  (void)Isar0;
[SAMI] ASSERTs will vanish in the release builds. So, I think this needs to be an if condition. If RNDR is not supported RETURN_UNSUPPORTED should be returned.
However, it appears that the auto generated function ProcessLibraryConstructorList() disregards the error code returned by the constructor (see Build\...\AutoGen.c files). So it looks like the loading operation would continue in release builds despite of an error.
I am not aware if this is the desired behavior or why the status code returned by the constructor is disregarded.

However, this would be a probem in the current case as s
ubsequent calls to generate random numbers will result in an undefined instruction exception.
To prevent this, I think the above check should be done in either
   - ArmRndr()/ArmRndrrs()
  or
   - preferably in ArchGetRandomNumberXX(), which should return an error code EFI_UNSUPPORTED, EFI_NOT_READY or EFI_SUCCESS. However, the impact on IA32/x64 code needs to be evaluated.

[/SAMI]
+
+  return RETURN_SUCCESS;
+}
+
+
+/**
+  Generates a 16-bit random number.
+
+  @param[out] Rand     Buffer pointer to store the 16-bit random value.
+
+  @retval TRUE         Random number generated successfully.
+  @retval FALSE        Failed to generate the random number.
+
+**/
+BOOLEAN
+EFIAPI
+ArchGetRandomNumber16 (
+  OUT     UINT16                    *Rand
+  )
+{
+  UINT64 Rand64;
+
+  if (ArchGetRandomNumber64 (&Rand64)) {
+    *Rand = Rand64 & MAX_UINT16;
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+/**
+  Generates a 32-bit random number.
+
+  @param[out] Rand     Buffer pointer to store the 32-bit random value.
+
+  @retval TRUE         Random number generated successfully.
+  @retval FALSE        Failed to generate the random number.
+
+**/
+BOOLEAN
+EFIAPI
+ArchGetRandomNumber32 (
+  OUT     UINT32                    *Rand
+  )
+{
+  UINT64 Rand64;
+
+  if (ArchGetRandomNumber64 (&Rand64)) {
+    *Rand = Rand64 & MAX_UINT32;
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+/**
+  Generates a 64-bit random number.
+
+  @param[out] Rand     Buffer pointer to store the 64-bit random value.
+
+  @retval TRUE         Random number generated successfully.
+  @retval FALSE        Failed to generate the random number.
+
+**/
+BOOLEAN
+EFIAPI
+ArchGetRandomNumber64 (
+  OUT     UINT64                    *Rand
+  )
+{
+  return ArmRndr (Rand);
+}
+
diff --git a/MdePkg/Library/BaseRngLib/BaseRng.c b/MdePkg/Library/BaseRngLib/BaseRng.c
index 7ad7aec9d38f..072fa37d3394 100644
--- a/MdePkg/Library/BaseRngLib/BaseRng.c
+++ b/MdePkg/Library/BaseRngLib/BaseRng.c
@@ -1,8 +1,10 @@
 /** @file
-  Random number generator services that uses RdRand instruction access
-  to provide high-quality random numbers.
+  Random number generator services that uses CPU RNG instructions to
+  provide high-quality random numbers.
 
+Copyright (c) 2021, NUVIA Inc. All rights reserved.<BR>
 Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
+
 SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
@@ -10,46 +12,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #include <Library/BaseLib.h>
 #include <Library/DebugLib.h>
 
-//
-// Bit mask used to determine if RdRand instruction is supported.
-//
-#define RDRAND_MASK                  BIT30
+#include "BaseRngLibInternals.h"
 
 //
 // Limited retry number when valid random data is returned.
 // Uses the recommended value defined in Section 7.3.17 of "Intel 64 and IA-32
-// Architectures Software Developer's Mannual".
+// Architectures Software Developer's Manual".
 //
-#define RDRAND_RETRY_LIMIT           10
+#define GETRANDOM_RETRY_LIMIT           10
 
-/**
-  The constructor function checks whether or not RDRAND instruction is supported
-  by the host hardware.
-
-  The constructor function checks whether or not RDRAND instruction is supported.
-  It will ASSERT() if RDRAND instruction is not supported.
-  It will always return RETURN_SUCCESS.
-
-  @retval RETURN_SUCCESS   The constructor always returns EFI_SUCCESS.
-
-**/
-RETURN_STATUS
-EFIAPI
-BaseRngLibConstructor (
-  VOID
-  )
-{
-  UINT32  RegEcx;
-
-  //
-  // Determine RDRAND support by examining bit 30 of the ECX register returned by
-  // CPUID. A value of 1 indicates that processor support RDRAND instruction.
-  //
-  AsmCpuid (1, 0, 0, &RegEcx, 0);
-  ASSERT ((RegEcx & RDRAND_MASK) == RDRAND_MASK);
-
-  return RETURN_SUCCESS;
-}
 
 /**
   Generates a 16-bit random number.
@@ -75,8 +46,8 @@ GetRandomNumber16 (
   //
   // A loop to fetch a 16 bit random value with a retry count limit.
   //
-  for (Index = 0; Index < RDRAND_RETRY_LIMIT; Index++) {
-    if (AsmRdRand16 (Rand)) {
+  for (Index = 0; Index < GETRANDOM_RETRY_LIMIT; Index++) {
+    if (ArchGetRandomNumber16 (Rand)) {
       return TRUE;
     }
   }
@@ -108,8 +79,8 @@ GetRandomNumber32 (
   //
   // A loop to fetch a 32 bit random value with a retry count limit.
   //
-  for (Index = 0; Index < RDRAND_RETRY_LIMIT; Index++) {
-    if (AsmRdRand32 (Rand)) {
+  for (Index = 0; Index < GETRANDOM_RETRY_LIMIT; Index++) {
+    if (ArchGetRandomNumber32 (Rand)) {
       return TRUE;
     }
   }
@@ -141,8 +112,8 @@ GetRandomNumber64 (
   //
   // A loop to fetch a 64 bit random value with a retry count limit.
   //
-  for (Index = 0; Index < RDRAND_RETRY_LIMIT; Index++) {
-    if (AsmRdRand64 (Rand)) {
+  for (Index = 0; Index < GETRANDOM_RETRY_LIMIT; Index++) {
+    if (ArchGetRandomNumber64 (Rand)) {
       return TRUE;
     }
   }
diff --git a/MdePkg/Library/BaseRngLib/Rand/RdRand.c b/MdePkg/Library/BaseRngLib/Rand/RdRand.c
new file mode 100644
index 000000000000..3f1378064b4c
--- /dev/null
+++ b/MdePkg/Library/BaseRngLib/Rand/RdRand.c
@@ -0,0 +1,103 @@
+/** @file
+  Random number generator services that uses RdRand instruction access
+  to provide high-quality random numbers.
+
+Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
+
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <Library/BaseLib.h>
+#include <Library/DebugLib.h>
+
+#include "BaseRngLibInternals.h"
+
+//
+// Bit mask used to determine if RdRand instruction is supported.
+//
+#define RDRAND_MASK                  BIT30
+
+/**
+  The constructor function checks whether or not RDRAND instruction is supported
+  by the host hardware.
+
+  The constructor function checks whether or not RDRAND instruction is supported.
+  It will ASSERT() if RDRAND instruction is not supported.
+  It will always return RETURN_SUCCESS.
+
+  @retval RETURN_SUCCESS   The constructor always returns EFI_SUCCESS.
+
+**/
+RETURN_STATUS
+EFIAPI
+BaseRngLibConstructor (
+  VOID
+  )
+{
+  UINT32  RegEcx;
+
+  //
+  // Determine RDRAND support by examining bit 30 of the ECX register returned by
+  // CPUID. A value of 1 indicates that processor support RDRAND instruction.
+  //
+  AsmCpuid (1, 0, 0, &RegEcx, 0);
+  ASSERT ((RegEcx & RDRAND_MASK) == RDRAND_MASK);
+
+  return RETURN_SUCCESS;
+}
+
+/**
+  Generates a 16-bit random number.
+
+  @param[out] Rand     Buffer pointer to store the 16-bit random value.
+
+  @retval TRUE         Random number generated successfully.
+  @retval FALSE        Failed to generate the random number.
+
+**/
+BOOLEAN
+EFIAPI
+ArchGetRandomNumber16 (
+  OUT     UINT16                    *Rand
+  )
+{
+  return AsmRdRand16 (Rand);
+}
+
+/**
+  Generates a 32-bit random number.
+
+  @param[out] Rand     Buffer pointer to store the 32-bit random value.
+
+  @retval TRUE         Random number generated successfully.
+  @retval FALSE        Failed to generate the random number.
+
+**/
+BOOLEAN
+EFIAPI
+ArchGetRandomNumber32 (
+  OUT     UINT32                    *Rand
+  )
+{
+  return AsmRdRand32 (Rand);
+}
+
+/**
+  Generates a 64-bit random number.
+
+  @param[out] Rand     Buffer pointer to store the 64-bit random value.
+
+  @retval TRUE         Random number generated successfully.
+  @retval FALSE        Failed to generate the random number.
+
+**/
+BOOLEAN
+EFIAPI
+ArchGetRandomNumber64 (
+  OUT     UINT64                    *Rand
+  )
+{
+  return AsmRdRand64 (Rand);
+}
+
diff --git a/MdePkg/Library/BaseRngLib/BaseRngLib.uni b/MdePkg/Library/BaseRngLib/BaseRngLib.uni
index f3ed954c5209..8c7fe1219450 100644
--- a/MdePkg/Library/BaseRngLib/BaseRngLib.uni
+++ b/MdePkg/Library/BaseRngLib/BaseRngLib.uni
@@ -1,8 +1,8 @@
 // /** @file
 // Instance of RNG (Random Number Generator) Library.
 //
-// BaseRng Library that uses CPU RdRand instruction access to provide
-// high-quality random numbers.
+// BaseRng Library that uses CPU RNG instructions to provide high-quality
+// random numbers.
 //
 // Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
 //
@@ -13,5 +13,5 @@
 
 #string STR_MODULE_ABSTRACT             #language en-US "Instance of RNG Library"
 
-#string STR_MODULE_DESCRIPTION          #language en-US "BaseRng Library that uses CPU RdRand instruction access to provide high-quality random numbers"
+#string STR_MODULE_DESCRIPTION          #language en-US "BaseRng Library that uses CPU RNG instructions to provide high-quality random numbers"
 


Re: [PATCH 1/3] MdePkg/BaseLib: Add support for ARMv8.5 RNG instructions

Sami Mujawar
 

Hi Rebecca,

Please find my response inline marked [SAMI].

Regards,

Sami Mujawar


On 28/04/2021 09:44 PM, Rebecca Cran wrote:
Add support for the optional ARMv8.5 RNDR and RNDRRS instructions that
are a part of FEAT_RNG to BaseLib, and add a function to read the ISAR0
register which indicates whether the CPU supports FEAT_RNG.

Signed-off-by: Rebecca Cran <rebecca@nuviainc.com>
---
MdePkg/Library/BaseLib/BaseLib.inf | 4 ++
MdePkg/Include/Library/BaseLib.h | 47 +++++++++++++++++
MdePkg/Library/BaseLib/BaseLibInternals.h | 6 +++
MdePkg/Library/BaseLib/AArch64/ArmReadIdIsar0.S | 29 +++++++++++
MdePkg/Library/BaseLib/AArch64/ArmReadIdIsar0.asm | 28 ++++++++++
MdePkg/Library/BaseLib/AArch64/ArmRng.S | 51 ++++++++++++++++++
MdePkg/Library/BaseLib/AArch64/ArmRng.asm | 55 ++++++++++++++++++++
7 files changed, 220 insertions(+)

diff --git a/MdePkg/Library/BaseLib/BaseLib.inf b/MdePkg/Library/BaseLib/BaseLib.inf
index b76f3af380ea..7f582079d786 100644
--- a/MdePkg/Library/BaseLib/BaseLib.inf
+++ b/MdePkg/Library/BaseLib/BaseLib.inf
@@ -380,6 +380,8 @@ [Sources.AARCH64]
AArch64/SetJumpLongJump.S | GCC
AArch64/CpuBreakpoint.S | GCC
AArch64/SpeculationBarrier.S | GCC
+ AArch64/ArmRng.S | GCC
+ AArch64/ArmReadIdIsar0.S | GCC
AArch64/MemoryFence.asm | MSFT
AArch64/SwitchStack.asm | MSFT
@@ -389,6 +391,8 @@ [Sources.AARCH64]
AArch64/SetJumpLongJump.asm | MSFT
AArch64/CpuBreakpoint.asm | MSFT
AArch64/SpeculationBarrier.asm | MSFT
+ AArch64/ArmRng.asm | MSFT
+ AArch64/ArmReadIdIsar0.asm | MSFT
[Sources.RISCV64]
Math64.c
diff --git a/MdePkg/Include/Library/BaseLib.h b/MdePkg/Include/Library/BaseLib.h
index 7253997a6f8c..60cf559b0849 100644
--- a/MdePkg/Include/Library/BaseLib.h
+++ b/MdePkg/Include/Library/BaseLib.h
@@ -7519,4 +7519,51 @@ PatchInstructionX86 (
);
#endif // defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)
+
+#if defined (MDE_CPU_AARCH64)
+
+/**
+ Reads the ID_AA64ISAR0 Register.
+
+ @return The contents of the ID_AA64ISAR0 Register
+
+**/
+UINT64
+EFIAPI
+ArmReadIdIsar0 (
+ VOID
+ );
+
[SAMI] Should this function be part of ArmLib?
[/SAMI]
+/**
+ Generates a random number using the RNDR instruction.
+
+ @param[out] The generated random number
+
+ @retval TRUE Success: a random number was successfully generated
+ @retval FALSE Failure: a random number was unable to be generated
+
+**/
+BOOLEAN
+EFIAPI
+ArmRndr (
+ OUT UINT64 *Rand
+ );
+
+/**
+ Generates a random number using the RNDRRS instruction.
+
+ @param[out] The generated random number
+
+ @retval TRUE Success: a random number was successfully generated
+ @retval FALSE Failure: a random number was unable to be generated
+
+**/
+BOOLEAN
+EFIAPI
+ArmRndrrs (
+ OUT UINT64 *Rand
+ );
+
+#endif // defined (MDE_CPU_AARCH64)
+
#endif // !defined (__BASE_LIB__)
diff --git a/MdePkg/Library/BaseLib/BaseLibInternals.h b/MdePkg/Library/BaseLib/BaseLibInternals.h
index 6837d67d90cf..4ae79a4e7ab4 100644
--- a/MdePkg/Library/BaseLib/BaseLibInternals.h
+++ b/MdePkg/Library/BaseLib/BaseLibInternals.h
@@ -862,6 +862,12 @@ InternalX86RdRand64 (
OUT UINT64 *Rand
);
[SAMI] I can see that the X86RdRand64 functions are implemented in this library. However, I am not sure we want ArmRndr() and ArmRndrrs() in BaseLib.
I think these functions should be in BaseRngLib and should not be available publicly. The RngLib interface should be used by edk2 modules. What do you think?
[/SAMI]
+#elif defined (MDE_CPU_AARCH64)
+
+// RNDR, Random Number
+#define RNDR S3_3_C2_C4_0
+#define RNDRRS S3_3_C2_C4_1
+
#else
#endif
diff --git a/MdePkg/Library/BaseLib/AArch64/ArmReadIdIsar0.S b/MdePkg/Library/BaseLib/AArch64/ArmReadIdIsar0.S
new file mode 100644
index 000000000000..b31e565c7955
--- /dev/null
+++ b/MdePkg/Library/BaseLib/AArch64/ArmReadIdIsar0.S
@@ -0,0 +1,29 @@
+#------------------------------------------------------------------------------
+#
+# ArmReadIdIsar0() for AArch64
+#
+# Copyright (c) 2021, NUVIA Inc. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+#------------------------------------------------------------------------------
+
+.text
+.p2align 2
+GCC_ASM_EXPORT(ArmReadIdIsar0)
+
+#/**
+# Reads the ID_AA64ISAR0 Register.
+#
+#**/
+#UINT64
+#EFIAPI
+#ArmReadIdIsar0 (
+# VOID
+# );
+#
+ASM_PFX(ArmReadIdIsar0):
+ mrs x0, id_aa64isar0_el1 // Read ID_AA64ISAR0 Register
+ ret
+
+
diff --git a/MdePkg/Library/BaseLib/AArch64/ArmReadIdIsar0.asm b/MdePkg/Library/BaseLib/AArch64/ArmReadIdIsar0.asm
new file mode 100644
index 000000000000..1f1d15626cc2
--- /dev/null
+++ b/MdePkg/Library/BaseLib/AArch64/ArmReadIdIsar0.asm
@@ -0,0 +1,28 @@
+;------------------------------------------------------------------------------
+;
+; ArmReadIdIsar0() for AArch64
+;
+; Copyright (c) 2021, NUVIA Inc. All rights reserved.<BR>
+;
+; SPDX-License-Identifier: BSD-2-Clause-Patent
+;
+;------------------------------------------------------------------------------
+
+ EXPORT ArmReadIdIsar0
+ AREA BaseLib_LowLevel, CODE, READONLY
+
+;/**
+; Reads the ID_AA64ISAR0 Register.
+;
+;**/
+;UINT64
+;EFIAPI
+;ArmReadIdIsar0 (
+; VOID
+; );
+;
+ArmReadIdIsar0
+ mrs x0, id_aa64isar0_el1 // Read ID_AA64ISAR0 Register
+ ret
+
+ END
diff --git a/MdePkg/Library/BaseLib/AArch64/ArmRng.S b/MdePkg/Library/BaseLib/AArch64/ArmRng.S
new file mode 100644
index 000000000000..fc2adb660d21
--- /dev/null
+++ b/MdePkg/Library/BaseLib/AArch64/ArmRng.S
@@ -0,0 +1,51 @@
+#------------------------------------------------------------------------------
+#
+# ArmRndr() and ArmRndrrs() for AArch64
+#
+# Copyright (c) 2021, NUVIA Inc. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+#------------------------------------------------------------------------------
+
+#include "BaseLibInternals.h"
+
+.text
+.p2align 2
+GCC_ASM_EXPORT(ArmRndr)
+GCC_ASM_EXPORT(ArmRndrrs)
+
+#/**
+# Generates a random number using RNDR.
+# Returns TRUE on success; FALSE on failure.
+#
+#**/
+#BOOLEAN
+#EFIAPI
+#ArmRndr (
+# OUT UINT64 *Rand
+# );
+#
+ASM_PFX(ArmRndr):
+ mrs x1, RNDR
+ str x1, [x0]
+ cset x0, ne // RNDR sets NZCV to 0b0100 on failure
+ ret
+
+
+#/**
+# Generates a random number using RNDRRS
+# Returns TRUE on success; FALSE on failure.
+#
+#**/
+#BOOLEAN
+#EFIAPI
+#ArmRndrrs (
+# OUT UINT64 *Rand
+# );
+#
+ASM_PFX(ArmRndrrs):
+ mrs x1, RNDRRS
+ str x1, [x0]
+ cset x0, ne // RNDRRS sets NZCV to 0b0100 on failure
+ ret
diff --git a/MdePkg/Library/BaseLib/AArch64/ArmRng.asm b/MdePkg/Library/BaseLib/AArch64/ArmRng.asm
new file mode 100644
index 000000000000..ed8d1a81bdfe
--- /dev/null
+++ b/MdePkg/Library/BaseLib/AArch64/ArmRng.asm
@@ -0,0 +1,55 @@
+;------------------------------------------------------------------------------
+;
+; ArmRndr() and ArmRndrrs() for AArch64
+;
+; Copyright (c) 2021, NUVIA Inc. All rights reserved.<BR>
+;
+; SPDX-License-Identifier: BSD-2-Clause-Patent
+;
+;------------------------------------------------------------------------------
+
+#include "BaseLibInternals.h"
+
+ EXPORT ArmRndr
+ EXPORT ArmRndrrs
+ AREA BaseLib_LowLevel, CODE, READONLY
+
+
+;/**
+; Generates a random number using RNDR.
+; Returns TRUE on success; FALSE on failure.
+;
+;**/
+;BOOLEAN
+;EFIAPI
+;ArmRndr (
+; OUT UINT64 *Rand
+; );
+;
+ArmRndr
+ mrs x1, RNDR
+ str x1, [x0]
+ cset x0, ne // RNDR sets NZCV to 0b0100 on failure
+ ret
+
+ END
+
+;/**
+; Generates a random number using RNDRRS.
+; Returns TRUE on success; FALSE on failure.
+;
+;**/
+;BOOLEAN
+;EFIAPI
+;ArmRndrrs (
+; OUT UINT64 *Rand
+; );
+;
+ArmRndrrs
+ mrs x1, RNDRRS
+ str x1, [x0]
+ cset x0, ne // RNDRRS sets NZCV to 0b0100 on failure
+ ret
+
+ END
+


Re: [PATCH RFC v2 05/28] MdePkg: Add AsmPvalidate() support

Brijesh Singh
 

On 5/4/21 2:55 PM, Brijesh Singh via groups.io wrote:
On 5/4/21 2:07 PM, Brijesh Singh via groups.io wrote:
Return EFI_UNSUPPORTED (0x8000_0003), or even EFI_NO_MAPPING
(0x8000_0017), for value 6 (FAIL_SIZEMISMATCH).
I am not sure if we really want to do this. You will see later in the
patches that in some cases the PVALIDATE will return a failure and we
will need to know the failure code to determine the next steps.
Especially this particular error code is used later. This error happens
when the page size of the backing pages does not match with the
pvalidated size. In those cases we need to retry the PVALIDATE with
lower page size so that a validation succeed. One such a example is:

- Guest ask hypervisor to add the page as 2M in RMP table.

- Hypervisor added the page as 512 4K pages - because it was not able to
find a large backing pages.

- Guest attempts to pvalidate the page as a 2M. The pvalidate will
return a failure saying its a size mismatch between the requested
pvalidated and RMP table. The recommendation is that guest should try
with a smaller page size.

I would prefer to pass the pvalidate error as-is to caller so that it
can make the correct decision.
I am perfectly fine if the function return UINTN and then use #define
instead of the enum to define the PVALIDATE return code. So that caller
can check the error code. Let me know your thought on #define instead of
the enum.
Apologies, I missed the fact that you said document the mapping between
the PVALIDATE return value and EFI_STATUS. So a caller is responsible to
look at the EFI document to know what the error code means. The
unsupported here does not mean that PVALIDATE is not support on
platform. I am good with it. I will go ahead with it.

-Brijesh


Re: [edk2-non-osi] [PATCH] CometlakeSiliconBinPkg: Update CML microcode

Nate DeSimone
 

Hi Jin Jhu,

Please make sure you update Silicon/Intel/CometlakeSiliconBinPkg/Microcode/MicrocodeUpdates.inf with the new filenames. Also, please remove the link to otcshare from the commit message.

Thanks,
Nate

-----Original Message-----
From: Lim, Jin Jhu <jin.jhu.lim@intel.com>
Sent: Wednesday, April 14, 2021 12:00 AM
To: devel@edk2.groups.io
Cc: Lim, Jin Jhu <jin.jhu.lim@intel.com>; Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>
Subject: [edk2-devel] [edk2-non-osi] [PATCH] CometlakeSiliconBinPkg: Update CML microcode

Update CML microcode from:
https://github.com/otcshare/Intel-Generic-Microcode

Signed-off-by: jinjhuli <jin.jhu.lim@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
---
.../Microcode/m22A0653_000000CC.mcb | Bin 93184 -> 0 bytes
.../Microcode/m22A0653_000000EA.mcb | Bin 0 -> 94208 bytes
.../Microcode/m22A0655_000000CA.mcb | Bin 92160 -> 0 bytes
.../Microcode/m22A0655_000000EC.mcb | Bin 0 -> 94208 bytes
4 files changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 Silicon/Intel/CometlakeSiliconBinPkg/Microcode/m22A0653_000000CC.mcb
create mode 100644 Silicon/Intel/CometlakeSiliconBinPkg/Microcode/m22A0653_000000EA.mcb
delete mode 100644 Silicon/Intel/CometlakeSiliconBinPkg/Microcode/m22A0655_000000CA.mcb
create mode 100644 Silicon/Intel/CometlakeSiliconBinPkg/Microcode/m22A0655_000000EC.mcb

diff --git a/Silicon/Intel/CometlakeSiliconBinPkg/Microcode/m22A0653_000000CC.mcb b/Silicon/Intel/CometlakeSiliconBinPkg/Microcode/m22A0653_000000CC.mcb
deleted file mode 100644
index 0e25d013214ba30b9ae9422c135925cb9e437ad1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 93184
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%0D&dGSBkeX5)
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
IEgVdL^9`@);{X5v

diff --git a/Silicon/Intel/CometlakeSiliconBinPkg/Microcode/m22A0653_000000EA.mcb b/Silicon/Intel/CometlakeSiliconBinPkg/Microcode/m22A0653_000000EA.mcb
new file mode 100644
index 0000000000000000000000000000000000000000..9bf967dfcdec03a988e330b7aa0c360f4df3191a
GIT binary patch
literal 94208
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

literal 0
HcmV?d00001

diff --git a/Silicon/Intel/CometlakeSiliconBinPkg/Microcode/m22A0655_000000CA.mcb b/Silicon/Intel/CometlakeSiliconBinPkg/Microcode/m22A0655_000000CA.mcb
deleted file mode 100644
index 1353e57ab6a1816622b27e75d241ec75f958dd6d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 92160
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
S{q3C#K1tn#0y<g=cz8}2eE!=2

diff --git a/Silicon/Intel/CometlakeSiliconBinPkg/Microcode/m22A0655_000000EC.mcb b/Silicon/Intel/CometlakeSiliconBinPkg/Microcode/m22A0655_000000EC.mcb
new file mode 100644
index 0000000000000000000000000000000000000000..b8ede54fe693bbbcb15a0bc9b2120890bd570b7f
GIT binary patch
literal 94208
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

literal 0
HcmV?d00001

--
2.28.0.windows.1


Re: [PATCH RFC v2 05/28] MdePkg: Add AsmPvalidate() support

Brijesh Singh
 

On 5/4/21 2:07 PM, Brijesh Singh via groups.io wrote:
Return EFI_UNSUPPORTED (0x8000_0003), or even EFI_NO_MAPPING
(0x8000_0017), for value 6 (FAIL_SIZEMISMATCH).
I am not sure if we really want to do this. You will see later in the
patches that in some cases the PVALIDATE will return a failure and we
will need to know the failure code to determine the next steps.
Especially this particular error code is used later. This error happens
when the page size of the backing pages does not match with the
pvalidated size. In those cases we need to retry the PVALIDATE with
lower page size so that a validation succeed. One such a example is:

- Guest ask hypervisor to add the page as 2M in RMP table.

- Hypervisor added the page as 512 4K pages - because it was not able to
find a large backing pages.

- Guest attempts to pvalidate the page as a 2M. The pvalidate will
return a failure saying its a size mismatch between the requested
pvalidated and RMP table. The recommendation is that guest should try
with a smaller page size.

I would prefer to pass the pvalidate error as-is to caller so that it
can make the correct decision.
I am perfectly fine if the function return UINTN and then use #define
instead of the enum to define the PVALIDATE return code. So that caller
can check the error code. Let me know your thought on #define instead of
the enum.

-Brijesh


Re: No ShellBinPkg with newer releases on github

Laszlo Ersek
 

On 05/03/21 21:35, Rebecca Cran wrote:
I noticed the ShellBinPkg zip file has stopped being uploaded to
https://github.com/tianocore/edk2/releases for newer tags: the most
recent release that has it is edk2-stable202002.

Was that deliberate? I can easily build it myself, but was wondering
since I don't recall seeing any messages about it _not_ being generated
any more.
https://bugzilla.tianocore.org/show_bug.cgi?id=3178

(At this point, the title of that bug should be updated so it say
"edk2-stable202105".)

Laszlo


Re: Booting UEFI with QEMU arm

Laszlo Ersek
 

On 05/04/21 13:32, Pintu Agarwal wrote:
Hi,
Is it possible to boot UEFI on a qemu arm based emulator?
Since I am working from home and my uefi related work leads to device crash
many times, which becomes painful for me.

So I wanted to do all my experiments on a qemu environment before I verify
the final changes on a real hardware.
So, I am just wondering is this possible?

According to my search I see its possible but still I could not find a
proper way to do it.
Please help me if someone has already tried it.

I already have the qemu-arm setup on my Linux/Ubuntu PC.
From "qemu-system-arm", it seems like you really mean 32-bit ARM.

Yes, there is support for that in edk2.

Build:

$ git submodule update --init --force
$ . edksetup.sh
$ nice make -C "$EDK_TOOLS_PATH" -j $(getconf _NPROCESSORS_ONLN)
$ build -a ARM -b DEBUG -p ArmVirtPkg/ArmVirtQemu.dsc -t GCC5
$ for FD in QEMU_EFI.fd QEMU_VARS.fd; do
cat -- \
"$WORKSPACE/Build/ArmVirtQemu-ARM/DEBUG_GCC5/FV/$FD" \
/dev/zero \
| head -c 64m >| /tmp/"$FD.padded"
done

Run:

$ if ! [ -e vars.fd ]; then
cp /tmp/QEMU_VARS.fd.padded vars.fd
fi
$ qemu-system-arm \
-M virt \
-cpu cortex-a15 \
-m 1024 \
-serial stdio \
-drive if=pflash,unit=0,format=raw,readonly=on,file=/tmp/QEMU_EFI.fd.padded \
-drive if=pflash,unit=1,format=raw,file=vars.fd \
-device virtio-gpu-pci \
-device id=xhci0,driver=qemu-xhci \
-device usb-kbd,bus=xhci0.0 \
-boot menu=on,splash-time=5000 \
[...]

HTH
Laszlo



Thanks,
Pintu






Re: [PATCH RFC v2 05/28] MdePkg: Add AsmPvalidate() support

Brijesh Singh
 

On 5/4/21 8:58 AM, Laszlo Ersek wrote:
On 04/30/21 13:51, Brijesh Singh wrote:
BZ: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3275&;data=04%7C01%7Cbrijesh.singh%40amd.com%7C6ceeec6c984d468bb87908d90f04b789%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637557335220626621%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=jF44vk%2FBUVukpuNg4vrcRqHnEa7nO%2FGPEe9ti720cnE%3D&amp;reserved=0

The PVALIDATE instruction validates or rescinds validation of a guest
page RMP entry. Upon completion, a return code is stored in EAX, rFLAGS
bits OF, ZF, AF, PF and SF are set based on this return code. If the
instruction completed succesfully, the rFLAGS bit CF indicates if the
contents of the RMP entry were changed or not.

For more information about the instruction see AMD APM volume 3.

Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Min Xu <min.m.xu@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
MdePkg/Include/Library/BaseLib.h | 37 +++++++++++++++++
MdePkg/Library/BaseLib/BaseLib.inf | 1 +
MdePkg/Library/BaseLib/X64/Pvalidate.nasm | 43 ++++++++++++++++++++
3 files changed, 81 insertions(+)

diff --git a/MdePkg/Include/Library/BaseLib.h b/MdePkg/Include/Library/BaseLib.h
index 7253997a6f..92ce695e93 100644
--- a/MdePkg/Include/Library/BaseLib.h
+++ b/MdePkg/Include/Library/BaseLib.h
@@ -7518,5 +7518,42 @@ PatchInstructionX86 (
IN UINTN ValueSize
);

+/**
+ Execute a PVALIDATE instruction to validate or rescnids validation of a guest
(1) typo: "rescnids"
Noted.




+ page's RMP entry.
+
+ Upon completion, in addition to the return value the instruction also updates
+ the eFlags. A caller must check both the return code as well as eFlags to
+ determine if the RMP entry has been updated.
+
+ The function is available on x64.
(2) Please write "X64"; that's how the architecture is usually mentioned
in both the UEFI spec and in edk2.
Noted.




+
+ @param[in] Address The guest virtual address to validate.
+ @param[in] PageSize The page size to use.
+ @param[i] Validate Validate or rescinds.
+ @param[out] Eflags The value of Eflags after PVALIDATE completion.
(3) Typo: "[i]" should be "[in]".
Noted.




(4) The order of parameters listed in this comment block differs from
the actual parameter list.

The ECC plugin of the edk2 CI will catch this issue anyway. So, before
submitting the patch set to the list, please submit a personal PR on
github.com against the main repo, just to run CI on your patches.
Interestingly I did ran the series with edk2 CI and everything passed
before I submitted for the review. But, I will go ahead and fix the order.



+
+ @retval PvalidateRetValue The return value from the PVALIDATE instruction.
More on the return value / type later, below.

+**/
+typedef enum {
+ PvalidatePageSize4K = 0,
+ PvalidatePageSize2MB,
+} PVALIDATE_PAGE_SIZE;
+
+typedef enum {
+ PvalidateRetSuccess = 0,
+ PvalidateRetFailInput = 1,
+ PvalidateRetFailSizemismatch = 6,
+} PVALIDATE_RET_VALUE;
+
(5) These typedefs do not belong between the function leading comment
and the function declaration. Please hoist the typedefs just above the
leading comment, and add a separate comment for the typedefs -- using
the proper comment style for typedefs, too.


+PVALIDATE_RET_VALUE
(6) In my opinion, using an enum for an EFIAPI function's return type is
problematic. According to the UEFI spec (v2.9), "Table 2-3 Common UEFI
Data Types", <Enumerated Type> may correspond to INT32 or UINT32. I
don't like that ambiguity here. The spec also says that such types
should never be used at least as structure fields.

I'm perfectly fine with functions in standard (ISO) C programs returning
enums, but I think the situation is less clear in UEFI. I don't recall
standard interfaces (spec-level, or even edk2 / MdePkg interfaces) that
return enums.

I suggest the following instead. Drop the PVALIDATE_RET_VALUE enum
altogether. Specify EFI_STATUS as the return type, in the declaration of
the function.
Works with me.



In the UEFI spec, Appendix D specifies the numeric values of the status
codes. Furthermore, there are examples for NASM sources using EFI_*
status codes *numerically* in edk2; minimally:

- IntelFsp2Pkg/FspSecCore/Ia32/FspApiEntryT.nasm
- IntelFsp2WrapperPkg/Library/SecFspWrapperPlatformSecLibSample/Ia32/SecEntry.nasm

Thus, please modify the assembly source code in this patch to return
EFI_SUCCESS (already value 0, conveniently) if the instruction succeeds.
Works with me.


Return EFI_INVALID_PARAMETER (0x8000_0002) in case the instruction fails
with error code 1 (FAIL_INPUT).
Works with me.



Return EFI_UNSUPPORTED (0x8000_0003), or even EFI_NO_MAPPING
(0x8000_0017), for value 6 (FAIL_SIZEMISMATCH).
I am not sure if we really want to do this. You will see later in the
patches that in some cases the PVALIDATE will return a failure and we
will need to know the failure code to determine the next steps.
Especially this particular error code is used later. This error happens
when the page size of the backing pages does not match with the
pvalidated size. In those cases we need to retry the PVALIDATE with
lower page size so that a validation succeed. One such a example is:

- Guest ask hypervisor to add the page as 2M in RMP table.

- Hypervisor added the page as 512 4K pages - because it was not able to
find a large backing pages.

- Guest attempts to pvalidate the page as a 2M. The pvalidate will
return a failure saying its a size mismatch between the requested
pvalidated and RMP table. The recommendation is that guest should try
with a smaller page size.

I would prefer to pass the pvalidate error as-is to caller so that it
can make the correct decision.



The leading comment block of the function is supposed to explain these
associations:

@retval EFI_SUCCESS Successful completion (regardless of
whether the Validated bit changed state).
@retval INVALID_PARAMETER Invalid input parameters (FAIL_INPUT).
@retval EFI_UNSUPPORTED Page size mismatch between guest (2M) and
RMP entry (4K) (FAIL_SIZEMISMATCH).

(Passing in the PVALIDATE_PAGE_SIZE enum, as a parameter, should be
fine, BTW)


(7) According to the AMD APM, "Support for this instruction is indicated
by CPUID Fn8000_001F_EAX[SNP]=1".

Presumably, if the (physical, or emulated) hardware does not support
PVALIDATE, an #UD is raised. That condition should be explained in the
function's leading comment. (Mention the CPUID and the #UD, I guess.)
Noted.

+EFIAPI
+AsmPvalidate (
+ IN PVALIDATE_PAGE_SIZE PageSize,
+ IN BOOLEAN Validate,
+ IN UINTN Address,
(8) This should be EFI_PHYSICAL_ADDRESS, not UINTN.
Noted.



+ OUT IA32_EFLAGS32 *Eflags
+ );
+
#endif // defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)
#endif // !defined (__BASE_LIB__)
(9) Unless you foresee particular uses for eflags *other than* CF, I
would suggest replacing the Eflags output parameter with

OUT BOOLEAN *RmpEntryUpdated

The function would still only have 4 parameters, which shouldn't be
difficult to handle in the assembly implementation (i.e. write to the
UINT8 (= BOOLEAN) object referenced by "RmpEntryUpdated"). EFIAPI means
that the first four params are passed in RCX, RDX, R8, R9.
Works with me, thats what I ended up doing for the guest kernel patches
and will do the same for OVMF as well.

Thus far, I can see only one AsmPvalidate() call: in IssuePvalidate(),
from patch #21 ("OvmfPkg/MemEncryptSevLib: Add support to validate
system RAM"). And there, CF looks sufficient.


(10) The instruction is X64 only, but you are providing the declaration
even if MDE_CPU_IA32 is #defined. That seems wrong; even the declaration
should be invisible in that case. Please declare the function for
MDE_CPU_X64 only.
Noted.


diff --git a/MdePkg/Library/BaseLib/BaseLib.inf b/MdePkg/Library/BaseLib/BaseLib.inf
index b76f3af380..d33b4a8f7d 100644
--- a/MdePkg/Library/BaseLib/BaseLib.inf
+++ b/MdePkg/Library/BaseLib/BaseLib.inf
@@ -321,6 +321,7 @@
X64/XGetBv.nasm
X64/XSetBv.nasm
X64/VmgExit.nasm
+ X64/Pvalidate.nasm
ChkStkGcc.c | GCC

[Sources.EBC]
(11) This list of source files is already not sorted alphabetically,
unfortunately. But we can still do better than this: I suggest inserting
"X64/Pvalidate.nasm" just before "X64/RdRand.nasm".
Noted.



(12) Your git setup seems less than ideal for formatting edk2 patches.
The @@ hunk header above does not show the INF file section being
modified. It should look something like this:

@@ -317,6 +317,7 @@ [Sources.X64]
^^^^^^^^^^^^^

Please run the "BaseTools/Scripts/SetupGit.py" script in your working
tree.
Will do.



Alternatively, please see "xfuncname" at
<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Ftianocore.github.io%2Fwiki%2FLaszlo%2527s-unkempt-git-guide-for-edk2-contributors-and-maintainers%23contrib-05&;data=04%7C01%7Cbrijesh.singh%40amd.com%7C6ceeec6c984d468bb87908d90f04b789%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637557335220626621%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=W16GsCzqxFZlH7DBOIFY0EJy%2FS6DTSCt0qEVOMLjjRs%3D&amp;reserved=0>.

This is of course not a bug in the patch, but fixing your setup will
help with the next round of review.


diff --git a/MdePkg/Library/BaseLib/X64/Pvalidate.nasm b/MdePkg/Library/BaseLib/X64/Pvalidate.nasm
new file mode 100644
index 0000000000..f2aba114ac
--- /dev/null
+++ b/MdePkg/Library/BaseLib/X64/Pvalidate.nasm
@@ -0,0 +1,43 @@
+;-----------------------------------------------------------------------------
+;
+; Copyright (c) 2020-2021, AMD. All rights reserved.<BR>
(13) I believe we don't introduce new files with copyright notices
referring to the past. IOW, I think you should only say "2021" here.
Noted.


+; SPDX-License-Identifier: BSD-2-Clause-Patent
+;
+; Module Name:
+;
+; Pvalidate.Asm
+;
+; Abstract:
+;
+; AsmPvalidate function
+;
+; Notes:
+;
(14) I defer to the MdePkg maintainers on this, but "Module Name" is
plain wrong, and the Abstract is useless. Either fix those up please
("Abstract" could be a copy of the corrected leading comment block), or
just drop them both.


+;-----------------------------------------------------------------------------
+
+ SECTION .text
+
+;-----------------------------------------------------------------------------
+; PvalidateRetValue
+; EFIAPI
+; AsmPvalidate (
+; IN UINT32 RmpPageSize
+; IN UINT32 Validate,
+; IN UINTN Address,
+; OUT UINTN *Eflags,
+; )
+;-----------------------------------------------------------------------------
(15) Please update this accordingly to the corrected function
specification.
Noted.



+global ASM_PFX(AsmPvalidate)
+ASM_PFX(AsmPvalidate):
+ mov rax, r8
+
+ ; PVALIDATE instruction opcode
+ DB 0xF2, 0x0F, 0x01, 0xFF
This is bad practice; we make every effort to avoid DB-encoded
instructions.

We have two PVALIDATE instances in the patch set (... that I can see
immediateyl); the first here, and the other in
"OvmfPkg/ResetVector/Ia32/PageTables64.asm" (from patch #17,
"OvmfPkg/ResetVector: Invalidate the GHCB page"). Therefore, hiding the
encoding of PVALIDATE behind a NASM macro definitely makes sense.

(16a) Please file a NASM feature request for PVALIDATE at
<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.nasm.us%2F&;data=04%7C01%7Cbrijesh.singh%40amd.com%7C6ceeec6c984d468bb87908d90f04b789%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637557335220636620%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=VtpkUnBunOdo3n86u3dBhoJZPxLN8M95ClyYUtC7v9o%3D&amp;reserved=0>.
Will do.



(16b) In the present MdePkg patch, please extend the file

MdePkg/Include/X64/Nasm.inc

as follows:

diff --git a/MdePkg/Include/X64/Nasm.inc b/MdePkg/Include/X64/Nasm.inc
index 527f71e9eb4d..ff37f1e35707 100644
--- a/MdePkg/Include/X64/Nasm.inc
+++ b/MdePkg/Include/X64/Nasm.inc
@@ -33,6 +33,15 @@
DB 0xF3, 0x48, 0x0F, 0xAE, 0xE8
%endmacro

+;
+; Macro for the PVALIDATE instruction, defined in AMD publication #24594
+; revision 3.32. NASM feature request URL:
+; <https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.nasm.us%2Fshow_bug.cgi%3Fid%3DFIXME&;data=04%7C01%7Cbrijesh.singh%40amd.com%7C6ceeec6c984d468bb87908d90f04b789%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637557335220636620%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=WeN3YmLN6OEpY8azwBt0ixogffkCCSk70P2Y%2Bff0Hlo%3D&amp;reserved=0>.
+;
+%macro PVALIDATE 0
+ DB 0xF2, 0x0F, 0x01, 0xFF
+%endmacro
+
; NASM provides built-in macros STRUC and ENDSTRUC for structure definition.
; For example, to define a structure called mytype containing a longword,
; a word, a byte and a string of bytes, you might code
Sure, I will add the new macro and use it.


(16c) Please replace the FIXME placeholder above with the actual NASM BZ
number (from (16a)).

(16d) In the "MdePkg/Library/BaseLib/X64/Pvalidate.nasm" source file,
and also (later) in the "OvmfPkg/ResetVector/Ia32/PageTables64.asm"
source file, please use the PVALIDATE macro, in place of the naked DBs.


Back to your patch:

On 04/30/21 13:51, Brijesh Singh wrote:
+
+ ; Read the Eflags
+ pushfq
+ pop r8
+ mov [r9], r8
+
+ ; The PVALIDATE instruction returns the status in rax register.
+ ret
(17) The assembly code should be updated to match the new interface
contract (parameter order, parameter types, return values).
Sure, I will update based on your feedback.



I'll continue reviewing the series later this week (hopefully tomorrow).

thanks for all your review feedback.


Re: [PATCH RFC v2 04/28] MdePkg: Define the Page State Change VMGEXIT structures

Brijesh Singh
 

On 5/4/21 7:33 AM, Laszlo Ersek wrote:
On 04/30/21 13:51, Brijesh Singh wrote:
BZ: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3275&;data=04%7C01%7Cbrijesh.singh%40amd.com%7Cbb2eaad10f574a464cb008d90ef8e5b4%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637557284470753463%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=fpm8afTb4UwW13njwD9WzHWIZZhjUCdmm3Vkt9GJ2SI%3D&amp;reserved=0

The Page State Change NAE exit will be used by the SEV-SNP guest to
request a page state change using the GHCB protocol. See the GHCB
spec section 4.1.6 and 2.3.1 for more detail on the structure
definitions.

Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Min Xu <min.m.xu@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
MdePkg/Include/Register/Amd/Fam17Msr.h | 15 ++++++++++
MdePkg/Include/Register/Amd/Ghcb.h | 29 ++++++++++++++++++++
2 files changed, 44 insertions(+)

diff --git a/MdePkg/Include/Register/Amd/Fam17Msr.h b/MdePkg/Include/Register/Amd/Fam17Msr.h
index e19bd04b6c..432cee2feb 100644
--- a/MdePkg/Include/Register/Amd/Fam17Msr.h
+++ b/MdePkg/Include/Register/Amd/Fam17Msr.h
@@ -58,6 +58,19 @@ typedef union {
UINT64 GuestFrameNumber:52;
} GhcbGpaRegister;

+ struct {
+ UINT64 Function:12;
+ UINT64 GuestFrameNumber:40;
+ UINT64 Operation:4;
+ UINT64 Reserved:8;
+ } SnpPageStateChangeRequest;
+
+ struct {
+ UINT32 Function:12;
+ UINT32 Reserved:20;
+ UINT32 ErrorCode;
+ } SnpPageStateChangeResponse;
+
VOID *Ghcb;
This matches section 2.3.1 in rev 2.00.

UINT64 GhcbPhysicalAddress;
@@ -69,6 +82,8 @@ typedef union {
#define GHCB_INFO_CPUID_RESPONSE 5
#define GHCB_INFO_GHCB_GPA_REGISTER_REQUEST 18
#define GHCB_INFO_GHCB_GPA_REGISTER_RESPONSE 19
+#define GHCB_INFO_SNP_PAGE_STATE_CHANGE_REQUEST 20
+#define GHCB_INFO_SNP_PAGE_STATE_CHANGE_RESPONSE 21
#define GHCB_HYPERVISOR_FEATURES_REQUEST 128
#define GHCB_HYPERVISOR_FEATURES_RESPONSE 129
#define GHCB_INFO_TERMINATE_REQUEST 256
Matches section 2.3.1.

diff --git a/MdePkg/Include/Register/Amd/Ghcb.h b/MdePkg/Include/Register/Amd/Ghcb.h
index 2d64a4c28f..1e7c0daed3 100644
--- a/MdePkg/Include/Register/Amd/Ghcb.h
+++ b/MdePkg/Include/Register/Amd/Ghcb.h
@@ -54,6 +54,7 @@
#define SVM_EXIT_NMI_COMPLETE 0x80000003ULL
#define SVM_EXIT_AP_RESET_HOLD 0x80000004ULL
#define SVM_EXIT_AP_JUMP_TABLE 0x80000005ULL
+#define SVM_EXIT_SNP_PAGE_STATE_CHANGE 0x80000010ULL
#define SVM_EXIT_HYPERVISOR_FEATURES 0x8000FFFDULL
#define SVM_EXIT_UNSUPPORTED 0x8000FFFFULL
Matches "Table 5. List of Supported Non-Automatic Events".

@@ -160,4 +161,32 @@ typedef union {
#define GHCB_HV_FEATURES_SNP_AP_CREATE (GHCB_HV_FEATURES_SNP | BIT1)
#define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION (GHCB_HV_FEATURES_SNP_AP_CREATE | BIT2)
#define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION_TIMER (GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION | BIT3)
+
+// SNP Page State Change
(1) Comment style.
Noted.



+#define SNP_PAGE_STATE_MAX_NPAGES 4095
+#define SNP_PAGE_STATE_MAX_ENTRY 253
+#define SNP_PAGE_STATE_PRIVATE 1
+#define SNP_PAGE_STATE_SHARED 2
+#define SNP_PAGE_STATE_PSMASH 3
+#define SNP_PAGE_STATE_UNSMASH 4
(2) The PSMASH and UNSMASH operations are not documented in the rev 2.00
spec, in the GHCB MSR protocol. That's probably because PSMASH and
UNSMASH can only be defined in terms of 2MB pages, and
GHCB_INFO_SNP_PAGE_STATE_CHANGE_REQUEST is suitable only for individual,
4KB pages. I think it would be useful to point out somehow here that
PSMASH and UNSMASH are restricted to the GHCB shared area protocol
(perhaps extend the leading comment on this block of macros).
I will add something in comment to clarify that UNMASH and PSMASH are
not available in MSR protocol.



(3) I don't understand what "MAX_NPAGES" stands for (4095). The rest of
the series never uses the macro, and I can't associate it with anything
from the spec. If the macro is supposed to relate to the 4KB / 2MB page
smashing / splitting, then its replacement text should be 512. Unless
the macro corresponds to a definition in the spec, I think we should
drop it.
That macro is replaced is no longer used, I ended up creating a more
meaningful macro (SNP_PAGES_STATE_MAX_ENTRY). I will remove it MAX_NPAGES.

+
+typedef PACKED struct {
+ UINT64 CurrentPage:12;
+ UINT64 GuestFrameNumber:40;
+ UINT64 Op:4;
+ UINT64 PageSize:1;
+ UINT64 Rsvd: 7;
+} SNP_PAGE_STATE_ENTRY;
+
+typedef PACKED struct {
+ UINT16 CurrentEntry;
+ UINT16 EndEntry;
+ UINT32 Rsvd;
+} SNP_PAGE_STATE_HEADER;
(4) We tend to write

#pragma pack (1)
...
#pragma pack ()

rather than PACKED -- but anyway, is packing really necessary? "Natural
alignment" is required in edk2. I'm OK with packing, but I think the
pragma is the preferred form.
Noted.


(5) Please spell out both "Rsvd" fields above as "Reserved".
Noted.



(6) Stray space character in "Rsvd: 7".
Noted.



(7) The field name "Op" is inconsistent with the other field name
"Operation".
Noted.



(8) I think there is a bug (typo) in the rev 2.00 spec, in 4.1.6 "SNP
Page State Change": it says

... calculated from the supplied guest physical frame number (GFN) for
the requested page size (GPA = GFN << 12).

But, if you can choose 2MB page size in the request, then the (GPA = GFN
<< 12) formula is not g
I think Tom already clarified it on his latest response.


(9) If my understanding of the spec is correct, "EndEntry" has
*inclusive* meaning. That's unusual. Any particular reason for not
making "EndEntry" exclusive (in the spec)?
Sometimes guest may need to fill only few entries. The "EndEntry" will
give hint to hypervisor that it should stop processing after it reached
to the EndEntry.


+
+typedef struct {
+ SNP_PAGE_STATE_HEADER Header;
+ SNP_PAGE_STATE_ENTRY Entry[SNP_PAGE_STATE_MAX_ENTRY];
+} SNP_PAGE_STATE_CHANGE_INFO;
+
#endif
Yes, this looks OK. Size is 2+2+4+253*8 = 2032 bytes, which matches the
size of GHCB.SharedBuffer.

(10) However, *if* you decide to declare SNP_PAGE_STATE_ENTRY and
SNP_PAGE_STATE_HEADER explicitly as packed, then you should do the same
for SNP_PAGE_STATE_CHANGE_INFO.
Noted.



(11) Like I mentioned earlier, it's probably helpful if you start the
subject line with

MdePkg/Register/Amd: ...

on all of these MdePkg patches. If that becomes too tight, for some of
the MdePkg patches, then I suggest "MdePkg/Amd: ..." (i.e., drop
"Register").
Noted.

Thanks

Brijesh


Re: [PATCH RFC v2 04/28] MdePkg: Define the Page State Change VMGEXIT structures

Laszlo Ersek
 

On 05/04/21 16:48, Tom Lendacky wrote:


On 5/4/21 8:59 AM, Laszlo Ersek wrote:
On 05/04/21 14:33, Laszlo Ersek wrote:
On 04/30/21 13:51, Brijesh Singh wrote:
BZ: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3275&;data=04%7C01%7Cthomas.lendacky%40amd.com%7Cf400bca14b6f4f138a1908d90f05090f%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637557336582189771%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=bjXNVWGpurRGUZkjemvDQR%2FYnEQRG9ENN22jUjtkNP0%3D&amp;reserved=0

The Page State Change NAE exit will be used by the SEV-SNP guest to
request a page state change using the GHCB protocol. See the GHCB
spec section 4.1.6 and 2.3.1 for more detail on the structure
definitions.

Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Min Xu <min.m.xu@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
MdePkg/Include/Register/Amd/Fam17Msr.h | 15 ++++++++++
MdePkg/Include/Register/Amd/Ghcb.h | 29 ++++++++++++++++++++
2 files changed, 44 insertions(+)

diff --git a/MdePkg/Include/Register/Amd/Fam17Msr.h b/MdePkg/Include/Register/Amd/Fam17Msr.h
index e19bd04b6c..432cee2feb 100644
--- a/MdePkg/Include/Register/Amd/Fam17Msr.h
+++ b/MdePkg/Include/Register/Amd/Fam17Msr.h
@@ -58,6 +58,19 @@ typedef union {
UINT64 GuestFrameNumber:52;
} GhcbGpaRegister;

+ struct {
+ UINT64 Function:12;
+ UINT64 GuestFrameNumber:40;
+ UINT64 Operation:4;
+ UINT64 Reserved:8;
+ } SnpPageStateChangeRequest;
+
+ struct {
+ UINT32 Function:12;
+ UINT32 Reserved:20;
+ UINT32 ErrorCode;
+ } SnpPageStateChangeResponse;
+
VOID *Ghcb;
This matches section 2.3.1 in rev 2.00.

UINT64 GhcbPhysicalAddress;
@@ -69,6 +82,8 @@ typedef union {
#define GHCB_INFO_CPUID_RESPONSE 5
#define GHCB_INFO_GHCB_GPA_REGISTER_REQUEST 18
#define GHCB_INFO_GHCB_GPA_REGISTER_RESPONSE 19
+#define GHCB_INFO_SNP_PAGE_STATE_CHANGE_REQUEST 20
+#define GHCB_INFO_SNP_PAGE_STATE_CHANGE_RESPONSE 21
#define GHCB_HYPERVISOR_FEATURES_REQUEST 128
#define GHCB_HYPERVISOR_FEATURES_RESPONSE 129
#define GHCB_INFO_TERMINATE_REQUEST 256
Matches section 2.3.1.

diff --git a/MdePkg/Include/Register/Amd/Ghcb.h b/MdePkg/Include/Register/Amd/Ghcb.h
index 2d64a4c28f..1e7c0daed3 100644
--- a/MdePkg/Include/Register/Amd/Ghcb.h
+++ b/MdePkg/Include/Register/Amd/Ghcb.h
@@ -54,6 +54,7 @@
#define SVM_EXIT_NMI_COMPLETE 0x80000003ULL
#define SVM_EXIT_AP_RESET_HOLD 0x80000004ULL
#define SVM_EXIT_AP_JUMP_TABLE 0x80000005ULL
+#define SVM_EXIT_SNP_PAGE_STATE_CHANGE 0x80000010ULL
#define SVM_EXIT_HYPERVISOR_FEATURES 0x8000FFFDULL
#define SVM_EXIT_UNSUPPORTED 0x8000FFFFULL
Matches "Table 5. List of Supported Non-Automatic Events".

@@ -160,4 +161,32 @@ typedef union {
#define GHCB_HV_FEATURES_SNP_AP_CREATE (GHCB_HV_FEATURES_SNP | BIT1)
#define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION (GHCB_HV_FEATURES_SNP_AP_CREATE | BIT2)
#define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION_TIMER (GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION | BIT3)
+
+// SNP Page State Change
(1) Comment style.

+#define SNP_PAGE_STATE_MAX_NPAGES 4095
+#define SNP_PAGE_STATE_MAX_ENTRY 253
+#define SNP_PAGE_STATE_PRIVATE 1
+#define SNP_PAGE_STATE_SHARED 2
+#define SNP_PAGE_STATE_PSMASH 3
+#define SNP_PAGE_STATE_UNSMASH 4
(2) The PSMASH and UNSMASH operations are not documented in the rev 2.00
spec, in the GHCB MSR protocol. That's probably because PSMASH and
UNSMASH can only be defined in terms of 2MB pages, and
GHCB_INFO_SNP_PAGE_STATE_CHANGE_REQUEST is suitable only for individual,
4KB pages. I think it would be useful to point out somehow here that
PSMASH and UNSMASH are restricted to the GHCB shared area protocol
(perhaps extend the leading comment on this block of macros).

(3) I don't understand what "MAX_NPAGES" stands for (4095). The rest of
the series never uses the macro, and I can't associate it with anything
from the spec. If the macro is supposed to relate to the 4KB / 2MB page
smashing / splitting, then its replacement text should be 512. Unless
the macro corresponds to a definition in the spec, I think we should
drop it.

+
+typedef PACKED struct {
+ UINT64 CurrentPage:12;
+ UINT64 GuestFrameNumber:40;
+ UINT64 Op:4;
+ UINT64 PageSize:1;
+ UINT64 Rsvd: 7;
+} SNP_PAGE_STATE_ENTRY;
+
+typedef PACKED struct {
+ UINT16 CurrentEntry;
+ UINT16 EndEntry;
+ UINT32 Rsvd;
+} SNP_PAGE_STATE_HEADER;
(4) We tend to write

#pragma pack (1)
...
#pragma pack ()

rather than PACKED -- but anyway, is packing really necessary? "Natural
alignment" is required in edk2. I'm OK with packing, but I think the
pragma is the preferred form.

(5) Please spell out both "Rsvd" fields above as "Reserved".

(6) Stray space character in "Rsvd: 7".

(7) The field name "Op" is inconsistent with the other field name
"Operation".

(8) I think there is a bug (typo) in the rev 2.00 spec, in 4.1.6 "SNP
Page State Change": it says

... calculated from the supplied guest physical frame number (GFN) for
the requested page size (GPA = GFN << 12).

But, if you can choose 2MB page size in the request, then the (GPA = GFN
<< 12) formula is not g
Sorry, unfinished sentence: I meant that the formula was not generally
correct.
Actually, for any page size, the GPA for any GFN is GFN << 12.

For the SNP Page State Change NAE event, it is up to the hypervisor to
ensure that the GFN/GPA supplied is aligned appropriately for the
requested page size (see 4.1.6 of the GHCB spec where the page operations
are defined). A GFN is naturally 4K aligned, so only a 2MB page size needs
GFN/GPA alignment validation.
Thanks. I guess I was confused by the term "for the requested page size".

For the SNP Page State Change MSR protocol, only a 4K page size is supported.
Yes, that's clear.

Thanks!
Laszlo


Re: [PATCH v1 1/4] ArmVirtPkg: Library: Memory initialization for Cloud Hypervisor

Laszlo Ersek
 

On 05/04/21 10:31, Sami Mujawar wrote:
Hi Laszlo,

On Thu, Apr 22, 2021 at 06:56 AM, Laszlo Ersek wrote:


5) "Cloud Hypervisor" is not something that I can justifiably spend
much time on. I'm willing to review this series at the level at which
I've reviewed (for example) XenPVH or Bhyve in the past, mainly focusing
on style and potential regressions. However, that's not enough for the
long term: someone from ARM (or elsewhere) will have to step up for
permanent reviewership. Please add a patch for extending
"Maintainers.txt" appropriately. Example subsystems:
I can help to review the 'Cloud Hypervisor' patches and will send out a patch to update the reviewership once the initial series is merged.
OK, thanks!


Hi Jainyong,

I could not find the remaining patches from your v1 series. Can you forward them to me, please?
Indeed, the v1 patches have not reached the list.

Thanks,
Laszlo


I can review and provide feedback so that they are addressed in your v2 series.

Regards,

Sami Mujawar


[PATCH v3 1/1] CryptoPkg: BaseCryptLib: Add RSA PSS verify support

Agrawal, Sachin
 

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3314

This patch uses Openssl's EVP API's to perform RSASSA-PSS verification
of a binary blob.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com>
Cc: Guomin Jiang <guomin.jiang@intel.com>

Signed-off-by: Sachin Agrawal <sachin.agrawal@intel.com>
---

Notes:
v3:
- Fixed gcc compilation error [CI System]

CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPss.c | 146 +++++++++++++++
CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssNull.c | 46 +++++
CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssSign.c | 169 +++++++++++++++++
CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssSignNull.c | 60 ++++++
CryptoPkg/Library/BaseCryptLibNull/Pk/CryptRsaPssNull.c | 46 +++++
CryptoPkg/Library/BaseCryptLibNull/Pk/CryptRsaPssSignNull.c | 60 ++++++
CryptoPkg/Library/BaseCryptLibOnProtocolPpi/CryptLib.c | 66 +++++++
CryptoPkg/Test/UnitTest/Library/BaseCryptLib/BaseCryptLibUnitTests.c | 1 +
CryptoPkg/Test/UnitTest/Library/BaseCryptLib/RsaPssTests.c | 191 ++++++++++++++++++++
CryptoPkg/Test/UnitTest/Library/BaseCryptLib/RsaTests.c | 2 +
CryptoPkg/Include/Library/BaseCryptLib.h | 74 ++++++++
CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf | 2 +
CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf | 2 +
CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf | 2 +
CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf | 2 +
CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf | 2 +
CryptoPkg/Library/BaseCryptLibNull/BaseCryptLibNull.inf | 2 +
CryptoPkg/Private/Protocol/Crypto.h | 78 ++++++++
CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLib.h | 3 +
CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibHost.inf | 1 +
CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibShell.inf | 1 +
21 files changed, 956 insertions(+)

diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPss.c b/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPss.c
new file mode 100644
index 000000000000..af7cdafa4c47
--- /dev/null
+++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPss.c
@@ -0,0 +1,146 @@
+/** @file
+ RSA Asymmetric Cipher Wrapper Implementation over OpenSSL.
+
+ This file implements following APIs which provide basic capabilities for RSA:
+ 1) RsaPssVerify
+
+Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "InternalCryptLib.h"
+
+#include <openssl/bn.h>
+#include <openssl/rsa.h>
+#include <openssl/objects.h>
+#include <openssl/evp.h>
+
+
+/**
+ Retrieve a pointer to EVP message digest object.
+
+ @param[in] DigestLen Length of the message digest.
+
+**/
+STATIC
+const
+EVP_MD*
+GetEvpMD (
+ IN UINT16 DigestLen
+ )
+{
+ switch (DigestLen){
+ case SHA256_DIGEST_SIZE:
+ return EVP_sha256();
+ break;
+ case SHA384_DIGEST_SIZE:
+ return EVP_sha384();
+ break;
+ case SHA512_DIGEST_SIZE:
+ return EVP_sha512();
+ break;
+ default:
+ return NULL;
+ }
+}
+
+
+/**
+ Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
+ Implementation determines salt length automatically from the signature encoding.
+ Mask generation function is the same as the message digest algorithm.
+ Salt length should atleast be equal to digest length.
+
+ @param[in] RsaContext Pointer to RSA context for signature verification.
+ @param[in] Message Pointer to octet message to be verified.
+ @param[in] MsgSize Size of the message in bytes.
+ @param[in] Signature Pointer to RSASSA-PSS signature to be verified.
+ @param[in] SigSize Size of signature in bytes.
+ @param[in] DigestLen Length of digest for RSA operation.
+ @param[in] SaltLen Salt length for PSS encoding.
+
+ @retval TRUE Valid signature encoded in RSASSA-PSS.
+ @retval FALSE Invalid signature or invalid RSA context.
+
+**/
+BOOLEAN
+EFIAPI
+RsaPssVerify (
+ IN VOID *RsaContext,
+ IN CONST UINT8 *Message,
+ IN UINTN MsgSize,
+ IN CONST UINT8 *Signature,
+ IN UINTN SigSize,
+ IN UINT16 DigestLen,
+ IN UINT16 SaltLen
+ )
+{
+ BOOLEAN Result;
+ EVP_PKEY *pEvpRsaKey = NULL;
+ EVP_MD_CTX *pEvpVerifyCtx = NULL;
+ EVP_PKEY_CTX *pKeyCtx = NULL;
+ CONST EVP_MD *HashAlg = NULL;
+
+ if (RsaContext == NULL) {
+ return FALSE;
+ }
+ if (Message == NULL || MsgSize == 0 || MsgSize > INT_MAX) {
+ return FALSE;
+ }
+ if (Signature == NULL || SigSize == 0 || SigSize > INT_MAX) {
+ return FALSE;
+ }
+ if (SaltLen < DigestLen) {
+ return FALSE;
+ }
+
+ HashAlg = GetEvpMD(DigestLen);
+
+ if (HashAlg == NULL) {
+ return FALSE;
+ }
+
+ pEvpRsaKey = EVP_PKEY_new();
+ if (pEvpRsaKey == NULL) {
+ goto _Exit;
+ }
+
+ EVP_PKEY_set1_RSA(pEvpRsaKey, RsaContext);
+
+ pEvpVerifyCtx = EVP_MD_CTX_create();
+ if (pEvpVerifyCtx == NULL) {
+ goto _Exit;
+ }
+
+ Result = EVP_DigestVerifyInit(pEvpVerifyCtx, &pKeyCtx, HashAlg, NULL, pEvpRsaKey) > 0;
+ if (pKeyCtx == NULL) {
+ goto _Exit;
+ }
+
+ if (Result) {
+ Result = EVP_PKEY_CTX_set_rsa_padding(pKeyCtx, RSA_PKCS1_PSS_PADDING) > 0;
+ }
+ if (Result) {
+ Result = EVP_PKEY_CTX_set_rsa_pss_saltlen(pKeyCtx, SaltLen) > 0;
+ }
+ if (Result) {
+ Result = EVP_PKEY_CTX_set_rsa_mgf1_md(pKeyCtx, HashAlg) > 0;
+ }
+ if (Result) {
+ Result = EVP_DigestVerifyUpdate(pEvpVerifyCtx, Message, (UINT32)MsgSize) > 0;
+ }
+ if (Result) {
+ Result = EVP_DigestVerifyFinal(pEvpVerifyCtx, Signature, (UINT32)SigSize) > 0;
+ }
+
+_Exit :
+ if (pEvpRsaKey) {
+ EVP_PKEY_free(pEvpRsaKey);
+ }
+ if (pEvpVerifyCtx) {
+ EVP_MD_CTX_destroy(pEvpVerifyCtx);
+ }
+
+ return Result;
+}
diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssNull.c b/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssNull.c
new file mode 100644
index 000000000000..69c6889fbc4b
--- /dev/null
+++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssNull.c
@@ -0,0 +1,46 @@
+/** @file
+ RSA-PSS Asymmetric Cipher Wrapper Implementation over OpenSSL.
+
+ This file does not provide real capabilities for following APIs in RSA handling:
+ 1) RsaPssVerify
+
+Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "InternalCryptLib.h"
+
+/**
+ Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
+ Implementation determines salt length automatically from the signature encoding.
+ Mask generation function is the same as the message digest algorithm.
+ Salt length should atleast be equal to digest length.
+
+ @param[in] RsaContext Pointer to RSA context for signature verification.
+ @param[in] Message Pointer to octet message to be verified.
+ @param[in] MsgSize Size of the message in bytes.
+ @param[in] Signature Pointer to RSASSA-PSS signature to be verified.
+ @param[in] SigSize Size of signature in bytes.
+ @param[in] DigestLen Length of digest for RSA operation.
+ @param[in] SaltLen Salt length for PSS encoding.
+
+ @retval TRUE Valid signature encoded in RSASSA-PSS.
+ @retval FALSE Invalid signature or invalid RSA context.
+
+**/
+BOOLEAN
+EFIAPI
+RsaPssVerify (
+ IN VOID *RsaContext,
+ IN CONST UINT8 *Message,
+ IN UINTN MsgSize,
+ IN CONST UINT8 *Signature,
+ IN UINTN SigSize,
+ IN UINT16 DigestLen,
+ IN UINT16 SaltLen
+ )
+{
+ ASSERT (FALSE);
+ return FALSE;
+}
diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssSign.c b/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssSign.c
new file mode 100644
index 000000000000..1ed076e4192c
--- /dev/null
+++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssSign.c
@@ -0,0 +1,169 @@
+/** @file
+ RSA PSS Asymmetric Cipher Wrapper Implementation over OpenSSL.
+
+ This file implements following APIs which provide basic capabilities for RSA:
+ 1) RsaPssSign
+
+Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "InternalCryptLib.h"
+
+#include <openssl/bn.h>
+#include <openssl/rsa.h>
+#include <openssl/objects.h>
+#include <openssl/evp.h>
+
+
+/**
+ Retrieve a pointer to EVP message digest object.
+
+ @param[in] DigestLen Length of the message digest.
+
+**/
+STATIC
+const
+EVP_MD*
+GetEvpMD (
+ IN UINT16 DigestLen
+ )
+{
+ switch (DigestLen){
+ case SHA256_DIGEST_SIZE:
+ return EVP_sha256();
+ break;
+ case SHA384_DIGEST_SIZE:
+ return EVP_sha384();
+ break;
+ case SHA512_DIGEST_SIZE:
+ return EVP_sha512();
+ break;
+ default:
+ return NULL;
+ }
+}
+
+
+/**
+ Carries out the RSA-SSA signature generation with EMSA-PSS encoding scheme.
+
+ This function carries out the RSA-SSA signature generation with EMSA-PSS encoding scheme defined in
+ RFC 8017.
+ Mask generation function is the same as the message digest algorithm.
+ If the Signature buffer is too small to hold the contents of signature, FALSE
+ is returned and SigSize is set to the required buffer size to obtain the signature.
+
+ If RsaContext is NULL, then return FALSE.
+ If Message is NULL, then return FALSE.
+ If MsgSize is zero or > INT_MAX, then return FALSE.
+ If DigestLen is NOT 32, 48 or 64, return FALSE.
+ If SaltLen is < DigestLen, then return FALSE.
+ If SigSize is large enough but Signature is NULL, then return FALSE.
+ If this interface is not supported, then return FALSE.
+
+ @param[in] RsaContext Pointer to RSA context for signature generation.
+ @param[in] Message Pointer to octet message to be signed.
+ @param[in] MsgSize Size of the message in bytes.
+ @param[in] DigestLen Length of the digest in bytes to be used for RSA signature operation.
+ @param[in] SaltLen Length of the salt in bytes to be used for PSS encoding.
+ @param[out] Signature Pointer to buffer to receive RSA PSS signature.
+ @param[in, out] SigSize On input, the size of Signature buffer in bytes.
+ On output, the size of data returned in Signature buffer in bytes.
+
+ @retval TRUE Signature successfully generated in RSASSA-PSS.
+ @retval FALSE Signature generation failed.
+ @retval FALSE SigSize is too small.
+ @retval FALSE This interface is not supported.
+
+**/
+BOOLEAN
+EFIAPI
+RsaPssSign (
+ IN VOID *RsaContext,
+ IN CONST UINT8 *Message,
+ IN UINTN MsgSize,
+ IN UINT16 DigestLen,
+ IN UINT16 SaltLen,
+ OUT UINT8 *Signature,
+ IN OUT UINTN *SigSize
+ )
+{
+ BOOLEAN Result;
+ UINTN RsaSigSize;
+ EVP_PKEY *pEvpRsaKey = NULL;
+ EVP_MD_CTX *pEvpVerifyCtx = NULL;
+ EVP_PKEY_CTX *pKeyCtx = NULL;
+ CONST EVP_MD *HashAlg = NULL;
+
+ if (RsaContext == NULL) {
+ return FALSE;
+ }
+ if (Message == NULL || MsgSize == 0 || MsgSize > INT_MAX) {
+ return FALSE;
+ }
+
+ RsaSigSize = RSA_size (RsaContext);
+ if (*SigSize < RsaSigSize) {
+ *SigSize = RsaSigSize;
+ return FALSE;
+ }
+
+ if (Signature == NULL) {
+ return FALSE;
+ }
+
+ if (SaltLen < DigestLen) {
+ return FALSE;
+ }
+
+ HashAlg = GetEvpMD(DigestLen);
+
+ if (HashAlg == NULL) {
+ return FALSE;
+ }
+
+ pEvpRsaKey = EVP_PKEY_new();
+ if (pEvpRsaKey == NULL) {
+ goto _Exit;
+ }
+
+ EVP_PKEY_set1_RSA(pEvpRsaKey, RsaContext);
+
+ pEvpVerifyCtx = EVP_MD_CTX_create();
+ if (pEvpVerifyCtx == NULL) {
+ goto _Exit;
+ }
+
+ Result = EVP_DigestSignInit(pEvpVerifyCtx, &pKeyCtx, HashAlg, NULL, pEvpRsaKey) > 0;
+ if (pKeyCtx == NULL) {
+ goto _Exit;
+ }
+
+ if (Result) {
+ Result = EVP_PKEY_CTX_set_rsa_padding(pKeyCtx, RSA_PKCS1_PSS_PADDING) > 0;
+ }
+ if (Result) {
+ Result = EVP_PKEY_CTX_set_rsa_pss_saltlen(pKeyCtx, SaltLen) > 0;
+ }
+ if (Result) {
+ Result = EVP_PKEY_CTX_set_rsa_mgf1_md(pKeyCtx, HashAlg) > 0;
+ }
+ if (Result) {
+ Result = EVP_DigestSignUpdate(pEvpVerifyCtx, Message, (UINT32)MsgSize) > 0;
+ }
+ if (Result) {
+ Result = EVP_DigestSignFinal(pEvpVerifyCtx, Signature, SigSize) > 0;
+ }
+
+_Exit :
+ if (pEvpRsaKey) {
+ EVP_PKEY_free(pEvpRsaKey);
+ }
+ if (pEvpVerifyCtx) {
+ EVP_MD_CTX_destroy(pEvpVerifyCtx);
+ }
+
+ return Result;
+}
diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssSignNull.c b/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssSignNull.c
new file mode 100644
index 000000000000..4ed2dfce992a
--- /dev/null
+++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssSignNull.c
@@ -0,0 +1,60 @@
+/** @file
+ RSA-PSS Asymmetric Cipher Wrapper Implementation over OpenSSL.
+
+ This file does not provide real capabilities for following APIs in RSA handling:
+ 1) RsaPssSign
+
+Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "InternalCryptLib.h"
+
+/**
+ Carries out the RSA-SSA signature generation with EMSA-PSS encoding scheme.
+
+ This function carries out the RSA-SSA signature generation with EMSA-PSS encoding scheme defined in
+ RFC 8017.
+ Mask generation function is the same as the message digest algorithm.
+ If the Signature buffer is too small to hold the contents of signature, FALSE
+ is returned and SigSize is set to the required buffer size to obtain the signature.
+
+ If RsaContext is NULL, then return FALSE.
+ If Message is NULL, then return FALSE.
+ If MsgSize is zero or > INT_MAX, then return FALSE.
+ If DigestLen is NOT 32, 48 or 64, return FALSE.
+ If SaltLen is < DigestLen, then return FALSE.
+ If SigSize is large enough but Signature is NULL, then return FALSE.
+ If this interface is not supported, then return FALSE.
+
+ @param[in] RsaContext Pointer to RSA context for signature generation.
+ @param[in] Message Pointer to octet message to be signed.
+ @param[in] MsgSize Size of the message in bytes.
+ @param[in] DigestLen Length of the digest in bytes to be used for RSA signature operation.
+ @param[in] SaltLen Length of the salt in bytes to be used for PSS encoding.
+ @param[out] Signature Pointer to buffer to receive RSA PSS signature.
+ @param[in, out] SigSize On input, the size of Signature buffer in bytes.
+ On output, the size of data returned in Signature buffer in bytes.
+
+ @retval TRUE Signature successfully generated in RSASSA-PSS.
+ @retval FALSE Signature generation failed.
+ @retval FALSE SigSize is too small.
+ @retval FALSE This interface is not supported.
+
+**/
+BOOLEAN
+EFIAPI
+RsaPssSign (
+ IN VOID *RsaContext,
+ IN CONST UINT8 *Message,
+ IN UINTN MsgSize,
+ IN UINT16 DigestLen,
+ IN UINT16 SaltLen,
+ OUT UINT8 *Signature,
+ IN OUT UINTN *SigSize
+ )
+{
+ ASSERT (FALSE);
+ return FALSE;
+}
diff --git a/CryptoPkg/Library/BaseCryptLibNull/Pk/CryptRsaPssNull.c b/CryptoPkg/Library/BaseCryptLibNull/Pk/CryptRsaPssNull.c
new file mode 100644
index 000000000000..69c6889fbc4b
--- /dev/null
+++ b/CryptoPkg/Library/BaseCryptLibNull/Pk/CryptRsaPssNull.c
@@ -0,0 +1,46 @@
+/** @file
+ RSA-PSS Asymmetric Cipher Wrapper Implementation over OpenSSL.
+
+ This file does not provide real capabilities for following APIs in RSA handling:
+ 1) RsaPssVerify
+
+Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "InternalCryptLib.h"
+
+/**
+ Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
+ Implementation determines salt length automatically from the signature encoding.
+ Mask generation function is the same as the message digest algorithm.
+ Salt length should atleast be equal to digest length.
+
+ @param[in] RsaContext Pointer to RSA context for signature verification.
+ @param[in] Message Pointer to octet message to be verified.
+ @param[in] MsgSize Size of the message in bytes.
+ @param[in] Signature Pointer to RSASSA-PSS signature to be verified.
+ @param[in] SigSize Size of signature in bytes.
+ @param[in] DigestLen Length of digest for RSA operation.
+ @param[in] SaltLen Salt length for PSS encoding.
+
+ @retval TRUE Valid signature encoded in RSASSA-PSS.
+ @retval FALSE Invalid signature or invalid RSA context.
+
+**/
+BOOLEAN
+EFIAPI
+RsaPssVerify (
+ IN VOID *RsaContext,
+ IN CONST UINT8 *Message,
+ IN UINTN MsgSize,
+ IN CONST UINT8 *Signature,
+ IN UINTN SigSize,
+ IN UINT16 DigestLen,
+ IN UINT16 SaltLen
+ )
+{
+ ASSERT (FALSE);
+ return FALSE;
+}
diff --git a/CryptoPkg/Library/BaseCryptLibNull/Pk/CryptRsaPssSignNull.c b/CryptoPkg/Library/BaseCryptLibNull/Pk/CryptRsaPssSignNull.c
new file mode 100644
index 000000000000..4ed2dfce992a
--- /dev/null
+++ b/CryptoPkg/Library/BaseCryptLibNull/Pk/CryptRsaPssSignNull.c
@@ -0,0 +1,60 @@
+/** @file
+ RSA-PSS Asymmetric Cipher Wrapper Implementation over OpenSSL.
+
+ This file does not provide real capabilities for following APIs in RSA handling:
+ 1) RsaPssSign
+
+Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "InternalCryptLib.h"
+
+/**
+ Carries out the RSA-SSA signature generation with EMSA-PSS encoding scheme.
+
+ This function carries out the RSA-SSA signature generation with EMSA-PSS encoding scheme defined in
+ RFC 8017.
+ Mask generation function is the same as the message digest algorithm.
+ If the Signature buffer is too small to hold the contents of signature, FALSE
+ is returned and SigSize is set to the required buffer size to obtain the signature.
+
+ If RsaContext is NULL, then return FALSE.
+ If Message is NULL, then return FALSE.
+ If MsgSize is zero or > INT_MAX, then return FALSE.
+ If DigestLen is NOT 32, 48 or 64, return FALSE.
+ If SaltLen is < DigestLen, then return FALSE.
+ If SigSize is large enough but Signature is NULL, then return FALSE.
+ If this interface is not supported, then return FALSE.
+
+ @param[in] RsaContext Pointer to RSA context for signature generation.
+ @param[in] Message Pointer to octet message to be signed.
+ @param[in] MsgSize Size of the message in bytes.
+ @param[in] DigestLen Length of the digest in bytes to be used for RSA signature operation.
+ @param[in] SaltLen Length of the salt in bytes to be used for PSS encoding.
+ @param[out] Signature Pointer to buffer to receive RSA PSS signature.
+ @param[in, out] SigSize On input, the size of Signature buffer in bytes.
+ On output, the size of data returned in Signature buffer in bytes.
+
+ @retval TRUE Signature successfully generated in RSASSA-PSS.
+ @retval FALSE Signature generation failed.
+ @retval FALSE SigSize is too small.
+ @retval FALSE This interface is not supported.
+
+**/
+BOOLEAN
+EFIAPI
+RsaPssSign (
+ IN VOID *RsaContext,
+ IN CONST UINT8 *Message,
+ IN UINTN MsgSize,
+ IN UINT16 DigestLen,
+ IN UINT16 SaltLen,
+ OUT UINT8 *Signature,
+ IN OUT UINTN *SigSize
+ )
+{
+ ASSERT (FALSE);
+ return FALSE;
+}
diff --git a/CryptoPkg/Library/BaseCryptLibOnProtocolPpi/CryptLib.c b/CryptoPkg/Library/BaseCryptLibOnProtocolPpi/CryptLib.c
index 8b43d1363cb9..412fbdbff52c 100644
--- a/CryptoPkg/Library/BaseCryptLibOnProtocolPpi/CryptLib.c
+++ b/CryptoPkg/Library/BaseCryptLibOnProtocolPpi/CryptLib.c
@@ -1552,6 +1552,72 @@ RsaPkcs1Verify (
CALL_CRYPTO_SERVICE (RsaPkcs1Verify, (RsaContext, MessageHash, HashSize, Signature, SigSize), FALSE);
}

+/**
+ Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
+ Implementation determines salt length automatically from the signature encoding.
+ Mask generation function is the same as the message digest algorithm.
+ Salt length should atleast be equal to digest length.
+
+ @param[in] RsaContext Pointer to RSA context for signature verification.
+ @param[in] Message Pointer to octet message to be verified.
+ @param[in] MsgSize Size of the message in bytes.
+ @param[in] Signature Pointer to RSASSA-PSS signature to be verified.
+ @param[in] SigSize Size of signature in bytes.
+ @param[in] DigestLen Length of digest for RSA operation.
+ @param[in] SaltLen Salt length for PSS encoding.
+
+ @retval TRUE Valid signature encoded in RSASSA-PSS.
+ @retval FALSE Invalid signature or invalid RSA context.
+
+**/
+BOOLEAN
+EFIAPI
+RsaPssVerify (
+ IN VOID *RsaContext,
+ IN CONST UINT8 *Message,
+ IN UINTN MsgSize,
+ IN CONST UINT8 *Signature,
+ IN UINTN SigSize,
+ IN UINT16 DigestLen,
+ IN UINT16 SaltLen
+ )
+{
+ CALL_CRYPTO_SERVICE (RsaPssVerify, (RsaContext, Message, MsgSize, Signature, SigSize, DigestLen, SaltLen), FALSE);
+}
+
+/**
+ Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
+ Implementation determines salt length automatically from the signature encoding.
+ Mask generation function is the same as the message digest algorithm.
+ Salt length should atleast be equal to digest length.
+
+ @param[in] RsaContext Pointer to RSA context for signature verification.
+ @param[in] Message Pointer to octet message to be verified.
+ @param[in] MsgSize Size of the message in bytes.
+ @param[in] Signature Pointer to RSASSA-PSS signature to be verified.
+ @param[in] SigSize Size of signature in bytes.
+ @param[in] DigestLen Length of digest for RSA operation.
+ @param[in] SaltLen Salt length for PSS encoding.
+
+ @retval TRUE Valid signature encoded in RSASSA-PSS.
+ @retval FALSE Invalid signature or invalid RSA context.
+
+**/
+BOOLEAN
+EFIAPI
+RsaPssSign (
+ IN VOID *RsaContext,
+ IN CONST UINT8 *Message,
+ IN UINTN MsgSize,
+ IN UINT16 DigestLen,
+ IN UINT16 SaltLen,
+ OUT UINT8 *Signature,
+ IN OUT UINTN *SigSize
+ )
+{
+ CALL_CRYPTO_SERVICE (RsaPssSign, (RsaContext, Message, MsgSize, DigestLen, SaltLen, Signature, SigSize), FALSE);
+}
+
/**
Retrieve the RSA Private Key from the password-protected PEM key data.

diff --git a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/BaseCryptLibUnitTests.c b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/BaseCryptLibUnitTests.c
index b7fcea3ff7e4..3873de973064 100644
--- a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/BaseCryptLibUnitTests.c
+++ b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/BaseCryptLibUnitTests.c
@@ -16,6 +16,7 @@ SUITE_DESC mSuiteDesc[] = {
{"HMAC verify tests", "CryptoPkg.BaseCryptLib", NULL, NULL, &mHmacTestNum, mHmacTest},
{"BlockCipher verify tests", "CryptoPkg.BaseCryptLib", NULL, NULL, &mBlockCipherTestNum, mBlockCipherTest},
{"RSA verify tests", "CryptoPkg.BaseCryptLib", NULL, NULL, &mRsaTestNum, mRsaTest},
+ {"RSA PSS verify tests", "CryptoPkg.BaseCryptLib", NULL, NULL, &mRsaPssTestNum, mRsaPssTest},
{"RSACert verify tests", "CryptoPkg.BaseCryptLib", NULL, NULL, &mRsaCertTestNum, mRsaCertTest},
{"PKCS7 verify tests", "CryptoPkg.BaseCryptLib", NULL, NULL, &mPkcs7TestNum, mPkcs7Test},
{"PKCS5 verify tests", "CryptoPkg.BaseCryptLib", NULL, NULL, &mPkcs5TestNum, mPkcs5Test},
diff --git a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/RsaPssTests.c b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/RsaPssTests.c
new file mode 100644
index 000000000000..5ac2f325fbdd
--- /dev/null
+++ b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/RsaPssTests.c
@@ -0,0 +1,191 @@
+/** @file
+ Application for RSA PSS Primitives Validation.
+
+Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "TestBaseCryptLib.h"
+
+//
+// RSA PSS test vectors from NIST FIPS 186-3 RSA files
+//
+
+//
+// Public Modulus of RSA Key
+//
+UINT8 RsaPssN[]={
+ 0xa4, 0x7d, 0x04, 0xe7, 0xca, 0xcd, 0xba, 0x4e, 0xa2, 0x6e, 0xca, 0x8a, 0x4c, 0x6e, 0x14, 0x56,
+ 0x3c, 0x2c, 0xe0, 0x3b, 0x62, 0x3b, 0x76, 0x8c, 0x0d, 0x49, 0x86, 0x8a, 0x57, 0x12, 0x13, 0x01,
+ 0xdb, 0xf7, 0x83, 0xd8, 0x2f, 0x4c, 0x05, 0x5e, 0x73, 0x96, 0x0e, 0x70, 0x55, 0x01, 0x87, 0xd0,
+ 0xaf, 0x62, 0xac, 0x34, 0x96, 0xf0, 0xa3, 0xd9, 0x10, 0x3c, 0x2e, 0xb7, 0x91, 0x9a, 0x72, 0x75,
+ 0x2f, 0xa7, 0xce, 0x8c, 0x68, 0x8d, 0x81, 0xe3, 0xae, 0xe9, 0x94, 0x68, 0x88, 0x7a, 0x15, 0x28,
+ 0x8a, 0xfb, 0xb7, 0xac, 0xb8, 0x45, 0xb7, 0xc5, 0x22, 0xb5, 0xc6, 0x4e, 0x67, 0x8f, 0xcd, 0x3d,
+ 0x22, 0xfe, 0xb8, 0x4b, 0x44, 0x27, 0x27, 0x00, 0xbe, 0x52, 0x7d, 0x2b, 0x20, 0x25, 0xa3, 0xf8,
+ 0x3c, 0x23, 0x83, 0xbf, 0x6a, 0x39, 0xcf, 0x5b, 0x4e, 0x48, 0xb3, 0xcf, 0x2f, 0x56, 0xee, 0xf0,
+ 0xdf, 0xff, 0x18, 0x55, 0x5e, 0x31, 0x03, 0x7b, 0x91, 0x52, 0x48, 0x69, 0x48, 0x76, 0xf3, 0x04,
+ 0x78, 0x14, 0x41, 0x51, 0x64, 0xf2, 0xc6, 0x60, 0x88, 0x1e, 0x69, 0x4b, 0x58, 0xc2, 0x80, 0x38,
+ 0xa0, 0x32, 0xad, 0x25, 0x63, 0x4a, 0xad, 0x7b, 0x39, 0x17, 0x1d, 0xee, 0x36, 0x8e, 0x3d, 0x59,
+ 0xbf, 0xb7, 0x29, 0x9e, 0x46, 0x01, 0xd4, 0x58, 0x7e, 0x68, 0xca, 0xaf, 0x8d, 0xb4, 0x57, 0xb7,
+ 0x5a, 0xf4, 0x2f, 0xc0, 0xcf, 0x1a, 0xe7, 0xca, 0xce, 0xd2, 0x86, 0xd7, 0x7f, 0xac, 0x6c, 0xed,
+ 0xb0, 0x3a, 0xd9, 0x4f, 0x14, 0x33, 0xd2, 0xc9, 0x4d, 0x08, 0xe6, 0x0b, 0xc1, 0xfd, 0xef, 0x05,
+ 0x43, 0xcd, 0x29, 0x51, 0xe7, 0x65, 0xb3, 0x82, 0x30, 0xfd, 0xd1, 0x8d, 0xe5, 0xd2, 0xca, 0x62,
+ 0x7d, 0xdc, 0x03, 0x2f, 0xe0, 0x5b, 0xbd, 0x2f, 0xf2, 0x1e, 0x2d, 0xb1, 0xc2, 0xf9, 0x4d, 0x8b,
+ };
+
+//
+// Public Exponent of RSA Key
+//
+UINT8 RsaPssE[]={ 0x10, 0xe4, 0x3f };
+
+//
+// Private Exponent of RSA Key
+//
+UINT8 RsaPssD[]={
+ 0x11, 0xa0, 0xdd, 0x28, 0x5f, 0x66, 0x47, 0x1a, 0x8d, 0xa3, 0x0b, 0xcb, 0x8c, 0x24, 0xa1, 0xd5,
+ 0xc8, 0xdb, 0x94, 0x2f, 0xc9, 0x92, 0x07, 0x97, 0xca, 0x44, 0x24, 0x60, 0xa8, 0x00, 0xb7, 0x5b,
+ 0xbc, 0x73, 0x8b, 0xeb, 0x8e, 0xe0, 0xe8, 0x74, 0xb0, 0x53, 0xe6, 0x47, 0x07, 0xdf, 0x4c, 0xfc,
+ 0x78, 0x37, 0xc4, 0x0e, 0x5b, 0xe6, 0x8b, 0x8a, 0x8e, 0x1d, 0x01, 0x45, 0x16, 0x9c, 0xa6, 0x27,
+ 0x1d, 0x81, 0x88, 0x7e, 0x19, 0xa1, 0xcd, 0x95, 0xb2, 0xfd, 0x0d, 0xe0, 0xdb, 0xa3, 0x47, 0xfe,
+ 0x63, 0x7b, 0xcc, 0x6c, 0xdc, 0x24, 0xee, 0xbe, 0x03, 0xc2, 0x4d, 0x4c, 0xf3, 0xa5, 0xc6, 0x15,
+ 0x4d, 0x78, 0xf1, 0x41, 0xfe, 0x34, 0x16, 0x99, 0x24, 0xd0, 0xf8, 0x95, 0x33, 0x65, 0x8e, 0xac,
+ 0xfd, 0xea, 0xe9, 0x9c, 0xe1, 0xa8, 0x80, 0x27, 0xc1, 0x8f, 0xf9, 0x26, 0x53, 0xa8, 0x35, 0xaa,
+ 0x38, 0x91, 0xbf, 0xff, 0xcd, 0x38, 0x8f, 0xfc, 0x23, 0x88, 0xce, 0x2b, 0x10, 0x56, 0x85, 0x43,
+ 0x75, 0x05, 0x02, 0xcc, 0xbc, 0x69, 0xc0, 0x08, 0x8f, 0x1d, 0x69, 0x0e, 0x97, 0xa5, 0xf5, 0xbd,
+ 0xd1, 0x88, 0x8c, 0xd2, 0xfa, 0xa4, 0x3c, 0x04, 0xae, 0x24, 0x53, 0x95, 0x22, 0xdd, 0xe2, 0xd9,
+ 0xc2, 0x02, 0xf6, 0x55, 0xfc, 0x55, 0x75, 0x44, 0x40, 0xb5, 0x3a, 0x15, 0x32, 0xaa, 0xb4, 0x78,
+ 0x51, 0xf6, 0x0b, 0x7a, 0x06, 0x7e, 0x24, 0x0b, 0x73, 0x8e, 0x1b, 0x1d, 0xaa, 0xe6, 0xca, 0x0d,
+ 0x59, 0xee, 0xae, 0x27, 0x68, 0x6c, 0xd8, 0x88, 0x57, 0xe9, 0xad, 0xad, 0xc2, 0xd4, 0xb8, 0x2b,
+ 0x07, 0xa6, 0x1a, 0x35, 0x84, 0x56, 0xaa, 0xf8, 0x07, 0x66, 0x96, 0x93, 0xff, 0xb1, 0x3c, 0x99,
+ 0x64, 0xa6, 0x36, 0x54, 0xca, 0xdc, 0x81, 0xee, 0x59, 0xdf, 0x51, 0x1c, 0xa3, 0xa4, 0xbd, 0x67,
+ };
+
+//
+// Binary message to be signed and verified
+//
+UINT8 PssMessage[]={
+ 0xe0, 0x02, 0x37, 0x7a, 0xff, 0xb0, 0x4f, 0x0f, 0xe4, 0x59, 0x8d, 0xe9, 0xd9, 0x2d, 0x31, 0xd6,
+ 0xc7, 0x86, 0x04, 0x0d, 0x57, 0x76, 0x97, 0x65, 0x56, 0xa2, 0xcf, 0xc5, 0x5e, 0x54, 0xa1, 0xdc,
+ 0xb3, 0xcb, 0x1b, 0x12, 0x6b, 0xd6, 0xa4, 0xbe, 0xd2, 0xa1, 0x84, 0x99, 0x0c, 0xce, 0xa7, 0x73,
+ 0xfc, 0xc7, 0x9d, 0x24, 0x65, 0x53, 0xe6, 0xc6, 0x4f, 0x68, 0x6d, 0x21, 0xad, 0x41, 0x52, 0x67,
+ 0x3c, 0xaf, 0xec, 0x22, 0xae, 0xb4, 0x0f, 0x6a, 0x08, 0x4e, 0x8a, 0x5b, 0x49, 0x91, 0xf4, 0xc6,
+ 0x4c, 0xf8, 0xa9, 0x27, 0xef, 0xfd, 0x0f, 0xd7, 0x75, 0xe7, 0x1e, 0x83, 0x29, 0xe4, 0x1f, 0xdd,
+ 0x44, 0x57, 0xb3, 0x91, 0x11, 0x73, 0x18, 0x7b, 0x4f, 0x09, 0xa8, 0x17, 0xd7, 0x9e, 0xa2, 0x39,
+ 0x7f, 0xc1, 0x2d, 0xfe, 0x3d, 0x9c, 0x9a, 0x02, 0x90, 0xc8, 0xea, 0xd3, 0x1b, 0x66, 0x90, 0xa6,
+ };
+
+//
+// Binary message to be signed and verified
+//
+UINT8 PssSalt[]={
+ 0xd6, 0x6f, 0x72, 0xf1, 0x0b, 0x69, 0x00, 0x1a, 0x5b, 0x59, 0xcf, 0x10, 0x92, 0xad, 0x27, 0x4d,
+ 0x50, 0x56, 0xc4, 0xe9, 0x5c, 0xcc, 0xcf, 0xbe, 0x3b, 0x53, 0x0d, 0xcb, 0x02, 0x7e, 0x57, 0xd6
+ };
+
+//
+// RSASSA-PSS Signature over above message using above keys, salt and SHA256 digest(and MGF1) algo.
+//
+UINT8 TestVectorSignature[]={
+ 0x4f, 0x9b, 0x42, 0x5c, 0x20, 0x58, 0x46, 0x0e, 0x4a, 0xb2, 0xf5, 0xc9, 0x63, 0x84, 0xda, 0x23,
+ 0x27, 0xfd, 0x29, 0x15, 0x0f, 0x01, 0x95, 0x5a, 0x76, 0xb4, 0xef, 0xe9, 0x56, 0xaf, 0x06, 0xdc,
+ 0x08, 0x77, 0x9a, 0x37, 0x4e, 0xe4, 0x60, 0x7e, 0xab, 0x61, 0xa9, 0x3a, 0xdc, 0x56, 0x08, 0xf4,
+ 0xec, 0x36, 0xe4, 0x7f, 0x2a, 0x0f, 0x75, 0x4e, 0x8f, 0xf8, 0x39, 0xa8, 0xa1, 0x9b, 0x1d, 0xb1,
+ 0xe8, 0x84, 0xea, 0x4c, 0xf3, 0x48, 0xcd, 0x45, 0x50, 0x69, 0xeb, 0x87, 0xaf, 0xd5, 0x36, 0x45,
+ 0xb4, 0x4e, 0x28, 0xa0, 0xa5, 0x68, 0x08, 0xf5, 0x03, 0x1d, 0xa5, 0xba, 0x91, 0x12, 0x76, 0x8d,
+ 0xfb, 0xfc, 0xa4, 0x4e, 0xbe, 0x63, 0xa0, 0xc0, 0x57, 0x2b, 0x73, 0x1d, 0x66, 0x12, 0x2f, 0xb7,
+ 0x16, 0x09, 0xbe, 0x14, 0x80, 0xfa, 0xa4, 0xe4, 0xf7, 0x5e, 0x43, 0x95, 0x51, 0x59, 0xd7, 0x0f,
+ 0x08, 0x1e, 0x2a, 0x32, 0xfb, 0xb1, 0x9a, 0x48, 0xb9, 0xf1, 0x62, 0xcf, 0x6b, 0x2f, 0xb4, 0x45,
+ 0xd2, 0xd6, 0x99, 0x4b, 0xc5, 0x89, 0x10, 0xa2, 0x6b, 0x59, 0x43, 0x47, 0x78, 0x03, 0xcd, 0xaa,
+ 0xa1, 0xbd, 0x74, 0xb0, 0xda, 0x0a, 0x5d, 0x05, 0x3d, 0x8b, 0x1d, 0xc5, 0x93, 0x09, 0x1d, 0xb5,
+ 0x38, 0x83, 0x83, 0xc2, 0x60, 0x79, 0xf3, 0x44, 0xe2, 0xae, 0xa6, 0x00, 0xd0, 0xe3, 0x24, 0x16,
+ 0x4b, 0x45, 0x0f, 0x7b, 0x9b, 0x46, 0x51, 0x11, 0xb7, 0x26, 0x5f, 0x3b, 0x1b, 0x06, 0x30, 0x89,
+ 0xae, 0x7e, 0x26, 0x23, 0xfc, 0x0f, 0xda, 0x80, 0x52, 0xcf, 0x4b, 0xf3, 0x37, 0x91, 0x02, 0xfb,
+ 0xf7, 0x1d, 0x7c, 0x98, 0xe8, 0x25, 0x86, 0x64, 0xce, 0xed, 0x63, 0x7d, 0x20, 0xf9, 0x5f, 0xf0,
+ 0x11, 0x18, 0x81, 0xe6, 0x50, 0xce, 0x61, 0xf2, 0x51, 0xd9, 0xc3, 0xa6, 0x29, 0xef, 0x22, 0x2d,
+ };
+
+
+VOID *mRsa;
+
+UNIT_TEST_STATUS
+EFIAPI
+TestVerifyRsaPssPreReq (
+ UNIT_TEST_CONTEXT Context
+ )
+{
+ mRsa = RsaNew ();
+
+ if (mRsa == NULL) {
+ return UNIT_TEST_ERROR_TEST_FAILED;
+ }
+
+ return UNIT_TEST_PASSED;
+}
+
+VOID
+EFIAPI
+TestVerifyRsaPssCleanUp (
+ UNIT_TEST_CONTEXT Context
+ )
+{
+ if (mRsa != NULL) {
+ RsaFree (mRsa);
+ mRsa = NULL;
+ }
+}
+
+
+UNIT_TEST_STATUS
+EFIAPI
+TestVerifyRsaPssSignVerify (
+ IN UNIT_TEST_CONTEXT Context
+ )
+{
+ UINT8 *Signature;
+ UINTN SigSize;
+ BOOLEAN Status;
+
+ Status = RsaSetKey (mRsa, RsaKeyN, RsaPssN, sizeof (RsaPssN));
+ UT_ASSERT_TRUE (Status);
+
+ Status = RsaSetKey (mRsa, RsaKeyE, RsaPssE, sizeof (RsaPssE));
+ UT_ASSERT_TRUE (Status);
+
+ Status = RsaSetKey (mRsa, RsaKeyD, RsaPssD, sizeof (RsaPssD));
+ UT_ASSERT_TRUE (Status);
+
+ SigSize = 0;
+ Status = RsaPssSign (mRsa, PssMessage, sizeof(PssMessage), SHA256_DIGEST_SIZE, SHA256_DIGEST_SIZE, NULL, &SigSize);
+ UT_ASSERT_FALSE (Status);
+ UT_ASSERT_NOT_EQUAL (SigSize, 0);
+
+ Signature = AllocatePool (SigSize);
+ Status = RsaPssSign (mRsa, PssMessage, sizeof(PssMessage), SHA256_DIGEST_SIZE, SHA256_DIGEST_SIZE, Signature, &SigSize);
+ UT_ASSERT_TRUE (Status);
+
+ //
+ // Verify RSA PSS encoded Signature generated in above step
+ //
+ Status = RsaPssVerify (mRsa, PssMessage, sizeof(PssMessage), Signature, SigSize, SHA256_DIGEST_SIZE, SHA256_DIGEST_SIZE);
+ UT_ASSERT_TRUE (Status);
+
+ //
+ // Verify NIST FIPS 186-3 RSA test vector signature
+ //
+ Status = RsaPssVerify (mRsa, PssMessage, sizeof(PssMessage), TestVectorSignature, sizeof(TestVectorSignature), SHA256_DIGEST_SIZE, SHA256_DIGEST_SIZE);
+ UT_ASSERT_TRUE (Status);
+
+ FreePool(Signature);
+ return UNIT_TEST_PASSED;
+}
+
+
+TEST_DESC mRsaPssTest[] = {
+ //
+ // -----Description--------------------------------------Class----------------------Function---------------------------------Pre---------------------Post---------Context
+ //
+ {"TestVerifyRsaPssSignVerify()", "CryptoPkg.BaseCryptLib.Rsa", TestVerifyRsaPssSignVerify, TestVerifyRsaPssPreReq, TestVerifyRsaPssCleanUp, NULL},
+};
+
+UINTN mRsaPssTestNum = ARRAY_SIZE(mRsaPssTest);
diff --git a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/RsaTests.c b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/RsaTests.c
index 7ce20d2e778f..0969b6aea660 100644
--- a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/RsaTests.c
+++ b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/RsaTests.c
@@ -295,6 +295,8 @@ TestVerifyRsaPkcs1SignVerify (
Status = RsaPkcs1Verify (mRsa, HashValue, HashSize, Signature, SigSize);
UT_ASSERT_TRUE (Status);

+ FreePool(Signature);
+
return UNIT_TEST_PASSED;
}

diff --git a/CryptoPkg/Include/Library/BaseCryptLib.h b/CryptoPkg/Include/Library/BaseCryptLib.h
index 496121e6a4ed..8c7d5922ef96 100644
--- a/CryptoPkg/Include/Library/BaseCryptLib.h
+++ b/CryptoPkg/Include/Library/BaseCryptLib.h
@@ -1363,6 +1363,80 @@ RsaPkcs1Verify (
IN UINTN SigSize
);

+/**
+ Carries out the RSA-SSA signature generation with EMSA-PSS encoding scheme.
+
+ This function carries out the RSA-SSA signature generation with EMSA-PSS encoding scheme defined in
+ RFC 8017.
+ Mask generation function is the same as the message digest algorithm.
+ If the Signature buffer is too small to hold the contents of signature, FALSE
+ is returned and SigSize is set to the required buffer size to obtain the signature.
+
+ If RsaContext is NULL, then return FALSE.
+ If Message is NULL, then return FALSE.
+ If MsgSize is zero or > INT_MAX, then return FALSE.
+ If DigestLen is NOT 32, 48 or 64, return FALSE.
+ If SaltLen is < DigestLen, then return FALSE.
+ If SigSize is large enough but Signature is NULL, then return FALSE.
+ If this interface is not supported, then return FALSE.
+
+ @param[in] RsaContext Pointer to RSA context for signature generation.
+ @param[in] Message Pointer to octet message to be signed.
+ @param[in] MsgSize Size of the message in bytes.
+ @param[in] DigestLen Length of the digest in bytes to be used for RSA signature operation.
+ @param[in] SaltLen Length of the salt in bytes to be used for PSS encoding.
+ @param[out] Signature Pointer to buffer to receive RSA PSS signature.
+ @param[in, out] SigSize On input, the size of Signature buffer in bytes.
+ On output, the size of data returned in Signature buffer in bytes.
+
+ @retval TRUE Signature successfully generated in RSASSA-PSS.
+ @retval FALSE Signature generation failed.
+ @retval FALSE SigSize is too small.
+ @retval FALSE This interface is not supported.
+
+**/
+BOOLEAN
+EFIAPI
+RsaPssSign (
+ IN VOID *RsaContext,
+ IN CONST UINT8 *Message,
+ IN UINTN MsgSize,
+ IN UINT16 DigestLen,
+ IN UINT16 SaltLen,
+ OUT UINT8 *Signature,
+ IN OUT UINTN *SigSize
+ );
+
+/**
+ Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
+ Implementation determines salt length automatically from the signature encoding.
+ Mask generation function is the same as the message digest algorithm.
+ Salt length should atleast be equal to digest length.
+
+ @param[in] RsaContext Pointer to RSA context for signature verification.
+ @param[in] Message Pointer to octet message to be verified.
+ @param[in] MsgSize Size of the message in bytes.
+ @param[in] Signature Pointer to RSASSA-PSS signature to be verified.
+ @param[in] SigSize Size of signature in bytes.
+ @param[in] DigestLen Length of digest for RSA operation.
+ @param[in] SaltLen Salt length for PSS encoding.
+
+ @retval TRUE Valid signature encoded in RSASSA-PSS.
+ @retval FALSE Invalid signature or invalid RSA context.
+
+**/
+BOOLEAN
+EFIAPI
+RsaPssVerify (
+ IN VOID *RsaContext,
+ IN CONST UINT8 *Message,
+ IN UINTN MsgSize,
+ IN CONST UINT8 *Signature,
+ IN UINTN SigSize,
+ IN UINT16 DigestLen,
+ IN UINT16 SaltLen
+ );
+
/**
Retrieve the RSA Private Key from the password-protected PEM key data.

diff --git a/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf b/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
index 4aae2aba95d6..49703fa4c963 100644
--- a/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
@@ -49,6 +49,8 @@
Pk/CryptX509.c
Pk/CryptAuthenticode.c
Pk/CryptTs.c
+ Pk/CryptRsaPss.c
+ Pk/CryptRsaPssSign.c
Pem/CryptPem.c

SysCall/CrtWrapper.c
diff --git a/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf b/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
index 7509e4273028..0cab5f3ce36c 100644
--- a/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
@@ -55,6 +55,8 @@
Pk/CryptX509Null.c
Pk/CryptAuthenticodeNull.c
Pk/CryptTsNull.c
+ Pk/CryptRsaPss.c
+ Pk/CryptRsaPssSignNull.c
Pem/CryptPemNull.c
Rand/CryptRandNull.c

diff --git a/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf b/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
index 70c985ec93dc..3d3a6fb94a77 100644
--- a/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
@@ -55,6 +55,8 @@
Pk/CryptX509.c
Pk/CryptAuthenticodeNull.c
Pk/CryptTsNull.c
+ Pk/CryptRsaPssNull.c
+ Pk/CryptRsaPssSignNull.c
Pem/CryptPem.c

SysCall/CrtWrapper.c
diff --git a/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf b/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
index 91ec3e03bf5e..07c376ce04bb 100644
--- a/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
@@ -53,6 +53,8 @@
Pk/CryptX509.c
Pk/CryptAuthenticodeNull.c
Pk/CryptTsNull.c
+ Pk/CryptRsaPss.c
+ Pk/CryptRsaPssSignNull.c
Pem/CryptPem.c

SysCall/CrtWrapper.c
diff --git a/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf b/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf
index db506c32f724..b98f9635b27b 100644
--- a/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf
+++ b/CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf
@@ -44,6 +44,8 @@
Pk/CryptAuthenticode.c
Pk/CryptTs.c
Pem/CryptPem.c
+ Pk/CryptRsaPss.c
+ Pk/CryptRsaPssSign.c

SysCall/UnitTestHostCrtWrapper.c

diff --git a/CryptoPkg/Library/BaseCryptLibNull/BaseCryptLibNull.inf b/CryptoPkg/Library/BaseCryptLibNull/BaseCryptLibNull.inf
index 689af4fedd68..faf959827b90 100644
--- a/CryptoPkg/Library/BaseCryptLibNull/BaseCryptLibNull.inf
+++ b/CryptoPkg/Library/BaseCryptLibNull/BaseCryptLibNull.inf
@@ -50,6 +50,8 @@
Pk/CryptTsNull.c
Pem/CryptPemNull.c
Rand/CryptRandNull.c
+ Pk/CryptRsaPssNull.c
+ Pk/CryptRsaPssSignNull.c

[Packages]
MdePkg/MdePkg.dec
diff --git a/CryptoPkg/Private/Protocol/Crypto.h b/CryptoPkg/Private/Protocol/Crypto.h
index 17930a77a60e..e304302c9445 100644
--- a/CryptoPkg/Private/Protocol/Crypto.h
+++ b/CryptoPkg/Private/Protocol/Crypto.h
@@ -3408,6 +3408,81 @@ EFI_STATUS
IN OUT UINTN *DataSize
);

+/**
+ Carries out the RSA-SSA signature generation with EMSA-PSS encoding scheme.
+
+ This function carries out the RSA-SSA signature generation with EMSA-PSS encoding scheme defined in
+ RFC 8017.
+ Mask generation function is the same as the message digest algorithm.
+ If the Signature buffer is too small to hold the contents of signature, FALSE
+ is returned and SigSize is set to the required buffer size to obtain the signature.
+
+ If RsaContext is NULL, then return FALSE.
+ If Message is NULL, then return FALSE.
+ If MsgSize is zero or > INT_MAX, then return FALSE.
+ If DigestLen is NOT 32, 48 or 64, return FALSE.
+ If SaltLen is < DigestLen, then return FALSE.
+ If SigSize is large enough but Signature is NULL, then return FALSE.
+ If this interface is not supported, then return FALSE.
+
+ @param[in] RsaContext Pointer to RSA context for signature generation.
+ @param[in] Message Pointer to octet message to be signed.
+ @param[in] MsgSize Size of the message in bytes.
+ @param[in] DigestLen Length of the digest in bytes to be used for RSA signature operation.
+ @param[in] SaltLen Length of the salt in bytes to be used for PSS encoding.
+ @param[out] Signature Pointer to buffer to receive RSA PSS signature.
+ @param[in, out] SigSize On input, the size of Signature buffer in bytes.
+ On output, the size of data returned in Signature buffer in bytes.
+
+ @retval TRUE Signature successfully generated in RSASSA-PSS.
+ @retval FALSE Signature generation failed.
+ @retval FALSE SigSize is too small.
+ @retval FALSE This interface is not supported.
+
+**/
+typedef
+BOOLEAN
+(EFIAPI* EDKII_CRYPTO_RSA_PSS_SIGN)(
+ IN VOID *RsaContext,
+ IN CONST UINT8 *Message,
+ IN UINTN MsgSize,
+ IN UINT16 DigestLen,
+ IN UINT16 SaltLen,
+ OUT UINT8 *Signature,
+ IN OUT UINTN *SigSize
+ );
+
+/**
+ Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
+ Implementation determines salt length automatically from the signature encoding.
+ Mask generation function is the same as the message digest algorithm.
+ Salt length should atleast be equal to digest length.
+
+ @param[in] RsaContext Pointer to RSA context for signature verification.
+ @param[in] Message Pointer to octet message to be verified.
+ @param[in] MsgSize Size of the message in bytes.
+ @param[in] Signature Pointer to RSASSA-PSS signature to be verified.
+ @param[in] SigSize Size of signature in bytes.
+ @param[in] DigestLen Length of digest for RSA operation.
+ @param[in] SaltLen Salt length for PSS encoding.
+
+ @retval TRUE Valid signature encoded in RSASSA-PSS.
+ @retval FALSE Invalid signature or invalid RSA context.
+
+**/
+typedef
+BOOLEAN
+(EFIAPI* EDKII_CRYPTO_RSA_PSS_VERIFY)(
+ IN VOID *RsaContext,
+ IN CONST UINT8 *Message,
+ IN UINTN MsgSize,
+ IN CONST UINT8 *Signature,
+ IN UINTN SigSize,
+ IN UINT16 DigestLen,
+ IN UINT16 SaltLen
+ );
+
+

///
/// EDK II Crypto Protocol
@@ -3593,6 +3668,9 @@ struct _EDKII_CRYPTO_PROTOCOL {
EDKII_CRYPTO_TLS_GET_HOST_PUBLIC_CERT TlsGetHostPublicCert;
EDKII_CRYPTO_TLS_GET_HOST_PRIVATE_KEY TlsGetHostPrivateKey;
EDKII_CRYPTO_TLS_GET_CERT_REVOCATION_LIST TlsGetCertRevocationList;
+ /// RSA PSS
+ EDKII_CRYPTO_RSA_PSS_SIGN RsaPssSign;
+ EDKII_CRYPTO_RSA_PSS_VERIFY RsaPssVerify;
};

extern GUID gEdkiiCryptoProtocolGuid;
diff --git a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLib.h b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLib.h
index 9d1cb150a113..25c1379f1a77 100644
--- a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLib.h
+++ b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLib.h
@@ -83,6 +83,9 @@ extern TEST_DESC mPrngTest[];
extern UINTN mOaepTestNum;
extern TEST_DESC mOaepTest[];

+extern UINTN mRsaPssTestNum;
+extern TEST_DESC mRsaPssTest[];
+
/** Creates a framework you can use */
EFI_STATUS
EFIAPI
diff --git a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibHost.inf b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibHost.inf
index 300b98e40b33..00c869265080 100644
--- a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibHost.inf
+++ b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibHost.inf
@@ -34,6 +34,7 @@
RandTests.c
Pkcs7EkuTests.c
OaepEncryptTests.c
+ RsaPssTests.c

[Packages]
MdePkg/MdePkg.dec
diff --git a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibShell.inf b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibShell.inf
index d5e7e0d01446..ca789aa6ada3 100644
--- a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibShell.inf
+++ b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibShell.inf
@@ -35,6 +35,7 @@
RandTests.c
Pkcs7EkuTests.c
OaepEncryptTests.c
+ RsaPssTests.c

[Packages]
MdePkg/MdePkg.dec
--
2.14.3.windows.1


[PATCH v3 0/1] CryptoPkg: Add RSA PSS verify support

Agrawal, Sachin
 

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3314

This patch uses Openssl's EVP API's to perform RSASSA-PSS verification
of a binary blob.

Patch v1 Cover Letter : https://edk2.groups.io/g/devel/message/74286?p=,,,20,0,0,0::Created,,sachin,20,2,0,82225507
Patch v2 Cover Letter : https://edk2.groups.io/g/devel/message/74565?p=,,,20,0,0,0::Created,,sachin,20,2,0,82434091

https://github.com/sagraw2/edk2/tree/pss_1
https://github.com/sagraw2/edk2/tree/pss_2
https://github.com/sagraw2/edk2/tree/pss_3

Updates from v2:
- Fixed gcc compilation error [CI System]

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com>
Cc: Guomin Jiang <guomin.jiang@intel.com>

Sachin Agrawal (1):
CryptoPkg: BaseCryptLib: Add RSA PSS verify support

CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPss.c | 146 +++++++++++++++
CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssNull.c | 46 +++++
CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssSign.c | 169 +++++++++++++++++
CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssSignNull.c | 60 ++++++
CryptoPkg/Library/BaseCryptLibNull/Pk/CryptRsaPssNull.c | 46 +++++
CryptoPkg/Library/BaseCryptLibNull/Pk/CryptRsaPssSignNull.c | 60 ++++++
CryptoPkg/Library/BaseCryptLibOnProtocolPpi/CryptLib.c | 66 +++++++
CryptoPkg/Test/UnitTest/Library/BaseCryptLib/BaseCryptLibUnitTests.c | 1 +
CryptoPkg/Test/UnitTest/Library/BaseCryptLib/RsaPssTests.c | 191 ++++++++++++++++++++
CryptoPkg/Test/UnitTest/Library/BaseCryptLib/RsaTests.c | 2 +
CryptoPkg/Include/Library/BaseCryptLib.h | 74 ++++++++
CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf | 2 +
CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf | 2 +
CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf | 2 +
CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf | 2 +
CryptoPkg/Library/BaseCryptLib/UnitTestHostBaseCryptLib.inf | 2 +
CryptoPkg/Library/BaseCryptLibNull/BaseCryptLibNull.inf | 2 +
CryptoPkg/Private/Protocol/Crypto.h | 78 ++++++++
CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLib.h | 3 +
CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibHost.inf | 1 +
CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibShell.inf | 1 +
21 files changed, 956 insertions(+)
create mode 100644 CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPss.c
create mode 100644 CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssNull.c
create mode 100644 CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssSign.c
create mode 100644 CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaPssSignNull.c
create mode 100644 CryptoPkg/Library/BaseCryptLibNull/Pk/CryptRsaPssNull.c
create mode 100644 CryptoPkg/Library/BaseCryptLibNull/Pk/CryptRsaPssSignNull.c
create mode 100644 CryptoPkg/Test/UnitTest/Library/BaseCryptLib/RsaPssTests.c

--
2.14.3.windows.1


[PATCH 5/5] StandaloneMmPkg: build for 32bit arm machines

Etienne Carriere
 

This change allows to build StandaloneMmPkg components for 32bit Arm
StandaloneMm firmware.

This change mainly moves AArch64/ source files to Arm/ side directory
for several components: StandaloneMmCpu, StandaloneMmCoreEntryPoint
and StandaloneMmMemLib. The source file is built for both 32b and 64b
Arm targets.

Cc: Achin Gupta <achin.gupta@arm.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Sughosh Ganu <sughosh.ganu@linaro.org>
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
---
StandaloneMmPkg/Core/StandaloneMmCore.inf | 2 +-
StandaloneMmPkg/Drivers/StandaloneMmCpu/{AArch64 => }/EventHandle.c | 12 ++++++++++--
StandaloneMmPkg/Drivers/StandaloneMmCpu/{AArch64 => }/StandaloneMmCpu.c | 2 +-
StandaloneMmPkg/Drivers/StandaloneMmCpu/{AArch64 => }/StandaloneMmCpu.h | 0
StandaloneMmPkg/Drivers/StandaloneMmCpu/{AArch64 => }/StandaloneMmCpu.inf | 0
StandaloneMmPkg/Include/Library/{AArch64 => Arm}/StandaloneMmCoreEntryPoint.h | 0
StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/{AArch64 => Arm}/CreateHobList.c | 2 +-
StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/{AArch64 => Arm}/SetPermissions.c | 2 +-
StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/{AArch64 => Arm}/StandaloneMmCoreEntryPoint.c | 16 ++++++++--------
StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf | 14 +++++++-------
StandaloneMmPkg/Library/StandaloneMmCoreHobLib/{AArch64 => Arm}/StandaloneMmCoreHobLib.c | 0
StandaloneMmPkg/Library/StandaloneMmCoreHobLib/{AArch64 => Arm}/StandaloneMmCoreHobLibInternal.c | 0
StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf | 8 ++++----
StandaloneMmPkg/Library/StandaloneMmMemLib/{AArch64/StandaloneMmMemLibInternal.c => ArmStandaloneMmMemLibInternal.c} | 9 ++++++++-
StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.inf | 6 +++---
StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf | 2 +-
StandaloneMmPkg/StandaloneMmPkg.dsc | 8 ++++----
17 files changed, 49 insertions(+), 34 deletions(-)

diff --git a/StandaloneMmPkg/Core/StandaloneMmCore.inf b/StandaloneMmPkg/Core/StandaloneMmCore.inf
index 87bf6e9440..56042b7b39 100644
--- a/StandaloneMmPkg/Core/StandaloneMmCore.inf
+++ b/StandaloneMmPkg/Core/StandaloneMmCore.inf
@@ -17,7 +17,7 @@
PI_SPECIFICATION_VERSION = 0x00010032
ENTRY_POINT = StandaloneMmMain

-# VALID_ARCHITECTURES = IA32 X64 AARCH64
+# VALID_ARCHITECTURES = IA32 X64 AARCH64 ARM

[Sources]
StandaloneMmCore.c
diff --git a/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/EventHandle.c b/StandaloneMmPkg/Drivers/StandaloneMmCpu/EventHandle.c
similarity index 92%
rename from StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/EventHandle.c
rename to StandaloneMmPkg/Drivers/StandaloneMmCpu/EventHandle.c
index 63fbe26642..2d7fd81133 100644
--- a/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/EventHandle.c
+++ b/StandaloneMmPkg/Drivers/StandaloneMmCpu/EventHandle.c
@@ -2,6 +2,7 @@

Copyright (c) 2016 HP Development Company, L.P.
Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.
+ Copyright (c) 2021, Linaro Limited

SPDX-License-Identifier: BSD-2-Clause-Patent

@@ -27,6 +28,13 @@

#include "StandaloneMmCpu.h"

+#ifdef MDE_CPU_AARCH64
+#define ARM_SMC_ID_MM_COMMUNICATE ARM_SMC_ID_MM_COMMUNICATE_AARCH64
+#endif
+#ifdef MDE_CPU_ARM
+#define ARM_SMC_ID_MM_COMMUNICATE ARM_SMC_ID_MM_COMMUNICATE_AARCH32
+#endif
+
EFI_STATUS
EFIAPI
MmFoundationEntryRegister (
@@ -92,8 +100,8 @@ PiMmStandaloneArmTfCpuDriverEntry (
// receipt of a synchronous MM request. Use the Event ID to distinguish
// between synchronous and asynchronous events.
//
- if ((ARM_SMC_ID_MM_COMMUNICATE_AARCH64 != EventId) &&
- (ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64 != EventId)) {
+ if ((ARM_SMC_ID_MM_COMMUNICATE != EventId) &&
+ (ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ != EventId)) {
DEBUG ((DEBUG_INFO, "UnRecognized Event - 0x%x\n", EventId));
return EFI_INVALID_PARAMETER;
}
diff --git a/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.c b/StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.c
similarity index 96%
rename from StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.c
rename to StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.c
index d4590bcd19..10097f792f 100644
--- a/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.c
+++ b/StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.c
@@ -10,7 +10,7 @@

#include <Base.h>
#include <Pi/PiMmCis.h>
-#include <Library/AArch64/StandaloneMmCoreEntryPoint.h>
+#include <Library/Arm/StandaloneMmCoreEntryPoint.h>
#include <Library/DebugLib.h>
#include <Library/ArmSvcLib.h>
#include <Library/ArmLib.h>
diff --git a/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.h b/StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.h
similarity index 100%
rename from StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.h
rename to StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.h
diff --git a/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.inf b/StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf
similarity index 100%
rename from StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.inf
rename to StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf
diff --git a/StandaloneMmPkg/Include/Library/AArch64/StandaloneMmCoreEntryPoint.h b/StandaloneMmPkg/Include/Library/Arm/StandaloneMmCoreEntryPoint.h
similarity index 100%
rename from StandaloneMmPkg/Include/Library/AArch64/StandaloneMmCoreEntryPoint.h
rename to StandaloneMmPkg/Include/Library/Arm/StandaloneMmCoreEntryPoint.h
diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/CreateHobList.c b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/CreateHobList.c
similarity index 97%
rename from StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/CreateHobList.c
rename to StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/CreateHobList.c
index 4d4cf3d5ff..85f8194687 100644
--- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/CreateHobList.c
+++ b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/CreateHobList.c
@@ -14,7 +14,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Guid/MmramMemoryReserve.h>
#include <Guid/MpInformation.h>

-#include <Library/AArch64/StandaloneMmCoreEntryPoint.h>
+#include <Library/Arm/StandaloneMmCoreEntryPoint.h>
#include <Library/ArmMmuLib.h>
#include <Library/ArmSvcLib.h>
#include <Library/DebugLib.h>
diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/SetPermissions.c b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/SetPermissions.c
similarity index 96%
rename from StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/SetPermissions.c
rename to StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/SetPermissions.c
index 4a380df4a6..cd4b90823e 100644
--- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/SetPermissions.c
+++ b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/SetPermissions.c
@@ -14,7 +14,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Guid/MmramMemoryReserve.h>
#include <Guid/MpInformation.h>

-#include <Library/AArch64/StandaloneMmCoreEntryPoint.h>
+#include <Library/Arm/StandaloneMmCoreEntryPoint.h>
#include <Library/ArmMmuLib.h>
#include <Library/ArmSvcLib.h>
#include <Library/DebugLib.h>
diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/StandaloneMmCoreEntryPoint.c
similarity index 94%
rename from StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c
rename to StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/StandaloneMmCoreEntryPoint.c
index b445d6942e..e199e81bbd 100644
--- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c
+++ b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/StandaloneMmCoreEntryPoint.c
@@ -10,7 +10,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent

#include <PiMm.h>

-#include <Library/AArch64/StandaloneMmCoreEntryPoint.h>
+#include <Library/Arm/StandaloneMmCoreEntryPoint.h>

#include <PiPei.h>
#include <Guid/MmramMemoryReserve.h>
@@ -182,13 +182,13 @@ DelegatedEventLoop (
}

if (FfaEnabled) {
- EventCompleteSvcArgs->Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH64;
+ EventCompleteSvcArgs->Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP;
EventCompleteSvcArgs->Arg1 = 0;
EventCompleteSvcArgs->Arg2 = 0;
- EventCompleteSvcArgs->Arg3 = ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH64;
+ EventCompleteSvcArgs->Arg3 = ARM_SVC_ID_SP_EVENT_COMPLETE;
EventCompleteSvcArgs->Arg4 = SvcStatus;
} else {
- EventCompleteSvcArgs->Arg0 = ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH64;
+ EventCompleteSvcArgs->Arg0 = ARM_SVC_ID_SP_EVENT_COMPLETE;
EventCompleteSvcArgs->Arg1 = SvcStatus;
}
}
@@ -273,13 +273,13 @@ InitArmSvcArgs (
)
{
if (FeaturePcdGet (PcdFfaEnable)) {
- InitMmFoundationSvcArgs->Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH64;
+ InitMmFoundationSvcArgs->Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP;
InitMmFoundationSvcArgs->Arg1 = 0;
InitMmFoundationSvcArgs->Arg2 = 0;
- InitMmFoundationSvcArgs->Arg3 = ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH64;
+ InitMmFoundationSvcArgs->Arg3 = ARM_SVC_ID_SP_EVENT_COMPLETE;
InitMmFoundationSvcArgs->Arg4 = *Ret;
} else {
- InitMmFoundationSvcArgs->Arg0 = ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH64;
+ InitMmFoundationSvcArgs->Arg0 = ARM_SVC_ID_SP_EVENT_COMPLETE;
InitMmFoundationSvcArgs->Arg1 = *Ret;
}
}
@@ -395,7 +395,7 @@ _ModuleEntryPoint (
//
ProcessModuleEntryPointList (HobStart);

- DEBUG ((DEBUG_INFO, "Shared Cpu Driver EP 0x%lx\n", (UINT64) CpuDriverEntryPoint));
+ DEBUG ((DEBUG_INFO, "Shared Cpu Driver EP %p\n", (void *) CpuDriverEntryPoint));

finish:
if (Status == RETURN_UNSUPPORTED) {
diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf
index 4fa426f58e..1762586cfa 100644
--- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf
+++ b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf
@@ -21,10 +21,10 @@
# VALID_ARCHITECTURES = IA32 X64 IPF EBC (EBC is for build only)
#

-[Sources.AARCH64]
- AArch64/StandaloneMmCoreEntryPoint.c
- AArch64/SetPermissions.c
- AArch64/CreateHobList.c
+[Sources.AARCH64, Sources.ARM]
+ Arm/StandaloneMmCoreEntryPoint.c
+ Arm/SetPermissions.c
+ Arm/CreateHobList.c

[Sources.X64]
X64/StandaloneMmCoreEntryPoint.c
@@ -34,14 +34,14 @@
MdeModulePkg/MdeModulePkg.dec
StandaloneMmPkg/StandaloneMmPkg.dec

-[Packages.AARCH64]
+[Packages.ARM, Packages.AARCH64]
ArmPkg/ArmPkg.dec

[LibraryClasses]
BaseLib
DebugLib

-[LibraryClasses.AARCH64]
+[LibraryClasses.ARM, LibraryClasses.AARCH64]
StandaloneMmMmuLib
ArmSvcLib

@@ -51,7 +51,7 @@
gEfiStandaloneMmNonSecureBufferGuid
gEfiArmTfCpuDriverEpDescriptorGuid

-[FeaturePcd.AARCH64]
+[FeaturePcd.ARM, FeaturePcd.AARCH64]
gArmTokenSpaceGuid.PcdFfaEnable

[BuildOptions]
diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/AArch64/StandaloneMmCoreHobLib.c b/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Arm/StandaloneMmCoreHobLib.c
similarity index 100%
rename from StandaloneMmPkg/Library/StandaloneMmCoreHobLib/AArch64/StandaloneMmCoreHobLib.c
rename to StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Arm/StandaloneMmCoreHobLib.c
diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/AArch64/StandaloneMmCoreHobLibInternal.c b/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Arm/StandaloneMmCoreHobLibInternal.c
similarity index 100%
rename from StandaloneMmPkg/Library/StandaloneMmCoreHobLib/AArch64/StandaloneMmCoreHobLibInternal.c
rename to StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Arm/StandaloneMmCoreHobLibInternal.c
diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf b/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf
index a2559920e8..34ed536480 100644
--- a/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf
+++ b/StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf
@@ -22,7 +22,7 @@
LIBRARY_CLASS = HobLib|MM_CORE_STANDALONE

#
-# VALID_ARCHITECTURES = X64 AARCH64
+# VALID_ARCHITECTURES = X64 AARCH64 ARM
#
[Sources.common]
Common.c
@@ -30,9 +30,9 @@
[Sources.X64]
X64/StandaloneMmCoreHobLib.c

-[Sources.AARCH64]
- AArch64/StandaloneMmCoreHobLib.c
- AArch64/StandaloneMmCoreHobLibInternal.c
+[Sources.AARCH64, Sources.ARM]
+ Arm/StandaloneMmCoreHobLib.c
+ Arm/StandaloneMmCoreHobLibInternal.c

[Packages]
MdePkg/MdePkg.dec
diff --git a/StandaloneMmPkg/Library/StandaloneMmMemLib/AArch64/StandaloneMmMemLibInternal.c b/StandaloneMmPkg/Library/StandaloneMmMemLib/ArmStandaloneMmMemLibInternal.c
similarity index 86%
rename from StandaloneMmPkg/Library/StandaloneMmMemLib/AArch64/StandaloneMmMemLibInternal.c
rename to StandaloneMmPkg/Library/StandaloneMmMemLib/ArmStandaloneMmMemLibInternal.c
index 4124959e04..fa7df46413 100644
--- a/StandaloneMmPkg/Library/StandaloneMmMemLib/AArch64/StandaloneMmMemLibInternal.c
+++ b/StandaloneMmPkg/Library/StandaloneMmMemLib/ArmStandaloneMmMemLibInternal.c
@@ -20,6 +20,13 @@
//
extern EFI_PHYSICAL_ADDRESS mMmMemLibInternalMaximumSupportAddress;

+#ifdef MDE_CPU_AARCH64
+#define ARM_PHYSICAL_ADDRESS_BITS 36
+#endif
+#ifdef MDE_CPU_ARM
+#define ARM_PHYSICAL_ADDRESS_BITS 32
+#endif
+
/**
Calculate and save the maximum support address.

@@ -31,7 +38,7 @@ MmMemLibInternalCalculateMaximumSupportAddress (
{
UINT8 PhysicalAddressBits;

- PhysicalAddressBits = 36;
+ PhysicalAddressBits = ARM_PHYSICAL_ADDRESS_BITS;

//
// Save the maximum support address in one global variable
diff --git a/StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.inf b/StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.inf
index 062b0d7a11..b29d97a746 100644
--- a/StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.inf
+++ b/StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.inf
@@ -28,7 +28,7 @@
#
# The following information is for reference only and not required by the build tools.
#
-# VALID_ARCHITECTURES = IA32 X64 AARCH64
+# VALID_ARCHITECTURES = IA32 X64 AARCH64 ARM
#

[Sources.Common]
@@ -37,8 +37,8 @@
[Sources.IA32, Sources.X64]
X86StandaloneMmMemLibInternal.c

-[Sources.AARCH64]
- AArch64/StandaloneMmMemLibInternal.c
+[Sources.AARCH64, Sources.ARM]
+ ArmStandaloneMmMemLibInternal.c

[Packages]
MdePkg/MdePkg.dec
diff --git a/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf b/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf
index a2a059c5d6..ffb2a6d083 100644
--- a/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf
+++ b/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf
@@ -20,7 +20,7 @@
#
# The following information is for reference only and not required by the build tools.
#
-# VALID_ARCHITECTURES = AARCH64
+# VALID_ARCHITECTURES = AARCH64|ARM
#
#

diff --git a/StandaloneMmPkg/StandaloneMmPkg.dsc b/StandaloneMmPkg/StandaloneMmPkg.dsc
index 0c45df95e2..01bfbe8cc5 100644
--- a/StandaloneMmPkg/StandaloneMmPkg.dsc
+++ b/StandaloneMmPkg/StandaloneMmPkg.dsc
@@ -20,7 +20,7 @@
PLATFORM_VERSION = 1.0
DSC_SPECIFICATION = 0x00010011
OUTPUT_DIRECTORY = Build/StandaloneMm
- SUPPORTED_ARCHITECTURES = AARCH64|X64
+ SUPPORTED_ARCHITECTURES = AARCH64|X64|ARM
BUILD_TARGETS = DEBUG|RELEASE
SKUID_IDENTIFIER = DEFAULT

@@ -60,7 +60,7 @@
StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf
VariableMmDependency|StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf

-[LibraryClasses.AARCH64]
+[LibraryClasses.AARCH64, LibraryClasses.ARM]
ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
StandaloneMmMmuLib|ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf
ArmSvcLib|ArmPkg/Library/ArmSvcLib/ArmSvcLib.inf
@@ -118,7 +118,7 @@
StandaloneMmPkg/Library/StandaloneMmMemoryAllocationLib/StandaloneMmMemoryAllocationLib.inf
StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf

-[Components.AARCH64]
+[Components.AARCH64, Components.ARM]
StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.inf
StandaloneMmPkg/Library/StandaloneMmPeCoffExtraActionLib/StandaloneMmPeCoffExtraActionLib.inf

@@ -131,7 +131,7 @@
# module style (EDK or EDKII) specified in [Components] section.
#
###################################################################################################
-[BuildOptions.AARCH64]
+[BuildOptions.AARCH64, BuildOptions.ARM]
GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 -march=armv8-a+nofp -mstrict-align
GCC:*_*_*_CC_FLAGS = -mstrict-align

--
2.17.1


[PATCH 4/5] StandaloneMmPkg: fix pointer/int casts against 32bit architectures

Etienne Carriere
 

Use intermediate (UINTN) cast when casting int from/to pointer. This
is needed as UINT64 values cast from/to 32bit pointer for 32bit
architectures.

Cc: Achin Gupta <achin.gupta@arm.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Sughosh Ganu <sughosh.ganu@linaro.org>
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
---
StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.c | 8 ++++----
StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/CreateHobList.c | 14 +++++++-------
StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c | 2 +-
3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.c b/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.c
index 6884095c49..d4590bcd19 100644
--- a/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.c
+++ b/StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.c
@@ -164,8 +164,8 @@ StandaloneMmCpuInitialize (

// Share the entry point of the CPU driver
DEBUG ((DEBUG_INFO, "Sharing Cpu Driver EP *0x%lx = 0x%lx\n",
- (UINT64) CpuDriverEntryPointDesc->ArmTfCpuDriverEpPtr,
- (UINT64) PiMmStandaloneArmTfCpuDriverEntry));
+ (UINTN) CpuDriverEntryPointDesc->ArmTfCpuDriverEpPtr,
+ (UINTN) PiMmStandaloneArmTfCpuDriverEntry));
*(CpuDriverEntryPointDesc->ArmTfCpuDriverEpPtr) = PiMmStandaloneArmTfCpuDriverEntry;

// Find the descriptor that contains the whereabouts of the buffer for
@@ -180,8 +180,8 @@ StandaloneMmCpuInitialize (
return Status;
}

- DEBUG ((DEBUG_INFO, "mNsCommBuffer.PhysicalStart - 0x%lx\n", (UINT64) NsCommBufMmramRange->PhysicalStart));
- DEBUG ((DEBUG_INFO, "mNsCommBuffer.PhysicalSize - 0x%lx\n", (UINT64) NsCommBufMmramRange->PhysicalSize));
+ DEBUG ((DEBUG_INFO, "mNsCommBuffer.PhysicalStart - 0x%lx\n", (UINTN) NsCommBufMmramRange->PhysicalStart));
+ DEBUG ((DEBUG_INFO, "mNsCommBuffer.PhysicalSize - 0x%lx\n", (UINTN) NsCommBufMmramRange->PhysicalSize));

CopyMem (&mNsCommBuffer, NsCommBufMmramRange, sizeof(EFI_MMRAM_DESCRIPTOR));
DEBUG ((DEBUG_INFO, "mNsCommBuffer: 0x%016lx - 0x%lx\n", mNsCommBuffer.CpuStart, mNsCommBuffer.PhysicalSize));
diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/CreateHobList.c b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/CreateHobList.c
index e8fb96bd6e..4d4cf3d5ff 100644
--- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/CreateHobList.c
+++ b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/CreateHobList.c
@@ -72,14 +72,14 @@ CreateHobListFromBootInfo (

// Create a hoblist with a PHIT and EOH
HobStart = HobConstructor (
- (VOID *) PayloadBootInfo->SpMemBase,
+ (VOID *) (UINTN) PayloadBootInfo->SpMemBase,
(UINTN) PayloadBootInfo->SpMemLimit - PayloadBootInfo->SpMemBase,
- (VOID *) PayloadBootInfo->SpHeapBase,
- (VOID *) (PayloadBootInfo->SpHeapBase + PayloadBootInfo->SpHeapSize)
+ (VOID *) (UINTN) PayloadBootInfo->SpHeapBase,
+ (VOID *) (UINTN) (PayloadBootInfo->SpHeapBase + PayloadBootInfo->SpHeapSize)
);

// Check that the Hoblist starts at the bottom of the Heap
- ASSERT (HobStart == (VOID *) PayloadBootInfo->SpHeapBase);
+ ASSERT (HobStart == (VOID *) (UINTN) PayloadBootInfo->SpHeapBase);

// Build a Boot Firmware Volume HOB
BuildFvHob (PayloadBootInfo->SpImageBase, PayloadBootInfo->SpImageSize);
@@ -190,9 +190,9 @@ CreateHobListFromBootInfo (
MmramRanges[3].RegionState = EFI_CACHEABLE | EFI_ALLOCATED;

// Base and size of heap memory shared by all cpus
- MmramRanges[4].PhysicalStart = (EFI_PHYSICAL_ADDRESS) HobStart;
- MmramRanges[4].CpuStart = (EFI_PHYSICAL_ADDRESS) HobStart;
- MmramRanges[4].PhysicalSize = HobStart->EfiFreeMemoryBottom - (EFI_PHYSICAL_ADDRESS) HobStart;
+ MmramRanges[4].PhysicalStart = (EFI_PHYSICAL_ADDRESS) (UINTN) HobStart;
+ MmramRanges[4].CpuStart = (EFI_PHYSICAL_ADDRESS) (UINTN) HobStart;
+ MmramRanges[4].PhysicalSize = HobStart->EfiFreeMemoryBottom - (EFI_PHYSICAL_ADDRESS) (UINTN) HobStart;
MmramRanges[4].RegionState = EFI_CACHEABLE | EFI_ALLOCATED;

// Base and size of heap memory shared by all cpus
diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c
index 6c50f470aa..b445d6942e 100644
--- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c
+++ b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c
@@ -328,7 +328,7 @@ _ModuleEntryPoint (

// Locate PE/COFF File information for the Standalone MM core module
Status = LocateStandaloneMmCorePeCoffData (
- (EFI_FIRMWARE_VOLUME_HEADER *) PayloadBootInfo->SpImageBase,
+ (EFI_FIRMWARE_VOLUME_HEADER *) (UINTN) PayloadBootInfo->SpImageBase,
&TeData,
&TeDataSize
);
--
2.17.1


[PATCH 3/5] GenGv: Arm: support images entered in Thumb mode

Etienne Carriere
 

Change GenFv for Arm architecture to generate a specific jump
instruction as image entry instruction, when the target entry label
is assembled with Thumb instruction set. This is possible since
SecCoreEntryAddress value fetched from the PE32 as its LSBit set when
the entry instruction executes in Thumb mode.

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Achin Gupta <achin.gupta@arm.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Sughosh Ganu <sughosh.ganu@linaro.org>
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
---
BaseTools/Source/C/GenFv/GenFvInternalLib.c | 38 +++++++++++++++-----
1 file changed, 29 insertions(+), 9 deletions(-)

diff --git a/BaseTools/Source/C/GenFv/GenFvInternalLib.c b/BaseTools/Source/C/GenFv/GenFvInternalLib.c
index 6e296b8ad6..3af65146f6 100644
--- a/BaseTools/Source/C/GenFv/GenFvInternalLib.c
+++ b/BaseTools/Source/C/GenFv/GenFvInternalLib.c
@@ -34,9 +34,27 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "FvLib.h"
#include "PeCoffLib.h"

-#define ARMT_UNCONDITIONAL_JUMP_INSTRUCTION 0xEB000000
#define ARM64_UNCONDITIONAL_JUMP_INSTRUCTION 0x14000000

+/*
+ * Arm instruction to jump to Fv enry instruction in Arm or Thumb mode.
+ * From ARM Arch Ref Manual versions b/c/d, section A8.8.25 BL, BLX (immediate)
+ * BLX (encoding A2) branches to offset in Thumb instruction set mode.
+ * BL (encoding A1) branches to offset in Arm instruction set mode.
+ */
+#define ARM_JUMP_OFFSET_MAX 0xffffff
+#define ARM_JUMP_TO_ARM(Offset) (0xeb000000 | ((Offset - 8) >> 2))
+
+#define _ARM_JUMP_TO_THUMB(Imm32) (0xfa000000 | \
+ (((Imm32) & (1 << 1)) << (24 - 1)) | \
+ (((Imm32) >> 2) & 0x7fffff))
+#define ARM_JUMP_TO_THUMB(Offset) _ARM_JUMP_TO_THUMB((Offset) - 8)
+
+/*
+ * Arm instruction to retrun from exception (MOVS PC, LR)
+ */
+#define ARM_RETURN_FROM_EXCEPTION 0xE1B0F07E
+
BOOLEAN mArm = FALSE;
BOOLEAN mRiscV = FALSE;
STATIC UINT32 MaxFfsAlignment = 0;
@@ -2203,23 +2221,25 @@ Returns:
// if we found an SEC core entry point then generate a branch instruction
// to it and populate a debugger SWI entry as well
if (UpdateVectorSec) {
+ UINT32 EntryOffset;

VerboseMsg("UpdateArmResetVectorIfNeeded updating ARM SEC vector");

- // B SecEntryPoint - signed_immed_24 part +/-32MB offset
- // on ARM, the PC is always 8 ahead, so we're not really jumping from the base address, but from base address + 8
- ResetVector[0] = (INT32)(SecCoreEntryAddress - FvInfo->BaseAddress - 8) >> 2;
+ EntryOffset = (INT32)(SecCoreEntryAddress - FvInfo->BaseAddress);

- if (ResetVector[0] > 0x00FFFFFF) {
- Error(NULL, 0, 3000, "Invalid", "SEC Entry point must be within 32MB of the start of the FV");
+ if (EntryOffset > ARM_JUMP_OFFSET_MAX) {
+ Error(NULL, 0, 3000, "Invalid", "SEC Entry point offset above 1MB of the start of the FV");
return EFI_ABORTED;
}

- // Add opcode for an unconditional branch with no link. i.e.: " B SecEntryPoint"
- ResetVector[0] |= ARMT_UNCONDITIONAL_JUMP_INSTRUCTION;
+ if (SecCoreEntryAddress & 1) {
+ ResetVector[0] = ARM_JUMP_TO_THUMB(EntryOffset);
+ } else {
+ ResetVector[0] = ARM_JUMP_TO_ARM(EntryOffset);
+ }

// SWI handler movs pc,lr. Just in case a debugger uses SWI
- ResetVector[2] = 0xE1B0F07E;
+ ResetVector[2] = ARM_RETURN_FROM_EXCEPTION;

// Place holder to support a common interrupt handler from ROM.
// Currently not supported. For this to be used the reset vector would not be in this FV
--
2.17.1


[PATCH 2/5] ArmPkg: prepare 32bit ARM build of StandaloneMmPkg

Etienne Carriere
 

Changes in ArmPkg to prepare building StandaloneMm firmware for
32bit Arm architectures.

Adds MmCommunicationDxe driver and ArmMmuPeiLib and
ArmmmuStandaloneMmLib libraries to the list of the standard
components build for ArmPkg on when ARM architectures.

Changes path of source file AArch64/ArmMmuStandaloneMmLib.c
and compile it for both 32bit and 64bit architectures.

Cc: Achin Gupta <achin.gupta@arm.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Sughosh Ganu <sughosh.ganu@linaro.org>
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
---
ArmPkg/ArmPkg.dec | 2 +-
ArmPkg/ArmPkg.dsc | 2 +-
ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.c | 2 +-
ArmPkg/Library/StandaloneMmMmuLib/{AArch64 => }/ArmMmuStandaloneMmLib.c | 15 ++++++++-------
ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf | 6 +++---
5 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/ArmPkg/ArmPkg.dec b/ArmPkg/ArmPkg.dec
index 214b2f5892..6ed51edd03 100644
--- a/ArmPkg/ArmPkg.dec
+++ b/ArmPkg/ArmPkg.dec
@@ -137,7 +137,7 @@
# hardware coherency (i.e., no virtualization or cache coherent DMA)
gArmTokenSpaceGuid.PcdNormalMemoryNonshareableOverride|FALSE|BOOLEAN|0x00000043

-[PcdsFeatureFlag.AARCH64]
+[PcdsFeatureFlag.AARCH64, PcdsFeatureFlag.ARM]
## Used to select method for requesting services from S-EL1.<BR><BR>
# TRUE - Selects FF-A calls for communication between S-EL0 and SPMC.<BR>
# FALSE - Selects SVC calls for communication between S-EL0 and SPMC.<BR>
diff --git a/ArmPkg/ArmPkg.dsc b/ArmPkg/ArmPkg.dsc
index 926986cf7f..4c79dadf9e 100644
--- a/ArmPkg/ArmPkg.dsc
+++ b/ArmPkg/ArmPkg.dsc
@@ -158,7 +158,7 @@
ArmPkg/Universal/Smbios/SmbiosMiscDxe/SmbiosMiscDxe.inf
ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLibNull.inf

-[Components.AARCH64]
+[Components.AARCH64, Components.ARM]
ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf
ArmPkg/Library/ArmMmuLib/ArmMmuPeiLib.inf
ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf
diff --git a/ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.c b/ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.c
index b1e3095809..4ae38a9f22 100644
--- a/ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.c
+++ b/ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.c
@@ -125,7 +125,7 @@ MmCommunication2Communicate (
}

// SMC Function ID
- CommunicateSmcArgs.Arg0 = ARM_SMC_ID_MM_COMMUNICATE_AARCH64;
+ CommunicateSmcArgs.Arg0 = ARM_SMC_ID_MM_COMMUNICATE;

// Cookie
CommunicateSmcArgs.Arg1 = 0;
diff --git a/ArmPkg/Library/StandaloneMmMmuLib/AArch64/ArmMmuStandaloneMmLib.c b/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.c
similarity index 92%
rename from ArmPkg/Library/StandaloneMmMmuLib/AArch64/ArmMmuStandaloneMmLib.c
rename to ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.c
index dd014beec8..20f873e680 100644
--- a/ArmPkg/Library/StandaloneMmMmuLib/AArch64/ArmMmuStandaloneMmLib.c
+++ b/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.c
@@ -2,6 +2,7 @@
File managing the MMU for ARMv8 architecture in S-EL0

Copyright (c) 2017 - 2021, Arm Limited. All rights reserved.<BR>
+ Copyright (c) 2021, Linaro Limited
SPDX-License-Identifier: BSD-2-Clause-Patent

@par Reference(s):
@@ -62,7 +63,7 @@ SendMemoryPermissionRequest (
// for other Direct Request calls which are not atomic
// We therefore check only for Direct Response by the
// callee.
- if (SvcArgs->Arg0 == ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH64) {
+ if (SvcArgs->Arg0 == ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP) {
// A Direct Response means FF-A success
// Now check the payload for errors
// The callee sends back the return value
@@ -164,13 +165,13 @@ GetMemoryPermissions (
ZeroMem (&SvcArgs, sizeof (ARM_SVC_ARGS));
if (FeaturePcdGet (PcdFfaEnable)) {
// See [2], Section 10.2 FFA_MSG_SEND_DIRECT_REQ.
- SvcArgs.Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64;
+ SvcArgs.Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ;
SvcArgs.Arg1 = ARM_FFA_DESTINATION_ENDPOINT_ID;
SvcArgs.Arg2 = 0;
- SvcArgs.Arg3 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH64;
+ SvcArgs.Arg3 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES;
SvcArgs.Arg4 = BaseAddress;
} else {
- SvcArgs.Arg0 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH64;
+ SvcArgs.Arg0 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES;
SvcArgs.Arg1 = BaseAddress;
SvcArgs.Arg2 = 0;
SvcArgs.Arg3 = 0;
@@ -219,15 +220,15 @@ RequestMemoryPermissionChange (
ZeroMem (&SvcArgs, sizeof (ARM_SVC_ARGS));
if (FeaturePcdGet (PcdFfaEnable)) {
// See [2], Section 10.2 FFA_MSG_SEND_DIRECT_REQ.
- SvcArgs.Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64;
+ SvcArgs.Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ;
SvcArgs.Arg1 = ARM_FFA_DESTINATION_ENDPOINT_ID;
SvcArgs.Arg2 = 0;
- SvcArgs.Arg3 = ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH64;
+ SvcArgs.Arg3 = ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES;
SvcArgs.Arg4 = BaseAddress;
SvcArgs.Arg5 = EFI_SIZE_TO_PAGES (Length);
SvcArgs.Arg6 = Permissions;
} else {
- SvcArgs.Arg0 = ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH64;
+ SvcArgs.Arg0 = ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES;
SvcArgs.Arg1 = BaseAddress;
SvcArgs.Arg2 = EFI_SIZE_TO_PAGES (Length);
SvcArgs.Arg3 = Permissions;
diff --git a/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf b/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf
index 6c71fe0023..ff20e58980 100644
--- a/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf
+++ b/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf
@@ -16,14 +16,14 @@
LIBRARY_CLASS = StandaloneMmMmuLib
PI_SPECIFICATION_VERSION = 0x00010032

-[Sources.AARCH64]
- AArch64/ArmMmuStandaloneMmLib.c
+[Sources]
+ ArmMmuStandaloneMmLib.c

[Packages]
ArmPkg/ArmPkg.dec
MdePkg/MdePkg.dec

-[FeaturePcd.AARCH64]
+[FeaturePcd.ARM, FeaturePcd.AARCH64]
gArmTokenSpaceGuid.PcdFfaEnable

[LibraryClasses]
--
2.17.1


[PATCH 1/5] ArmPkg/IndustryStandard: 32b/64b agnostic FF-A and Mm SVC IDs

Etienne Carriere
 

Defines ARM_SVC_ID_FFA_* and ARM_SVC_ID_SP_* identifiers for 32bit
function IDs as per SMCCC specification. Defines also generic ARM
SVC identifier macros to wrap 32bit or 64bit identifiers upon target
built architecture.

Cc: Achin Gupta <achin.gupta@arm.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Sughosh Ganu <sughosh.ganu@linaro.org>
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
---
ArmPkg/Include/IndustryStandard/ArmFfaSvc.h | 12 ++++++++++++
ArmPkg/Include/IndustryStandard/ArmMmSvc.h | 15 +++++++++++++++
2 files changed, 27 insertions(+)

diff --git a/ArmPkg/Include/IndustryStandard/ArmFfaSvc.h b/ArmPkg/Include/IndustryStandard/ArmFfaSvc.h
index 65b8343ade..ebcb54b28b 100644
--- a/ArmPkg/Include/IndustryStandard/ArmFfaSvc.h
+++ b/ArmPkg/Include/IndustryStandard/ArmFfaSvc.h
@@ -17,9 +17,21 @@
#define ARM_FFA_SVC_H_

#define ARM_SVC_ID_FFA_VERSION_AARCH32 0x84000063
+#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH32 0x8400006F
+#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH32 0x84000070
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64 0xC400006F
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH64 0xC4000070

+/* Generic IDs when using AArch32 or AArch64 execution state */
+#ifdef MDE_CPU_AARCH64
+#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64
+#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH64
+#endif
+#ifdef MDE_CPU_ARM
+#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH32
+#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH32
+#endif
+
#define SPM_MAJOR_VERSION_FFA 1
#define SPM_MINOR_VERSION_FFA 0

diff --git a/ArmPkg/Include/IndustryStandard/ArmMmSvc.h b/ArmPkg/Include/IndustryStandard/ArmMmSvc.h
index 33d60ccf17..deb3bc99d2 100644
--- a/ArmPkg/Include/IndustryStandard/ArmMmSvc.h
+++ b/ArmPkg/Include/IndustryStandard/ArmMmSvc.h
@@ -15,10 +15,25 @@
* privileged operations on its behalf.
*/
#define ARM_SVC_ID_SPM_VERSION_AARCH32 0x84000060
+#define ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH32 0x84000061
+#define ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH32 0x84000064
+#define ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH32 0x84000065
#define ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH64 0xC4000061
#define ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH64 0xC4000064
#define ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH64 0xC4000065

+/* Generic IDs when using AArch32 or AArch64 execution state */
+#ifdef MDE_CPU_AARCH64
+#define ARM_SVC_ID_SP_EVENT_COMPLETE ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH64
+#define ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH64
+#define ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH64
+#endif
+#ifdef MDE_CPU_ARM
+#define ARM_SVC_ID_SP_EVENT_COMPLETE ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH32
+#define ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH32
+#define ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH32
+#endif
+
#define SET_MEM_ATTR_DATA_PERM_MASK 0x3
#define SET_MEM_ATTR_DATA_PERM_SHIFT 0
#define SET_MEM_ATTR_DATA_PERM_NO_ACCESS 0
--
2.17.1


[PATCH 0/5] Arm 32bit support in StandaloveMm

Etienne Carriere
 

This series targets building StandaloneMM package for 32bit ARM
architectures. The main parts of the changes move AArch64/*
files to paths suitable for both 32bit and 64bit Arm machines.

Because these changes move file paths, some other edk2 related
source trees must be updated. Up to my knowledge, only edk2-platforms
and edk2-codereview must be synchronised. [1] shows the changes
needed in edk2-platforms to synchronise with these changes.

I will post a patch series for edk2-platforms, including [1] and
some other changes to allow building StandaloneMmPkg for 32bit Arm
platforms.

This change is a resend of [2], rebased to latest master.

[1] https://github.com/etienne-lms/edk2-platforms/commit/becbd185167f6a115dbd3895bc6071ab04e44d9b
[2] https://edk2.groups.io/g/devel/message/72834 (with 72835, 72836, 72837 and 72838)

Etienne Carriere (5):
ArmPkg/IndustryStandard: 32b/64b agnostic FF-A and Mm SVC IDs
ArmPkg: prepare 32bit ARM build of StandaloneMmPkg
GenGv: Arm: support images entered in Thumb mode
StandaloneMmPkg: fix pointer/int casts against 32bit architectures
StandaloneMmPkg: build for 32bit arm machines

ArmPkg/ArmPkg.dec | 2 +-
ArmPkg/ArmPkg.dsc | 2 +-
.../MmCommunicationDxe/MmCommunication.c | 2 +-
ArmPkg/Include/IndustryStandard/ArmFfaSvc.h | 12 ++++++
ArmPkg/Include/IndustryStandard/ArmMmSvc.h | 15 ++++++++
.../{AArch64 => }/ArmMmuStandaloneMmLib.c | 15 ++++----
.../ArmMmuStandaloneMmLib.inf | 6 +--
BaseTools/Source/C/GenFv/GenFvInternalLib.c | 38 ++++++++++++++-----
StandaloneMmPkg/Core/StandaloneMmCore.inf | 2 +-
.../{AArch64 => }/EventHandle.c | 12 +++++-
.../{AArch64 => }/StandaloneMmCpu.c | 10 ++---
.../{AArch64 => }/StandaloneMmCpu.h | 0
.../{AArch64 => }/StandaloneMmCpu.inf | 0
.../StandaloneMmCoreEntryPoint.h | 0
.../{AArch64 => Arm}/CreateHobList.c | 16 ++++----
.../{AArch64 => Arm}/SetPermissions.c | 2 +-
.../StandaloneMmCoreEntryPoint.c | 18 ++++-----
.../StandaloneMmCoreEntryPoint.inf | 14 +++----
.../{AArch64 => Arm}/StandaloneMmCoreHobLib.c | 0
.../StandaloneMmCoreHobLibInternal.c | 0
.../StandaloneMmCoreHobLib.inf | 8 ++--
...rnal.c => ArmStandaloneMmMemLibInternal.c} | 9 ++++-
.../StandaloneMmMemLib/StandaloneMmMemLib.inf | 6 +--
.../VariableMmDependency.inf | 2 +-
StandaloneMmPkg/StandaloneMmPkg.dsc | 8 ++--
25 files changed, 131 insertions(+), 68 deletions(-)
rename ArmPkg/Library/StandaloneMmMmuLib/{AArch64 => }/ArmMmuStandaloneMmLib.c (92%)
rename StandaloneMmPkg/Drivers/StandaloneMmCpu/{AArch64 => }/EventHandle.c (92%)
rename StandaloneMmPkg/Drivers/StandaloneMmCpu/{AArch64 => }/StandaloneMmCpu.c (94%)
rename StandaloneMmPkg/Drivers/StandaloneMmCpu/{AArch64 => }/StandaloneMmCpu.h (100%)
rename StandaloneMmPkg/Drivers/StandaloneMmCpu/{AArch64 => }/StandaloneMmCpu.inf (100%)
rename StandaloneMmPkg/Include/Library/{AArch64 => Arm}/StandaloneMmCoreEntryPoint.h (100%)
rename StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/{AArch64 => Arm}/CreateHobList.c (91%)
rename StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/{AArch64 => Arm}/SetPermissions.c (96%)
rename StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/{AArch64 => Arm}/StandaloneMmCoreEntryPoint.c (94%)
rename StandaloneMmPkg/Library/StandaloneMmCoreHobLib/{AArch64 => Arm}/StandaloneMmCoreHobLib.c (100%)
rename StandaloneMmPkg/Library/StandaloneMmCoreHobLib/{AArch64 => Arm}/StandaloneMmCoreHobLibInternal.c (100%)
rename StandaloneMmPkg/Library/StandaloneMmMemLib/{AArch64/StandaloneMmMemLibInternal.c => ArmStandaloneMmMemLibInternal.c} (86%)

--
2.17.1


Re: [PATCH RFC v2 04/28] MdePkg: Define the Page State Change VMGEXIT structures

Lendacky, Thomas
 

On 5/4/21 8:59 AM, Laszlo Ersek wrote:
On 05/04/21 14:33, Laszlo Ersek wrote:
On 04/30/21 13:51, Brijesh Singh wrote:
BZ: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3275&;data=04%7C01%7Cthomas.lendacky%40amd.com%7Cf400bca14b6f4f138a1908d90f05090f%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637557336582189771%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=bjXNVWGpurRGUZkjemvDQR%2FYnEQRG9ENN22jUjtkNP0%3D&amp;reserved=0

The Page State Change NAE exit will be used by the SEV-SNP guest to
request a page state change using the GHCB protocol. See the GHCB
spec section 4.1.6 and 2.3.1 for more detail on the structure
definitions.

Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Min Xu <min.m.xu@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
MdePkg/Include/Register/Amd/Fam17Msr.h | 15 ++++++++++
MdePkg/Include/Register/Amd/Ghcb.h | 29 ++++++++++++++++++++
2 files changed, 44 insertions(+)

diff --git a/MdePkg/Include/Register/Amd/Fam17Msr.h b/MdePkg/Include/Register/Amd/Fam17Msr.h
index e19bd04b6c..432cee2feb 100644
--- a/MdePkg/Include/Register/Amd/Fam17Msr.h
+++ b/MdePkg/Include/Register/Amd/Fam17Msr.h
@@ -58,6 +58,19 @@ typedef union {
UINT64 GuestFrameNumber:52;
} GhcbGpaRegister;

+ struct {
+ UINT64 Function:12;
+ UINT64 GuestFrameNumber:40;
+ UINT64 Operation:4;
+ UINT64 Reserved:8;
+ } SnpPageStateChangeRequest;
+
+ struct {
+ UINT32 Function:12;
+ UINT32 Reserved:20;
+ UINT32 ErrorCode;
+ } SnpPageStateChangeResponse;
+
VOID *Ghcb;
This matches section 2.3.1 in rev 2.00.

UINT64 GhcbPhysicalAddress;
@@ -69,6 +82,8 @@ typedef union {
#define GHCB_INFO_CPUID_RESPONSE 5
#define GHCB_INFO_GHCB_GPA_REGISTER_REQUEST 18
#define GHCB_INFO_GHCB_GPA_REGISTER_RESPONSE 19
+#define GHCB_INFO_SNP_PAGE_STATE_CHANGE_REQUEST 20
+#define GHCB_INFO_SNP_PAGE_STATE_CHANGE_RESPONSE 21
#define GHCB_HYPERVISOR_FEATURES_REQUEST 128
#define GHCB_HYPERVISOR_FEATURES_RESPONSE 129
#define GHCB_INFO_TERMINATE_REQUEST 256
Matches section 2.3.1.

diff --git a/MdePkg/Include/Register/Amd/Ghcb.h b/MdePkg/Include/Register/Amd/Ghcb.h
index 2d64a4c28f..1e7c0daed3 100644
--- a/MdePkg/Include/Register/Amd/Ghcb.h
+++ b/MdePkg/Include/Register/Amd/Ghcb.h
@@ -54,6 +54,7 @@
#define SVM_EXIT_NMI_COMPLETE 0x80000003ULL
#define SVM_EXIT_AP_RESET_HOLD 0x80000004ULL
#define SVM_EXIT_AP_JUMP_TABLE 0x80000005ULL
+#define SVM_EXIT_SNP_PAGE_STATE_CHANGE 0x80000010ULL
#define SVM_EXIT_HYPERVISOR_FEATURES 0x8000FFFDULL
#define SVM_EXIT_UNSUPPORTED 0x8000FFFFULL
Matches "Table 5. List of Supported Non-Automatic Events".

@@ -160,4 +161,32 @@ typedef union {
#define GHCB_HV_FEATURES_SNP_AP_CREATE (GHCB_HV_FEATURES_SNP | BIT1)
#define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION (GHCB_HV_FEATURES_SNP_AP_CREATE | BIT2)
#define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION_TIMER (GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION | BIT3)
+
+// SNP Page State Change
(1) Comment style.

+#define SNP_PAGE_STATE_MAX_NPAGES 4095
+#define SNP_PAGE_STATE_MAX_ENTRY 253
+#define SNP_PAGE_STATE_PRIVATE 1
+#define SNP_PAGE_STATE_SHARED 2
+#define SNP_PAGE_STATE_PSMASH 3
+#define SNP_PAGE_STATE_UNSMASH 4
(2) The PSMASH and UNSMASH operations are not documented in the rev 2.00
spec, in the GHCB MSR protocol. That's probably because PSMASH and
UNSMASH can only be defined in terms of 2MB pages, and
GHCB_INFO_SNP_PAGE_STATE_CHANGE_REQUEST is suitable only for individual,
4KB pages. I think it would be useful to point out somehow here that
PSMASH and UNSMASH are restricted to the GHCB shared area protocol
(perhaps extend the leading comment on this block of macros).

(3) I don't understand what "MAX_NPAGES" stands for (4095). The rest of
the series never uses the macro, and I can't associate it with anything
from the spec. If the macro is supposed to relate to the 4KB / 2MB page
smashing / splitting, then its replacement text should be 512. Unless
the macro corresponds to a definition in the spec, I think we should
drop it.

+
+typedef PACKED struct {
+ UINT64 CurrentPage:12;
+ UINT64 GuestFrameNumber:40;
+ UINT64 Op:4;
+ UINT64 PageSize:1;
+ UINT64 Rsvd: 7;
+} SNP_PAGE_STATE_ENTRY;
+
+typedef PACKED struct {
+ UINT16 CurrentEntry;
+ UINT16 EndEntry;
+ UINT32 Rsvd;
+} SNP_PAGE_STATE_HEADER;
(4) We tend to write

#pragma pack (1)
...
#pragma pack ()

rather than PACKED -- but anyway, is packing really necessary? "Natural
alignment" is required in edk2. I'm OK with packing, but I think the
pragma is the preferred form.

(5) Please spell out both "Rsvd" fields above as "Reserved".

(6) Stray space character in "Rsvd: 7".

(7) The field name "Op" is inconsistent with the other field name
"Operation".

(8) I think there is a bug (typo) in the rev 2.00 spec, in 4.1.6 "SNP
Page State Change": it says

... calculated from the supplied guest physical frame number (GFN) for
the requested page size (GPA = GFN << 12).

But, if you can choose 2MB page size in the request, then the (GPA = GFN
<< 12) formula is not g
Sorry, unfinished sentence: I meant that the formula was not generally
correct.
Actually, for any page size, the GPA for any GFN is GFN << 12.

For the SNP Page State Change NAE event, it is up to the hypervisor to
ensure that the GFN/GPA supplied is aligned appropriately for the
requested page size (see 4.1.6 of the GHCB spec where the page operations
are defined). A GFN is naturally 4K aligned, so only a 2MB page size needs
GFN/GPA alignment validation.

For the SNP Page State Change MSR protocol, only a 4K page size is supported.

Thanks,
Tom


Thanks
Laszlo


(9) If my understanding of the spec is correct, "EndEntry" has
*inclusive* meaning. That's unusual. Any particular reason for not
making "EndEntry" exclusive (in the spec)?

+
+typedef struct {
+ SNP_PAGE_STATE_HEADER Header;
+ SNP_PAGE_STATE_ENTRY Entry[SNP_PAGE_STATE_MAX_ENTRY];
+} SNP_PAGE_STATE_CHANGE_INFO;
+
#endif
Yes, this looks OK. Size is 2+2+4+253*8 = 2032 bytes, which matches the
size of GHCB.SharedBuffer.

(10) However, *if* you decide to declare SNP_PAGE_STATE_ENTRY and
SNP_PAGE_STATE_HEADER explicitly as packed, then you should do the same
for SNP_PAGE_STATE_CHANGE_INFO.

(11) Like I mentioned earlier, it's probably helpful if you start the
subject line with

MdePkg/Register/Amd: ...

on all of these MdePkg patches. If that becomes too tight, for some of
the MdePkg patches, then I suggest "MdePkg/Amd: ..." (i.e., drop
"Register").

Thanks
Laszlo

15021 - 15040 of 89698