public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH 0/3] Fix bugs in core ResetSystem software stack
@ 2018-06-01  7:22 Ruiyu Ni
  2018-06-01  7:22 ` [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid depending on UefiRuntimeLib Ruiyu Ni
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Ruiyu Ni @ 2018-06-01  7:22 UTC (permalink / raw)
  To: edk2-devel

Ruiyu Ni (3):
  MdeModulePkg/DxeResetSystemLib: Avoid depending on UefiRuntimeLib
  MdeModulePkg: Make sure ResetSystemRuntimeDxe uses ResetSystemLibNull
  MdePkg/UefiRuntimeLib: Do not allow to be linked by DXE driver

 MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c   | 10 +++++-----
 MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf |  3 +--
 MdeModulePkg/MdeModulePkg.dsc                                |  5 ++++-
 MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf             |  4 ++--
 4 files changed, 12 insertions(+), 10 deletions(-)

-- 
2.16.1.windows.1



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

* [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid depending on UefiRuntimeLib
  2018-06-01  7:22 [PATCH 0/3] Fix bugs in core ResetSystem software stack Ruiyu Ni
@ 2018-06-01  7:22 ` Ruiyu Ni
  2018-06-01 19:06   ` Laszlo Ersek
  2018-06-04  2:36   ` Zeng, Star
  2018-06-01  7:22 ` [PATCH 2/3] MdeModulePkg: Make sure ResetSystemRuntimeDxe uses ResetSystemLibNull Ruiyu Ni
  2018-06-01  7:22 ` [PATCH 3/3] MdePkg/UefiRuntimeLib: Do not allow to be linked by DXE driver Ruiyu Ni
  2 siblings, 2 replies; 9+ messages in thread
From: Ruiyu Ni @ 2018-06-01  7:22 UTC (permalink / raw)
  To: edk2-devel; +Cc: Star Zeng, Liming Gao

Current DxeResetSystemLib depends on UefiRuntimeLib because it calls
EfiResetSystem() API exposed by UefiRuntimeLib.

Due to the commit XXX which reverts UefiRuntimeLib to only support
DXE_RUNTIME_DRIVER, removing UefiRuntimeLib dependency makes the
DxeResetSystemLib can be used by DXE drivers.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
---
 MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c   | 10 +++++-----
 MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf |  3 +--
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c b/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c
index ea452e3231..76bca223ae 100644
--- a/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c
+++ b/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c
@@ -14,7 +14,7 @@
 
 #include <PiDxe.h>
 #include <Library/ResetSystemLib.h>
