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.

[参考译文] AM6442:将 ATF 控制台从 main_uart0更改为 main_uart3

Guru**** 2465890 points
Other Parts Discussed in Thread: TMDS64EVM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1469495/am6442-change-atf-console-to-main_uart3-from-main_uart0

器件型号:AM6442
主题中讨论的其他器件:TMDS64EVM

工具与软件:

大家好、团队成员:

我尝试将 TMDS64EVM 上的 ATF 控制台从 UART0更改为 UART3。

我可以根据 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1452385/am6442-change-boot-console-to-main_uart5-from-main_uart0将引导控制台从 UART0更改为 UART3

我正在使用 SDK 10.01、因此我在可信固件源树中将 plat_common.mk 中的 k3_USART 从0更改为3、并使用以下命令编译可信固件。

make ARCH=AArch64 CROSS_COMPILE="$CROSS_COMPILE_64" PLAT=K3 TARGET_BOARD=generic SPD=opteed

然后、我将 bl31.bin 复制到预编译映像目录并生成 u-boot。

当我尝试引导时、可信固件因以下日志而崩溃。

您可以建议如何解决此问题吗?

谢谢

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

    抱歉、

    我错过了复制日志。

    日志:

    U-Boot SPL2024.04-脏(二月04 2025 - 16:30:17+0900)
    在冷启动时复位以解决方法 ErrataID:i2331
    如果是 UART/DFU 引导、请重新发送 tiboot3.bin
    正在重置...

    U-Boot SPL2024.04-脏(二月04 2025 - 16:30:17+0900)
    SYSFW ABI:4.0 (固件版本0x000a '10.1.8--v10.01.08 (Fiery Fox)')
    SPL 初始堆栈使用:13392字节
    尝试从 MMC2引导
    身份验证已通过
    身份验证已通过
    随处加载环境... 好的
    身份验证已通过
    身份验证已通过
    在 ARM64内核上启动 ATF。。。

    注意:BL31:v2.11.0 (发布):v2.11.0-906-g58b25570c-dirty
    通知:BL31:建造时间:2025年2月4日07:26:44
    EL3中未处理的异常。
    x30 = 0x00000000701c6e38
    X0 = 0x000000000001
    X1 = 0x00000000701cc098
    x2 = 0x00000000701cc000
    x3 = 0x00000000701cc0d8
    x4 = 0x0000000032401000
    X5 = 0x0000000000000040
    X6 = 0x00000000701d801e
    X7 = 0x000000000000
    X8 = 0x00000000701c0000
    x9 = 0x00000000701d0650
    X10 = 0x0000000032e00000
    X11 = 0x0000000000000000
    X12 = 0x00000000701ca1f0
    X13 = 0x00000000701ca1f0
    X14 = 0x000000000004
    X15 = 0x0000000041033020
    x16 = 0xbce190546ce50a74
    x17 = 0x485d00c0e183713e
    x18 = 0x5b2cfa91a447272f
    X19 = 0x00000000701cd638
    X20 = 0x00000000701cd5d0
    x21 = 0xb4a0cd3122f44dcf
    X22 = 0x05dbc817569db2ed
    x23 = 0xa90935fa00128ac0
    x24 = 0x00000000701d8000
    X25 = 0x25fc504f886116b9
    X26 = 0x70d41667e8126b82
    x27 = 0x2b7a1511a44465a2
    x28 = 0x0639f8b6cb04207b
    X29 = 0x00000000701cd540
    SCR_EL3 = 0x0000000000000238
    sctlr_EL3 = 0x000030cd183f
    CPTR_EL3 = 0x0000000080000400
    TCR_EL3 = 0x000080803520
    DAIF = 0x00000000000003C0
    MAIR_EL3 = 0x00000000004404ff
    SPSR_EL3 = 0x00000000600002cc
    ELR_EL3 = 0x00000000701c3bd8
    ttbr0_EL3 = 0x00000000701d30c0
    ESR_EL3 = 0x0000000096000010
    FAR_EL3 = 0x0000000032401000
    spsr_el1 = 0x000000000e002b49
    elr_el1 = 0x3ee6086c4480c911
    spsr_abt = 0x000000009213b30a
    spsr_und = 0x000000000a002f4e
    spsr_irq = 0x00003011875d
    spsr_fiq = 0x00000000861a7383
    sctlr_el1 = 0x0000000000c50838
    actlr_el1 = 0x000000000000
    cpacr_el1 = 0x0000000000000000
    csselr_el1 = 0x000000000000
    SP_el1 = 0x1caa3e028ee6829f
    ESR_el1 = 0x00000000db8e985d
    ttbr0_el1 = 0x23c44931046a22f8
    ttbr1_el1 = 0x8443808090a95218
    mair_el1 = 0x44e048e000098aa4
    amair_el1 = 0x000000000000
    TCR_EL1 = 0x000000000000
    tpidr_el1 = 0x0953512423400020
    tpidr_el0 = 0x84c1200084148004
    tpidrro_el0 = 0x0428188100690900
    PAR_EL1 = 0x0500008080021402
    mpidr_el1 = 0x0000000080000000
    afsrc0_el1 = 0x0000000000000000
    afsr1_el1 = 0x0000000000000000
    contextidr_el1 = 0x000000000000
    VBAR_EL1 = 0x0000000000000000
    cntp_ctl_el0 = 0x000000000000
    cntp_cval_el0 = 0xf5900300008419d5
    CNTV_ctl_el0 = 0x000000000002
    CNTV_cval_el0 = 0xfaddfbc60d198f
    cntkctl_el1 = 0x000000000000
    SP_el0 = 0x00000000701cd540
    ISR_el1 = 0x000000000000
    dacr32_el2 = 0x00000000604c
    ifsr32_el2 = 0x0000000000000014
    cpuectlr_el1 = 0x0000000000000040
    cpumerrsr_el1 = 0x0000000009080300
    l2merrsr_el1 = 0x0000000012305268
    cpuactlr_el1 = 0x00001000090ca000

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

    尊敬的 Shigemi:

    我将设法在明天重现问题并对其进行研究。

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

    尊敬的 Shigemi-San:

    我能够在将控制台配置为 UART3的情况下构建 ATF、但看不到未处理的异常错误。

    注意:bl31:v2.11.0 (发布):v2.11.0-906-g58b25570c-dirty

    我注意到您的 BL31版本签名具有"g58b25570c-diris"、这比我的版本短:

    注意: BL31:v2.11.0 (发布):v2.11.0-906-g58b25570c 9ef -脏

    我不知道是什么导致了差异。 您是否使用 SDK10.1软件包中提供的相同工具链?

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

    您好、Bin、

    是的、我确认了工具链设置。

    消息的上面部分是由 Makefile 中第175行的 shell 创建的。

    175: BUILD_string :=$(shell git design --always --dirty --tags 2>/dev/null
    177:version_string:= v${version}(${build_type}):${build_string}

    在我的 SDK 环境中、git design 命令返回"v2.11.0-906-g58b25570c-dirty "、如下所示。

    $ git 描述--always --dirty --tags
    v2.11.0-906-g58b25570c-dirty

    因此、库的标签与您的库不同。 可以为我提供正确的存储库标签名称吗?  

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

    尊敬的 Shigemi:

    git 标签是相同的,但你的只是短3个字母。 这可能是由于您的 git 配置、但它不应与您存在的未处理的异常问题有关。 但我不知道会是什么原因,我无法再现它在我身边。

    您能否详细介绍一下您如何重建 ATF 和 U-Boot? 确保控制台日志会很有帮助。

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

    尊敬的 Shigemi-San:

    >然后、按如下所示制作可信固件。
    > mikayama@nuc03:08:31:25$ make arch=aarch64 cross_compile="$cross_compile_64"PLAT=k3 target_Board=generic spd=opteed  

    make 选项" Target_Board=通用 "应为" Target_Board=lite "。 请删除 ATF 源代码目录中的 build/目录、然后再次编译以查看是否仍发生未处理的异常问题。

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

    您好、Bin、

    我使用"target_Board=lite "构建 ATF。 结果是 ATF 在 ATF 版本消息之后卡住。

    U-Boot SPL 2024.04-dirty (Feb 14 2025 - 13:13:21 +0900)                                                             
    Resetting on cold boot to workaround ErrataID:i2331                                                                 
    Please resend tiboot3.bin in case of UART/DFU boot                                                                  
    resetting ...                                                                                                       
                                                                                                                        
    U-Boot SPL 2024.04-dirty (Feb 14 2025 - 13:13:21 +0900)                                                             
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)')                                                
    SPL initial stack usage: 13392 bytes                                                                                
    Trying to boot from MMC2                                                                                            
    Authentication passed                                                                                               
    Authentication passed                                                                                               
    Loading Environment from nowhere... OK                                                                              
    Authentication passed                                                                                               
    Authentication passed                                                                                               
    Starting ATF on ARM64 core...                                                                                       
                                                                                                                        
    NOTICE:  BL31: v2.11.0(release):v2.11.0-906-g58b25570c-dirty                                                        
    NOTICE:  BL31: Built : 04:12:06, Feb 14 2025
    

    我接下来应该怎么做?

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

    尊敬的 Shigemi-San:

    现在你走在正确的轨道上。 接下来、您需要使用配置为 UART3的 UART 重新编译 OPTEE (bl32.bin)。

    在中 /board-support/optee-os-4.2.0 +git/ directory、将编译环境设置为与编译 ATF 时所做的类似

    $ make cross_compile="cross_compile_32" cross_COMPILE64="cross_compile_64" platform=k3-am64x CFG_ARM64_CORE=y CFG_CONSOLE_UART=3

    最后一个选项"CFG_CONSOLE_UART=3"会更改 OPTEE 的 UART。

    请注意、SDK 10.x 中提供的工具链在编译 OPTEE 时存在问题、您必须按照以下链接中所述从 ARM 网站下载工具链。

    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/10_01_10_04/exports/docs/linux/Overview/GCC_ToolChain.html#yocto-toolchain

    由于我的 PC 已经安装了 SDK9.2、因此我只需直接将指向工具链的编译环境设置为 SDK9.2中提供的工具链。

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

    您好、Bin、

    感谢您的帮助!

    ATF 和 OPTEE 控制台从 UART0成功更改为 UART3。

    此致、