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.

[参考译文] AM3352:SYSBOOT 问题

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

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/604706/am3352-sysboot-issues

器件型号:AM3352

请参阅下面具有 SYSBOOT 配置的原理图。
原理图下方有一个表格、显示了我们希望在开发期间切换的两种不同引导模式:从 eMMC (连接到 MMC1总线)或 从 SPI NOR 闪存引导。
在下面的下方原理图中可以看出 SPI NOR 闪存是如何连接到 SPI0的。

  • SYSBOOT 的默认设置显示在下面的原理图中(黑色箭头)、对应于下表的顶行、即 MMC1 (我们的 eMMC)是第一个尝试的引导介质。
  • 但是、通过将 SYSBOOT 位2上的尖头上拉电阻器(黑色箭头)移到 A、 使引导模式变为稳定的下拉电阻器(红色箭头)、引导模式成为表中的下拉电阻器、即选择连接到 SPI0的 SPI NOR 闪存作为第一引导介质。 UART0保持"直列"、以此类推。 如果不是 SPI 闪存、则是从该闪存引导的最后机会。

问题:

  • 当 SYSBOOT 与原理图中的一样时(SYSBOOT[4:0]=11100b、即表中的顶行有效、 eMMC 即通过 UART0按应有的方式输出"CCCCC"
  • 但是 、当 SYSBOOT[4:0]更改为11000b (SPI 闪存而不是 eMMC)时、UART0不会输出"CCCCC"!在该线路上完全静音。

-->这里有什么问题?

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

    您好 Biser、

    原理图复制到我的文本下方、但它们似乎不会出现在我的文章中、其文本下方空白处。

    我尝试在本帖子中使用"插入文件"提供原理图。

      

    此致、

    Peter

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请检查您的 SPI 闪存是否完全符合 AM335X TRM Rev. P 第26.1.8.6节中列出的要求。另请检查第26.1.8.6.2和26.1.8.6.3小节。 可能会发生的情况是 ROM 代码尝试从 SPI 引导并读取垃圾邮件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的快速响应。

    我将再次检查是否存在问题、即 SPI 闪存是否符合所有功能要求。  ´m 对所有项目都是如此、但我不确定它是否符合预期 的扇区大小(512字节)和第26.1.8.6.3节中提到的地址。 SPI 闪存数据表提到64KB 扇区、32KB 和4KB 子区……? 它是64MB 闪存、因此具有0-1023个扇区、每个扇区的大小为64KB。

    如果 Sitara 尝试 一次读取0.5KB (512byte)、并且最小的闪存扇区为4KB、那么我们在这里有问题吗? 或者、Sitara 指定的扇区是否仅描述其每次读取扫描的"片段"/扇区的大小? 在这种情况下、它将是第一个子区的前半部分(4x512byte = 2KB)(4KB)、这是可以的、或者?

    然后、每个扇区地址上都有预期的值;0x0或0xFFFFFFFF。  我不n´t 空闪存中的数据 是如何设置的。  n´t 未编程的数据位默认值碰巧是0x0或0xFFFFFFF、Sitara 会尝试启动、然后由于 SPI0是检查的第一个引导器件、这将说明我们为什么从 ROM 代码中完全获取任何"C"(通过 UART0)?

     其他一系列问题:

    n´t ROM 代码通过 UART0输出"CCCCC"是否 应该像往常一样正常、即使它从 SPI 中读取了垃圾信息、也就是说、根据 SYSBOOT 设置继续使用下一个潜在的引导器件?

    *我想 PinMux 中的 SPI0设置在此早期阶段无效吗? (这´s 至少是我从26.1.8.6.2中第一句中理解的内容)

    BR、

    Peter

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不确定该闪存是否可用于引导。 我们没有任何具有此类闪存的 EVM。

    n´t ROM 代码通过 UART0输出"CCCCC"是否 应该像往常一样正常、即使它从 SPI 中读取了垃圾信息、也就是说、根据 SYSBOOT 设置继续使用下一个潜在的引导器件?

    ROM 代码没有执行特定的器件识别例程来识别是否已预设引导器件。 如果不存在 SPI 器件、扇区读取将仅返回0xFFFFFFFF、并且 SPI 引导将被视为失败。 但是、如果返回其他值、ROM 代码将假定存在有效的 SPI 器件、并继续扇区读取。 它将读取前四个512字节扇区、其中应包含图像大小。 如果地址0x0、0x200、0x400和0x600的值既不是0x0也不是0xFFFFFFFF、则引导将继续。 否则、它将移至下一个扇区。 仅当检查四个扇区后未找到映像时、ROM 引导加载程序才会移至下一个器件。

    *我想 PinMux 中的 SPI0设置在此早期阶段无效吗? (这´s 至少是我从26.1.8.6.2中第一句中理解的内容)

    ROM 代码初始化 SPI 控制器、引脚多路复用和与 SPI 器件通信的时钟。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Biser:

    关于 AM3352对此类 Micron SPI NOR 闪存的支持、请参阅以下 Micron - Texas 联合文档的摘录:

      

    在本例中、我们使用 Micron MT25QU512ABB、因此应该可以正常工作、至少作为 MT25Q 器件。 但´s 我担心的是、该表 仅指定 高达128MB (16MB)的存储器大小。 MT25Q 系列的存储器容量大于该值。 我们希望使用512Mbit 版本(64MB)的 MT25Q。  
    由于 SPI 闪存和 Sitara 都支持24位地址和读取03h、因此 AM3352读取的数据应该可以不仅仅是16MB??
    或者 Sitara 到底是否真的有16MB 的限制-如果是这样´s 、为什么呢?

    n´t "CCCCC"、我的意思是 Sitara 应该识别内存或类似的东西。 我指的是 ROM 代码在根据 SYSBOOT 设置搜索可引导器件时通过 UART0输出的"CCCCC"。

    当我们更改 SYSBOOT 以使 Sitara 查看 SPI0而不是 MMC1 (其中有 eMMC 闪存)时、我们根本没有获得任何"C"的原因是什么?
    当 SYSBOOT 设置包含 MMC1 (但不是 SPI0)时、我们会看到 UART0发出"CCC"。 但 当我们更改一个 SYSBOOT 引脚使其忽略 MMC1、但将 SPI0作为可能的引导 器件包含在内时、不会这样做。

    我希望这些都能澄清问题。 如果没有、请告诉我! 我们真的需要 知道是否可以使用我们选择的 SPI 或闪存。 如果 是后者 :为什么不呢?

    此致、

    Peter