From: Marco Felsch <m.felsch@pengutronix.de>
To: Ahmad Fatoum <a.fatoum@pengutronix.de>
Cc: BAREBOX <barebox@lists.infradead.org>
Subject: Re: [PATCH 10/23] ARM: i.MX: scratch: add FDT support
Date: Tue, 11 Nov 2025 16:06:41 +0100 [thread overview]
Message-ID: <20251111150641.jbgefevhsyspi75o@pengutronix.de> (raw)
In-Reply-To: <e5018cae-3676-4c67-b809-84a72b647c21@pengutronix.de>
On 25-11-11, Ahmad Fatoum wrote:
> Hi,
>
> On 11/11/25 3:14 PM, Sascha Hauer wrote:
> > 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@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
>
> Easy to misconfigure. How about an additional:
>
> range 0x48000 <some big size> if PBL_EARLY_FDT_LOAD
I wasn't aware of the 'range' property. I just simply followed the
Rockchip implementation, with the exception that I wanted to provide a
sane default for the SCRATCH_SIZE too.
> >> 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?
There is a static size check for the i.MX and Rockchip case to ensure
that the overall SCRATCH_SIZE fits all members.
> I would prefer we do not complicate the "endmem" layout more than we
> have currently.
>
> What I think we want in future is an API to allocate from the scratch
> mem a handoff block and there would be no hardcoded offsets and struct
> imx_scratch_space could go away. To save handoff when switching from PBL
> to proper, we would then also allocate to the scratch space.
>
> This will probably happen separately, so I am in favor of not creating a
> new section that's removed afterwards.
I'm with Ahmad, the scratch/handoff handling could be generalized for
all platforms. IMHO the current implementation requires to much user
input (Kconfig setup), but this should be part of another patchset.
My idea is basically the same as Ahmad explained:
- Scratch pool size configured via Kconfig
- Handoff-data allocates bytes from the scratch-pool (eliminates the
moving the handoff-data)
This way barebox could check the actual FDT size (incl. adding some
space like 4K for additions).
Regards,
Marco
>
> Cheers,
> Ahmad
>
> >
> > 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 |
>
>
--
#gernperDu
#CallMeByMyFirstName
Pengutronix e.K. | |
Steuerwalder Str. 21 | https://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |
next prev parent reply other threads:[~2025-11-11 15:07 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-10 20:34 [PATCH 00/23] Improve OP-TEE handling Marco Felsch
2025-11-10 20:34 ` [PATCH 01/23] pbl: compressed-dtb: add missing includes Marco Felsch
2025-11-10 20:34 ` [PATCH 02/23] pbl: fdt: fix fdt_fixup_mem error handling Marco Felsch
2025-11-10 20:34 ` [PATCH 03/23] ARM: atf: add missing includes in atf_common.h Marco Felsch
2025-11-10 20:34 ` [PATCH 04/23] ARM: i.MX8M: add support to pass DT via imx8m{m,n,q,p}_load_and_start_image_via_tfa() Marco Felsch
2025-11-10 20:34 ` [PATCH 05/23] ARM: i.MX8M: cosmetic cleanup Marco Felsch
2025-11-10 20:34 ` [PATCH 06/23] ARM: i.MX8M: move BL32 setup into imx8m_tfa_start_bl31() Marco Felsch
2025-11-10 20:34 ` [PATCH 07/23] ARM: i.MX8M: imx8m_tfa_start_bl31() add support for bl33 and fdt Marco Felsch
2025-11-10 20:34 ` [PATCH 08/23] pbl: decomp: add pbl_dtbz_uncompress helper Marco Felsch
2025-11-10 20:34 ` [PATCH 09/23] pbl: fdt: add pbl_load_fdt helper Marco Felsch
2025-11-10 20:34 ` [PATCH 10/23] ARM: i.MX: scratch: add FDT support Marco Felsch
2025-11-11 14:14 ` Sascha Hauer
2025-11-11 14:30 ` Ahmad Fatoum
2025-11-11 15:06 ` Marco Felsch [this message]
2025-11-10 20:34 ` [PATCH 11/23] ARM: i.MX8M: esdctl: drop ddrc base from imx8m_ddrc_sdram_size Marco Felsch
2025-11-10 20:34 ` [PATCH 12/23] ARM: i.MX8M: esdctl: export imx8m_ddrc_sdram_size() Marco Felsch
2025-11-10 20:34 ` [PATCH 13/23] ARM: i.MX8M: add support to pass BL3x bl_params Marco Felsch
2025-11-10 20:34 ` [PATCH 14/23] ARM: i.MX: scratch: add OP-TEE FDTO support Marco Felsch
2025-11-10 20:34 ` [PATCH 15/23] pbl: string: add strncmp Marco Felsch
2025-11-10 20:34 ` [PATCH 16/23] pbl: fdt: add fdt_copy_node helper Marco Felsch
2025-11-10 20:34 ` [PATCH 17/23] handoff-data: Add BL32_DT_OVL entry Marco Felsch
2025-11-10 20:34 ` [PATCH 18/23] security: optee: add optee_extract_fdto helper Marco Felsch
2025-11-10 20:34 ` [PATCH 19/23] security: optee: add helpers to apply OP-TEE FDTO Marco Felsch
2025-11-10 20:35 ` [PATCH 20/23] ARM: i.MX8M: Add support to extract OP-TEE provided informations Marco Felsch
2025-11-10 20:35 ` [PATCH 21/23] of: base: register optional OP-TEE overlay Marco Felsch
2025-11-10 20:35 ` [PATCH 22/23] pbl: add support to disable/remove the /secure-chosen/stdout-path Marco Felsch
2025-11-10 20:35 ` [PATCH 23/23] ARM: i.MX8M: remove /secure-chosen/stdout-path if requested Marco Felsch
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=20251111150641.jbgefevhsyspi75o@pengutronix.de \
--to=m.felsch@pengutronix.de \
--cc=a.fatoum@pengutronix.de \
--cc=barebox@lists.infradead.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