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:R5F 内核 nortos 自定义引导加载程序

Guru**** 2392495 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1480070/am6442-custom-bootloader-for-r5f-core-nortos

器件型号:AM6442
Thread 中讨论的其他器件:UNIFLASH

工具/软件:

您好、

我不熟悉 TI 处理器、目前正在寻求为 R5F 内核开发自定义引导加载程序(AM64x 入门套件、SDK 10.01.00.32)。 我以 OSPI 引导加载程序的参考示例添加了一些日志、构建并刷写了具有 UART 引导模式和 uart_uniflash.py 脚本的引导加载程序映像"sbl_ospi.Release.hs_fs.tiimage"中的日志、 然后在 OSPI 模式下引导并检查了日志。 我能够看到调试日志、但无法从固件中看到"hello world"、我在自定义 sbl_ospi.cfg 中添加了该固件的路径、我与 uniflash 工具一起用于闪存中。 对于应用程序固件、我采用了 cfg 文件中的 hello world 示例"hello_world_am64x-sk_r5fss0-0_nortos_ti-arm-clang.appimage.hs_fs"。 我使用的是错误的映像还是在错误的地址刷写? 为什么启动后映像未加载、并且无法在控制台上看到 Hello world。

此外、我还有另一个功能、我想在 SBL 引导加载程序启动后在入门套件上连接的闪存上执行简单的写入/读取一个字节操作。 如何实现这一目标?

此致、

