From: Marco Felsch <m.felsch@pengutronix.de>
To: Sascha Hauer <s.hauer@pengutronix.de>,
BAREBOX <barebox@lists.infradead.org>
Cc: Marco Felsch <m.felsch@pengutronix.de>
Subject: [PATCH v2 06/15] ARM: i.MX: scratch: add FDT support
Date: Wed, 04 Feb 2026 21:01:22 +0100 [thread overview]
Message-ID: <20260204-v2025-09-0-topic-optee-of-handling-v2-6-da075e6818e0@pengutronix.de> (raw)
In-Reply-To: <20260204-v2025-09-0-topic-optee-of-handling-v2-0-da075e6818e0@pengutronix.de>
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 | 24 ++++++++++++++++++++++++
common/Kconfig | 14 ++++++++++++++
include/mach/imx/scratch.h | 2 ++
3 files changed, 40 insertions(+)
diff --git a/arch/arm/mach-imx/scratch.c b/arch/arm/mach-imx/scratch.c
index e4e2d25969f061c9fcdfd7c3d87701b715eb2805..da138445dfb352f2f3497be77004aefc7d46f188 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,24 @@ const struct optee_header *imx_scratch_get_optee_hdr(void)
return &scratch->optee_hdr;
}
+
+u8 *imx_scratch_get_fdt(unsigned int *fdt_sz)
+{
+ unsigned int sz;
+
+ if (!scratch) {
+ if (IN_PBL)
+ return ERR_PTR(-EINVAL);
+ else
+ scratch = (void *)arm_mem_scratch_get();
+ }
+
+ sz = sizeof(scratch->fdt);
+ if (sz == 0)
+ return NULL;
+
+ if (fdt_sz)
+ *fdt_sz = sz;
+
+ return scratch->fdt;
+}
diff --git a/common/Kconfig b/common/Kconfig
index 50c26695b2b56a943edfd00a7e0cb1067ad269a9..265652900a5632177d36efa84d590be6db2e7015 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -304,6 +304,20 @@ config SCRATCH_SIZE
default 0x8000
prompt "Scratch size"
+config SCRATCH_FDT_SIZE
+ hex
+ default 0x0
+ prompt "Scratch FDT size"
+ help
+ The size of the scratch area used as destination to load and optional
+ decompress the barebox builtin DTB into it. Can be 0x0 if early FDT
+ support is not requied.
+
+ If specified, SCRATCH_FDT_SIZE <= SCRATCH_SIZE must be ensured.
+
+ This option should match the OP-TEE's CFG_DTB_MAX_SIZE configuration
+ if used by OP-TEE.
+
config MALLOC_ALIGNMENT
hex
default 8
diff --git a/include/mach/imx/scratch.h b/include/mach/imx/scratch.h
index 6c2cecabcd80f71aa754736322151d63f2711745..b74d19a560f33da0a11621af7e11abdce6d1c295 100644
--- a/include/mach/imx/scratch.h
+++ b/include/mach/imx/scratch.h
@@ -14,6 +14,8 @@ struct optee_header;
const struct optee_header *imx_scratch_get_optee_hdr(void);
void imx_scratch_save_optee_hdr(const struct optee_header *hdr);
+u8 *imx_scratch_get_fdt(unsigned int *fdt_sz);
+
#define imx8mq_init_scratch_space() imx8m_init_scratch_space(32, true)
#define imx8mm_init_scratch_space() imx8m_init_scratch_space(32, true)
#define imx8mn_init_scratch_space() imx8m_init_scratch_space(16, true)
--
2.47.3
next prev parent reply other threads:[~2026-02-04 20:02 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-04 20:01 [PATCH v2 00/15] Improve OP-TEE handling Marco Felsch
2026-02-04 20:01 ` [PATCH v2 01/15] ARM: i.MX8M: add support to pass DT via lowlevel __imx8m*_load_and_start_image_via_tfa() Marco Felsch
2026-02-06 9:04 ` Ahmad Fatoum
2026-02-04 20:01 ` [PATCH v2 02/15] ARM: i.MX8M: move BL32 setup into imx8m_tfa_start_bl31() Marco Felsch
2026-02-04 20:01 ` [PATCH v2 03/15] ARM: i.MX8M: imx8m_tfa_start_bl31() add support for bl33 and fdt Marco Felsch
2026-02-04 20:01 ` [PATCH v2 04/15] pbl: decomp: add pbl_dtbz_uncompress helper Marco Felsch
2026-02-04 20:01 ` [PATCH v2 05/15] pbl: fdt: add pbl_load_fdt helper Marco Felsch
2026-02-06 9:16 ` Ahmad Fatoum
2026-02-04 20:01 ` Marco Felsch [this message]
2026-02-06 9:40 ` [PATCH v2 06/15] ARM: i.MX: scratch: add FDT support Ahmad Fatoum
2026-02-06 10:02 ` Marco Felsch
2026-02-06 13:01 ` Ahmad Fatoum
2026-02-09 20:50 ` Marco Felsch
2026-02-09 20:59 ` Ahmad Fatoum
2026-02-10 9:35 ` Marco Felsch
2026-02-10 9:41 ` Ahmad Fatoum
2026-02-04 20:01 ` [PATCH v2 07/15] ARM: i.MX8M: esdctl: drop ddrc base from imx8m_ddrc_sdram_size Marco Felsch
2026-02-04 20:01 ` [PATCH v2 08/15] ARM: i.MX8M: esdctl: export imx8m_ddrc_sdram_size() Marco Felsch
2026-02-04 20:01 ` [PATCH v2 09/15] ARM: i.MX8M: add support to pass BL3x bl_params Marco Felsch
2026-02-05 17:02 ` Michael Tretter
2026-02-05 22:41 ` Marco Felsch
2026-02-06 10:20 ` Ahmad Fatoum
2026-02-06 13:46 ` Marco Felsch
2026-02-06 11:55 ` Ahmad Fatoum
2026-02-04 20:01 ` [PATCH v2 10/15] handoff-data: Add TEE_DT_OVL entry Marco Felsch
2026-02-06 11:56 ` Ahmad Fatoum
2026-02-04 20:01 ` [PATCH v2 11/15] security: optee: add optee_handoff_overlay helper Marco Felsch
2026-02-06 12:25 ` Ahmad Fatoum
2026-02-09 20:18 ` Marco Felsch
2026-02-04 20:01 ` [PATCH v2 12/15] security: optee: add helpers to register OF overlays Marco Felsch
2026-02-06 12:09 ` Ahmad Fatoum
2026-02-09 20:17 ` Marco Felsch
2026-02-04 20:01 ` [PATCH v2 13/15] ARM: i.MX8M: Pass optional OP-TEE overlay to barebox Marco Felsch
2026-02-06 12:04 ` Ahmad Fatoum
2026-02-04 20:01 ` [PATCH v2 14/15] of: base: register optional OP-TEE overlay Marco Felsch
2026-02-06 12:05 ` Ahmad Fatoum
2026-02-06 13:24 ` Marco Felsch
2026-02-04 20:01 ` [PATCH v2 15/15] handoff-data: add missing include Marco Felsch
2026-02-06 12:07 ` Ahmad Fatoum
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=20260204-v2025-09-0-topic-optee-of-handling-v2-6-da075e6818e0@pengutronix.de \
--to=m.felsch@pengutronix.de \
--cc=barebox@lists.infradead.org \
--cc=s.hauer@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