armv8: EFI loader sets correct memory attributes
authorDaniel Schwyn <daniel.schwyn@inf.ethz.ch>
Mon, 17 Jun 2019 15:07:40 +0000 (17:07 +0200)
committerDaniel Schwyn <daniel.schwyn@inf.ethz.ch>
Fri, 27 Sep 2019 07:55:33 +0000 (09:55 +0200)
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>

tools/armv8_bootimage/efi_loader.c

index 836fe98..af44c22 100644 (file)
@@ -232,6 +232,12 @@ static EFI_STATUS
 build_page_tables(struct config *cfg) {
     EFI_STATUS status = EFI_SUCCESS;
 
+    /* We need the current memory map to set memory attributes */
+    status = update_memory_map();
+    if (EFI_ERROR(status)) {
+        Print(L"Failed to update memory map\n");
+    }
+
     /* Page table book keeping in static buffer
      * so we don't need malloc & friends
      */
@@ -662,7 +668,10 @@ EFI_STATUS EFIAPI efi_main(EFI_HANDLE ImageHandle,
 
     print_memory_map(1);
 
-    update_memory_map();
+    status = update_memory_map();
+    if (EFI_ERROR(status)) {
+        Print(L"Failed to update memory map\n");
+    }
 
     status = ST->BootServices->ExitBootServices(ImageHandle, mmap_key);
     if (EFI_ERROR(status)) {