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.

[参考译文] J784S4XEVM:如果要更改'board-cfg.c'文件中的 MSMC L3高速缓存设置,是否应再次刷新 SD 卡并对其重新分区?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1252922/j784s4xevm-should-i-flash-and-re-partition-sd-card-again-if-i-want-to-change-msmc-l3-cache-settings-in-board-cfg-c-file-in-the-linux-sdk

器件型号:J784S4XEVM
主题中讨论的其他器件:TDA4VH

您好!

我想使用不同的 L3 MSMC 缓存大小设置在 J784S4 EVM 上测试 TDA4VH。 每次在"board-cfg.c"文件中更改缓存大小后、有没有比将整个 Linux SDK 刷写到 SD 卡上更好的方法?

谢谢

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

    尊敬的 Sai:

    这是 TIFS 的一部分、因此您可以使用 make u-boot 命令重新构建 tiboot3.bin、并将在$PSDK_Linux/board-support/K3-image-gen 下创建的 tiboot3.bin 复制到 SD 卡的引导分区中。 这应该就足够了。

    -基尔西

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

    这是查找如何 重新构建 tiboot3.bin 的合适位置吗? 3.1.1.一般信息- Processor SDK AM62Ax 文档

    另外、请引导我选择用于我的 EVM (J784S4 Linux SDK)的那一个、

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

    更正-更新了链接-  3.1.1.一般信息-适用于 J784s4的 Processor SDK Linux 文档

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

    我能够使用"make u-boot"命令生成 tiboot3.bin 文件。 虽然您在上面提到过、但不清楚您是在为我提供命令还是建议某个流程。 我假设这是一个过程、因此正在深入文档中概述步骤。 但是、感谢您向我发出这条命令。 起初、我在运行它时遇到问题、因为这个 make 命令所使用的默认编译器存在一些版本/库问题。 我将其替换为 SDK 文档中建议的编译器版本、它可以正常工作。

    已将 tiboot3.bin 文件移动到 SD 卡中。 是否有办法通过 k3conf 工具或其他方式验证我的更改是否已应用? 验证 MSMC 缓存设置是否具有 bee 更新功能非常重要。 请告诉我。

    谢谢

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

    尊敬的 Sai:

    您配置的 L3高速缓存大小是多少? 我们可以在 U-Boot 提示符中轻松地交叉验证相同的内容。

    请尝试"d address"

    地址可以从0x70000000开始。

    由于缓存向下增长、您可以轻松地交叉检查配置为 L3缓存的更高兆字节是否无法访问。 如果您的 L3高速缓存大小为0、则可从 u-boot 访问整个 MSMC 大小。

    此致、

    基尔西

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

    谢谢、但道歉-您能告诉我如何访问 u-boot 提示符吗? 我以前没有这样做过。 是我从 EVM 中的某个目录运行吗?

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

    尊敬的 Sai:

    如何在 J784s4上引导至 Linux? 引导至 Linux 还是 QNX? 正在使用的引导加载程序是什么?

    -基尔西

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

    我正在引导至 Linux。 我已按照本文档 https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j784s4/08_06_01_02/exports/docs/linux/Overview/Processor_SDK_Linux_Formatting_SD_Card.html 中的步骤使用 Linux SDK 对 SD 卡进行了分区。

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

    尊敬的 Sai:

    创建引导至 Linux 的程序。 在 U-boot 之前按任意键。

    请参阅以下日志:

    U-Boot SPL 2021.01-g62a9e51344 (Mar 13 2023 - 15:43:18 +0000)
    ti_i2c_eeprom_am6_get: Ignoring record id 255
    ti_i2c_eeprom_am6_get: Ignoring record id 255
    ti_i2c_eeprom_am6_get: Ignoring record id 255
    ti_i2c_eeprom_am6_get: Ignoring record id 255
    ti_i2c_eeprom_am6_get: Ignoring record id 255
    ti_i2c_eeprom_am6_get: Ignoring record id 255
    ti_i2c_eeprom_am6_get: Ignoring record id 255
    ti_i2c_eeprom_am6_get: Ignoring record id 255
    ti_i2c_eeprom_am6_get: Ignoring record id 255
    ti_i2c_eeprom_am6_get: Ignoring record id 255
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.3--v08.06.03 (Chill Capybar')
    SPL initial stack usage: 13472 bytes
    Trying to boot from MMC2
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty
    NOTICE:  BL31: Built : 15:42:56, Mar 13 2023
    I/TC: 
    I/TC: OP-TEE version: 3.20.0 (gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))) #1 Mon Mar 13 15:43:08 UTC 2023 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.3--v08.06.03 (Chill Capybar')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Fixing SA2UL firewall owner for GP device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2021.01-00002-g4bbaf4a582 (Jul 26 2023 - 15:13:00 +0530)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.3--v08.06.03 (Chill Capybar')
    Trying to boot from MMC2
    
    
    U-Boot 2021.01-00002-g4bbaf4a582 (Jul 26 2023 - 15:13:00 +0530)
    
    SoC:   J784S4 SR1.0 GP
    Model: Texas Instruments J784S4 EVM
    Board: J784S4X-EVM rev E2
    DRAM:  32 GiB
    idle-statesFlash: 0 Bytes
    MMC:   mmc@4f80000: 0, mmc@4fb0000: 1
    Loading Environment from MMC... *** Warning - bad CRC, using default environment
    
    In:    serial@2880000
    Out:   serial@2880000
    Err:   serial@2880000
    am65_cpsw_nuss ethernet@46000000: K3 CPSW: nuss_ver: 0x6BA02102 cpsw_ver: 0x6BA82102 ale_ver: 0x00293904 Ports:1 mdio_freq:1000000
    Unidentified board claims J784S4X-EVM in eeprom header
    Net:   eth0: ethernet@46000000port@1
    Hit any key to stop autoboot:  0 
    

    按任意键以停止自动引导: 0


    这将使您进入 U-boot 提示符。

    -基尔西

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

    谢谢 Keerthy。 尝试 MD 0x70000000时、我看到了以下结果。 我已将 MSMC L3缓存设置为7MB

    似乎我能够从该地址读取存储器。

     尝试 MD 0x70100000、MD 0x70200000、MD 0x70300000时-这些地址如下所示是不可读的

    0x70400000上或以上的任何地址都会导致以下错误

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

    尊敬的 Sai:

    这来自器件 TRM。 MSMC SRAM 总内存为8MB。

    谢谢 Keerthy。 尝试 MD 0x70000000时、我看到了以下结果。 我已将 MSMC L3缓存设置为7MB

    [/报价]

    当 ATF (ARM 可信固件)驻留在那里时、您会看到非零内容。

     尝试 MD 0x70100000、MD 0x70200000、MD 0x70300000时-这些地址如下所示是不可读的

    [/报价]

    您能够读取0、因为它们确实是0。

    0x70400000上或以上的任何地址都会导致以下错误

    [/报价]

    如果您已将4MB 配置为缓存、则可以观察到上述情况。

    您可以共享所做的代码更改以从 SRAM 中分配1MB 的 L3缓存吗?

    注意:我针对 TDa4VH 配置编辑了。

    -基尔西

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

    Keerthy、如果您在 TDAV4H 上参考来自在线版本 TRM 的此方框图、这张图片有问题。  

    1.据我所知、TDA4VH 的 MSMC SRAM 应为8MB

    2. Arm A72内核数必须为总数8。 而这张图片中只显示了2个。 此外,在我看来,图片和技术规格之间有很多不符之处。  

    我被要求参考以下讨论来调整我的 MSMC 缓存设置。 - https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1199941/dra829v-msmc-region-as-l3-cache-for-a72-core/4524353#4524353 通过 jelena

    以下是我在 Linux SDK (2023年5月)中对 board_cfg.c 文件所做的更改:


    ```
    /* boardcfg_MSMC */
    .MSMC ={
    .subhdr ={
    .magic = BOARDCF_MSMC_MAGIC_NUM、
    .size = sizeof (struct boardcfg_MSMC)、
    }、
    .MSMC_cache_size = 0x10、
    }、

    ```

    我使用了三种不同的设置:
    0x8、2MB
    0x10表示4 MB、然后
    0x1C 表示7MB
    使用这些设置、我已经看到内存性能以线性方式提高。 我没有尝试任何超过7MB 虽然。 但 我使用 u-boot 提示符的存储器访问屏幕截图是我无法解决问题的。  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sai:

    我已经尝试更改了 SoC/j784s4/evm/board-cfg.c 下的 MSMC_cache_size 参数。

    模式为:

    0x8 = 1MB
    0x10 = 2MB
    0x18 = 3MB
    0x20 = 0x4M

    ……

    0x38 = 7MB

    建议不要使用8MB 作为 L3高速缓存、因为我们需要对 ATF 和 TIFS 数据使用 SRAM。

    例如:0x0

    devmem2 0x70100000 w
    /dev/mem 打开。
    存储器映射地址为0xFFFEE43000。
    在地址0x70100000 (0xffbee43000):0x00000000处读取
    root@用户 j784s4-evm:~ devmem2 0x70600000 w
    /dev/mem 打开。
    存储器映射地址为0xFFff93297000。
    在地址0x70600000 (0xff93297000):0x00000000处读取
    root 用户@j784s4-evm:~# devmem2 0x70700000 w
    /dev/mem 打开。
    存储器映射在地址0xff8b47d000。
    在地址0x70700000 (0xffffff8b47d000)处读取:0x00000000

    0x8 (默认值)

    root 用户@j784s4-evm:~# devmem2 0x70000000
    /dev/mem 打开。
    存储器映射地址为0xFFFCA9999000。
    在地址0x70000000 (0xffa9999000):0xAA0003F4处读取
    root 用户@j784s4-evm:~# devmem2 0x70100000
    /dev/mem 打开。
    存储器映射在地址0xffffff220000。
    在地址0x70100000 (0xffab220000):0x00000000处读取
    root 用户@j784s4-evm:~# devmem2 0x70200000
    /dev/mem 打开。
    存储器映射地址为0xFFff9c687000。
    在地址0x70200000 (0xffffff9c687000)处读取:0x00000000
    root 用户@j784s4-evm:~# devmem2 0x70300000
    /dev/mem 打开。
    存储器映射在地址0xFFFI7353000。
    在地址0x70300000 (0xffffff7353000)处读取:0x00000000
    root 用户@j784s4-evm:~# devmem2 0x70400000
    /dev/mem 打开。
    存储器映射在地址0xffffff921f1000。
    在地址0x70400000 (0xffffff921f1000)处读取:0x00000000
    root 用户@j784s4-evm:~# devmem2 0x70500000
    /dev/mem 打开。
    存储器映射在地址0xffa5c62000。
    在地址0x70500000 (0xffffff5c62000)处读取:0x00000000
    root 用户@j784s4-evm:~# devmem2 0x70600000
    /dev/mem 打开。
    存储器映射在地址0xff9e2ca000。
    在地址0x70600000 (0xFFff9e2ca000):0x00000000处读取
    root 用户@j784s4-evm:~# devmem2 0x70700000
    /dev/mem 打开。

    错误:在0x800001上从 S-EL1接收到未处理的外部中止
    错误:异常原因=0故障=0xbf000000

    0x10

    root 用户@j784s4-evm:~# devmem2 0x70400000
    /dev/mem 打开。
    存储器映射在地址0xffffff8af32000。
    在地址0x70400000 (0xffffff8af32000)处读取:0x00000000
    root 用户@j784s4-evm:~# devmem2 0x70500000
    /dev/mem 打开。
    存储器映射在地址0xff8b933000。
    在地址0x70500000 (0xffffff8b933000)处读取:0x00000000
    root 用户@j784s4-evm:~# devmem2 0x70600000
    /dev/mem 打开。

    错误:在0x80000000上从 S-EL1接收到未处理的外部中止
    错误:异常原因=0故障=0xbf000000
    EL0中未处理的异常

    此致、
    基尔西

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

    感谢您生成图形。 我必须调整我的测试设置以再次反映这些更改。 感谢您的帮助。