From: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
To: Ralf Baechle <ralf@linux-mips.org>, <linux-mips@linux-mips.org>
Subject: [PATCH 05/10] MIPS: platform: allow for DTB to be moved during kernel relocation
Date: Wed, 23 Nov 2016 14:43:47 +0100 [thread overview]
Message-ID: <1479908632-30392-6-git-send-email-marcin.nowakowski@imgtec.com> (raw)
In-Reply-To: <1479908632-30392-1-git-send-email-marcin.nowakowski@imgtec.com>
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>
---
arch/mips/generic/init.c | 13 +++++++++++++
arch/mips/include/asm/bootinfo.h | 13 +++++++++++++
2 files changed, 26 insertions(+)
diff --git a/arch/mips/generic/init.c b/arch/mips/generic/init.c
index d493ccb..4af6192 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)
diff --git a/arch/mips/include/asm/bootinfo.h b/arch/mips/include/asm/bootinfo.h
index ee9f5f2..e26a093 100644
--- a/arch/mips/include/asm/bootinfo.h
+++ b/arch/mips/include/asm/bootinfo.h
@@ -164,6 +164,19 @@ static inline void plat_swiotlb_setup(void) {}
* Return: Pointer to the flattened device tree blob.
*/
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 /* _ASM_BOOTINFO_H */
--
2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
To: Ralf Baechle <ralf@linux-mips.org>, linux-mips@linux-mips.org
Subject: [PATCH 05/10] MIPS: platform: allow for DTB to be moved during kernel relocation
Date: Wed, 23 Nov 2016 14:43:47 +0100 [thread overview]
Message-ID: <1479908632-30392-6-git-send-email-marcin.nowakowski@imgtec.com> (raw)
Message-ID: <20161123134347.YRRZGZ2PGs5P3tRxY1-_ZutAyd3fGM3Kbf-h6wuksQY@z> (raw)
In-Reply-To: <1479908632-30392-1-git-send-email-marcin.nowakowski@imgtec.com>
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>
---
arch/mips/generic/init.c | 13 +++++++++++++
arch/mips/include/asm/bootinfo.h | 13 +++++++++++++
2 files changed, 26 insertions(+)
diff --git a/arch/mips/generic/init.c b/arch/mips/generic/init.c
index d493ccb..4af6192 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)
diff --git a/arch/mips/include/asm/bootinfo.h b/arch/mips/include/asm/bootinfo.h
index ee9f5f2..e26a093 100644
--- a/arch/mips/include/asm/bootinfo.h
+++ b/arch/mips/include/asm/bootinfo.h
@@ -164,6 +164,19 @@ static inline void plat_swiotlb_setup(void) {}
* Return: Pointer to the flattened device tree blob.
*/
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 /* _ASM_BOOTINFO_H */
--
2.7.4
next prev parent reply other threads:[~2016-11-23 13:46 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-23 13:43 [PATCH 00/10] various fixes for kexec crashkernel support Marcin Nowakowski
2016-11-23 13:43 ` Marcin Nowakowski
2016-11-23 13:43 ` [PATCH 01/10] MIPS: do not request resources for crashkernel if one isn't defined Marcin Nowakowski
2016-11-23 13:43 ` Marcin Nowakowski
2016-11-23 13:43 ` [PATCH 02/10] MIPS: init: ensure reserved memory regions are not added to bootmem Marcin Nowakowski
2016-11-23 13:43 ` Marcin Nowakowski
2016-11-23 13:43 ` [PATCH 03/10] MIPS: init: ensure bootmem does not corrupt reserved memory Marcin Nowakowski
2016-11-23 13:43 ` Marcin Nowakowski
2016-11-23 13:43 ` [PATCH 04/10] MIPS: use early_init_fdt_reserve_self to protect DTB location Marcin Nowakowski
2016-11-23 13:43 ` Marcin Nowakowski
2016-11-23 13:43 ` Marcin Nowakowski [this message]
2016-11-23 13:43 ` [PATCH 05/10] MIPS: platform: allow for DTB to be moved during kernel relocation Marcin Nowakowski
2016-11-23 13:43 ` [PATCH 06/10] MIPS: relocate: optionally relocate the DTB Marcin Nowakowski
2016-11-23 13:43 ` Marcin Nowakowski
2016-11-23 13:43 ` [PATCH 07/10] MIPS: fix mem=X@Y commandline processing Marcin Nowakowski
2016-11-23 13:43 ` Marcin Nowakowski
2016-11-23 13:43 ` [PATCH 08/10] MIPS: kexec: do not reserve invalid crashkernel memory on boot Marcin Nowakowski
2016-11-23 13:43 ` Marcin Nowakowski
2016-11-23 13:43 ` [PATCH 09/10] MIPS: kexec: add debug info about the new kexec'ed image Marcin Nowakowski
2016-11-23 13:43 ` Marcin Nowakowski
2016-11-23 13:43 ` [PATCH 10/10] MIPS: generic/kexec: add support for a DTB passed in a separate buffer Marcin Nowakowski
2016-11-23 13:43 ` Marcin Nowakowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1479908632-30392-6-git-send-email-marcin.nowakowski@imgtec.com \
--to=marcin.nowakowski@imgtec.com \
--cc=linux-mips@linux-mips.org \
--cc=ralf@linux-mips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox