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.

[参考译文] Linux/processor-SDK-AM335X:mDDR 配置问题

Guru**** 2589265 points
Other Parts Discussed in Thread: AM3352

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/638588/linux-processor-sdk-am335x-mddr-configuration-issue

器件型号:PROCESSOR-SDK-AM335X
主题中讨论的其他器件:AM3352

工具/软件:Linux

大家好、我正在尝试将我的带有 AM3352处理器(Linux RT SDK 4.00.00.4)的定制板放入 uBoot 中、我在使 mDDR 正常工作方面遇到了一些困难。  

我的问题是、一旦我跳转到 u-boot (0x80800000)、通常那里只有垃圾(有时在0x8080000没有分支指令、其他时候没有分支指令、但接下来的几条指令没有)、因此由于处理器尝试执行该垃圾指令、我会得到某种例外情况。

我使用 了 AM335x mDDR 时序配置工具和 RatioSeed_AM335x_boards 电子表格(从 这里)来生成我的时序、我在这方面取得了一些进展(最初我没有串行输出)、 但是、当我查看 CCS 中映射到 mDDR (0x8000000至0x8FFFFFFF)的地址处的存储器浏览器时、我可以看到数据来回变化、这让我相信 DDR 配置仍然存在问题。 我已经尝试过计时配置工具生成的优化值和宽松值、但两者都没有解决我的问题。

我的 mDDR 芯片是 MT46H128M16LF。

目前、我的串行输出如下:

CCCCCCCC
U-Boot SPL 2017.01-00319-geae4602-n脏(2017年11月09日- 10:59:03)
尝试从 MMC1引导
:MMC 引导模式:fs
读取 uboot.env

**无法从 mmc0:1读取"uboot.env"**
使用默认环境

读取 u-boot.img 读取 u-boot.env -




读取 u-boot.u 引导以跳转启动。 

我知道该芯片的工作原理是、我可以加载 Windows CE、它运行良好(我在 CCS 中看不到数据变化)、更让我感到困惑的是、当我从 Windows 中获取值并将其复制到 Linux 时、我在 Linux 上不会获得串行输出 (DDR 立即失败)。

这些是我的当前寄存器值(Linux):

#define DDR_EMIF_READ_LAUNT0x4
#define DDR_EMIF_TIM10x04447289
#define DDR_EMIF_TIM20x10160580
#define DDR_EMIF_TIM30x000000E7
#define DDR_EMIF_SDCFG0x20044c23
#define DDR_EMIF_SDREF0x00000618/ define DDR_DRQ_TRF_define

#define #define 0x40#define #define DDR_DRQ_TRF_0x40#define #define #define #define 0x40_DRQ_TRF_ADDR_TRF_#define #define 0x40#define #define #define 0x40#define #DDR_ADDR_TRF_ADDR_ADDR_TRF_#define #define #define #define 0x40#define





和 Windows CE 7:

#define CDS_EMIF_READ_LAUNT0x4
#define CDS_EMIF_TIM10x04447289
#define CDS_EMIF_TIM20x101705c0
#define CDS_EMIF_TIM30x000000E7
#define CDS_EMIF_SDCFG0x20004EA3
#define CDS_EMIF_SDREF0x000001840_CFG_CFG_CFG_0x40#define
CDS_CFG_CFG_0x40_CFG_CFG_CFG_#define

C#define CK_#define CDS_CFG_0x40_CFG_Y_CFG#define CK_#define CDS_CFG_0x40_CFG_0x40#define CK_#define CDS_CFG_CFG_CFG_CFG_0x40_CFG_CFG_






我是否缺少需要设置的某些寄存器?
如果能提供任何援助,将不胜感激。

谢谢、

Kevin

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

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

    24MHz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我找到了它、我需要在 CONTRAL_MODULE 中设置 DDR_IO_CTRL 寄存器中的 mDDR_SEL 位以与 mDDR 配合使用。