mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-28 23:50:26 +09:00
ARM: uniphier: set loadaddr at boot-time
The base of DRAM will be changed for the next generation SoC. To support it along with existing SoCs in the single defconfig, set 'loadaddr' at boot-time by adding the offset to the DRAM base. CONFIG_SYS_LOAD_ADDR is still hard-coded for compilation, but the value from environment variable 'loadaddr' should be used. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
72cd83ab81
commit
3cc936d8ab
@ -66,6 +66,36 @@ fail:
|
||||
pr_warn("\"fdt_file\" environment variable was not set correctly\n");
|
||||
}
|
||||
|
||||
static void uniphier_set_env_addr(const char *env, const char *offset_env)
|
||||
{
|
||||
unsigned long offset = 0;
|
||||
const char *str;
|
||||
char *end;
|
||||
int ret;
|
||||
|
||||
if (env_get(env))
|
||||
return; /* do nothing if it is already set */
|
||||
|
||||
if (offset_env) {
|
||||
str = env_get(offset_env);
|
||||
if (!str)
|
||||
goto fail;
|
||||
|
||||
offset = simple_strtoul(str, &end, 16);
|
||||
if (*end)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
ret = env_set_hex(env, gd->ram_base + offset);
|
||||
if (ret)
|
||||
goto fail;
|
||||
|
||||
return;
|
||||
|
||||
fail:
|
||||
pr_warn("\"%s\" environment variable was not set correctly\n", env);
|
||||
}
|
||||
|
||||
int board_late_init(void)
|
||||
{
|
||||
puts("MODE: ");
|
||||
@ -105,5 +135,7 @@ int board_late_init(void)
|
||||
|
||||
uniphier_set_env_fdt_file();
|
||||
|
||||
uniphier_set_env_addr("loadaddr", "loadaddr_offset");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -98,8 +98,7 @@
|
||||
#define CONFIG_GATEWAYIP 192.168.11.1
|
||||
#define CONFIG_NETMASK 255.255.255.0
|
||||
|
||||
#define CONFIG_LOADADDR 0x85000000
|
||||
#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
|
||||
#define CONFIG_SYS_LOAD_ADDR 0x85000000
|
||||
#define CONFIG_SYS_BOOTM_LEN (32 << 20)
|
||||
|
||||
#if defined(CONFIG_ARM64)
|
||||
@ -158,6 +157,7 @@
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"netdev=eth0\0" \
|
||||
"initrd_high=0xffffffffffffffff\0" \
|
||||
"loadaddr_offset=0x05000000\0" \
|
||||
"script=boot.scr\0" \
|
||||
"scriptaddr=0x85000000\0" \
|
||||
"nor_base=0x42000000\0" \
|
||||
|
Loading…
Reference in New Issue
Block a user