Skip to content
Snippets Groups Projects
Commit c995f3a3 authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

ARM: uniphier: use gd->bd->bi_dram for memory reserve on LD20 SoC


For LD20 SoC, the last 64 byte of each DRAM bank is used for the
dynamic training of DRAM PHY.  The regions must be reserved in DT to
prevent the kernel from using them.  Now gd->bd->bi_dram reflects
the actual memory banks.  Just use it instead of getting access to
the board parameters.

Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
parent 3e9952be
No related branches found
No related tags found
No related merge requests found
...@@ -248,22 +248,15 @@ void dram_init_banksize(void) ...@@ -248,22 +248,15 @@ void dram_init_banksize(void)
*/ */
int ft_board_setup(void *fdt, bd_t *bd) int ft_board_setup(void *fdt, bd_t *bd)
{ {
const struct uniphier_board_data *param;
unsigned long rsv_addr; unsigned long rsv_addr;
const unsigned long rsv_size = 64; const unsigned long rsv_size = 64;
int ch, ret; int i, ret;
if (uniphier_get_soc_id() != UNIPHIER_LD20_ID) if (uniphier_get_soc_id() != UNIPHIER_LD20_ID)
return 0; return 0;
param = uniphier_get_board_param(); for (i = 0; i < ARRAY_SIZE(gd->bd->bi_dram); i++) {
if (!param) { rsv_addr = gd->bd->bi_dram[i].start + gd->bd->bi_dram[i].size;
printf("failed to get board parameter\n");
return -ENODEV;
}
for (ch = 0; ch < param->dram_nr_ch; ch++) {
rsv_addr = param->dram_ch[ch].base + param->dram_ch[ch].size;
rsv_addr -= rsv_size; rsv_addr -= rsv_size;
ret = fdt_add_mem_rsv(fdt, rsv_addr, rsv_size); ret = fdt_add_mem_rsv(fdt, rsv_addr, rsv_size);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment