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.

[参考译文] CCS/TMS320C6678:6678EVM SPI 引导 DDR 配置参数引导参数

Guru**** 2528480 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/728077/ccs-tms320c6678-6678evm-spi-boot-ddr-configuration-parameter-boot-parameter

器件型号:TMS320C6678

工具/软件:Code Composer Studio

:工程师 J ü r

  

您好!

       6678EVM SPI 引导官方例程已成功。 在引用提供的参数时、我在参考参数配置中遇到了几个问题。 我已经用红色标记了它。 请回答。

       目的是 让参数配置更好理解、以便在使用6678制作 自己的版本时、我们可以快速配置加载启动参数。

1.引导参数文件位于 i2crom.ccs 中。 相关参数如下:

0x 0050 0000 //长度:80字节长度的基础是什么? 校验和:0

0x 0032 0000 //SPI 引导模式:50&portnum:0

0x 4013 0002 //swPllCfg_msw//swPllCfg_LSW,请参阅 PLL 配置表,CPU :100*19/2=950,检查手动100M 输入,1000M 输出 PLLD 应为0,PLLM 应为19,如何解释?

0x 0001 0018 //选项:1&addrWidth:24

0x 0004 0000 //npin:4&chipsel:0

0x 0001 0000 //模式:1&c2Delay

0x 03e8 0000 //cupFreqMhz:1000MHz&busFreqMhz:0

0x 01f4 0000 //bhsFreqKhz:500K 总线速率和 readaddrMsw:0

0x 0400 0000 //读取地址为0x00000400,即1KB Place &next CSEL

0x 0000 0000 //next 读取_addr_msw&next 读取_addr_lsw

2. DDR 配置参数位于 AddDDrTable 中。 相关参数如下:

0x 00 00 00 70 //每个参数4字节,28个参数,112字节,这样解释是正确的?

0x 00 87 35 00 // DDR 表起始地址

0x 02 42 80 F5 //config select:找不到参数的基础?

0x 00 00 00 00 //PLL Premdiv:0 prediv 0禁用 PLL、之后是否可以为电路板分配0?

0x 00 00 00 1C //PLL Mul:28

0x 00 00 02 //PLL POST div:2个 DDR 输入时钟为66.7MHz,66.7*28/2=933.8,DDR 时钟为1333,不太对

0x 63 06 2A 32//SDRAM 配置

0x 00 00 00 //SDRAM CONFIG2全部配置为0?

0x 00 00 14 50 //SDRAM 全新控制器、在 DDR 寄存器计算器中提供、是否为0x 00 14 58?

0x 11 13 78 3C ///SDRAM 组合1

0x 30 71 7F E3 //SDRAM 组合2.

0x 55 9F 86 AF / SDRAM 组合3.

0x 00 00 00 //lpDdrNvmTiming

0x 00 00 00 00 // powerManageCtl

0x 00 00 00 //iODFTTestLogic

0x 00 01 00 //执行 count config,找不到参数基础

0x 00 00 00 00 //performCountMstRegSel

0x 00 00 00 00 //readIdleCtl

0x 00 00 00 00 //sysVbusmIntEnSet

0x 70 07 32 14 //sdRamOutImpedCalCfg、找不到参数基础

0x 00 00 00 00 //tempAlterCfg

0x 00 10 01 0F // ddrPhyCtl1,找不到参数基础

0x 00 00 00 00 //ddrPhyCtl2;所有协调是否为0?

0x 00 00 00 //priClassSvceMap;

0x 00 00 00 00 //mstId2ClsSvce1Map;

0x 00 00 00 00 //mstId2ClsSvce2Map;

0x 10 00 00 //eccCtl、无法找到参数基础

0x 00 00 00 //eccRange1;

0x 00 00 00 00 //eccRange2;

