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:从自定义次级引导加载程序生成 TI_image

Guru**** 2455560 points
Other Parts Discussed in Thread: TDA4VM, UNIFLASH

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1470639/tda4vm-ti_image-generation-from-custom-secondary-bootloader

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

工具与软件:

团队成员、您好!

我们已经为 TDA4VM 开发了次级引导加载程序、它可以在 RAM 上正常工作。

现在、我们尝试从 ext/QSPI 闪存运行。

根据我的理解  

  • 将执行上电 ROM 引导加载程序、它验证 SBL 签名、然后复制到 RAM 中、并触发 R5复位。
  • SBL 将执行并执行应用程序加载活动。

您能否说明为 SBL 生成 TI 映像的步骤、该映像可以通过 UART & Uniflash 工具刷写到外部闪存上。

我尝试了以下步骤、请确认步骤正确、或请分享正确的步骤。

::生成引导加载程序的 rprc 映像

  • PowerShell path/out2rprc/bin/out2rprc.exe %SBL_ELF_PATH%%SBL_RPRC_PATH%

::生成引导加载程序的 tiimage

  • PowerShell path/bin/MulticoreImageGen.exe LE %SBL_DEV_ID%%SBL_TIIMAGE_PATH% 8 %SBL_RPRC_PATH%

::生成 sigining 的 tiimage

  • PowerShell -ExecutionPolicy 不受限制-command support_files/x509CertificateGen.ps1 -b %SBL_TIIMAGE_path%-o %SBL_TIIMAGE_signed_path%-c R5 -l 0x0 -k support_files/k3_dev_mpk.pem

此致、

