public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-platforms PATCH v1 0/3] *** Enable Standalone Management Mode Core Interface on AARCH64 FVP ***
@ 2018-04-06 14:46 Supreeth Venkatesh
  2018-04-06 14:46 ` [edk2-platforms PATCH v1 1/3] Platform/VExpressPkg: Enable MM communication driver Supreeth Venkatesh
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Supreeth Venkatesh @ 2018-04-06 14:46 UTC (permalink / raw)
  To: edk2-devel; +Cc: achin.gupta, leif.lindholm, ard.biesheuvel, Supreeth Venkatesh

***
PI Specification v1.5 "Volume 4: Management Mode Core Interface"
introduces the concept of MM Standalone Mode. This patchset enables
Standalone Management Mode Core Interface on AARCH64 FVP.
***

Supreeth Venkatesh (3):
  Platform/VExpressPkg: Enable MM communication driver.
  VExpressPkg: Add Test application "MmCommTest" to AArch64 FVP.
  VExpressPkg: Reorder driver load order for AARCH64 FVP.

 Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc | 14 +++++++++++++-
 Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf |  7 ++++++-
 2 files changed, 19 insertions(+), 2 deletions(-)

-- 
2.16.2



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

* [edk2-platforms PATCH v1 1/3] Platform/VExpressPkg: Enable MM communication driver.
  2018-04-06 14:46 [edk2-platforms PATCH v1 0/3] *** Enable Standalone Management Mode Core Interface on AARCH64 FVP *** Supreeth Venkatesh
@ 2018-04-06 14:46 ` Supreeth Venkatesh
  2018-04-06 14:46 ` [edk2-platforms PATCH v1 2/3] VExpressPkg: Add Test application "MmCommTest" to AArch64 FVP Supreeth Venkatesh
  2018-04-06 14:46 ` [edk2-platforms PATCH v1 3/3] VExpressPkg: Reorder driver load order for AARCH64 FVP Supreeth Venkatesh
  2 siblings, 0 replies; 5+ messages in thread
From: Supreeth Venkatesh @ 2018-04-06 14:46 UTC (permalink / raw)
  To: edk2-devel; +Cc: achin.gupta, leif.lindholm, ard.biesheuvel, Supreeth Venkatesh

This patch enables MmCommunicationDxe on AArch64 Fixed Virtual
Platform (FVP) by defining required PCDs and driver inf file.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Supreeth Venkatesh <supreeth.venkatesh@arm.com>
---
 Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc | 11 +++++++++++
 Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf |  4 ++++
 2 files changed, 15 insertions(+)

diff --git a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
index cdf9e2d497..776f107c7c 100644
--- a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
+++ b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
@@ -116,6 +116,11 @@
   ## Trustzone enable (to make the transition from EL3 to NS EL2 in ArmPlatformPkg/Sec)
   gArmTokenSpaceGuid.PcdTrustzoneSupport|TRUE
 
+!if $(ARM_STANDALONE_MM_ENABLE) == TRUE
+  gArmTokenSpaceGuid.PcdMmBufferBase|0xFF600000
+  gArmTokenSpaceGuid.PcdMmBufferSize|0x10000
+!endif
+
   #
   # ARM PrimeCell
   #
@@ -226,6 +231,12 @@
   MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
 !endif
   MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
+
+!if $(ARM_STANDALONE_MM_ENABLE) == TRUE
+  # Standalone MM Support
+  ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf
+!endif
+
   MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
     <LibraryClasses>
       NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
diff --git a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf
index 305e661a2b..711196b60b 100644
--- a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf
+++ b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf
@@ -85,6 +85,10 @@ FvNameGuid         = 87940482-fc81-41c3-87e6-399cf85ac8a0
   INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
 !if $(SECURE_BOOT_ENABLE) == TRUE
   INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
+!endif
+!if $(ARM_STANDALONE_MM_ENABLE) == TRUE
+  # Standalone MM Support
+  INF ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf
 !endif
   INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
   INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
-- 
2.16.2



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