0x 00 00 03 05 //rdWrktExcelThresh、未找到参数基础

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

    团队将收到通知。 他们将直接在此处发布反馈。

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

    您好、Qiang、

    请参阅  数据手册的第2.5.3节"引导参数表"、以了解相关信息。

    谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Raja、
    我已阅读相关文件。 标有红色的这些参数的值由官方例程给出。 验证 EVM6678开发板时没有问题。 我无法根据问题解释问题(我理解参数值)。 请在注释中解释您的解释。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引述] 1. 引导参数文件位于 i2crom.ccs 中。 相关参数如下:

    0x 0050 0000 //长度:80字节长度的基础是什么? 校验和:0

    0x 0032 0000 //SPI 引导模式:50&portnum:0

    0x 4013 0002 //swPllCfg_msw//swPllCfg_LSW,请参阅 PLL 配置表,CPU :100*19/2=950,检查手动100M 输入,1000M 输出 PLLD 应为0,PLLM 应为19,如何解释?

    0x 0001 0018 //选项:1&addrWidth:24

    0x 0004 0000 //npin:4&chipsel:0

    0x 0001 0000 //模式:1&c2Delay

    0x 03e8 0000 //cupFreqMhz:1000MHz&busFreqMhz:0

    0x 01f4 0000 //bhsFreqKhz:500K 总线速率和 readaddrMsw:0

    0x 0400 0000 //读取地址为0x00000400,即1KB Place &next CSEL

    0x 0000 0000 //next 读取_addr_msw&next 读取_addr_lsw
    [/报价]

    我刚刚检查了 ROM 引导加载程序源代码的长度、它没有被使用。 您可以使用相同的值。 i2crom.ccs 文件是根据.map 文件提供的输入从 romparse 实用程序生成的。

    [引述]

    第{
    BOOT_MODE = 50
    param_index = 0
    选项= 1.
    core_freq_mhz = 1000
    exe_file ="spidboot.i2c.cs"
    NEW_DEV_addr_ext = 0x0
    SW_PLL_prediv = 5
    SW_PLL_mult = 32
    SW_PLL_postdiv = 2
    SW_PLL_FLAGS = 1
    ADDR_WIDTH = 24
    n_PINS = 4
    CSEL = 0
    MODE = 0
    c2t_delay = 0
    BUS_FREQ_MHz = 0
    BUS_FREQ_kHz = 500

    [/报价]


    请参阅提供的示例中的映射文件、
    processors.wiki.ti.com/.../File:C6678_directROM_boot_examples.zip

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

    另请注意、 C6678的 DDRn`t 表不包含 DDR 电平配置、DDR 初始化序列自 RBL 的上一修订版以来略有变化、因此建议您以较低的速度运行 DDR、同时从 RBL 对其进行初始化、然后从加速 DDR  应用程序初始化代码。

    请参考此线程以获取 DDR 初始化、

    谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Raja、
    您在.map 文件中提供了 SW_PLL_prediv = 5、SW_PLL_mult = 32、SW_PLL_postdiv = 2。 输入时钟100MHz,根据参数100/5*32/2=320MHz 计算系统时钟,计算是否正确? 为什么我应该这样配置它、我知道它配置为1000MHz、它是否适合小于最大支持频率?

    不需要配置 DDR 初始化表性能? 要在程序中初始化 DDR? 这样、在引导时数据无法从 FLASHB 移动到 DDR、并且只能移动到其他存储器模块。 在程序运行和 DDR 初始化之后、可以使用 DDR。 是这样吗?

    此外、请说明我的红色标签参数。 我在有关文件中没有找到这些参数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用]您在.map 文件中提供了 SW_PLL_prediv = 5、SW_PLL_mult = 32、SW_PLL_postdiv = 2。 输入时钟100MHz,根据参数100/5*32/2=320MHz 计算系统时钟,计算是否正确? 为什么我应该这样配置它、我知道它配置为1000MHz、它是否适合小于最大支持频率? [/报价]

    是的、您的计算是正确的。 ROM 引导加载程序仅使用引导参数表中的 PLL 配置值(SW_PLL_xxxx)、而不使用"core_freq_MHz"。 传递的引导参数表对"core_freq_MHz"没有影响。

    [报价]DDR 初始化表性能不需要配置? 要在程序中初始化 DDR? 这样、在引导时数据无法从 FLASHB 移动到 DDR、并且只能移动到其他存储器模块。 在程序运行和 DDR 初始化之后、可以使用 DDR。 是这样吗? [/报价]

    是的、您的理解是正确的。

    谢谢你。