1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com> 4 */ 5 6 #include <common.h> 7 #include <fdtdec.h> 8 #include <init.h> 9 #include <asm/global_data.h> 10 #include <linux/sizes.h> 11 12 DECLARE_GLOBAL_DATA_PTR; 13 dram_init(void)14int dram_init(void) 15 { 16 return fdtdec_setup_mem_size_base(); 17 } 18 dram_init_banksize(void)19int dram_init_banksize(void) 20 { 21 return fdtdec_setup_memory_banksize(); 22 } 23 board_get_usable_ram_top(ulong total_size)24ulong board_get_usable_ram_top(ulong total_size) 25 { 26 /* 27 * Ensure that we run from first 4GB so that all 28 * addresses used by U-Boot are 32bit addresses. 29 * 30 * This in-turn ensures that 32bit DMA capable 31 * devices work fine because DMA mapping APIs will 32 * provide 32bit DMA addresses only. 33 */ 34 if (gd->ram_top >= SZ_4G) 35 return SZ_4G - 1; 36 37 return gd->ram_top; 38 } 39