Ajay Kumar

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

    尊敬的 Ajay:

    因此、我已使用 hello world 尝试了 SDK 中可用的默认 SBL OSPI、但它适合我使用。 因此、接下来是您在 sbl_OSPI/QSPI 世界示例中进行的更改。 为此、请详细说明所做的确切改动。 此外、还应附加您在末端获得的引导日志

    您能否将此文件与 OSPI SBL 的 syscfg 文件共享、您还可以在结束时验证 SBL OSPI 中和您所做的自定义配置文件中配置的偏移量是否匹配。 另一件事是查看您是否更改了 helloworld 示例中使用的 UART 实例、如果是这种情况、您会在另一个串行终端中看到 Hello World 日志。

    Unknown 说:
    我已在自定义 sbl_ospi.cfg 中添加

    此致、

    会面。

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

    谢谢、很抱歉您的回复有延迟。 让我来解释一下我的流程:
    这是我修改后的 sbl_ospi.cfg:

    #首先指向 sbl_uart_uniflash 二进制文件,它作为一个服务器来刷写一个或多个文件
    -- flash-writer=sbl_prebuilt/am64x-sk/sbl_uart_uniflash.release.hs_fs.tiimage
    #对 OSPI PHY 调优攻击向量进行编程
    --操作=flash-phy-tuning-data

    #发送引导加载程序时、请确保闪存偏移为0x0。 ROM 期望引导加载程序位于偏移量0x0处
    --file=../../examples/hello_world/am64x-sk/system_r5fss0-0_nortos/sbl_ospi.Release.hs_fs.tiimage --operation=flash --flash-offset=0x0

    #发送应用程序映像时,请确保以偏移0x80000 (默认值)或引导加载程序配置的任何偏移进行闪存
    --file=./../examples/hello_world/am64x-sk/system_r5fss0-0_nortos/hello_world_am64x-sk_r5fss0-0_nortos_ti-arm-clang.appimage.hs_fs --operation=flash --flash-offset=0x80000

    #为此应用程序发送 XIP 映像,由于闪存偏移是在映像中指定的,因此无需指定闪存偏移
    --file=../../examples/hello_world/am64x-sk/system_r5fss0-0_nortos/hello_world_am64x-sk_r5fss0-0_nortos_ti-arm-clang.appimage_xip --operation=flash-XIP

    认为所有路径都是正确的、因为我已经验证过这一点。 我没有对 ospi 引导加载程序代码进行任何修改、只添加了调试日志、在.syscfg 中没有更改。 同样、对于 hello_world 没有更改、只需执行此代码并将 appimge.hs_fs 和 appimage_XIP 文件放在所需位置。 我在调试时遇到"status
    = Bootloader_parseMultiCoreAppImage (bootHandle、&bootImageInfo);"的问题、您能否检查出问题所在?可能是在错误的地址或我正在使用的文件类型下刷写的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ajay:

    我获得了正确的日志:

    DMSC Firmware Version 10.0.8--v10.00.08 (Fiery Fox)
    DMSC Firmware revision 0xa
    DMSC ABI revision 4.0
    
    KPI_DATA: [BOOTLOADER_PROFILE] Boot Media       : NOR SPI FLASH 
    KPI_DATA: [BOOTLOADER_PROFILE] Boot Media Clock : 166.667 MHz 
    KPI_DATA: [BOOTLOADER_PROFILE] Boot Image Size  : 49 KB                                                                                                                                   
    KPI_DATA: [BOOTLOADER_PROFILE] Cores present    :                                                                                                                                         
    r5f0-0                                                                                                                                                                                    
    KPI_DATA: [BOOTLOADER PROFILE] SYSFW init                       :      11112us                                                                                                            
    KPI_DATA: [BOOTLOADER PROFILE] System_init                      :      14678us                                                                                                            
    KPI_DATA: [BOOTLOADER PROFILE] Drivers_open                     :       1638us                                                                                                            
    KPI_DATA: [BOOTLOADER PROFILE] Board_driversOpen                :     125939us                                                                                                            
    KPI_DATA: [BOOTLOADER PROFILE] Sciclient Get Version            :       9846us                                                                                                            
    KPI_DATA: [BOOTLOADER PROFILE] CPU Load                         :      13531us                                                                                                            
    KPI_DATA: [BOOTLOADER PROFILE] SBL End                          :        770us                                                                                                            
    KPI_DATA: [BOOTLOADER_PROFILE] SBL Total Time Taken             :     177517us                                                                                                            
                                                                                                                                                                                              
    Image loading done, switching to application ...                                                                                                                                          
    Hello World!                                                                                                                                                                              
    

    您能否附上您在 UART 控制台上可能得到的任何日志?

    当我调试时、在"status = Bootloader_parseMultiCoreAppImage (bootHandle、&bootImageInfo);"
    出现问题

    您能详细说明一下什么是错误、可能您在日志中收到了一些错误消息、可能会提供一些提示。

    此致、

    会面。

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

    尊敬的会议:

    以下是带有调试日志的相关代码部分:


    Bootloader_Config * cfg =(Bootloader_Config *) bootHandle;
    if(true == cfg->initICSSMCores)

    DebugP_log ("以默认频率初始化 ICSS 内核……\r\n");
    status = Bootloader_socEnableICSSM (bootloader_ICSS_CORE_default_frequency);
    DebugP_log ("ICSS 内核初始化状态:%d\r\n"、状态);
    DebugP_assert (status == SystemP_Success);
    }

    DebugP_LOG ("正在解析多核应用映像……\r\n");
    状态= Bootloader_parseMultiCoreAppImage (bootHandle、&bootImageInfo);
    DebugP_LOG ("多核应用映像解析状态:%d\r\n"、状态);

    输出如下:

    正在以默认频率初始化 ICSS 内核...
    ICSS 内核初始化状态:0
    正在解析多核应用图像...

    它没有到达上一个日志、并且没有显示任何错误消息。 还有一点、如何启用诸如"Bootloader_profileAddProfilePoint ("Sciclient Get Version")之类的配置文件日志;我也没有获得这些日志。

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

    您好、是否有任何更新?

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

    尊敬的 Ajay:

    SBL 似乎滞留在函数 Bootloader_parseMultiCoreAppImage 内、之后未打印任何日志。 我假设您自行添加了以下日志、以了解 SBL 面临的问题所在。

    [报价 userid="644100" url="~/support/processors-group/processors/f/processors-forum/1480070/am6442-custom-bootloader-for-r5f-core-nortos/5706666 #5706666"]
    正在以默认频率初始化 ICSS 内核...
    ICSS 内核初始化状态:0
    解析多核应用图像...

    由于 SBL 可能卡在 Bootloader_parseMultiCoreAppImage 中、因此您没有看到任何其他日志。 但是、您至少应该能够看到这些日志、请确认:

    DMSC Firmware Version 10.0.8--v10.00.08 (Fiery Fox)
    DMSC Firmware revision 0xa
    DMSC ABI revision 4.0

    如果解析 appimage 时出现任何问题、Bootloader_parseMultiCoreAppImage 应返回 SystemP_Failure、在这种情况下、您将能够看到一些测试失败!! 在日志中打印、表示某些故障、不知道为什么它似乎卡在您的案例中的功能内。

    您能否尝试调试 SBL 并进入该函数、看看它到底卡住的地方、以下常见问题解答可能会提供相同的帮助: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1294675/faq-am62x-am64x-faq-debugging-sbl-boot-in-rtos-sdk

    此致、

    会面。

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

    尊敬的会议:

    很抱歉、延迟的回复。 是的、我可以查看这些日志:

    在尝试 SBL 调试时、引导加载程序会卡住

    其中还包括:

    您能否共享您的 ospi.cfg 文件和示例代码、以便我可以检查有关 OSPI 和闪存的所有配置?

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

    您好、是否有更新?

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

    尊敬的 Ajay:

    在此处继续进行讨论时结束本次讨论: e2e.ti.com/.../processor-sdk-am64x-bootloader-image-parsing-issue

    此致、

    会面。