mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-24 04:34:22 +08:00
ARM: renesas: Configure DRAM size from ATF DT fragment
The ATF can pass additional information via the first four registers, x0...x3. The R-Car Gen3 with mainline ATF, register x1 contains pointer to a device tree with platform information. Parse this device tree and extract DRAM size information from it. This is useful on systems where the DRAM size can vary between configurations. Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com> Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
This commit is contained in:
parent
80b44fb376
commit
175f502734
@ -43,17 +43,37 @@ int board_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* If the firmware passed a device tree use it for U-Boot DRAM setup.
|
||||
*/
|
||||
extern u64 rcar_atf_boot_args[];
|
||||
|
||||
int dram_init(void)
|
||||
{
|
||||
if (fdtdec_setup_mem_size_base() != 0)
|
||||
return -EINVAL;
|
||||
const void *atf_fdt_blob = (const void *)(rcar_atf_boot_args[1]);
|
||||
const void *blob;
|
||||
|
||||
return 0;
|
||||
/* Check if ATF passed us DTB. If not, fall back to builtin DTB. */
|
||||
if (fdt_magic(atf_fdt_blob) == FDT_MAGIC)
|
||||
blob = atf_fdt_blob;
|
||||
else
|
||||
blob = gd->fdt_blob;
|
||||
|
||||
return fdtdec_setup_mem_size_base_fdt(blob);
|
||||
}
|
||||
|
||||
int dram_init_banksize(void)
|
||||
{
|
||||
fdtdec_setup_memory_banksize();
|
||||
const void *atf_fdt_blob = (const void *)(rcar_atf_boot_args[1]);
|
||||
const void *blob;
|
||||
|
||||
/* Check if ATF passed us DTB. If not, fall back to builtin DTB. */
|
||||
if (fdt_magic(atf_fdt_blob) == FDT_MAGIC)
|
||||
blob = atf_fdt_blob;
|
||||
else
|
||||
blob = gd->fdt_blob;
|
||||
|
||||
fdtdec_setup_memory_banksize_fdt(blob);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -69,17 +69,37 @@ int board_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* If the firmware passed a device tree use it for U-Boot DRAM setup.
|
||||
*/
|
||||
extern u64 rcar_atf_boot_args[];
|
||||
|
||||
int dram_init(void)
|
||||
{
|
||||
if (fdtdec_setup_mem_size_base() != 0)
|
||||
return -EINVAL;
|
||||
const void *atf_fdt_blob = (const void *)(rcar_atf_boot_args[1]);
|
||||
const void *blob;
|
||||
|
||||
return 0;
|
||||
/* Check if ATF passed us DTB. If not, fall back to builtin DTB. */
|
||||
if (fdt_magic(atf_fdt_blob) == FDT_MAGIC)
|
||||
blob = atf_fdt_blob;
|
||||
else
|
||||
blob = gd->fdt_blob;
|
||||
|
||||
return fdtdec_setup_mem_size_base_fdt(blob);
|
||||
}
|
||||
|
||||
int dram_init_banksize(void)
|
||||
{
|
||||
fdtdec_setup_memory_banksize();
|
||||
const void *atf_fdt_blob = (const void *)(rcar_atf_boot_args[1]);
|
||||
const void *blob;
|
||||
|
||||
/* Check if ATF passed us DTB. If not, fall back to builtin DTB. */
|
||||
if (fdt_magic(atf_fdt_blob) == FDT_MAGIC)
|
||||
blob = atf_fdt_blob;
|
||||
else
|
||||
blob = gd->fdt_blob;
|
||||
|
||||
fdtdec_setup_memory_banksize_fdt(blob);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -68,17 +68,37 @@ int board_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* If the firmware passed a device tree use it for U-Boot DRAM setup.
|
||||
*/
|
||||
extern u64 rcar_atf_boot_args[];
|
||||
|
||||
int dram_init(void)
|
||||
{
|
||||
if (fdtdec_setup_mem_size_base() != 0)
|
||||
return -EINVAL;
|
||||
const void *atf_fdt_blob = (const void *)(rcar_atf_boot_args[1]);
|
||||
const void *blob;
|
||||
|
||||
return 0;
|
||||
/* Check if ATF passed us DTB. If not, fall back to builtin DTB. */
|
||||
if (fdt_magic(atf_fdt_blob) == FDT_MAGIC)
|
||||
blob = atf_fdt_blob;
|
||||
else
|
||||
blob = gd->fdt_blob;
|
||||
|
||||
return fdtdec_setup_mem_size_base_fdt(blob);
|
||||
}
|
||||
|
||||
int dram_init_banksize(void)
|
||||
{
|
||||
fdtdec_setup_memory_banksize();
|
||||
const void *atf_fdt_blob = (const void *)(rcar_atf_boot_args[1]);
|
||||
const void *blob;
|
||||
|
||||
/* Check if ATF passed us DTB. If not, fall back to builtin DTB. */
|
||||
if (fdt_magic(atf_fdt_blob) == FDT_MAGIC)
|
||||
blob = atf_fdt_blob;
|
||||
else
|
||||
blob = gd->fdt_blob;
|
||||
|
||||
fdtdec_setup_memory_banksize_fdt(blob);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user