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.

[参考译文] am263px 的最小 SBL

Guru**** 2667525 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1589601/minimal-sbl-for-the-am263px

主题:SysConfig 中讨论的其他器件

拆分了 e2e.ti.com/.../am6442-remoteproc-linux-debugging-questions

嗨、Nick、

感谢所有链接、我现在一切都正常。

我有几个稍微无关的问题。

为了提供一些背景信息、我正在为 am263px 创建一个超小 SBL。 SBL 的目标是初始化 FSI、通过 FSI 流式传输 mcelf 映像、然后引导 R5 内核。 我们使用 UART 引导模式、并从连接的 am64 通过 UART 进行 SBL 流式传输。 由于 UART 速度太慢而无法流式传输 mcelf 图像、因此必须使用此方法。 我目前正在尝试尽可能减小 SBL 的大小、以缩短 UART 流媒体时间。 我看到您发布的关于 缩短 UART 引导流时间的文章很有帮助、但我对 SBL 大小优化有一些疑问。

  1.  这篇文章 说:“如果器件是 HS-HSMRt 器件、则会加载 FS 固件(TIFS-MCU 固件)  可选 “。 但是、如果没有出现链接错误、我无法在 SysConfig 中完全删除 HSMCLIENT 依赖项(请参阅下文)。 bootloader_soc.c 代码不断投诉、因为它缺少引用;但我认为我可以去除所有投诉代码、因为我们正在跳过引导加载程序的验证。 我是否认为可以删除这段代码正确?如果可以、我是否可以通过任何方式更改 SysConfig 来完成此操作?
      symbol                          in file                                                                                                                                                                                   
     ---------                    ----------------                                                                                                                                                                              
     HsmClient_procAuthBootFinish /home/jweyer/aec-toolchain/sysroots/x86_64-aecsdk-linux/usr/share/ti/mcu_plus_sdk_am263px_11.00.00.19/source/drivers/lib/drivers.am263px.r5f.ti-arm-clang.nortos.debug.lib<bootloader_soc.obj>
     HsmClient_procAuthBootStart  /home/jweyer/aec-toolchain/sysroots/x86_64-aecsdk-linux/usr/share/ti/mcu_plus_sdk_am263px_11.00.00.19/source/drivers/lib/drivers.am263px.r5f.ti-arm-clang.nortos.debug.lib<bootloader_soc.obj>
     HsmClient_procAuthBootUpdate /home/jweyer/aec-toolchain/sysroots/x86_64-aecsdk-linux/usr/share/ti/mcu_plus_sdk_am263px_11.00.00.19/source/drivers/lib/drivers.am263px.r5f.ti-arm-clang.nortos.debug.lib<bootloader_soc.obj>
     gHSMClient                   /home/jweyer/aec-toolchain/sysroots/x86_64-aecsdk-linux/usr/share/ti/mcu_plus_sdk_am263px_11.00.00.19/source/drivers/lib/drivers.am263px.r5f.ti-arm-clang.nortos.debug.lib<bootloader_soc.obj>
    
    error: unresolved symbols remain
    error: errors encountered during linking;
       "/home/jweyer/source/repos/ApcGen5/src/dsp/boot/sbl_uart_mcelf.out" not
       built

  2. 是否有任何方法可以完全删除所有调试逻辑? 在 sysconfig->Debug Log 中、我可以取消选中所有调试选项、这肯定会减小 SBL 的大小;但是、我似乎无法完全删除它、因为 sysconfig->bootloader 和 sysconfig->int xbar 对它有依赖性。 是否有方法可以完全删除所有调试逻辑?
  3. 我们使用自定义 makefile 来构建映像(不使用 CCS)、我已经看到 SysConfig CLI 提供`--dependentScript`选项。 我希望使用此选项或其他技术来包含其他 SysConfig 脚本。 例如、我要有一个基本的 SysConfig 脚本“foo.syscfg",“,并、并视需要添加调试逻辑和另一个调试 SysConfig 脚本“debug.syscfg"。“。 这是可能的吗? 下面是有关如何完成此操作的最佳猜测(请参阅 cmd_syscfg):
    quiet_cmd_syscfg = SYSCFG  $<
          cmd_syscfg = $(SYSCFG_NODE) $(SYSCFG_CLI_PATH)/dist/cli.js $(SYSCFG_V) --script $< --dependentScript $(*** DEBUG SCRIPT HERE? ***) --product $(SYSCFG_SDKPRODUCT) --context $(R5_CORE_CONTEXT_$(R5_CORE_ID)) --device AM263Px --part AM263P4 --package ZCZ_S --output $(obj)/generated/ $(QUIET_REDIRECT_INFO_AND_WARNING)
    define do_syscfg
    	@echo "  $(quiet_cmd_syscfg)"
    	$(Q)$(cmd_syscfg)
    endef


  4. 对于如何减小 SBL 的大小或加快通过 UART 进行 SBL 流式传输、您是否有任何其他建议?

