]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
armv8: Add global variable resv_ram
authorYork Sun <york.sun@nxp.com>
Mon, 6 Mar 2017 17:02:24 +0000 (09:02 -0800)
committerYork Sun <york.sun@nxp.com>
Tue, 14 Mar 2017 15:44:03 +0000 (08:44 -0700)
Use gd->arch.resv_ram to track reserved memory allocation.

Signed-off-by: York Sun <york.sun@nxp.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
arch/arm/cpu/armv8/fsl-layerscape/Kconfig
arch/arm/include/asm/global_data.h
cmd/bdinfo.c

index b5609ff7a67f018de78f622c99ab4f7d1fd7d9d9..b8b9cd58c4904d2cd361cd114cdbd3e645a0ffc4 100644 (file)
@@ -277,6 +277,16 @@ config SYS_FSL_SDHC_CLK_DIV
          clock, in another word SDHC_clk = Platform_clk / this_divider.
 endmenu
 
+config RESV_RAM
+       bool
+       help
+         Reserve memory from the top, tracked by gd->arch.resv_ram. This
+         reserved RAM can be used by special driver that resides in memory
+         after U-Boot exits. It's up to implementation to allocate and allow
+         access to this reserved memory. For example, the reserved RAM can
+         be at the high end of physical memory. The reserve RAM may be
+         excluded from memory bank(s) passed to OS, or marked as reserved.
+
 config SYS_FSL_ERRATUM_A008336
        bool
 
index aee87cdcbf9e1b0c81a287475131476bc7ae01fc..dfcbcceba3bd849ab6d1ace17fced5b2583cfd6b 100644 (file)
@@ -59,6 +59,13 @@ struct arch_global_data {
        phys_addr_t secure_ram;
        unsigned long tlb_allocated;
 #endif
+#ifdef CONFIG_RESV_RAM
+       /*
+        * Reserved RAM for memory resident, eg. Management Complex (MC)
+        * driver which continues to run after U-Boot exits.
+        */
+       phys_addr_t resv_ram;
+#endif
 
 #ifdef CONFIG_ARCH_OMAP2
        u32 omap_boot_device;
index ae3027a297bf7eefc1a7d15d0879933d36348e0e..19b8fd88fa3f8b17f00d159c3e06c96835b87acf 100644 (file)
@@ -392,6 +392,10 @@ static int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc,
                          gd->arch.secure_ram & MEM_RESERVE_SECURE_ADDR_MASK);
        }
 #endif
+#ifdef CONFIG_RESV_RAM
+       if (gd->arch.resv_ram)
+               print_num("Reserved ram", gd->arch.resv_ram);
+#endif
 #if defined(CONFIG_CMD_NET) && !defined(CONFIG_DM_ETH)
        print_eths();
 #endif