diff options
Diffstat (limited to 'board/renesas/common/rcar64-common.c')
-rw-r--r-- | board/renesas/common/rcar64-common.c | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/board/renesas/common/rcar64-common.c b/board/renesas/common/rcar64-common.c new file mode 100644 index 00000000000..74ec0a46e6f --- /dev/null +++ b/board/renesas/common/rcar64-common.c @@ -0,0 +1,67 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * board/renesas/common/common.c + * + * Copyright (C) 2013 Renesas Electronics Corporation + * Copyright (C) 2013 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com> + * Copyright (C) 2015 Nobuhiro Iwamatsu <iwamatsu@nigauri.org> + */ + +#include <dm.h> +#include <fdt_support.h> +#include <hang.h> +#include <init.h> +#include <asm/global_data.h> +#include <asm/io.h> +#include <dm/uclass-internal.h> +#include <asm/arch/renesas.h> +#include <asm/system.h> +#include <linux/libfdt.h> + +DECLARE_GLOBAL_DATA_PTR; + +int dram_init(void) +{ + int ret = fdtdec_setup_mem_size_base(); + + if (current_el() == 3 && gd->ram_base == 0x48000000) { + /* + * If this U-Boot runs in EL3, make the bottom 128 MiB + * available for loading of follow up firmware blobs. + */ + gd->ram_base -= 0x8000000; + gd->ram_size += 0x8000000; + } + + return ret; +} + +int dram_init_banksize(void) +{ + int bank; + + fdtdec_setup_memory_banksize(); + + if (current_el() != 3) + return 0; + + for (bank = 0; bank < CONFIG_NR_DRAM_BANKS; bank++) { + if (gd->bd->bi_dram[bank].start != 0x48000000) + continue; + + /* + * If this U-Boot runs in EL3, make the bottom 128 MiB + * available for loading of follow up firmware blobs. + */ + gd->bd->bi_dram[bank].start -= 0x8000000; + gd->bd->bi_dram[bank].size += 0x8000000; + break; + } + + return 0; +} + +int __weak board_init(void) +{ + return 0; +} |