[PATCH 10/23] ARM: i.MX: scratch: add FDT support
Sascha Hauer
s.hauer at pengutronix.de
Tue Nov 11 06:14:34 PST 2025
On Mon, Nov 10, 2025 at 09:34:50PM +0100, Marco Felsch wrote:
> Add support to store a FDT within the scratch area. The user needs to
> query the location and size via imx_scratch_get_fdt() which can be used
> afterwards to write the actual FDT into it.
>
> Signed-off-by: Marco Felsch <m.felsch at pengutronix.de>
> ---
> arch/arm/mach-imx/scratch.c | 16 ++++++++++++++++
> common/Kconfig | 14 ++++++++++++++
> include/mach/imx/scratch.h | 2 ++
> 3 files changed, 32 insertions(+)
>
> diff --git a/arch/arm/mach-imx/scratch.c b/arch/arm/mach-imx/scratch.c
> index e4e2d25969f061c9fcdfd7c3d87701b715eb2805..9c0f1c09c4e0b863d8c95888db7cf0518f698d53 100644
> --- a/arch/arm/mach-imx/scratch.c
> +++ b/arch/arm/mach-imx/scratch.c
> @@ -16,7 +16,10 @@ struct imx_scratch_space {
> u32 bootrom_log[128];
> u32 reserved[128]; /* reserve for bootrom log */
> struct optee_header optee_hdr;
> + /* FDT needs an 8 byte alignment */
> + u8 fdt[CONFIG_SCRATCH_FDT_SIZE] __aligned(8);
> };
> +static_assert(sizeof(struct imx_scratch_space) <= CONFIG_SCRATCH_SIZE);
>
> static struct imx_scratch_space *scratch;
>
> @@ -92,3 +95,16 @@ const struct optee_header *imx_scratch_get_optee_hdr(void)
>
> return &scratch->optee_hdr;
> }
> +
> +void imx_scratch_get_fdt(void **fdt, unsigned int *fdt_sz)
> +{
> + if (!scratch) {
> + if (IN_PBL)
> + return;
> + else
> + scratch = (void *)arm_mem_scratch_get();
> + }
> +
> + *fdt = scratch->fdt;
> + *fdt_sz = sizeof(scratch->fdt);
> +}
> diff --git a/common/Kconfig b/common/Kconfig
> index eb2fb1da1e0919b6e7d5e868c48ad2e195cd8aa8..3f394416c3c376d1cf842472803a47462bb012ed 100644
> --- a/common/Kconfig
> +++ b/common/Kconfig
> @@ -302,8 +302,22 @@ config MALLOC_SIZE
> config SCRATCH_SIZE
> hex
> default 0x8000
> + default 0x48000 if PBL_EARLY_FDT_LOAD
> prompt "Scratch size"
Do I get this right that the scratch space now includes the space for
the early FDT? If yes then this can lead to inconsistencies when the
scratch space is to small. Why not add an extra space?
Sascha
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list