]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg/BmBoot: Report status when fail to load/start boot option
authorDandan Bi <dandan.bi@intel.com>
Fri, 15 Feb 2019 05:58:50 +0000 (13:58 +0800)
committerLiming Gao <liming.gao@intel.com>
Tue, 19 Feb 2019 08:15:05 +0000 (16:15 +0800)
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1398

According to PI1.7 Spec, report extended data describing an
EFI_STATUS return value along with
EFI_SW_DXE_BS_EC_BOOT_OPTION_LOAD_ERROR and
EFI_SW_DXE_BS_EC_BOOT_OPTION_FAILED status code
when fail to load or start boot option image.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao Wu <hao.a.wu@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c

index 6444fb43eb317739d36cff08b516daf52fa46e31..9be1633b74806fae21614aa3d75fe35563ea4028 100644 (file)
@@ -1820,11 +1820,16 @@ EfiBootManagerBoot (
 \r
     if (EFI_ERROR (Status)) {\r
       //\r
-      // Report Status Code to indicate that the failure to load boot option\r
+      // Report Status Code with the failure status to indicate that the failure to load boot option\r
       //\r
-      REPORT_STATUS_CODE (\r
+      REPORT_STATUS_CODE_EX (\r
         EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
-        (EFI_SOFTWARE_DXE_BS_DRIVER | EFI_SW_DXE_BS_EC_BOOT_OPTION_LOAD_ERROR)\r
+        (EFI_SOFTWARE_DXE_BS_DRIVER | EFI_SW_DXE_BS_EC_BOOT_OPTION_LOAD_ERROR),\r
+        0,\r
+        NULL,\r
+        NULL,\r
+        &Status,\r
+        sizeof (EFI_STATUS)\r
         );\r
       BootOption->Status = Status;\r
       //\r
@@ -1904,11 +1909,16 @@ EfiBootManagerBoot (
   BootOption->Status = Status;\r
   if (EFI_ERROR (Status)) {\r
     //\r
-    // Report Status Code to indicate that boot failure\r
+    // Report Status Code with the failure status to indicate that boot failure\r
     //\r
-    REPORT_STATUS_CODE (\r
+    REPORT_STATUS_CODE_EX (\r
       EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
-      (EFI_SOFTWARE_DXE_BS_DRIVER | EFI_SW_DXE_BS_EC_BOOT_OPTION_FAILED)\r
+      (EFI_SOFTWARE_DXE_BS_DRIVER | EFI_SW_DXE_BS_EC_BOOT_OPTION_FAILED),\r
+      0,\r
+      NULL,\r
+      NULL,\r
+      &Status,\r
+      sizeof (EFI_STATUS)\r
       );\r
   }\r
   PERF_END_EX (gImageHandle, "BdsAttempt", NULL, 0, (UINT32) OptionNumber);\r