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.

[FAQ] DRA821: SPL BOOT without A72 SPL on J7200 on 10.1 SDK

Part Number: DRA821

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
    
    

    • make u-boot
    • Copy tiboot3.bin and tispl.bin to the boot media.

    NOTE: The u-boot.img is not needed as tispl.bin itself has ATF,OPTEE and U-boot packaged in the fitImage.

    Regards

    Gokul