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