Previously, there was no way to read the global FDT config.

This patch displays the global FDT config after the boot devices in the main
menu.

Signed-off-by: Ryan Harkin <[email protected]>
---
 ArmPlatformPkg/Bds/BootMenu.c |   30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/ArmPlatformPkg/Bds/BootMenu.c b/ArmPlatformPkg/Bds/BootMenu.c
index 09e1075..2b32e83 100644
--- a/ArmPlatformPkg/Bds/BootMenu.c
+++ b/ArmPlatformPkg/Bds/BootMenu.c
@@ -659,6 +659,9 @@ BootMenuMain (
   UINTN                         Index;
   UINTN                         BootMainEntryCount;
   CHAR8                         BootOptionSelectedStr[32];
+  EFI_DEVICE_PATH_PROTOCOL*     DefaultFdtDevicePath;
+  UINTN                         FdtDevicePathSize;
+
 
   BootOption              = NULL;
   BootMainEntryCount = sizeof(BootMainEntries) / sizeof(struct 
BOOT_MAIN_ENTRY);
@@ -734,6 +737,33 @@ BootMenuMain (
     }
     BootOptionCount = OptionCount-1;
 
+    // Display the global FDT config
+    Print(L"-----------------------\n");
+      {
+        EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL*   EfiDevicePathFromTextProtocol;
+        EFI_DEVICE_PATH_PROTOCOL*             FdtDevicePath;
+        EFI_DEVICE_PATH_TO_TEXT_PROTOCOL*     DevicePathToTextProtocol;
+        CHAR16*                               DevicePathTxt;
+
+        // Get the default FDT device path
+        Status = gBS->LocateProtocol (&gEfiDevicePathFromTextProtocolGuid, 
NULL, (VOID **)&EfiDevicePathFromTextProtocol);
+        ASSERT_EFI_ERROR(Status);
+        DefaultFdtDevicePath = 
EfiDevicePathFromTextProtocol->ConvertTextToDevicePath 
((CHAR16*)PcdGetPtr(PcdFdtDevicePath));
+
+        // Get the FDT device path
+        FdtDevicePathSize = GetDevicePathSize (DefaultFdtDevicePath);
+        Status = GetEnvironmentVariable ((CHAR16 *)L"Fdt", 
&gArmGlobalVariableGuid, DefaultFdtDevicePath, &FdtDevicePathSize, (VOID 
**)&FdtDevicePath);
+
+        // Convert FdtDevicePath to text
+        if (EFI_ERROR(Status)) {
+          DevicePathTxt = L"not configured";
+        } else {
+          Status = gBS->LocateProtocol (&gEfiDevicePathToTextProtocolGuid, 
NULL, (VOID **)&DevicePathToTextProtocol);
+          DevicePathTxt = DevicePathToTextProtocol->ConvertDevicePathToText ( 
FdtDevicePath, TRUE, TRUE );
+        }
+        Print(L"Global FDT Config\n\t- %s\n", DevicePathTxt);
+      }
+
     // Display the hardcoded Boot entries
     Print(L"-----------------------\n");
     for (Index = 0; Index < BootMainEntryCount; Index++) {
-- 
1.7.9.5


------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to