From: Rob Herring <robh@kernel.org>
To: Lakshmi Ramasubramanian <nramas@linux.microsoft.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
tao.li@vivo.com, Mimi Zohar <zohar@linux.ibm.com>,
Paul Mackerras <paulus@samba.org>,
vincenzo.frascino@arm.com, Frank Rowand <frowand.list@gmail.com>,
Sasha Levin <sashal@kernel.org>,
Masahiro Yamada <masahiroy@kernel.org>,
James Morris <jmorris@namei.org>,
"AKASHI, Takahiro" <takahiro.akashi@linaro.org>,
linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
Catalin Marinas <catalin.marinas@arm.com>,
"Serge E. Hallyn" <serge@hallyn.com>,
devicetree@vger.kernel.org,
Pavel Tatashin <pasha.tatashin@soleen.com>,
Will Deacon <will@kernel.org>,
Prakhar Srivastava <prsriva@linux.microsoft.com>,
Hsin-Yi Wang <hsinyi@chromium.org>,
Allison Randal <allison@lohutok.net>,
Christophe Leroy <christophe.leroy@c-s.fr>,
Matthias Brugger <mbrugger@suse.com>,
balajib@linux.microsoft.com, dmitry.kasatkin@gmail.com,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
James Morse <james.morse@arm.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Joe Perches <joe@perches.com>,
linux-integrity@vger.kernel.org,
linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
Thiago Jung Bauermann <bauerman@linux.ibm.com>
Subject: Re: [PATCH v17 02/10] of: Add a common kexec FDT setup function
Date: Fri, 12 Feb 2021 08:38:44 -0600 [thread overview]
Message-ID: <CAL_JsqJ3sDzjsJXtb6EzE77BL+PhUxDJYUngLTqcm0popd7Ajw@mail.gmail.com> (raw)
In-Reply-To: <8a3aa3d2-2eba-549a-9970-a2b0fe3586c9@linux.microsoft.com>
On Thu, Feb 11, 2021 at 7:17 PM Lakshmi Ramasubramanian
<nramas@linux.microsoft.com> wrote:
>
> On 2/11/21 5:09 PM, Thiago Jung Bauermann wrote:
> >
> > There's actually a complication that I just noticed and needs to be
> > addressed. More below.
> >
>
> <...>
>
> >> +
> >> +/*
> >> + * of_kexec_alloc_and_setup_fdt - Alloc and setup a new Flattened Device Tree
> >> + *
> >> + * @image: kexec image being loaded.
> >> + * @initrd_load_addr: Address where the next initrd will be loaded.
> >> + * @initrd_len: Size of the next initrd, or 0 if there will be none.
> >> + * @cmdline: Command line for the next kernel, or NULL if there will
> >> + * be none.
> >> + *
> >> + * Return: fdt on success, or NULL errno on error.
> >> + */
> >> +void *of_kexec_alloc_and_setup_fdt(const struct kimage *image,
> >> + unsigned long initrd_load_addr,
> >> + unsigned long initrd_len,
> >> + const char *cmdline)
> >> +{
> >> + void *fdt;
> >> + int ret, chosen_node;
> >> + const void *prop;
> >> + unsigned long fdt_size;
> >> +
> >> + fdt_size = fdt_totalsize(initial_boot_params) +
> >> + (cmdline ? strlen(cmdline) : 0) +
> >> + FDT_EXTRA_SPACE;
> >
> > Just adding 4 KB to initial_boot_params won't be enough for crash
> > kernels on ppc64. The current powerpc code doubles the size of
> > initial_boot_params (which is normally larger than 4 KB) and even that
> > isn't enough. A patch was added to powerpc/next today which uses a more
> > precise (but arch-specific) formula:
> >
> > https://lore.kernel.org/linuxppc-dev/161243826811.119001.14083048209224609814.stgit@hbathini/
> >
> > So I believe we need a hook here where architectures can provide their
> > own specific calculation for the size of the fdt. Perhaps a weakly
> > defined function providing a default implementation which an
> > arch-specific file can override (a la arch_kexec_kernel_image_load())?
> >
> > Then the powerpc specific hook would be the kexec_fdt_totalsize_ppc64()
> > function from the patch I linked above.
> >
>
> Do you think it'd better to add "fdt_size" parameter to
> of_kexec_alloc_and_setup_fdt() so that the caller can provide the
> desired FDT buffer size?
Yes, I guess so. But please define the param as extra size, not total
size. The kernel command line size addition can be in the common code.
The above change is also going to conflict, so I think this may have
to wait. Or I'll take the common and arm bits and powerpc can be
converted next cycle (or after the merge window).
Rob
next prev parent reply other threads:[~2021-02-12 14:41 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-09 18:21 [PATCH v17 00/10] Carry forward IMA measurement log on kexec on ARM64 Lakshmi Ramasubramanian
2021-02-09 18:21 ` [PATCH v17 01/10] powerpc: Rename kexec elfcorehdr_addr to elf_headers_mem Lakshmi Ramasubramanian
2021-02-09 18:21 ` [PATCH v17 02/10] of: Add a common kexec FDT setup function Lakshmi Ramasubramanian
2021-02-10 17:23 ` Rob Herring
2021-02-10 17:59 ` Lakshmi Ramasubramanian
2021-02-10 23:24 ` Thiago Jung Bauermann
2021-02-12 1:09 ` Thiago Jung Bauermann
2021-02-12 1:17 ` Lakshmi Ramasubramanian
2021-02-12 1:39 ` Thiago Jung Bauermann
2021-02-12 14:38 ` Rob Herring [this message]
2021-02-12 17:19 ` Lakshmi Ramasubramanian
2021-02-12 18:24 ` Rob Herring
2021-02-12 18:27 ` Lakshmi Ramasubramanian
2021-02-12 19:39 ` Thiago Jung Bauermann
2021-02-09 18:21 ` [PATCH v17 03/10] arm64: Use common of_kexec_alloc_and_setup_fdt() Lakshmi Ramasubramanian
2021-02-10 17:26 ` Will Deacon
2021-02-10 23:30 ` Thiago Jung Bauermann
2021-02-09 18:21 ` [PATCH v17 04/10] powerpc: " Lakshmi Ramasubramanian
2021-02-11 1:42 ` Thiago Jung Bauermann
2021-02-11 1:50 ` Lakshmi Ramasubramanian
2021-02-09 18:21 ` [PATCH v17 05/10] powerpc: Move ima buffer fields to struct kimage Lakshmi Ramasubramanian
2021-02-10 17:20 ` Rob Herring
2021-02-10 18:00 ` Lakshmi Ramasubramanian
2021-02-09 18:21 ` [PATCH v17 06/10] powerpc: Enable passing IMA log to next kernel on kexec Lakshmi Ramasubramanian
2021-02-11 1:51 ` Thiago Jung Bauermann
2021-02-09 18:21 ` [PATCH v17 07/10] powerpc: Move arch independent ima kexec functions to drivers/of/kexec.c Lakshmi Ramasubramanian
2021-02-11 5:07 ` Thiago Jung Bauermann
2021-02-09 18:21 ` [PATCH v17 08/10] kexec: Use fdt_appendprop_addrrange() to add ima buffer to FDT Lakshmi Ramasubramanian
2021-02-09 18:21 ` [PATCH v17 09/10] powerpc: Delete unused function delete_fdt_mem_rsv() Lakshmi Ramasubramanian
2021-02-11 5:11 ` Thiago Jung Bauermann
2021-02-09 18:22 ` [PATCH v17 10/10] arm64: Enable passing IMA log to next kernel on kexec Lakshmi Ramasubramanian
2021-02-11 5:13 ` Thiago Jung Bauermann
2021-02-10 17:15 ` [PATCH v17 00/10] Carry forward IMA measurement log on kexec on ARM64 Rob Herring
2021-02-10 17:33 ` Lakshmi Ramasubramanian
2021-02-10 20:42 ` Rob Herring
2021-02-10 20:55 ` Mimi Zohar
2021-02-10 21:39 ` Mimi Zohar
2021-02-10 22:34 ` Lakshmi Ramasubramanian
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=CAL_JsqJ3sDzjsJXtb6EzE77BL+PhUxDJYUngLTqcm0popd7Ajw@mail.gmail.com \
--to=robh@kernel.org \
--cc=allison@lohutok.net \
--cc=balajib@linux.microsoft.com \
--cc=bauerman@linux.ibm.com \
--cc=catalin.marinas@arm.com \
--cc=christophe.leroy@c-s.fr \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.kasatkin@gmail.com \
--cc=frowand.list@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=hsinyi@chromium.org \
--cc=james.morse@arm.com \
--cc=jmorris@namei.org \
--cc=joe@perches.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mark.rutland@arm.com \
--cc=masahiroy@kernel.org \
--cc=mbrugger@suse.com \
--cc=nramas@linux.microsoft.com \
--cc=pasha.tatashin@soleen.com \
--cc=paulus@samba.org \
--cc=prsriva@linux.microsoft.com \
--cc=sashal@kernel.org \
--cc=serge@hallyn.com \
--cc=takahiro.akashi@linaro.org \
--cc=tao.li@vivo.com \
--cc=vincenzo.frascino@arm.com \
--cc=will@kernel.org \
--cc=zohar@linux.ibm.com \
/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;
as well as URLs for NNTP newsgroup(s).