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.

[参考译文] TDA4VM:ATF 如何直接引导 uboot

Guru**** 2474130 points
Other Parts Discussed in Thread: TDA4VM, AM68

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1462880/tda4vm-how-does-atf-directly-boot-uboot

器件型号:TDA4VM
主题中讨论的其他器件: AM68

工具与软件:

TDA4VM

SDK 0900

FreeRTOS+Linux

出于某些原因、我们希望 ATF 直接引导 uboot、这是否可行? 如果是、我们应该如何处理?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    AM68上的参考示例:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1334006/sk-am68-can-falcon-mode-be-enabled-on-sk-am68-j721s2-tda4vx/5087672#5087672

    您必须在 TDA4VM 上执行非常类似的操作。

    此致、
    基尔西

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    1.我们当前的引导流程是 R5 SBL -> ATF -> OPTEE -> uboot-spl -> uboot -> Linux、然后我们要将其更改为  R5 SBL -> ATF -> OPTEE -> uboot -> Linux。

    2. 从上面的参考示例中,我们发现 ATF 没有做任何改变,这是可以的吗? 我们 在 SBL 中将 uboot 加载到0x800000、然后默认 ATF 会直接引导 uboot?

    3. 我们发现上面的例子只改变了 Linux,但我们通过 uboot 加载了 Linux,所以我觉得我们不需要做任何改变,是吗?

    4. 我们试图移除 uboot-spl、SBL 启动似乎正常、但 A72在启动至 OPTEE 后卡住。 日志如下所示

    R5 SBL

    [2025-01-17 10:44:38]  (Jan 17 2025 - 10:40:00)
    
    [2025-01-17 10:58:13]  TIFS  ver: 9.0.6--v09.00.06 (Kool Koala)
    
    [2025-01-17 10:58:14]  SCISERVER Board Configuration header population... PASSED
    
    [2025-01-17 10:58:14]  Sciclient_setBoardConfigHeader... PASSED
    
    [2025-01-17 10:58:14]  Efuse xlated: VD 2 to 850 mV (OppVid: 0x41, Slave:0x48, Res:0x0)
    
    
    [2025-01-17 10:58:14]  Successfully set voltage to 850 mV for Slave:0x48, Res:0x0
    
    
    [2025-01-17 10:58:14]  Initlialzing PLLs ...done.
    
    [2025-01-17 10:58:14]  InitlialzingClocks ...done.
    
    [2025-01-17 10:58:14]  Initlialzing DDR ...done.
    
    [2025-01-17 10:58:14]  Initializing SERDES ...done.
    
    [2025-01-17 10:58:14]  Initializing GTC ...Copying EEPROM content to DDR ... 
    
    [2025-01-17 10:58:14]  EEPROM Data Copy Done.
    
    [2025-01-17 10:58:14]  Begin parsing user application
    
    [2025-01-17 10:58:14]  Calling Sciclient_procBootRequestProcessor, ProcId 0x20... 
    
    [2025-01-17 10:58:14]  Calling Sciclient_procBootRequestProcessor, ProcId 0x21... 
    
    [2025-01-17 10:58:14]  Calling Sciclient_procBootRequestProcessor, ProcId 0x1... 
    
    [2025-01-17 10:58:14]  Calling Sciclient_procBootRequestProcessor, ProcId 0x2... 
    
    [2025-01-17 10:58:14]  Calling Sciclient_procBootRequestProcessor, ProcId 0x6... 
    
    [2025-01-17 10:58:14]  Calling Sciclient_procBootRequestProcessor, ProcId 0x7... 
    
    [2025-01-17 10:58:14]  Calling Sciclient_procBootRequestProcessor, ProcId 0x8... 
    
    [2025-01-17 10:58:14]  Calling Sciclient_procBootRequestProcessor, ProcId 0x9... 
    
    [2025-01-17 10:58:15]  Calling Sciclient_procBootRequestProcessor, ProcId 0x3... 
    
    [2025-01-17 10:58:15]  Calling Sciclient_procBootRequestProcessor, ProcId 0x4... 
    
    [2025-01-17 10:58:15]  Calling Sciclient_procBootRequestProcessor, ProcId 0x30... 
    
    [2025-01-17 10:58:15]  
    
    [2025-01-17 10:58:15]   If you don't get the logs of the application while booting     from boot0 partition then you might need to pass the MAX_APP_SIZE_EMMC (=<size of you application>)     while building your appimage 
    
    [2025-01-17 10:58:15]  Searching for X509 certificate ...found @0x41c7fc60, size = 1746 bytes
    
    
    [2025-01-17 10:58:15]  SBL reserved memory Found: Start = @ 0xc1800000, Size = 0x800000
    
    
    [2025-01-17 10:58:15]  Copying 1748 bytes from app to 0xc1800002
    
    
    [2025-01-17 10:58:15]  Found seq @ 0xc180043d
    
    
    [2025-01-17 10:58:15]  image length = 2060324 bytes
    
    
    [2025-01-17 10:58:15]  Copying 2060328 bytes from offset 0xc20006d0 to 0xc18006d2...
    
    
    [2025-01-17 10:58:15]  succeeded to verify signature!
    
    [2025-01-17 10:58:15]  Detected lockstep for core_id 8, proc_id 0x1... 
    
    [2025-01-17 10:58:16]  Calling Sciclient_procBootGetProcessorState, ProcId 0x1... 
    
    [2025-01-17 10:58:16]  Sciclient_procBootSetProcessorCfg, ProcId 0x1, enabling Lockstep mode...
    
    [2025-01-17 10:58:16]  Calling Sciclient_procBootGetProcessorState, ProcId 0x1... 
    
    [2025-01-17 10:58:16]  Enabling MCU TCMs after reset for core 8
    
    [2025-01-17 10:58:16]  Sciclient_procBootSetProcessorCfg update TCM enable/disable settings...
    
    [2025-01-17 10:58:16]  Copying 0x40 bytes to 0x41010000
    
    [2025-01-17 10:58:16]  Copying 0xf20 bytes to 0x41010040
    
    [2025-01-17 10:58:16]  Copying 0x480 bytes to 0x41010f60
    
    [2025-01-17 10:58:16]  Copying 0x318 bytes to 0x410113e0
    
    [2025-01-17 10:58:16]  Copying 0x2c0 bytes to 0x410116f8
    
    [2025-01-17 10:58:16]  Copying 0x118 bytes to 0x410119b8
    
    [2025-01-17 10:58:16]  Copying 0x8c bytes to 0xa0100000
    
    [2025-01-17 10:58:16]  Copying 0x200 bytes to 0xa0180400
    
    [2025-01-17 10:58:16]  Copying 0x200 bytes to 0xa0180600
    
    [2025-01-17 10:58:16]  Copying 0x200 bytes to 0xa0180800
    
    [2025-01-17 10:58:16]  Copying 0x33fe0 bytes to 0xa01f7430
    
    [2025-01-17 10:58:16]  Copying 0xf120 bytes to 0xa022b410
    
    [2025-01-17 10:58:17]  Copying 0xa2b8 bytes to 0xa023a530
    
    [2025-01-17 10:58:17]  Copying 0x4738 bytes to 0xa0256200
    
    [2025-01-17 10:58:17]  Copying 0x1600 bytes to 0xa025e4c4
    
    [2025-01-17 10:58:17]  Copying 0x1500 bytes to 0xa025fb00
    
    [2025-01-17 10:58:17]  Copying 0x2ea8 bytes to 0xa0262200
    
    [2025-01-17 10:58:17]  Copying 0x4000 bytes to 0xa0ffc000
    
    [2025-01-17 10:58:17]  Setting Lockstep entry point for MCU1 @0x41010000
    
    [2025-01-17 10:58:17]  Copying 0x6c878 bytes to 0x9e800000
    
    [2025-01-17 10:58:17]  Only load (not execute) image @0x9e800000
    
    [2025-01-17 10:58:17]  Copying 0x1223dc bytes to 0x80800000
    
    [2025-01-17 10:58:17]  Only load (not execute) image @0x80800000
    
    [2025-01-17 10:58:17]  Sciclient_pmSetModuleState On, DevId 0x4... 
    
    [2025-01-17 10:58:17]  Copying 0xabb0 bytes to 0x70000000
    
    [2025-01-17 10:58:17]  Setting entry point for core 0 @0x70000000
    
    [2025-01-17 10:58:17]  Sciclient_procBootSetProcessorCfg, ProcId 0x20, EntryPoint 0x70000000...
    
    [2025-01-17 10:58:17]  Sciclient_pmSetModuleClkFreq, DevId 0xca @ 2000000000Hz... 
    
    [2025-01-17 10:58:17]  Sciclient_pmSetModuleState Off, DevId 0xca... 
    
    [2025-01-17 10:58:17]  Sciclient_pmSetModuleState On, DevId 0xca... 
    
    [2025-01-17 10:58:17]  Sciclient_procBootReleaseProcessor, ProcId 0x20...
    
    [2025-01-17 10:58:17]  Sciclient_procBootReleaseProcessor, ProcId 0x21...
    
    [2025-01-17 10:58:17]  Sciclient_procBootReleaseProcessor, ProcId 0x1...
    
    [2025-01-17 10:58:17]  Sciclient_procBootReleaseProcessor, ProcId 0x2...
    
    [2025-01-17 10:58:18]  Sciclient_procBootReleaseProcessor, ProcId 0x6...
    
    [2025-01-17 10:58:18]  Sciclient_procBootReleaseProcessor, ProcId 0x7...
    
    [2025-01-17 10:58:18]  Sciclient_procBootReleaseProcessor, ProcId 0x8...
    
    [2025-01-17 10:58:18]  Sciclient_procBootReleaseProcessor, ProcId 0x9...
    
    [2025-01-17 10:58:18]  Sciclient_procBootReleaseProcessor, ProcId 0x3...
    
    [2025-01-17 10:58:18]  Sciclient_procBootReleaseProcessor, ProcId 0x4...
    
    [2025-01-17 10:58:18]  Sciclient_procBootReleaseProcessor, ProcId 0x30...
    
    [2025-01-17 10:58:18]  Calling Sciclient_procBootRequestProcessor, ProcId 0x1... 
    
    [2025-01-17 10:58:18]  Sciclient_procBootSetProcessorCfg, ProcId 0x1, EntryPoint 0x41010000...
    
    [2025-01-17 10:58:18]  Sciclient_pmSetModuleClkFreq, DevId 0xfa @ 1000000000Hz... 
    
    [2025-01-17 10:58:18]  Copying first 128 bytes from app to MCU ATCM @ 0x0 for core 8
    
    [2025-01-17 10:58:18]  Calling Sciclient_procBootRequestProcessor, ProcId 0x2... 
    
    [2025-01-17 10:58:18]  Skipping Sciclient_procBootSetProcessorCfg for ProcId 0x2, EntryPoint 0xffffffff...
    
    [2025-01-17 10:58:18]  Calling Sciclient_procBootRequestProcessor, ProcId 0x1... 
    
    [2025-01-17 10:58:18]  : Building Interrupt List !!!
    
    [2025-01-17 10:58:18]  : Variant - Post Build being used !!!
    
    [2025-01-17 10:58:18]  : Interrupt List Completed !!!
    
    [2025-01-17 10:58:18]  

    A72 ATF

    [2025-01-17 11:08:57]  => NOTICE:  BL31: v2.9(release):v2.9.0-dirty
    [2025-01-17 11:09:08]  NOTICE:  BL31: Built : 14:12:59, May 22 2023
    [2025-01-17 11:09:08]  I/TC: 
    [2025-01-17 11:09:08]  I/TC: OP-TEE version: 3.20.0 (gcc version 11.3.0 (GCC)) #1 Fri Jan 20 15:42:54 UTC 2023 aarch64
    [2025-01-17 11:09:08]  I/TC: WARNING: This OP-TEE configuration might be insecure!
    [2025-01-17 11:09:08]  I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
    [2025-01-17 11:09:08]  I/TC: Primary CPU initializing
    [2025-01-17 11:09:08]  I/TC: SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.6--v09.00.06 (Kool Koala)')
    [2025-01-17 11:09:08]  I/TC: HUK Initialized
    [2025-01-17 11:09:08]  I/TC: Activated SA2UL device
    [2025-01-17 11:09:08]  I/TC: Fixing SA2UL firewall owner for GP device
    [2025-01-17 11:09:08]  I/TC: Enabled firewalls for SA2UL TRNG device
    [2025-01-17 11:09:08]  I/TC: SA2UL TRNG initialized
    [2025-01-17 11:09:08]  I/TC: SA2UL Drivers initialized
    [2025-01-17 11:09:08]  I/TC: Primary CPU switching to normal world boot
    [2025-01-17 11:09:08]  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    [报价 userid="533595" url="~/support/processors-group/processors/f/processors-forum/1462880/tda4vm-how-does-atf-directly-boot-uboot/5613730 #5613730"]我们尝试删除 uboot-spl、SBL 引导似乎没问题、但 A72在引导至 OPTEE 后卡住。 按如下方式记录

    在以下位置加载 tisPL 中的 SPL 也称为 A72 spl 0x80080000

    默认情况下 U-Boot 设置为 AT 080800000

    您是否已更改 ATF 中的 plat/ti/k3/platform.mk - board-support/trusted-firmware-a-2.11+git  

    Preloaded_BL33_BASE?= 0x80080000

    基本而言、ATF 假设下一个引导映像是在0x80080000处加载的、但 U-Boot 是在080800000处加载的。

    -基尔西