[PATCH 1/2] boot: android: Always use 8-byte aligned DT with libfdt
Simon Glass
sjg at chromium.org
Thu Nov 13 20:33:24 CET 2025
Hi Marek,
On Tue, 11 Nov 2025 at 18:17, Marek Vasut
<marek.vasut+renesas at mailbox.org> wrote:
>
> Newer versions of libfdt strictly check whether the FDT blob
> passed to them is at 8-byte aligned offset, if it is not, then
> the library fails checks with -FDT_ERR_ALIGNMENT . Currently,
> android_image_print_dtb_contents() passed FDT directly mapped
> from abootimg to libfdt, and this FDT is not always aligned to
> 8-byte offset. Specifically, the FDTs are somewhat packed in
> the abootimg, therefore if the first FDT blob is e.g. 0xfd bytes
> long, then the next FDT blob ends up at 0xfd offset, which is
> not 8-byte aligned.
>
> Fix this by first extracting the header into 8-byte aligned buffer,
> checking only the header for validity, and then by copying the
> entire FDT into newly allocated 8-byte aligned buffer. While this
> is not efficient, it is the correct way to handle DTs, which must
> be at 8-byte aligned offsets. Mitigate the inefficiency for the
> common case by checking whether the DT might be 8-byte aligned and
> if it is, map it directly.
>
> Signed-off-by: Marek Vasut <marek.vasut+renesas at mailbox.org>
> ---
> Cc: Aaron Kling <webgeek1234 at gmail.com>
> Cc: Eddie Kovsky <ekovsky at redhat.com>
> Cc: George Chan <gchan9527 at gmail.com>
> Cc: Julien Masson <jmasson at baylibre.com>
> Cc: Mattijs Korpershoek <mkorpershoek at kernel.org>
> Cc: Nicolas Belin <nbelin at baylibre.com>
> Cc: Sam Day <me at samcday.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Tom Rini <trini at konsulko.com>
> Cc: u-boot at lists.denx.de
> ---
> boot/image-android.c | 46 +++++++++++++++++++++++++++++++++-----------
> 1 file changed, 35 insertions(+), 11 deletions(-)
>
OK, we need to adjust mkimage etc. to handle this. Until then I think
we should have a way to disable the 8-byte-alignment check as it seems
to have an enormous blast radius :-)
Regards,
Simon
More information about the U-Boot
mailing list