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.

[参考译文] SK-AM64B:如何在 A53内核上引导 ospi_flash_io

Guru**** 2487425 points
Other Parts Discussed in Thread: SK-AM64B, SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1439048/sk-am64b-how-to-boot-ospi_flash_io-on-a53-core

器件型号:SK-AM64B
主题中讨论的其他器件: SysConfig

工具与软件:

您好!

我想检查以下示例是否在 SK-AM64B 的 A53内核上运行、但是
A53内核的 SysConfig 没有 OPSI 或闪存、因此我无法添加它们。
请告诉我如何在 A53内核上运行示例应用。

mcu_plus_sdk_am64x_09_02_01_05\examples\drivers\ospi\ospi_flash_io


此致、
Yukinobu

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

    您好!

    我已经检查了 A53 SysConfig 文件、我可以看到客户可以添加和自定义的 OSPI 和闪存配置。

    我只转至空项目、然后是本例中的相应内核 A53。

    此致、

    Vaibhav

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

    尊敬的  Vaibhav:

    我从 mcu_plus_sdk_am64x_09_02_01_05更改为 mcu_plus_sdk_am64x_10_00_00_20以在 A53内核上使用闪存、并在 SysConfig 中添加了闪存。 如果您使用创建的"example.syscfg"、IpcNotify_waitSync()的 IpcNotify_waitSync()将停止工作。 因此、样本 ipc_notify_echo 不能按预期工作。

    此外、ipc_notify_echo 的行为会根据"example.syscfg"的版本而变化。
    如果使用 SDK09_02_01_05的"example.syscfg"、则 IPC 示例应用将正常终止。 2.
    2.如果使用在 SDK10_00_00_20中创建的"example.syscfg"、则 IPC 示例应用程序将停止。


    在检查生成的 ti_DPL_config.c 时、我发现 SDK10_00_00_20中缺少 Hwip_enable ()。
    Q1为什么不再在 SDK 10_00_00_20中调用 Hwip_enable ()?
    Q2在 SDK 10_00_00_20中不调用 Hwip_enable ()是否正确?


    请提供建议、因为我会为每个版本附加 example.syscfg。


    SDK 10_00_00_02

    /**
     * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
     * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
     * @cliArgs --device "AM64x" --part "Default" --package "ALV" --context "a53ss0-0" --product "MCU_PLUS_SDK_AM64x@10.00.00"
     * @v2CliArgs --device "AM6442" --package "FCBGA (ALV)" --variant "AM6442-D" --context "a53ss0-0" --product "MCU_PLUS_SDK_AM64x@10.00.00"
     * @versions {"tool":"1.21.2+3837"}
     */
    
    /**
     * Import the modules used in this configuration.
     */
    const flash      = scripting.addModule("/board/flash/flash", {}, false);
    const flash1     = flash.addInstance();
    const ipc        = scripting.addModule("/drivers/ipc/ipc");
    const debug_log  = scripting.addModule("/kernel/dpl/debug_log");
    const mmu_armv8  = scripting.addModule("/kernel/dpl/mmu_armv8", {}, false);
    const mmu_armv81 = mmu_armv8.addInstance();
    const mmu_armv82 = mmu_armv8.addInstance();
    const mmu_armv83 = mmu_armv8.addInstance();
    const mmu_armv84 = mmu_armv8.addInstance();
    
    /**
     * Write custom configuration values to the imported modules.
     */
    flash1.$name                  = "CONFIG_FLASH0";
    flash1.peripheralDriver.$name = "CONFIG_OSPI0";
    
    ipc.r5fss0_0 = "notify";
    ipc.r5fss0_1 = "notify";
    ipc.r5fss1_0 = "notify";
    ipc.r5fss1_1 = "notify";
    ipc.m4fss0_0 = "notify";
    
    debug_log.enableCssLog       = false;
    debug_log.enableSharedMemLog = true;
    
    mmu_armv81.$name = "CONFIG_MMU_REGION0";
    mmu_armv81.size  = 0x80000000;
    
    mmu_armv82.$name     = "CONFIG_MMU_REGION1";
    mmu_armv82.vAddr     = 0x70000000;
    mmu_armv82.pAddr     = 0x70000000;
    mmu_armv82.size      = 0x200000;
    mmu_armv82.attribute = "MAIR7";
    
    mmu_armv83.$name     = "CONFIG_MMU_REGION2";
    mmu_armv83.vAddr     = 0x701D0000;
    mmu_armv83.pAddr     = 0x701D0000;
    mmu_armv83.size      = 0x10000;
    mmu_armv83.attribute = "MAIR4";
    
    mmu_armv84.$name     = "CONFIG_MMU_REGION3";
    mmu_armv84.vAddr     = 0x80000000;
    mmu_armv84.pAddr     = 0x80000000;
    mmu_armv84.size      = 0x80000000;
    mmu_armv84.attribute = "MAIR7";
    
    /**
     * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
     * version of the tool will not impact the pinmux you originally saw.  These lines can be completely deleted in order to
     * re-solve from scratch.
     */
    flash1.peripheralDriver.OSPI.$suggestSolution      = "OSPI0";
    flash1.peripheralDriver.OSPI.CLK.$suggestSolution  = "OSPI0_CLK";
    flash1.peripheralDriver.OSPI.CSn0.$suggestSolution = "OSPI0_CSn0";
    flash1.peripheralDriver.OSPI.DQS.$suggestSolution  = "OSPI0_DQS";
    flash1.peripheralDriver.OSPI.D7.$suggestSolution   = "OSPI0_D7";
    flash1.peripheralDriver.OSPI.D6.$suggestSolution   = "OSPI0_D6";
    flash1.peripheralDriver.OSPI.D5.$suggestSolution   = "OSPI0_D5";
    flash1.peripheralDriver.OSPI.D4.$suggestSolution   = "OSPI0_D4";
    flash1.peripheralDriver.OSPI.D3.$suggestSolution   = "OSPI0_D3";
    flash1.peripheralDriver.OSPI.D2.$suggestSolution   = "OSPI0_D2";
    flash1.peripheralDriver.OSPI.D1.$suggestSolution   = "OSPI0_D1";
    flash1.peripheralDriver.OSPI.D0.$suggestSolution   = "OSPI0_D0";
    


    SDK 09_02_01_05
    /**
     * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
     * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
     * @cliArgs --device "AM64x" --package "ALV" --part "Default" --context "a53ss0-0" --product "MCU_PLUS_SDK@07.03.01"
     * @versions {"tool":"1.17.0+3128"}
     */
    
    /**
     * Import the modules used in this configuration.
     */
    const ipc        = scripting.addModule("/drivers/ipc/ipc");
    const debug_log  = scripting.addModule("/kernel/dpl/debug_log");
    const dpl_cfg = scripting.addModule("/kernel/dpl/dpl_cfg");
    const mmu_armv8  = scripting.addModule("/kernel/dpl/mmu_armv8", {}, false);
    const mmu_armv81 = mmu_armv8.addInstance();
    const mmu_armv82 = mmu_armv8.addInstance();
    const mmu_armv83 = mmu_armv8.addInstance();
    const mmu_armv84 = mmu_armv8.addInstance();
    
    /**
     * Write custom configuration values to the imported modules.
     */
    ipc.m4fss0_0 = "notify";
    ipc.r5fss0_0 = "notify";
    ipc.r5fss0_1 = "notify";
    ipc.r5fss1_0 = "notify";
    ipc.r5fss1_1 = "notify";
    
    debug_log.enableCssLog       = false;
    debug_log.enableSharedMemLog = true;
    
    mmu_armv81.$name = "CONFIG_MMU_REGION0";
    mmu_armv81.size  = 0x80000000;
    
    mmu_armv82.$name     = "CONFIG_MMU_REGION1";
    mmu_armv82.vAddr     = 0x70000000;
    mmu_armv82.pAddr     = 0x70000000;
    mmu_armv82.size      = 0x200000;
    mmu_armv82.attribute = "MAIR7";
    
    mmu_armv83.$name     = "CONFIG_MMU_REGION2";
    mmu_armv83.vAddr     = 0x701D0000;
    mmu_armv83.pAddr     = 0x701D0000;
    mmu_armv83.size      = 0x10000;
    mmu_armv83.attribute = "MAIR4";
    
    mmu_armv84.$name     = "CONFIG_MMU_REGION3";
    mmu_armv84.vAddr     = 0x80000000;
    mmu_armv84.pAddr     = 0x80000000;
    mmu_armv84.size      = 0x80000000;
    mmu_armv84.attribute = "MAIR7";
    


    此致、
    Yukinobu

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

    您好!

    所以、您可以添加闪存。

    现在问题出在 IPC 上、我将此主题分配给 IPC 专家以进一步评论。

    当主题回到闪存主题时、我将接管这一主题。

    Tushar、请查看此主题。

    此致、

    Vaibhav

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

    尊敬的 Yukinobu:

    Q1为什么不再在 SDK 10_00_00_20中调用 Hwip_enable ()?

    执行此更改是为了消除应用程序中的意外挂起。

    请参阅下图。

    您在使用最新的 SDK 时遇到了问题,其中 Hwip_enable ()不是在 System_init ()函数中调用的。 我对吗?

    我将在结束时检查此情况、请留出一些时间恢复。

    此致、

    Tushar

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

    尊敬的 Yukinobu:

    我能够不中断地运行 IPC RPMSG 示例。

    在 example.syscfg 文件中、可以选择在 DPL_init API 调用中启用中断。

    请参阅下图。

    此致、

    Tushar