From: Michael Olbrich <m.olbrich@pengutronix.de>
To: ptxdist@pengutronix.de
Cc: Alexander Dahl <ada@thorsis.com>
Subject: Re: [ptxdist] [APPLIED] kernel-fit: Allow using 'kernel_noload' as sub-image type
Date: Thu, 8 Feb 2024 17:03:34 +0100 [thread overview]
Message-ID: <20240208160334.3248770-1-m.olbrich@pengutronix.de> (raw)
In-Reply-To: <20240202151209.2535721-3-ada@thorsis.com>
Thanks, applied as d2be5e8d92708ef2c0fdcfa86c9d351556379537.
Michael
[sent from post-receive hook]
On Thu, 08 Feb 2024 17:03:34 +0100, Alexander Dahl <ada@thorsis.com> wrote:
> Multi platform kernels built by the kernel-fit rule before are not
> usable in U-Boot, which adheres more strictly to the Flat Image Tree
> (FIT) spec than barebox does. For image sub-type 'kernel' U-Boot
> expects valid 'load' and 'entry' addresses. Setting those addresses to
> a generic value is impossible however for generic kernels, e.g. the
> DistroKit v7a kernel needs different addresses on at91 SAMA5 than
> on i.MX6. barebox circumvents this by ignoring missing 'load' and
> 'entry' addresses and finding a suitable address by itself. For using
> generic kernels in U-Boot you need sub-image type 'kernel_noload' and
> dummy addresses, which is also supported in barebox from v2024.01.0
> release onwards.
>
> Link: https://github.com/open-source-firmware/flat-image-tree/releases/download/v0.8/fit-specification-v0.8.pdf
> Link: https://lore.barebox.org/barebox/20231129203106.2417486-1-a.fatoum@pengutronix.de/
> Signed-off-by: Alexander Dahl <ada@thorsis.com>
> Message-Id: <20240202151209.2535721-3-ada@thorsis.com>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
>
> diff --git a/platforms/kernel-fit.in b/platforms/kernel-fit.in
> index 0e82889b9ede..5b160c57ddf6 100644
> --- a/platforms/kernel-fit.in
> +++ b/platforms/kernel-fit.in
> @@ -17,14 +17,31 @@ menuconfig KERNEL_FIT
>
> if KERNEL_FIT
>
> +config KERNEL_FIT_NOLOAD
> + bool
> + prompt "Sub-image type 'kernel_noload'"
> + help
> + Use 'kernel_noload' as sub-image type for the kernel, setting
> + the load address and entry address to dummy values as required
> + by the FIT image specification.
> + Useful for booting kernels supporting multiple boards with
> + U-Boot, e.g. the platform-v7a kernel of DistroKit.
> + U-Boot supports this since release v2011.12.
> +
> + Note: barebox added support with release v2024.01.0.
> + You can leave this option disabled if you only use barebox.
> + You should not enable this if you use older barebox versions.
> +
> config KERNEL_FIT_LOAD
> string
> + depends on !KERNEL_FIT_NOLOAD
> prompt "Kernel load address (optional)"
> help
> Required by most bootloaders. Optional for Barebox.
>
> config KERNEL_FIT_ENTRY
> string
> + depends on !KERNEL_FIT_NOLOAD
> prompt "Kernel entry address (optional)"
> help
> Required by most bootloaders. Optional for Barebox.
> diff --git a/scripts/lib/ptxd_make_fit_image.sh b/scripts/lib/ptxd_make_fit_image.sh
> index dd0f63b7b72d..4b99e6fbfec3 100644
> --- a/scripts/lib/ptxd_make_fit_image.sh
> +++ b/scripts/lib/ptxd_make_fit_image.sh
> @@ -19,20 +19,30 @@ ptxd_make_image_fit_its() {
> kernel {
> description = "kernel";
> data = /incbin/("${image_kernel}");
> - type = "kernel";
> arch = "$(ptxd_get_ptxconf PTXCONF_ARCH_STRING)";
> os = "linux";
> compression = "none";
> EOF
> - if [ -n "$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_LOAD)" ]; then
> + if [ -n "$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_NOLOAD)" ]; then
> cat << EOF
> - load = <$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_LOAD)>;
> + type = "kernel_noload";
> + load = <0x00000000>;
> + entry = <0x00000000>;
> EOF
> - fi
> - if [ -n "$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_ENTRY)" ]; then
> + else
> cat << EOF
> + type = "kernel";
> +EOF
> + if [ -n "$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_LOAD)" ]; then
> + cat << EOF
> + load = <$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_LOAD)>;
> +EOF
> + fi
> + if [ -n "$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_ENTRY)" ]; then
> + cat << EOF
> entry = <$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_ENTRY)>;
> EOF
> + fi
> fi
> cat << EOF
> hash-1 {
next prev parent reply other threads:[~2024-02-08 16:09 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-02 15:12 [ptxdist] [PATCH 0/5] FIT images with U-Boot and barebox on recent DistroKit Alexander Dahl
2024-02-02 15:12 ` [ptxdist] [PATCH 1/5] kernel-fit: Review help text Alexander Dahl
2024-02-08 16:03 ` [ptxdist] [APPLIED] " Michael Olbrich
2024-02-02 15:12 ` [ptxdist] [PATCH 2/5] kernel-fit: Allow using 'kernel_noload' as sub-image type Alexander Dahl
2024-02-08 16:03 ` Michael Olbrich [this message]
2024-02-02 15:12 ` [ptxdist] [PATCH 3/5] blspec-entry: Fix kernel entry for FIT image Alexander Dahl
2024-02-08 16:03 ` [ptxdist] [APPLIED] " Michael Olbrich
2024-02-02 15:12 ` [ptxdist] [PATCH 4/5] u-boot: Avoid hooking oldconfig if kconfig is not selected Alexander Dahl
2024-02-08 16:03 ` [ptxdist] [APPLIED] " Michael Olbrich
2024-02-02 15:12 ` [ptxdist] [PATCH 5/5] image-rauc: Fix quotation marks / whitespace handling Alexander Dahl
2024-02-06 11:41 ` Roland Hieber
2024-02-08 16:03 ` [ptxdist] [APPLIED] " Michael Olbrich
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=20240208160334.3248770-1-m.olbrich@pengutronix.de \
--to=m.olbrich@pengutronix.de \
--cc=ada@thorsis.com \
--cc=ptxdist@pengutronix.de \
/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