Tool/software:
How to enable Falcon Boot Mode on 10.01 SDK?
Boot Flow:
R5 SPL -> ATF -> OPTEE -> U-BOOT -> Kernel
Regards
Gokul
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tool/software:
How to enable Falcon Boot Mode on 10.01 SDK?
Boot Flow:
R5 SPL -> ATF -> OPTEE -> U-BOOT -> Kernel
Regards
Gokul
Hi Gokul,
10.01 SDK:
Applying the below patch will enable the above mention boot flow on J7200 EVM:
From d6a5d1bf68991fb090e25318a43dffb5aeb1efed Mon Sep 17 00:00:00 2001
From: Gokul Praveen <g-praveen@ti.com>
Date: Wed, 30 Jul 2025 15:33:26 +0530
Subject: [PATCH] Enable Falcon Boot Mode for J7200 BOARD
Normal Boot Mode :
R5 SPL -> ATF -> OPTEE -> A72 SPL -> U-BOOT -> Kernel
Falcon Boot Mode :
R5 SPL -> ATF -> OPTEE -> -> U-BOOT -> Kernel
Signed-off-by: Gokul Praveen<g-praveen@ti.com>
---
arch/arm/dts/k3-binman.dtsi | 68 -------------------------
arch/arm/dts/k3-j7200-binman.dtsi | 84 +++++--------------------------
configs/j7200_evm_a72_defconfig | 1 +
3 files changed, 13 insertions(+), 140 deletions(-)
diff --git a/arch/arm/dts/k3-binman.dtsi b/arch/arm/dts/k3-binman.dtsi
index 621653e9..86ea563c 100644
--- a/arch/arm/dts/k3-binman.dtsi
+++ b/arch/arm/dts/k3-binman.dtsi
@@ -306,24 +306,6 @@
entry = <0x89000000>;
};
- spl {
- description = "SPL (64-bit)";
- type = "standalone";
- os = "U-Boot";
- arch = "arm64";
- compression = "none";
- load = <CONFIG_SPL_TEXT_BASE>;
- entry = <CONFIG_SPL_TEXT_BASE>;
- ti-secure {
- content = <&u_boot_spl_nodtb>;
- keyfile = "custMpk.pem";
-
- };
- u_boot_spl_nodtb: blob-ext {
- filename = "spl/u-boot-spl-nodtb.bin";
- };
- };
-
};
};
};
@@ -388,57 +370,7 @@
};
};
};
- u_boot_template: template-3 {
- filename = "u-boot.img";
- pad-byte = <0xff>;
-
- fit {
- description = "FIT image with multiple configurations";
-
- images {
- uboot {
- type = "firmware";
- os = "u-boot";
- arch = "arm";
- compression = "none";
- load = <CONFIG_TEXT_BASE>;
- ti-secure {
- content = <&u_boot_nodtb>;
- keyfile = "custMpk.pem";
- };
- u_boot_nodtb: u-boot-nodtb {
- };
- hash {
- algo = "crc32";
- };
- };
- };
- };
- };
- u_boot_unsigned_template: template-4 {
- filename = "u-boot.img_unsigned";
- pad-byte = <0xff>;
- fit {
- description = "FIT image with multiple configurations";
-
- images {
- uboot {
- type = "firmware";
- os = "u-boot";
- arch = "arm";
- compression = "none";
- load = <CONFIG_TEXT_BASE>;
- blob {
- filename = "u-boot-nodtb.bin";
- };
- hash {
- algo = "crc32";
- };
- };
- };
- };
- };
firewall_bg_1: template-5 {
control = <(FWCTRL_EN | FWCTRL_LOCK |
FWCTRL_BG | FWCTRL_CACHE)>;
diff --git a/arch/arm/dts/k3-j7200-binman.dtsi b/arch/arm/dts/k3-j7200-binman.dtsi
index a524b246..a8db9606 100644
--- a/arch/arm/dts/k3-j7200-binman.dtsi
+++ b/arch/arm/dts/k3-j7200-binman.dtsi
@@ -389,44 +389,22 @@
};
};
- fdt-0 {
- description = "k3-j7200-common-proc-board";
- type = "flat_dt";
+ uboot {
+ description = "U-Boot for J7200 Board";
+ type = "firmware";
+ os = "u-boot";
arch = "arm";
compression = "none";
+ load = <CONFIG_TEXT_BASE>;
ti-secure {
- content = <&spl_j7200_evm_dtb>;
+ content = <&u_boot_nodtb>;
keyfile = "custMpk.pem";
};
- spl_j7200_evm_dtb: blob-ext {
- filename = SPL_J7200_EVM_DTB;
+ u_boot_nodtb: u-boot-nodtb {
+ };
+ hash {
+ algo = "crc32";
};
- };
-
- };
-
- configurations {
- default = "conf-0";
-
- conf-0 {
- description = "k3-j7200-common-proc-board";
- firmware = "atf";
- loadables = "tee", "dm", "spl";
- fdt = "fdt-0";
- };
- };
- };
- };
-};
-
-&binman {
- u-boot {
- insert-template = <&u_boot_template>;
-
- fit {
- images {
- uboot {
- description = "U-Boot for J7200 Board";
};
fdt-0 {
@@ -452,11 +430,10 @@
conf-0 {
description = "k3-j7200-common-proc-board";
- firmware = "uboot";
- loadables = "uboot";
+ firmware = "atf";
+ loadables = "tee", "dm", "uboot";
fdt = "fdt-0";
};
-
};
};
};
@@ -499,41 +476,4 @@
};
};
-&binman {
- u-boot_unsigned {
- insert-template = <&u_boot_unsigned_template>;
-
- fit {
- images {
- uboot {
- description = "U-Boot for J7200 Board";
- };
-
- fdt-1 {
- description = "k3-j7200-common-proc-board";
- type = "flat_dt";
- arch = "arm";
- compression = "none";
- blob {
- filename = J7200_EVM_DTB;
- };
- hash {
- algo = "crc32";
- };
- };
- };
-
- configurations {
- default = "conf-1";
-
- conf-1 {
- description = "k3-j7200-common-proc-board";
- firmware = "uboot";
- loadables = "uboot";
- fdt = "fdt-1";
- };
- };
- };
- };
-};
#endif
diff --git a/configs/j7200_evm_a72_defconfig b/configs/j7200_evm_a72_defconfig
index 9a46983d..c05205b8 100644
--- a/configs/j7200_evm_a72_defconfig
+++ b/configs/j7200_evm_a72_defconfig
@@ -203,3 +203,4 @@ CONFIG_UFS=y
CONFIG_CADENCE_UFS=y
CONFIG_TI_J721E_UFS=y
CONFIG_TI_COMMON_CMD_OPTIONS=y
+CONFIG_TEXT_BASE=0x80080000
\ No newline at end of file
--
2.34.1
Applying the below patch will enable the above mention boot flow on J784S4 EVM:
From ad08e956c2886843a03772e1c302e0fc223bd2f7 Mon Sep 17 00:00:00 2001
From: Gokul Praveen <g-praveen@ti.com>
Date: Mon, 6 Oct 2025 12:44:09 +0530
Subject: [PATCH] SKipping A72 SPL Boot Mode
---
arch/arm/dts/k3-am69-sk-u-boot.dtsi | 3 --
arch/arm/dts/k3-binman.dtsi | 47 +--------------------------
arch/arm/dts/k3-j784s4-binman.dtsi | 49 ++++++++---------------------
configs/j784s4_evm_a72_defconfig | 2 ++
4 files changed, 16 insertions(+), 85 deletions(-)
diff --git a/arch/arm/dts/k3-am69-sk-u-boot.dtsi b/arch/arm/dts/k3-am69-sk-u-boot.dtsi
index 6f44745d..e890c9f9 100644
--- a/arch/arm/dts/k3-am69-sk-u-boot.dtsi
+++ b/arch/arm/dts/k3-am69-sk-u-boot.dtsi
@@ -55,9 +55,6 @@
#define SPL_AM69_SK_DTB "spl/dts/k3-am69-sk.dtb"
#define AM69_SK_DTB "u-boot.dtb"
-&spl_j784s4_evm_dtb {
- filename = SPL_AM69_SK_DTB;
-};
&j784s4_evm_dtb {
filename = AM69_SK_DTB;
diff --git a/arch/arm/dts/k3-binman.dtsi b/arch/arm/dts/k3-binman.dtsi
index 621653e9..7830f87f 100644
--- a/arch/arm/dts/k3-binman.dtsi
+++ b/arch/arm/dts/k3-binman.dtsi
@@ -305,25 +305,6 @@
load = <0x89000000>;
entry = <0x89000000>;
};
-
- spl {
- description = "SPL (64-bit)";
- type = "standalone";
- os = "U-Boot";
- arch = "arm64";
- compression = "none";
- load = <CONFIG_SPL_TEXT_BASE>;
- entry = <CONFIG_SPL_TEXT_BASE>;
- ti-secure {
- content = <&u_boot_spl_nodtb>;
- keyfile = "custMpk.pem";
-
- };
- u_boot_spl_nodtb: blob-ext {
- filename = "spl/u-boot-spl-nodtb.bin";
- };
- };
-
};
};
};
@@ -388,33 +369,7 @@
};
};
};
- u_boot_template: template-3 {
- filename = "u-boot.img";
- pad-byte = <0xff>;
-
- fit {
- description = "FIT image with multiple configurations";
-
- images {
- uboot {
- type = "firmware";
- os = "u-boot";
- arch = "arm";
- compression = "none";
- load = <CONFIG_TEXT_BASE>;
- ti-secure {
- content = <&u_boot_nodtb>;
- keyfile = "custMpk.pem";
- };
- u_boot_nodtb: u-boot-nodtb {
- };
- hash {
- algo = "crc32";
- };
- };
- };
- };
- };
+
u_boot_unsigned_template: template-4 {
filename = "u-boot.img_unsigned";
pad-byte = <0xff>;
diff --git a/arch/arm/dts/k3-j784s4-binman.dtsi b/arch/arm/dts/k3-j784s4-binman.dtsi
index 043bcf89..fd6419a7 100644
--- a/arch/arm/dts/k3-j784s4-binman.dtsi
+++ b/arch/arm/dts/k3-j784s4-binman.dtsi
@@ -189,46 +189,23 @@
filename = "ti-dm.bin";
};
};
-
- fdt-0 {
- description = "k3-j784s4-evm";
- type = "flat_dt";
+
+ uboot {
+ description = "U-Boot for J784S4 board";
+ type = "firmware";
+ os = "u-boot";
arch = "arm";
compression = "none";
-
+ load = <CONFIG_TEXT_BASE>;
ti-secure {
- content = <&spl_j784s4_evm_dtb>;
+ content = <&u_boot_nodtb>;
keyfile = "custMpk.pem";
};
-
- spl_j784s4_evm_dtb: blob-ext {
- filename = SPL_J784S4_EVM_DTB;
+ u_boot_nodtb: u-boot-nodtb {
+ };
+ hash {
+ algo = "crc32";
};
- };
- };
-
- configurations {
- default = "conf-0";
-
- conf-0 {
- description = "k3-j784s4-evm";
- firmware = "atf";
- loadables = "tee", "dm", "spl";
- fdt = "fdt-0";
- };
- };
- };
- };
-};
-
-&binman {
- u-boot {
- insert-template = <&u_boot_template>;
-
- fit {
- images {
- uboot {
- description = "U-Boot for J784S4 board";
};
fdt-0 {
@@ -257,8 +234,8 @@
conf-0 {
description = "k3-j784s4-evm";
- firmware = "uboot";
- loadables = "uboot";
+ firmware = "atf";
+ loadables = "tee", "dm", "uboot";
fdt = "fdt-0";
};
};
diff --git a/configs/j784s4_evm_a72_defconfig b/configs/j784s4_evm_a72_defconfig
index 0f78df65..7c238f90 100644
--- a/configs/j784s4_evm_a72_defconfig
+++ b/configs/j784s4_evm_a72_defconfig
@@ -17,6 +17,7 @@ CONFIG_SPL_DM_SPI=y
CONFIG_OF_UPSTREAM=y
CONFIG_DEFAULT_DEVICE_TREE="k3-j784s4-evm"
CONFIG_SPL_TEXT_BASE=0x80080000
+CONFIG_TEXT_BASE=0x80080000
CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_DM_RESET=y
CONFIG_SPL_MMC=y
@@ -74,6 +75,7 @@ CONFIG_CMD_GPT=y
CONFIG_CMD_I2C=y
CONFIG_CMD_MMC=y
CONFIG_CMD_MTD=y
+CONFIG_CMD_NFS=y
CONFIG_CMD_REMOTEPROC=y
CONFIG_CMD_USB=y
CONFIG_CMD_TIME=y
--
2.34.1
11.00 SDK
======================
From 74d12e17dc3dcfa3215b86abd5223900d498cee4 Mon Sep 17 00:00:00 2001
From: Gokul Praveen <g-praveen@ti.com>
Date: Tue, 7 Oct 2025 11:59:20 +0530
Subject: [PATCH] J784S4 SDK11.08 BOOTFLOW Without A72 SPL
---
arch/arm/dts/k3-binman.dtsi | 13 --------
arch/arm/dts/k3-j784s4-binman.dtsi | 46 ++++++++------------------
arch/arm/dts/k3-j784s4-evm-u-boot.dtsi | 3 --
configs/j784s4_evm_a72_defconfig | 1 +
4 files changed, 14 insertions(+), 49 deletions(-)
diff --git a/arch/arm/dts/k3-binman.dtsi b/arch/arm/dts/k3-binman.dtsi
index c2b8388b..80be3e8c 100644
--- a/arch/arm/dts/k3-binman.dtsi
+++ b/arch/arm/dts/k3-binman.dtsi
@@ -385,19 +385,6 @@
load = <0x89000000>;
entry = <0x89000000>;
};
-
- spl {
- description = "SPL (64-bit)";
- type = "standalone";
- os = "U-Boot";
- arch = "arm64";
- compression = "none";
- load = <CONFIG_SPL_TEXT_BASE>;
- entry = <CONFIG_SPL_TEXT_BASE>;
- blob-ext {
- filename = "spl/u-boot-spl-nodtb.bin";
- };
- };
};
};
};
diff --git a/arch/arm/dts/k3-j784s4-binman.dtsi b/arch/arm/dts/k3-j784s4-binman.dtsi
index a9787016..d0df3088 100644
--- a/arch/arm/dts/k3-j784s4-binman.dtsi
+++ b/arch/arm/dts/k3-j784s4-binman.dtsi
@@ -276,40 +276,19 @@
};
};
- fdt-0 {
- description = BOARD_DESCRIPTION;
- type = "flat_dt";
+ uboot {
+ description = UBOOT_BOARD_DESCRIPTION;
+ type = "firmware";
+ os = "u-boot";
arch = "arm";
compression = "none";
-
- spl_j784s4_evm_dtb_unsigned: blob {
- filename = SPL_BOARD_DTB;
+ load = <CONFIG_TEXT_BASE>;
+ blob {
+ filename = "u-boot-nodtb.bin";
+ };
+ hash {
+ algo = "crc32";
};
- };
- };
-
- configurations {
- default = "conf-0";
-
- conf-0 {
- description = BOARD_DESCRIPTION;
- firmware = "atf";
- loadables = "tee", "dm", "spl";
- fdt = "fdt-0";
- };
- };
- };
- };
-};
-
-&binman {
- u_boot_unsigned: template-15 {
- insert-template = <&u_boot_unsigned_template>;
-
- fit {
- images {
- uboot {
- description = UBOOT_BOARD_DESCRIPTION;
};
fdt-0 {
@@ -333,12 +312,13 @@
conf-0 {
description = BOARD_DESCRIPTION;
- firmware = "uboot";
- loadables = "uboot";
+ firmware = "atf";
+ loadables = "tee", "dm", "uboot";
fdt = "fdt-0";
};
};
};
};
};
+
#endif
diff --git a/arch/arm/dts/k3-j784s4-evm-u-boot.dtsi b/arch/arm/dts/k3-j784s4-evm-u-boot.dtsi
index fbfd753b..ea728ebc 100644
--- a/arch/arm/dts/k3-j784s4-evm-u-boot.dtsi
+++ b/arch/arm/dts/k3-j784s4-evm-u-boot.dtsi
@@ -73,9 +73,6 @@
insert-template = <&ti_spl_unsigned>;
};
- u-boot-unsigned {
- insert-template = <&u_boot_unsigned>;
- };
};
#endif
diff --git a/configs/j784s4_evm_a72_defconfig b/configs/j784s4_evm_a72_defconfig
index 52d12b62..933e54dc 100644
--- a/configs/j784s4_evm_a72_defconfig
+++ b/configs/j784s4_evm_a72_defconfig
@@ -14,6 +14,7 @@ CONFIG_ENV_SIZE=0x40000
CONFIG_DM_GPIO=y
CONFIG_SPL_DM_SPI=y
CONFIG_DEFAULT_DEVICE_TREE="ti/k3-j784s4-evm"
+CONFIG_TEXT_BASE=0x80080000
CONFIG_SPL_TEXT_BASE=0x80080000
CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_DM_RESET=y
--
2.34.1
If the below issue , comes up: apply the patch given below this:
U-Boot SPL 2025.01-ti-g70667128cb5b-dirty (Oct 08 2025 - 14:35:46 +0200) SYSFW ABI: 4.0 (firmware rev 0x000b '11.0.9--v11.00.09+ (Fancy Rat)') Initialized 4 DRAM controllers SPL initial stack usage: 13456 bytes Trying to boot from MMC2 alloc space exhausted Could not get FIT buffer of 2239744 bytes check CONFIG_SPL_SYS_MALLOC_F_LEN
diff --git a/configs/j784s4_evm_r5_defconfig b/configs/j784s4_evm_r5_defconfig index eac3cfc5..75ac0f44 100644 --- a/configs/j784s4_evm_r5_defconfig +++ b/configs/j784s4_evm_r5_defconfig @@ -176,3 +176,4 @@ CONFIG_K3_AVS0=y CONFIG_DM_REGULATOR=y CONFIG_SPL_DM_REGULATOR=y CONFIG_SPL_DM_REGULATOR_TPS6287X=y +CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x400000
NOTE: The u-boot.img is not needed as tispl.bin itself has ATF,OPTEE and U-boot packaged in the fitImage.
Regards
Gokul