]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPlatformPkg/ArmVExpressPkg: Use SysConfigLib in ResetSystemLib
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Sat, 11 Jun 2011 11:18:40 +0000 (11:18 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Sat, 11 Jun 2011 11:18:40 +0000 (11:18 +0000)
On ARM Versatile Express, the microcontroller can reset the entire platform.
The micro-controller can be accessed by the SysConfigLib.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11792 6f19259b-4bc3-4df7-8a09-765794883524

ArmPlatformPkg/ArmVExpressPkg/Library/ResetSystemLib/ResetSystemLib.c
ArmPlatformPkg/ArmVExpressPkg/Library/ResetSystemLib/ResetSystemLib.inf

index 88d075aed74b503b09cd6c7564fda8a45509741f..a471eb260252483cbd0c7046ea67efe7404fe6e3 100644 (file)
@@ -19,9 +19,9 @@
 #include <PiDxe.h>
 
 #include <Library/BaseLib.h>
-#include <Library/PcdLib.h>
 #include <Library/DebugLib.h>
 #include <Library/EfiResetSystemLib.h>
+#include <Library/ArmPlatformSysConfigLib.h>
 
 #include <ArmPlatform.h>
 
@@ -45,23 +45,20 @@ LibResetSystem (
   IN CHAR16           *ResetData OPTIONAL
   )
 {
-  if (ResetData != NULL) {
-    DEBUG ((EFI_D_ERROR, "%s", ResetData));
-  }
-
   switch (ResetType) {
   case EfiResetWarm:
     // Map a warm reset into a cold reset
   case EfiResetCold:
   case EfiResetShutdown:
-  default:
-    CpuDeadLoop ();
-    break;
+    // Send the REBOOT function to the platform microcontroller
+    ArmPlatformSysConfigSet (SYS_CFG_REBOOT, 0);
+
+    // We should never be here
+    while(1);
   }
 
-  // If the reset didn't work, return an error.
-  ASSERT (FALSE);
-  return EFI_DEVICE_ERROR;
+  ASSERT(FALSE);
+  return EFI_UNSUPPORTED;
 }
 
 /**
index 23d47150b926acc3f206caa26ac30d1017e9fdf2..3965e211ec6de6ff8286796916d9d56ba929e920 100644 (file)
@@ -27,8 +27,9 @@
 [Packages]
   MdePkg/MdePkg.dec
   EmbeddedPkg/EmbeddedPkg.dec
-  ArmPlatformPkg/ArmVExpressPkg/ArmVExpressPkg.dec
+  ArmPlatformPkg/ArmPlatformPkg.dec
 
 [LibraryClasses]
   DebugLib
   BaseLib
+  ArmPlatformSysConfigLib