感谢您的帮助、

- Jared

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

    您好 Jared、

    我将您有关 AM263Px SBL 优化的问题拆分为一个单独的主题、以供 AM263Px 团队解决。

    在 Linux 加载非 Linux 内核的上下文中、您可以 去除调试信息和其他不需要的数据、如 AM64x 多核 Academy 中所述  
    如何优化远程内核项目内存
    https://dev.ti.com/tirex/explore/node?node=A__AeakdFP2wJ-rLsVTOacY7Q__AM64-ACADEMY__WI1KRXP__LATEST 

    但是、我不确定如何从非 Linux 处理器上的 SBL 引导的角度优化二进制大小。

    此致、

    Nick

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

    有什么输入?

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

    您好 Jared、

    对此处延迟回复的道歉:

     这篇文章 说、“如果器件是 HS-MCU FS 器件、则会加载 HSMRt 固件(TIFS-MCU 固件)  可选 “。 但是、如果没有出现链接错误、我无法在 SysConfig 中完全删除 HSMCLIENT 依赖项(请参阅下文)。 bootloader_soc.c 代码不断投诉、因为它缺少引用;但我认为我可以去除所有投诉代码、因为我们正在跳过引导加载程序的验证。 我是否认为可以删除这段代码正确?如果可以、我是否可以通过任何方式更改 SysConfig 来完成此操作?
    [/报价]

    为此,只需注释掉 SBL main.c 文件中的 HSMRT 加载 API(如常见问题解答中突出显示) 就足够了。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“642425" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1589601/minimal-sbl-for-the-am263px

    • 是否有任何方法可以完全删除所有调试逻辑? 在 sysconfig->Debug Log 中、我可以取消选中所有调试选项、这肯定会减小 SBL 的大小;但是、我似乎无法完全删除它、因为 sysconfig->bootloader 和 sysconfig->int xbar 对它有依赖性。 是否有方法可以完全删除所有调试逻辑?
    [/报价]

    这无关紧要、如果您已经取消选中 debugP 日志选项、此外、您可以从 SBL 中删除分析点

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们使用自定义 makefile 来构建映像(不使用 CCS)、我已经看到 SysConfig CLI 提供`--dependentScript`选项。 我希望使用此选项或其他技术来包含其他 SysConfig 脚本。 例如、我要有一个基本的 SysConfig 脚本“foo.syscfg",“,并、并视需要添加调试逻辑和另一个调试 SysConfig 脚本“debug.syscfg"。“。 这是可能的吗? 下面是有关如何完成此操作的最佳猜测(请参阅 cmd_syscfg):

    如果您需要创建一个单独的主题、我们的工具团队将能提供相关帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ]关于如何减小 SBL 的大小或加快通过 UART 进行 SBL 流式传输、您还有其他建议吗?

    Jared、您是否考虑使用其他介质来传输图像和应用程序而不是 UART、因为它本质上是一个低速接口。

    除了常见问题解答中已经讨论过的问题之外、我没有其他关于降低速度的建议。

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

    您好:Nilabh、

    感谢您的意见。 我将为工具问题创建另一个主题。