-#include <Library/UefiRuntimeLib.h>
+#include <Library/UefiRuntimeServicesTableLib.h>
 
 /**
   This function causes a system-wide reset (cold reset), in which
@@ -30,7 +30,7 @@ ResetCold (
   VOID
   )
 {
-  EfiResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);
+  gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);
 }
 
 /**
@@ -45,7 +45,7 @@ ResetWarm (
   VOID
   )
 {
-  EfiResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
+  gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
 }
 
 /**
@@ -60,7 +60,7 @@ ResetShutdown (
   VOID
   )
 {
-  EfiResetSystem (EfiResetShutdown, EFI_SUCCESS, 0, NULL);
+  gRT->ResetSystem (EfiResetShutdown, EFI_SUCCESS, 0, NULL);
 }
 
 /**
@@ -94,5 +94,5 @@ ResetPlatformSpecific (
   IN VOID    *ResetData
   )
 {
-  EfiResetSystem (EfiResetPlatformSpecific, EFI_SUCCESS, DataSize, ResetData);
+  gRT->ResetSystem (EfiResetPlatformSpecific, EFI_SUCCESS, DataSize, ResetData);
 }
diff --git a/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf b/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf
index 6eb2766b93..0d97d5899b 100644
--- a/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf
+++ b/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf
@@ -35,5 +35,4 @@ [Packages]
   MdeModulePkg/MdeModulePkg.dec
 
 [LibraryClasses]
-  UefiRuntimeLib
-
+  UefiRuntimeServicesTableLib
-- 
2.16.1.windows.1



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

* [PATCH 2/3] MdeModulePkg: Make sure ResetSystemRuntimeDxe uses ResetSystemLibNull
  2018-06-01  7:22 [PATCH 0/3] Fix bugs in core ResetSystem software stack Ruiyu Ni
  2018-06-01  7:22 ` [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid depending on UefiRuntimeLib Ruiyu Ni
@ 2018-06-01  7:22 ` Ruiyu Ni
  2018-06-01  7:22 ` [PATCH 3/3] MdePkg/UefiRuntimeLib: Do not allow to be linked by DXE driver Ruiyu Ni
  2 siblings, 0 replies; 9+ messages in thread
From: Ruiyu Ni @ 2018-06-01  7:22 UTC (permalink / raw)
  To: edk2-devel; +Cc: Star Zeng, Liming Gao

Because the DxeResetSystemLib calls gRT->ResetSystem(), make sure
the gRT->ResetSystem() implementation doesn't call into
DxeResetSystemLib to avoid chicken-egg issue.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
---
 MdeModulePkg/MdeModulePkg.dsc | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/MdeModulePkg/MdeModulePkg.dsc b/MdeModulePkg/MdeModulePkg.dsc
index ec24a50c7d..734c5e5ab7 100644
--- a/MdeModulePkg/MdeModulePkg.dsc
+++ b/MdeModulePkg/MdeModulePkg.dsc
@@ -363,7 +363,10 @@ [Components]
     <LibraryClasses>
       ResetSystemLib|MdeModulePkg/Library/BaseResetSystemLibNull/BaseResetSystemLibNull.inf
   }
-  MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
+  MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf {
+    <LibraryClasses>
+      ResetSystemLib|MdeModulePkg/Library/BaseResetSystemLibNull/BaseResetSystemLibNull.inf
+  }
   MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
   MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurementDxe.inf
 
-- 
2.16.1.windows.1



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

* [PATCH 3/3] MdePkg/UefiRuntimeLib: Do not allow to be linked by DXE driver
  2018-06-01  7:22 [PATCH 0/3] Fix bugs in core ResetSystem software stack Ruiyu Ni
  2018-06-01  7:22 ` [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid depending on UefiRuntimeLib Ruiyu Ni
  2018-06-01  7:22 ` [PATCH 2/3] MdeModulePkg: Make sure ResetSystemRuntimeDxe uses ResetSystemLibNull Ruiyu Ni
@ 2018-06-01  7:22 ` Ruiyu Ni
  2018-06-01  9:24   ` Gao, Liming
  2 siblings, 1 reply; 9+ messages in thread
From: Ruiyu Ni @ 2018-06-01  7:22 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Star Zeng

When UefiRuntimeLib links to a DXE driver, its constructor
still registers a Virtual Address Change event. The event callback
will get called when RT.SetVirtualAddressMap() is called from OS.
But when the driver is a DXE driver, the memory occupied by the
callback function might be zeroed or used by OS since the BS type
memory is free memory when entering to RT phase.

The patch reverts commit 97511979b4fdd84cf7cd51e43c22dc03e79bd4f3
"MdePkg/UefiRuntimeLib: Support more module types."
It makes sure that DXE driver cannot link to this library.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
---
 MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf b/MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
index d053da545a..8f46495fc5 100644
--- a/MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
+++ b/MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
@@ -5,7 +5,7 @@
 #  EVT_SIGNAL_EXIT_BOOT_SERVICES event, to provide runtime services.
 # This instance also supports SAL drivers for better performance.
 #
-# Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
@@ -24,7 +24,7 @@ [Defines]
   FILE_GUID                      = b1ee6c28-54aa-4d17-b705-3e28ccb27b2e
   MODULE_TYPE                    = DXE_RUNTIME_DRIVER
   VERSION_STRING                 = 1.0
-  LIBRARY_CLASS                  = UefiRuntimeLib|DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_CORE DXE_DRIVER DXE_SMM_DRIVER 
+  LIBRARY_CLASS                  = UefiRuntimeLib|DXE_RUNTIME_DRIVER DXE_SAL_DRIVER
 
   CONSTRUCTOR                    = RuntimeDriverLibConstruct
   DESTRUCTOR                     = RuntimeDriverLibDeconstruct
-- 
2.16.1.windows.1



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

* Re: [PATCH 3/3] MdePkg/UefiRuntimeLib: Do not allow to be linked by DXE driver
  2018-06-01  7:22 ` [PATCH 3/3] MdePkg/UefiRuntimeLib: Do not allow to be linked by DXE driver Ruiyu Ni
@ 2018-06-01  9:24   ` Gao, Liming
  0 siblings, 0 replies; 9+ messages in thread
From: Gao, Liming @ 2018-06-01  9:24 UTC (permalink / raw)
  To: Ni, Ruiyu, edk2-devel@lists.01.org; +Cc: Zeng, Star

Reviewed-by: Liming Gao <liming.gao@intel.com>

> -----Original Message-----
> From: Ni, Ruiyu
> Sent: Friday, June 1, 2018 3:22 PM
> To: edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>; Zeng, Star <star.zeng@intel.com>
> Subject: [PATCH 3/3] MdePkg/UefiRuntimeLib: Do not allow to be linked by DXE driver
> 
> When UefiRuntimeLib links to a DXE driver, its constructor
> still registers a Virtual Address Change event. The event callback
> will get called when RT.SetVirtualAddressMap() is called from OS.
> But when the driver is a DXE driver, the memory occupied by the
> callback function might be zeroed or used by OS since the BS type
> memory is free memory when entering to RT phase.
> 
> The patch reverts commit 97511979b4fdd84cf7cd51e43c22dc03e79bd4f3
> "MdePkg/UefiRuntimeLib: Support more module types."
> It makes sure that DXE driver cannot link to this library.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Star Zeng <star.zeng@intel.com>
> ---
>  MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf b/MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
> index d053da545a..8f46495fc5 100644
> --- a/MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
> +++ b/MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
> @@ -5,7 +5,7 @@
>  #  EVT_SIGNAL_EXIT_BOOT_SERVICES event, to provide runtime services.
>  # This instance also supports SAL drivers for better performance.
>  #
> -# Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
>  #
>  #  This program and the accompanying materials
>  #  are licensed and made available under the terms and conditions of the BSD License
> @@ -24,7 +24,7 @@ [Defines]
>    FILE_GUID                      = b1ee6c28-54aa-4d17-b705-3e28ccb27b2e
>    MODULE_TYPE                    = DXE_RUNTIME_DRIVER
>    VERSION_STRING                 = 1.0
> -  LIBRARY_CLASS                  = UefiRuntimeLib|DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_CORE DXE_DRIVER
> DXE_SMM_DRIVER
> +  LIBRARY_CLASS                  = UefiRuntimeLib|DXE_RUNTIME_DRIVER DXE_SAL_DRIVER
> 
>    CONSTRUCTOR                    = RuntimeDriverLibConstruct
>    DESTRUCTOR                     = RuntimeDriverLibDeconstruct
> --
> 2.16.1.windows.1



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

* Re: [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid depending on UefiRuntimeLib
  2018-06-01  7:22 ` [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid depending on UefiRuntimeLib Ruiyu Ni
@ 2018-06-01 19:06   ` Laszlo Ersek
  2018-06-04  3:02     ` Ni, Ruiyu
  2018-06-04  2:36   ` Zeng, Star
  1 sibling, 1 reply; 9+ messages in thread
From: Laszlo Ersek @ 2018-06-01 19:06 UTC (permalink / raw)
  To: Ruiyu Ni, edk2-devel; +Cc: Liming Gao, Star Zeng

Hi Ray,

On 06/01/18 09:22, Ruiyu Ni wrote:
> Current DxeResetSystemLib depends on UefiRuntimeLib because it calls
> EfiResetSystem() API exposed by UefiRuntimeLib.
> 
> Due to the commit XXX which reverts UefiRuntimeLib to only support

I really just cursorily skimmed the commit messages here, but I think
you forgot to update the XXX placeholder above.

Thanks!
Laszlo


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

* Re: [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid depending on UefiRuntimeLib
  2018-06-01  7:22 ` [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid depending on UefiRuntimeLib Ruiyu Ni
  2018-06-01 19:06   ` Laszlo Ersek
@ 2018-06-04  2:36   ` Zeng, Star
  2018-06-04  3:25     ` Ni, Ruiyu
  1 sibling, 1 reply; 9+ messages in thread
From: Zeng, Star @ 2018-06-04  2:36 UTC (permalink / raw)
  To: Ni, Ruiyu, edk2-devel@lists.01.org; +Cc: Gao, Liming, Zeng, Star

Could interfaces in DxeResetSystemLib be used by runtime code?
If yes, gRT needs to be converted for runtime environment as we discussed about it at https://lists.01.org/pipermail/edk2-devel/2018-February/021260.html before.



Thanks,
Star

-----Original Message-----
From: Ni, Ruiyu 
Sent: Friday, June 1, 2018 3:22 PM
To: edk2-devel@lists.01.org
Cc: Zeng, Star <star.zeng@intel.com>; Gao, Liming <liming.gao@intel.com>
Subject: [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid depending on UefiRuntimeLib

Current DxeResetSystemLib depends on UefiRuntimeLib because it calls
EfiResetSystem() API exposed by UefiRuntimeLib.

Due to the commit XXX which reverts UefiRuntimeLib to only support DXE_RUNTIME_DRIVER, removing UefiRuntimeLib dependency makes the DxeResetSystemLib can be used by DXE drivers.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
---
 MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c   | 10 +++++-----
 MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf |  3 +--
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c b/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c
index ea452e3231..76bca223ae 100644
--- a/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c
+++ b/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c
@@ -14,7 +14,7 @@
 
 #include <PiDxe.h>
 #include <Library/ResetSystemLib.h>
-#include <Library/UefiRuntimeLib.h>
+#include <Library/UefiRuntimeServicesTableLib.h>
 
 /**
   This function causes a system-wide reset (cold reset), in which @@ -30,7 +30,7 @@ ResetCold (
   VOID
   )
 {
-  EfiResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);
+  gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);
 }
 
 /**
@@ -45,7 +45,7 @@ ResetWarm (
   VOID
   )
 {
-  EfiResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
+  gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
 }
 
 /**
@@ -60,7 +60,7 @@ ResetShutdown (
   VOID
   )
 {
-  EfiResetSystem (EfiResetShutdown, EFI_SUCCESS, 0, NULL);
+  gRT->ResetSystem (EfiResetShutdown, EFI_SUCCESS, 0, NULL);
 }
 
 /**
@@ -94,5 +94,5 @@ ResetPlatformSpecific (
   IN VOID    *ResetData
   )
 {
-  EfiResetSystem (EfiResetPlatformSpecific, EFI_SUCCESS, DataSize, ResetData);
+  gRT->ResetSystem (EfiResetPlatformSpecific, EFI_SUCCESS, DataSize, 
+ ResetData);
 }
diff --git a/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf b/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf
index 6eb2766b93..0d97d5899b 100644
--- a/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf
+++ b/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf
@@ -35,5 +35,4 @@ [Packages]
   MdeModulePkg/MdeModulePkg.dec
 
 [LibraryClasses]
-  UefiRuntimeLib
-
+  UefiRuntimeServicesTableLib
--
2.16.1.windows.1



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

* Re: [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid depending on UefiRuntimeLib
  2018-06-01 19:06   ` Laszlo Ersek
@ 2018-06-04  3:02     ` Ni, Ruiyu
  0 siblings, 0 replies; 9+ messages in thread
From: Ni, Ruiyu @ 2018-06-04  3:02 UTC (permalink / raw)
  To: Laszlo Ersek, edk2-devel@lists.01.org; +Cc: Gao, Liming, Zeng, Star

Haha, you are correct! I forgot to update the commit messages!
My bad!!
I will post a new version to address all concerns, including Star's.

Thanks/Ray

> -----Original Message-----
> From: Laszlo Ersek <lersek@redhat.com>
> Sent: Saturday, June 2, 2018 3:06 AM
> To: Ni, Ruiyu <ruiyu.ni@intel.com>; edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>; Zeng, Star <star.zeng@intel.com>
> Subject: Re: [edk2] [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid
> depending on UefiRuntimeLib
> 
> Hi Ray,
> 
> On 06/01/18 09:22, Ruiyu Ni wrote:
> > Current DxeResetSystemLib depends on UefiRuntimeLib because it calls
> > EfiResetSystem() API exposed by UefiRuntimeLib.
> >
> > Due to the commit XXX which reverts UefiRuntimeLib to only support
> 
> I really just cursorily skimmed the commit messages here, but I think you
> forgot to update the XXX placeholder above.
> 
> Thanks!
> Laszlo

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

* Re: [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid depending on UefiRuntimeLib
  2018-06-04  2:36   ` Zeng, Star
@ 2018-06-04  3:25     ` Ni, Ruiyu
  0 siblings, 0 replies; 9+ messages in thread
From: Ni, Ruiyu @ 2018-06-04  3:25 UTC (permalink / raw)
  To: Zeng, Star, edk2-devel@lists.01.org; +Cc: Gao, Liming

No.
DxeResetSystemLib cannot be used by runtime driver.
1. the gRT is not converted by itself.
2. Even if we change the library implementation to convert gRT in VirtualAddressChange callback,
when DXE driver links to this library, the problem similar to UefiRuntimeLib still occurs.

So I will make a V2 patch to remove runtime driver support.

Thanks/Ray

> -----Original Message-----
> From: Zeng, Star
> Sent: Monday, June 4, 2018 10:37 AM
> To: Ni, Ruiyu <ruiyu.ni@intel.com>; edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>; Zeng, Star <star.zeng@intel.com>
> Subject: RE: [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid
> depending on UefiRuntimeLib
> 
> Could interfaces in DxeResetSystemLib be used by runtime code?
> If yes, gRT needs to be converted for runtime environment as we discussed
> about it at https://lists.01.org/pipermail/edk2-devel/2018-
> February/021260.html before.
> 
> 
> 
> Thanks,
> Star
> 
> -----Original Message-----
> From: Ni, Ruiyu
> Sent: Friday, June 1, 2018 3:22 PM
> To: edk2-devel@lists.01.org
> Cc: Zeng, Star <star.zeng@intel.com>; Gao, Liming <liming.gao@intel.com>
> Subject: [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid depending
> on UefiRuntimeLib
> 
> Current DxeResetSystemLib depends on UefiRuntimeLib because it calls
> EfiResetSystem() API exposed by UefiRuntimeLib.
> 
> Due to the commit XXX which reverts UefiRuntimeLib to only support
> DXE_RUNTIME_DRIVER, removing UefiRuntimeLib dependency makes the
> DxeResetSystemLib can be used by DXE drivers.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
> Cc: Star Zeng <star.zeng@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> ---
>  MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c   | 10
> +++++-----
>  MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf |  3 +--
>  2 files changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git
> a/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c
> b/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c
> index ea452e3231..76bca223ae 100644
> --- a/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c
> +++ b/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.c
> @@ -14,7 +14,7 @@
> 
>  #include <PiDxe.h>
>  #include <Library/ResetSystemLib.h>
> -#include <Library/UefiRuntimeLib.h>
> +#include <Library/UefiRuntimeServicesTableLib.h>
> 
>  /**
>    This function causes a system-wide reset (cold reset), in which @@ -30,7
> +30,7 @@ ResetCold (
>    VOID
>    )
>  {
> -  EfiResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);
> +  gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);
>  }
> 
>  /**
> @@ -45,7 +45,7 @@ ResetWarm (
>    VOID
>    )
>  {
> -  EfiResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
> +  gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
>  }
> 
>  /**
> @@ -60,7 +60,7 @@ ResetShutdown (
>    VOID
>    )
>  {
> -  EfiResetSystem (EfiResetShutdown, EFI_SUCCESS, 0, NULL);
> +  gRT->ResetSystem (EfiResetShutdown, EFI_SUCCESS, 0, NULL);
>  }
> 
>  /**
> @@ -94,5 +94,5 @@ ResetPlatformSpecific (
>    IN VOID    *ResetData
>    )
>  {
> -  EfiResetSystem (EfiResetPlatformSpecific, EFI_SUCCESS, DataSize,
> ResetData);
> +  gRT->ResetSystem (EfiResetPlatformSpecific, EFI_SUCCESS, DataSize,
> + ResetData);
>  }
> diff --git
> a/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf
> b/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf
> index 6eb2766b93..0d97d5899b 100644
> --- a/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf
> +++ b/MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf
> @@ -35,5 +35,4 @@ [Packages]
>    MdeModulePkg/MdeModulePkg.dec
> 
>  [LibraryClasses]
> -  UefiRuntimeLib
> -
> +  UefiRuntimeServicesTableLib
> --
> 2.16.1.windows.1



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

end of thread, other threads:[~2018-06-04  3:26 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-01  7:22 [PATCH 0/3] Fix bugs in core ResetSystem software stack Ruiyu Ni
2018-06-01  7:22 ` [PATCH 1/3] MdeModulePkg/DxeResetSystemLib: Avoid depending on UefiRuntimeLib Ruiyu Ni
2018-06-01 19:06   ` Laszlo Ersek
2018-06-04  3:02     ` Ni, Ruiyu
2018-06-04  2:36   ` Zeng, Star
2018-06-04  3:25     ` Ni, Ruiyu
2018-06-01  7:22 ` [PATCH 2/3] MdeModulePkg: Make sure ResetSystemRuntimeDxe uses ResetSystemLibNull Ruiyu Ni
2018-06-01  7:22 ` [PATCH 3/3] MdePkg/UefiRuntimeLib: Do not allow to be linked by DXE driver Ruiyu Ni
2018-06-01  9:24   ` Gao, Liming

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