工具/软件:
你好
我正在尝试使用 U-Boot SPL 尽早启动三个 R5 内核、因为我们的系统具有严格的时序要求并且 R5 子系统需要快速运行。
我已经在spl_board_init() R5 上运行的 U-Boot 中添加了固件加载和处理器启动代码。 该设置适用于加载/启动 R5FSS1_0 和 R5FSS1_1。 两个内核都正确启动并按预期运行固件。
但是、当我尝试开始时 R5FSS0_1 、没有任何反应。 所有函数调用(例如 LOAD、START)成功返回。 最后、我调用ti_sci_proc_get_status()、它返回以下内容: proc_id = 2, boot_vector = 0xx, cfg_flags = 0x1803, ctrl_flags = 0x0, sts = 0x0
这看起来一切都能正常工作、核心应该在运行。但它显然没有任何作用。 相同固件时、系统会自动重新启动 R5FSS1_0 它可以正常执行、所以我认为这不是固件问题。
我使用的是主线 U-Boot v2025.04、在 binman DTSI 中设置 core-opts = <2>;如下:下面是我在 SPL 中使用的用于启动 R5 内核的粗略序列:
mmc_init(...); blk_dread(...); rproc_dev_init(rproc_id); rproc_stop(rproc_id); rproc_reset(rproc_id); rproc_load(rproc_id); rproc_start(rproc_id); udelay(1000); ti_sci_proc_get_status(...);
我不确定的问题/事项:
-
关于 R5FSS0_0 是否有任何特殊之处可能会阻止其在 SPL 中启动?
-
特别是对于 R5FSS0_0、是否需要执行其他步骤?
-
core-opts = <2>;在这方面是否足够?
任何想法或提示都将非常感谢。
此致、
Philippe