Hari Krishna Kaki。

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

    您好!

    请参阅 PDK 文档 SBL 操作指南

    主要参考: 从 OSPI 引导

    谢谢!

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

    Praveen、您好!

    谢谢!

    我创建了包含 PDK SBL 演示的 TI Image。

     已刷写到 OSPI 闪存中、但仍然无法正常工作。

    问)是否必须使用与演示相同的存储器区域?

    此致、

    Hari Krishna Kaki

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

    嗨、Hari、

    这个是在 TI EVM 还是定制平台上?

    [报价 userid="592034" url="~/support/processors-group/processors/f/processors-forum/1470639/tda4vm-ti_image-generation-from-custom-secondary-bootloader/5654188 #5654188"]

    我创建了包含 PDK SBL 演示的 TI Image。

     已刷写到 OSPI 闪存中、但仍然无法正常工作。

    [报价]

    请详细告知我们遵循的步骤。 没有所有的细节很难评论。

    同时指定由您执行的所有代码更新。

    Q])是否必须使用与演示相同的内存区域?

    不是的。 告诉我们您计划使用的记忆,我们可以评论。

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

    您好!

    我已经开发了我们自己的 SBL 和内存使用情况、如下所示。

    OSPI 闪存映射和端点

    0x00000000 - 0x00080000 -SBL

    0x00100000 - 0x00230000 -应用

    RAM

    0x70000000 -0x7010 0000 -SBL

    附加的.bin 文件和生成的 bin file.e2e.ti.com/.../7802.bin.zip 的 TI 映像

    我已经按照以下步骤生成 TI 图像、并在演示中引用 SBL cust

    和一个脚本、用于将 TI Imgae 刷写到 OSPI 闪存中、并附带脚本

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    设置 BINDIR=../output/bin
    设置 SBL_IMAGE_NAME=ARM_TDA4VMCR5_EVM Bootloader_Can
    设置 sbl_bin_path=%BINDIR%/%sbl_image_name%.bin
    设置 SBL_ELF_PATH=%BINDIR%/%SBL_IMAGE_NAME%.elf
    设置 SBL_TIIMAGE_PATH=%BINDIR%/%SBL_IMAGE_NAME%.tiimage
    设置 SBL_TIIMAGGE_signed_path=%BINDIR%/%SBL_IMAGE_NAME%.tiimage.signed
    设置 SBL_RPRC_PATH=%BINDIR%/%SBL_IMAGE_NAME%.rprc
    设置 SBL_CERT_KEY=C:/ti/j721e/pdk_jacinto_09_00_01_04/packages/ti/build/makerules/rom_degenerateKey.pem

    设置 X509C_CERT_GEN=-ExecutionPolicy Unlimited -command C:/ti/j721e/pdk_jacinto_09_00_01_04/packages/ti/build/makerules/x509CertificateGen.ps1
    设置 pdk_sbl_cmp_path= C:\ti\j721e\pdk_jacinto_09_00_01_04\packages\ti\boot\sbl
    设置 sbl_tools_path=%pdk_sbl_cmp_path%/tools
    设置 OUT2RPRC_PATH=%sbl_tools_path%/out2rprc/bin/out2rprc.exe
    设置 sbl_image_gen=%sbl_tools_path%/multicoreImageGen/bin/MulticoreImageGen.exe

    设置 SBL_RUN_ADDRESS = 0x70000000
    设置 SBL_HS_ADDRESS=0x00300000
    SET SOC = j721e
    设置 SBL_DEV_ID=55
    设置 SBL_MCU_STARTUP_MODE=SPLIT_MODE

    :PowerShell -ExecutionPolicy unlimited -command C:/ti/j721e/pdk_jacinto_09_00_01_04/packages/ti/build/makerules/x509CertificateGen.ps1 -b C:/ti/j721e/pdk_jacinto_09_00_01_04/packages/ti/boot/sbl/binary/j721e_evm/cust/bin/sbl_cust_img_mcu1_0_release.bin -o C:/ti/j721e/pdk_jacinto_09_00_01_04/packages/ti/boot/sbl/binary/j721e_evm/cust/bin/sbl_cust_img_mcu1_0_release.tiimage -c r5 -l 0x41C00100 -k C:/ti/j721e/pdk_jacinto_09_00_01_04/packages/ti/build/makerules/rom_degenerateKey.pem -d debug -j DBG_full_enable -m split_mode
    PowerShell %X509C_CERT_GEN%-b %SBL_BIN_PATH%-o %SBL_TIIMAGE_PATH%-c R5 -l 0x70000000 -k %SBL_CERT_KEY%-d debug -j DBG_FULL_ENABLE -m %SBL_MCU_STARTUP_MODE%

    e2e.ti.com/.../_5F00_Tiimage_5F00_J721e.zip

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    刷写后、我完成了引导模式更改设置并执行了下电上电。

    如果我在这里遗漏了任何内容、敬请告知。

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

    我不在办公室,直到星期二 (美国假期)。 这需要咨询团队、我回到办公室后会作出回应

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

    您如何加载 TIFS 二进制文件(系统固件二进制文件)?

    请访问  https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/10_01_00_04/exports/docs/pdk_jacinto_10_01_00_25/docs/userguide/jacinto/boot/boot_k3.html 

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

    您好 Praveen、

    我已经根据 TI 演示 SBL 重新映射了 SBL 存储器、现在我的 SBL 已通过 RBL 验证并复制到 RAM 中。

    复制到 RAM 后、我得到了  将 CSL 矢量重定位到 ATCM 时出现问题。

    我使用以下函数来重定位矢量、引用 "utilsCopyVecs2ATcm.asm" 该 PDK

    在我使用时向量重定位有效  debug_spinLock() 发挥作用

    这些寄存器 debug_spinLock()  函数启动后、我的 SBL 无法工作并将退出/中止函数。

    由于矢量未重新定位到 ATCM 区域、

    问题:上电后、复位向量不会重新定位、何时  debug_spinLock() 驱动器。

    这里有提示吗?

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

    嗨、Hari、

    不知道为什么你看到这个。 我们必须询问开发团队是否对此有任何想法、然后 再回来。

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

    开发团队的反馈是严格遵循 PSDK RTOS 版本中提供的默认 SBL 源代码中提到的所有步骤。

    /pdk_ /packages/ti/boot/sbl/board/k3/sbl_main.c

    我们很难支持与标准流程的任何重大偏差。

    此外、我们还看到您使用的存储器映射违反了此处-->所述的某些保留部分  

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/10_01_00_04/exports/docs/pdk_jacinto_10_01_00_25/docs/userguide/jacinto/boot/boot_k3.html#memory-map

    关于向量重定位、  您使用的 asm 文件(&函数 RelocVect2Atcm)并非必须使用的文件。  查看 sbl_main.c 文件、其中在第319行中、标准 SBL 代码是如何处理它的。

    谢谢。

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

    此外、对于复位向量:

    R5F 的复位矢量已在我们的 R5 CSL 启动代码中预先定义、位于:ti/CSL/arch/r5/isp startup/resetvecs.asm src

    查找该文件中的_resetvectors (以及关联的.sect ".rstvectors"定义)。

    谢谢。

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

    您好!

    此时存在存储器违例、并调整了 SBL 演示存储器映射

    仍然无法正常工作。

    是、 _resetvectors 是预定义的、但 默认情况下、复位矢量不会加载到0x00000000。

    SBL 启动后、SBL 正在将复位向量复制到 0x00000000 (TCM 存储器)

    我们在这里做同样的操作。

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

    大家好、我不确定这里的问题是什么。

    我们建议遵循 PSDK RTOS 中提供的 SBL 流程。 如果您偏离 TI SBL 的标准流程、我们将很难为您提供支持。

    谢谢。

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

    您能看一下上面的内容吗-为什么它们不同?

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

    您好!

    感谢您的支持!

    CAN 上的 SBL 来自外部 OSPI 闪存。

    我已经确定了根本原因、复位后 TCMA 存储器未启用。

    现在、在 SBL 启动中、添加了一个代码、以根据 TI SBL 启用 TCMA 存储器。

    您可以关闭此票证。

    此致、

    Hari