summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAlexander Graf <[email protected]>2018-11-30 21:24:56 +0100
committerAlexander Graf <[email protected]>2018-12-02 21:59:37 +0100
commit7b78d6438a2b3a7f58a34934b54a1a83733b8fdd (patch)
treee7701d578d250b5cc47abad743bb73ec0738ec12 /include
parent335ce71db78b80ab43cf68fcf812fb99bac84c86 (diff)
efi_loader: Reserve unaccessible memory
On some systems, not all RAM may be usable within U-Boot. Maybe the memory maps are incomplete, maybe it's used as workaround for broken DMA. But whatever the reason may be, a platform can say that it does not wish to have its RAM accessed above a certain address by defining board_get_usable_ram_top(). In the efi_loader world, we ignored that hint, mostly because very few boards actually have real restrictions around this. So let's honor the board's wish to not access high addresses during boot time. The best way to do so is by indicating the respective pages as "allocated by firmware". That way, Operating Systems will still use the pages after boot, but before boot no allocation will use them. Reported-by: Baruch Siach <[email protected]> Signed-off-by: Alexander Graf <[email protected]> Reviewed-by: Stephen Warren <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]> Tested-by: Baruch Siach <[email protected]>
Diffstat (limited to 'include')
-rw-r--r--include/common.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/common.h b/include/common.h
index 8b561370326..a8e879e1b9a 100644
--- a/include/common.h
+++ b/include/common.h
@@ -106,6 +106,17 @@ int mdm_init(void);
void board_show_dram(phys_size_t size);
/**
+ * Get the uppermost pointer that is valid to access
+ *
+ * Some systems may not map all of their address space. This function allows
+ * boards to indicate what their highest support pointer value is for DRAM
+ * access.
+ *
+ * @param total_size Size of U-Boot (unused?)
+ */
+ulong board_get_usable_ram_top(ulong total_size);
+
+/**
* arch_fixup_fdt() - Write arch-specific information to fdt
*
* Defined in arch/$(ARCH)/lib/bootm-fdt.c