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>
This commit is contained in:
parent
73346081ca
commit
0063fdede6
|
@ -88,6 +88,19 @@ void __init *plat_get_fdt(void)
|
||||||
return (void *)fdt;
|
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)
|
void __init plat_mem_setup(void)
|
||||||
{
|
{
|
||||||
if (mach && mach->fixup_fdt)
|
if (mach && mach->fixup_fdt)
|
||||||
|
|
|
@ -164,6 +164,19 @@ static inline void plat_swiotlb_setup(void) {}
|
||||||
* Return: Pointer to the flattened device tree blob.
|
* Return: Pointer to the flattened device tree blob.
|
||||||
*/
|
*/
|
||||||
extern void *plat_get_fdt(void);
|
extern void *plat_get_fdt(void);
|
||||||
|
|
||||||
|
#ifdef CONFIG_RELOCATABLE
|
||||||
|
|
||||||
|
/**
|
||||||
|
* plat_fdt_relocated() - Update platform's information about relocated dtb
|
||||||
|
*
|
||||||
|
* This function provides a platform-independent API to set platform's
|
||||||
|
* information about relocated DTB if it needs to be moved due to kernel
|
||||||
|
* relocation occurring at boot.
|
||||||
|
*/
|
||||||
|
void plat_fdt_relocated(void *new_location);
|
||||||
|
|
||||||
|
#endif /* CONFIG_RELOCATABLE */
|
||||||
#endif /* CONFIG_USE_OF */
|
#endif /* CONFIG_USE_OF */
|
||||||
|
|
||||||
#endif /* _ASM_BOOTINFO_H */
|
#endif /* _ASM_BOOTINFO_H */
|
||||||
|
|
Loading…
Reference in New Issue