sunxi: video: mark framebuffer as EFI reserved memory
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Sat, 3 Mar 2018 09:30:17 +0000 (10:30 +0100)
committerAnatolij Gustschin <agust@denx.de>
Fri, 9 Mar 2018 17:24:49 +0000 (18:24 +0100)
Inform the EFI subsystem that the framebuffer memory is reserved.

Without the patch the AllocatePool boot service allocates memory from the
framebuffer which will will be overwritten by screen output.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
drivers/video/sunxi/sunxi_display.c

index f191ef1..4da169f 100644 (file)
@@ -8,6 +8,7 @@
  */
 
 #include <common.h>
+#include <efi_loader.h>
 
 #include <asm/arch/clock.h>
 #include <asm/arch/display.h>
@@ -1207,6 +1208,13 @@ void *video_hw_init(void)
                      gd->bd->bi_dram[0].size - sunxi_display.fb_size;
        sunxi_engines_init();
 
+#ifdef CONFIG_EFI_LOADER
+       efi_add_memory_map(gd->fb_base,
+                          ALIGN(sunxi_display.fb_size, EFI_PAGE_SIZE) >>
+                          EFI_PAGE_SHIFT,
+                          EFI_RESERVED_MEMORY_TYPE, false);
+#endif
+
        fb_dma_addr = gd->fb_base - CONFIG_SYS_SDRAM_BASE;
        sunxi_display.fb_addr = gd->fb_base;
        if (overscan_offset) {