Tool/software:
How to enable Falcon Boot Mode on J7200?
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 J7200?
Boot Flow:
R5 SPL -> ATF -> OPTEE -> U-BOOT -> Kernel
Regards
Gokul
Hi Gokul,
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
NOTE: The u-boot.img is not needed as tispl.bin itself has ATF,OPTEE and U-boot packaged in the fitImage.
Regards
Gokul