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 f191ef16c637900d5e44e05cb29489439bd5912f..4da169fffd8cc5a2887e7e889c5278c6e9b35cba 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) {