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/AM3358:Uboot 201605 SPL 在 GPMC_init()处停止

Guru**** 2554770 points
Other Parts Discussed in Thread: AM3358, SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/609524/linux-am3358-the-uboot-201605-spl-is-halt-at-gpmc_init

器件型号:AM3358
Thread 中讨论的其他器件: SysConfig

工具/软件:Linux

尊敬的读者:

我们将设计一个新的 AM3358板、如下所示:

CPU:AM3358BZCZA80

NAND:MT29F2G08AB

DDR3:MT41J256M16JT-12

电源:TPS65910A3A1

我们使用 TI_Linux_SDK_V03、uboot 201605和 Linux 4.4

但现在我们遇到了一个问题:SPL 调用 GPMC_init 在以下位置停止:writel (0x00000008、&GPMC_cfg->SysConfig)、

我将 writel (0x00000008、&GPMC_cfg->SysConfig)替换为 writel (0x00000008、0x50000010)、它运行良好。

如何解决此问题?

谢谢

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

    您能否在写入之前打印 GPMC_cfg->SysConfig 值? 也许它没有被宣布或者没有指向具有 GPMC 地址的正确结构。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Yordan、您好、感谢您的回复。
    我发现 DDR3工作不好的关键点,我在 GPMC_init()中编写了一些 C 代码,如下所示:
    unsigned int * tmp=(unsigned int *) 0x82000000;//指向 DDR3区域
    *tmp=0x12345678;//将数据填充到 DDR3
    putnum(*tmp);//将数据从 DDR3发送到串行 COM0

    但我无法从串行端口获取数据0x12345678、我认为 DDR3不能正常工作。