diff options
author | Marcin Nowakowski <marcin.nowakowski@imgtec.com> | 2016-11-23 14:43:47 +0100 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2017-01-03 16:34:45 +0100 |
commit | 0063fdede69b2cc6f861aab0641f7e25f451def9 (patch) | |
tree | 7c8a5b81b27125d89297f6c6e88a173e90952389 /arch/mips/generic | |
parent | 73346081cac18732a959be580a90abc707dea52a (diff) |
MIPS: platform: Allow for DTB to be moved during kernel relocation
Add plat_fdt_relocated(void*) API to allow the kernel relocation code to
update platform's information about the DTB location if the DTB had to
be moved due to being placed in a location used by the relocated kernel.
Signed-off-by: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14611/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/generic')
-rw-r--r-- | arch/mips/generic/init.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/mips/generic/init.c b/arch/mips/generic/init.c index d493ccbf274a..4af619215410 100644 --- a/arch/mips/generic/init.c +++ b/arch/mips/generic/init.c @@ -88,6 +88,19 @@ void __init *plat_get_fdt(void) return (void *)fdt; } +void __init plat_fdt_relocated(void *new_location) +{ + /* + * reset fdt as the cached value would point to the location + * before relocations happened and update the location argument + * if it was passed using UHI + */ + fdt = NULL; + + if (fw_arg0 == -2) + fw_arg1 = (unsigned long)new_location; +} + void __init plat_mem_setup(void) { if (mach && mach->fixup_fdt) |