* [edk2-platforms PATCH v1 2/3] VExpressPkg: Add Test application "MmCommTest" to AArch64 FVP.
  2018-04-06 14:46 [edk2-platforms PATCH v1 0/3] *** Enable Standalone Management Mode Core Interface on AARCH64 FVP *** Supreeth Venkatesh
  2018-04-06 14:46 ` [edk2-platforms PATCH v1 1/3] Platform/VExpressPkg: Enable MM communication driver Supreeth Venkatesh
@ 2018-04-06 14:46 ` Supreeth Venkatesh
  2018-04-06 14:46 ` [edk2-platforms PATCH v1 3/3] VExpressPkg: Reorder driver load order for AARCH64 FVP Supreeth Venkatesh
  2 siblings, 0 replies; 5+ messages in thread
From: Supreeth Venkatesh @ 2018-04-06 14:46 UTC (permalink / raw)
  To: edk2-devel; +Cc: achin.gupta, leif.lindholm, ard.biesheuvel, Supreeth Venkatesh

This patch enables "MmCommTest" application on AArch64 Fixed Virtual
Platform (FVP) by defining required inf file in description and fd
files.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Supreeth Venkatesh <supreeth.venkatesh@arm.com>
---
 Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc | 1 +
 Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf | 1 +
 2 files changed, 2 insertions(+)

diff --git a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
index 776f107c7c..1be1e0115f 100644
--- a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
+++ b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
@@ -235,6 +235,7 @@
 !if $(ARM_STANDALONE_MM_ENABLE) == TRUE
   # Standalone MM Support
   ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf
+  StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.inf
 !endif
 
   MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
diff --git a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf
index 711196b60b..d30a50884f 100644
--- a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf
+++ b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf
@@ -89,6 +89,7 @@ FvNameGuid         = 87940482-fc81-41c3-87e6-399cf85ac8a0
 !if $(ARM_STANDALONE_MM_ENABLE) == TRUE
   # Standalone MM Support
   INF ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf
+  INF StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.inf
 !endif
   INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
   INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
-- 
2.16.2



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

* [edk2-platforms PATCH v1 3/3] VExpressPkg: Reorder driver load order for AARCH64 FVP.
  2018-04-06 14:46 [edk2-platforms PATCH v1 0/3] *** Enable Standalone Management Mode Core Interface on AARCH64 FVP *** Supreeth Venkatesh
  2018-04-06 14:46 ` [edk2-platforms PATCH v1 1/3] Platform/VExpressPkg: Enable MM communication driver Supreeth Venkatesh
  2018-04-06 14:46 ` [edk2-platforms PATCH v1 2/3] VExpressPkg: Add Test application "MmCommTest" to AArch64 FVP Supreeth Venkatesh
@ 2018-04-06 14:46 ` Supreeth Venkatesh
  2018-04-11 16:20   ` Laszlo Ersek
  2 siblings, 1 reply; 5+ messages in thread
From: Supreeth Venkatesh @ 2018-04-06 14:46 UTC (permalink / raw)
  To: edk2-devel; +Cc: achin.gupta, leif.lindholm, ard.biesheuvel, Supreeth Venkatesh

ARM CPU driver inf file recently got updated to have a depedency
expression to load after GIC driver.
However, there are other Arm drivers like NorFlashDxe, MM Communication
drivers etc. which depends on ARM CPU driver for AddMemorySpace() and
its related operations to work properly.
Hence, NorflashDxe and other drivers encounter runtime asserts due to
bizzare order of loading drivers as they load ahead of ARM CPU Driver.

Hence to resolve runtime asserts due to bizzare order of loading drivers
either depex has to be updated in all the driver inf files that depend
on ARM CPU driver or reorder driver load order to load GIC Driver and
CPU driver load first.

This patch attempts to fix loading order of drivers on AARCH64 FVP.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Supreeth Venkatesh <supreeth.venkatesh@arm.com>
---
 Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc | 2 +-
 Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
index 1be1e0115f..36ffc56a5a 100644
--- a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
+++ b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
@@ -219,6 +219,7 @@
   #
   # Architectural Protocols
   #
+  ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
   ArmPkg/Drivers/CpuDxe/CpuDxe.inf
   MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
 !if $(SECURE_BOOT_ENABLE) == TRUE
@@ -270,7 +271,6 @@
   MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
   Platform/ARM/VExpressPkg/AcpiTables/AcpiTables.inf
 
-  ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
   ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
   ArmPkg/Drivers/TimerDxe/TimerDxe.inf
 !ifdef EDK2_ENABLE_PL111
diff --git a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf
index d30a50884f..1653138d8b 100644
--- a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf
+++ b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf
@@ -79,6 +79,7 @@ FvNameGuid         = 87940482-fc81-41c3-87e6-399cf85ac8a0
   #
   # PI DXE Drivers producing Architectural Protocols (EFI Services)
   #
+  INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
   INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
   INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
   INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
@@ -115,7 +116,6 @@ FvNameGuid         = 87940482-fc81-41c3-87e6-399cf85ac8a0
   INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
   INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
 
-  INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
   INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf
   INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
 !ifdef EDK2_ENABLE_PL111
-- 
2.16.2



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

* Re: [edk2-platforms PATCH v1 3/3] VExpressPkg: Reorder driver load order for AARCH64 FVP.
  2018-04-06 14:46 ` [edk2-platforms PATCH v1 3/3] VExpressPkg: Reorder driver load order for AARCH64 FVP Supreeth Venkatesh
