[PATCH v10 5/7] mach-k3: r5: common: add fdt fixups for falcon mode
Anshul Dalal
anshuld at ti.com
Fri Oct 31 08:37:55 CET 2025
This patch adds fdt fixups to the kernel device-tree in R5 falcon mode,
these fixups include fixing up the core-count, reserved-memory etc.
The users can opt out by disabling the respective CONFIG_OF_*_SETUP
config options.
Signed-off-by: Anshul Dalal <anshuld at ti.com>
---
arch/arm/mach-k3/r5/common.c | 38 ++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/arch/arm/mach-k3/r5/common.c b/arch/arm/mach-k3/r5/common.c
index bf5e7903dcb..8e002504897 100644
--- a/arch/arm/mach-k3/r5/common.c
+++ b/arch/arm/mach-k3/r5/common.c
@@ -406,12 +406,43 @@ int k3_r5_falcon_bootmode(void)
return BOOT_DEVICE_NOBOOT;
}
+static int k3_falcon_fdt_fixup(void *fdt)
+{
+ int ret;
+
+ if (!fdt)
+ return -EINVAL;
+
+ fdt_set_totalsize(fdt, fdt_totalsize(fdt) + CONFIG_SYS_FDT_PAD);
+
+ if (IS_ENABLED(CONFIG_OF_BOARD_SETUP)) {
+ ret = ft_board_setup(fdt, gd->bd);
+ if (ret) {
+ printf("%s: Failed in board setup: %s\n", __func__,
+ fdt_strerror(ret));
+ return ret;
+ }
+ }
+
+ if (IS_ENABLED(CONFIG_OF_SYSTEM_SETUP)) {
+ ret = ft_system_setup(fdt, gd->bd);
+ if (ret) {
+ printf("%s: Failed in system setup: %s\n", __func__,
+ fdt_strerror(ret));
+ return ret;
+ }
+ }
+
+ return 0;
+}
+
int k3_r5_falcon_prep(void)
{
struct spl_image_loader *loader, *drv;
struct spl_image_info kernel_image;
struct spl_boot_device bootdev;
int ret = -ENXIO, n_ents;
+ void *fdt;
tifalcon_loaded = true;
memset(&kernel_image, '\0', sizeof(kernel_image));
@@ -428,6 +459,13 @@ int k3_r5_falcon_prep(void)
if (ret)
continue;
+ fdt = spl_image_fdt_addr(&kernel_image);
+ ret = k3_falcon_fdt_fixup(fdt);
+ if (ret) {
+ printf("Failed to fixup fdt in falcon mode: %d\n", ret);
+ return ret;
+ }
+
return 0;
}
--
2.51.0
More information about the U-Boot
mailing list