@ 2018-04-11 16:20   ` Laszlo Ersek
  0 siblings, 0 replies; 5+ messages in thread
From: Laszlo Ersek @ 2018-04-11 16:20 UTC (permalink / raw)
  To: Supreeth Venkatesh, edk2-devel; +Cc: leif.lindholm, ard.biesheuvel

On 04/06/18 16:46, Supreeth Venkatesh wrote:
> ARM CPU driver inf file recently got updated to have a depedency
> expression to load after GIC driver.
> However, there are other Arm drivers like NorFlashDxe, MM Communication
> drivers etc. which depends on ARM CPU driver for AddMemorySpace() and
> its related operations to work properly.
> Hence, NorflashDxe and other drivers encounter runtime asserts due to
> bizzare order of loading drivers as they load ahead of ARM CPU Driver.
> 
> Hence to resolve runtime asserts due to bizzare order of loading drivers
> either depex has to be updated in all the driver inf files that depend
> on ARM CPU driver or reorder driver load order to load GIC Driver and
> CPU driver load first.
> 
> This patch attempts to fix loading order of drivers on AARCH64 FVP.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Supreeth Venkatesh <supreeth.venkatesh@arm.com>
> ---
>  Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc | 2 +-
>  Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
> index 1be1e0115f..36ffc56a5a 100644
> --- a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
> +++ b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
> @@ -219,6 +219,7 @@
>    #
>    # Architectural Protocols
>    #
> +  ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
>    ArmPkg/Drivers/CpuDxe/CpuDxe.inf
>    MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
>  !if $(SECURE_BOOT_ENABLE) == TRUE
> @@ -270,7 +271,6 @@
>    MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf
>    Platform/ARM/VExpressPkg/AcpiTables/AcpiTables.inf
>  
> -  ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
>    ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
>    ArmPkg/Drivers/TimerDxe/TimerDxe.inf
>  !ifdef EDK2_ENABLE_PL111
> diff --git a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf
> index d30a50884f..1653138d8b 100644
> --- a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf
> +++ b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.fdf
> @@ -79,6 +79,7 @@ FvNameGuid         = 87940482-fc81-41c3-87e6-399cf85ac8a0
>    #
>    # PI DXE Drivers producing Architectural Protocols (EFI Services)
>    #
> +  INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
>    INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
>    INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
>    INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
> @@ -115,7 +116,6 @@ FvNameGuid         = 87940482-fc81-41c3-87e6-399cf85ac8a0
>    INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
>    INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
>  
> -  INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
>    INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf
>    INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
>  !ifdef EDK2_ENABLE_PL111
> 

Please let's not do this; refer to the discussion here:

http://mid.mail-archive.com/CAPvkgC1TdzPMCgPJRh7E65CgFq0chsrO6Snm5vF5rokR7ZH5Cg@mail.gmail.com

(and thank you Supreeth for speaking up in that thread).

Laszlo


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

end of thread, other threads:[~2018-04-11 16:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-06 14:46 [edk2-platforms PATCH v1 0/3] *** Enable Standalone Management Mode Core Interface on AARCH64 FVP *** Supreeth Venkatesh
2018-04-06 14:46 ` [edk2-platforms PATCH v1 1/3] Platform/VExpressPkg: Enable MM communication driver Supreeth Venkatesh
2018-04-06 14:46 ` [edk2-platforms PATCH v1 2/3] VExpressPkg: Add Test application "MmCommTest" to AArch64 FVP Supreeth Venkatesh
2018-04-06 14:46 ` [edk2-platforms PATCH v1 3/3] VExpressPkg: Reorder driver load order for AARCH64 FVP Supreeth Venkatesh
2018-04-11 16:20   ` Laszlo Ersek

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