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.

[参考译文] NOR_FLASH_uBoot

Guru**** 2551110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/600508/nor_flash_uboot

主题中讨论的其他器件:X5777AXGABCX5777BXGABC

你(们)好


我们在处理器 X5777BXGABC (器件版本2.0)中遇到 NOR 闪存启动问题、它从 X5777AXGABC (器件版本1.1)迁移。

我们能够访问 NOR 闪存及其在 Silicon Revision2.0和 Silicon Revision 1.1中的数据 ,但它不是从 NOR 闪存引导的。

我们已经进行了配置设置、使其首先引导 MMC、如果 MMC 不可用、则应从 NOR 引导。

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

    您能否检查您使用的软件版本是否支持闪存引导? 请参阅以下链接的教程部分支持的引导模型:
    processors.wiki.ti.com/.../Processor_SDK_Linux_Automotive_Data_Sheet

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

    你好,Tsvetolin Shulev

    您共享的链接与 EVM 相关、没有提及 X5777BXGABC (器件版本2.0)。

    因为我们能够从  X5777AXGABC (器件修订版1.1)中的 NOR 引导。

    请您提供我们所需的确切解决方案。


    我们在处理器 X5777BXGABC (器件版本2.0)中遇到 NOR 闪存启动问题、它从 X5777AXGABC (器件版本1.1)迁移。

    我们能够在 Silicon Revision2.0和 Silicon Rev1.1中访问 NOR 闪存及其数据 ,但它不能从 X5777BXGABC (Silicon Rev2.0)中的 NOR 闪存启动。

    我们已经进行了配置设置、使其首先引导 MMC、如果 MMC 不可用、则应从 NOR 引导。

    BR

    安特里克什

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

    您好 TI

    我们在芯片修订版本2.0 (即 X5777BXGABC)中面临 NOR 启动问题。

    是器件修订版本2.0中的任何主要变化。

    如果有、请进行更新。

    此致

    安特里克什

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

    您好 TI


    我们获得了 GPMC 配置、以便通过使用 JTAG 的存储器浏览器跟踪 GPMC

    GPMC_CONFIG2_I  0x00101001
    GPMC_CONFIG3_I  0x22060514

    GPMC_CONFIG4_I  0x10057016

    GPMC_CONFIG5_I  0x010F1111

    根据 TRM 中 XIP 的 GPMC 配置、我们在存储器浏览器中找到的值不匹配。

    参数          CLK_CYCLE VAL         寄存器初始化(其中 I = 0)                                                                      复位 Val

    CS 高电平时间          16                         GPMC_CONFIG2_I[12:8]   CSRDOFFTIME 位域设置为0x10。     0x10
    高级低电平时间       1                           GPMC_CONFIG3_I[3:0]     的 ADVONTIME 位域设置为0x1。                 0x1.
    高级高电平时间          2                           GPMC_CONFIG3_I[12:8]  ADVRDOFFTIME 位域设置为0x2。          0x2.
    OE 低电平时间              3                           GPMC_CONFIG4_I[3:0]    OEONTIME 位域设置为0x3。                     0x6

    将该 GPMC 配置为 Uboot 的任何方法。

    BR

    安特里克什

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

    主要更改是 sysboot[15]引脚功能。 它允许 eMMC 引导或 GPMC 引导。 请参阅 SR2.0 TRM 文档。

    关于 GPMC 寄存器、只有当 sysboot 引脚指向 GPMC (XIP/NAND)引导时、它们才会由 ROM 代码更新。

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

    这是 AM572x 处理器 TRM 中的确切位置:

    从上面看、我不确定 eMMC 和 GPMC 是否可以同时启动。

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

    你好,Stan

    由于我们在当前设计中未使用 mmc2、因此我已将 sysboot[15]=0用于 NOR 闪存引导。

    我想通知 一下、我的定制板上没有下拉选项可用(GPMC_A[27:19])。

    如果可能,我们是否可以使用配置标题(CH)执行某项操作,从我可以打开它的位置以及下一步的正确步骤。

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

    如果 sysboot[15]=0、则会启用内部下拉电阻器、您无需外部下拉电阻器。

    如果您无法从引导、也不应该是另一个问题。 什么是 sysboot 配置?

    此致、

    STAN

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

    你好,Stan

    我的 SYSBOOT[15:0]自举设置为0000 1000 0100 0101。

    根据上述设置、第一个引导器件是 SD 卡模式、然后是 XIP (NOR)。

    BR
    安特里克什

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

    您好 TI


    我们获得了 GPMC 配置、以便通过使用 JTAG 的存储器浏览器跟踪 GPMC

    GPMC_CONFIG2_I  0x00101001
    GPMC_CONFIG3_I  0x22060514

    GPMC_CONFIG4_I  0x10057016

    GPMC_CONFIG5_I  0x010F1111

    根据 TRM 中 XIP 的 GPMC 配置、我们在存储器浏览器中找到的值不匹配。

    参数          CLK_CYCLE VAL         寄存器初始化(其中 I = 0)                                                                      复位 Val

    CS 高电平时间          16                        GPMC_CONFIG2_I[12:8]   CSRDOFFTIME 位域设置为0x10。      0x10
    高级低电平时间       1                           GPMC_CONFIG3_I[3:0]     的 ADVONTIME 位域设置为0x1。                   0x1.
    高级高电平时间          2                           GPMC_CONFIG3_I[12:8]  ADVRDOFFTIME 位域设置为0x2。           0x2.
    OE 低电平时间              3                           GPMC_CONFIG4_I[3:0]    OEONTIME 位域设置为0x3。                     0x6

    将该 GPMC 配置为 Uboot 的任何方法。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Antriksh、
    您的 SoC 是 AM572x 还是 AM571x? 我不确定如何从板编号中获取它。
    2. sysboot[9:8]被设置为不受支持的设置00。 查看 xtal 的速度、并相应地设置[9:8]。 在大多数情况下、它是20MHz 并且 sysboot[9:8]= 01
    3.我想您已经相应地设置了 sysboot[13:10]。 目前它是8位 A/D 复用器件、等待引脚监视被禁用。 正确吗?
    4.是否可以尝试使用仅 XIP 选项? 即 sysboot[5:4]= 11。

    关于 GPMC 寄存器、ROM 代码设置宽松设置、以便市场上的大多数 NOR 存储器正确启动。 不要依赖 TRM 表、因为 ROM 可能更具最新状态。 GPMC 启动后读取的内容应该是 ROM 写入的内容。 是的、如果您认为您的存储器需要其他设置、CH 接头应该可以工作。


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

    我们使用的是 SoC X5777BXGABC。
    我们的 sysboot 设置为0010 0001 0000 0101、而不是0000 1000 0100 0101、即 sysboot[9:8]= 01。
    3. sysboot[13:10] SO 16位非多路复用 XIP、读取访问的等待被禁用。
    这是在我知道什么之前很难在硬件中进行更改的部分内容
    仅从 XIP 引导与使用 SD 引导的 XIP 之间的差异。
    我们观察 GPMC_A[1:18]= 0x0005 0000、GPMC_A[19:27]= 0x0004 000f、但我们现在观察
    尝试使用 SD 卡时、它是0x0004 0000。

    在测试持续时间、我们发现、如果我第一次从 SD 卡加载 u-boot、我可以
    引导多个 通过在 NOR 闪存上设置程序计数器值来使用 JTAG 的时间
    起始地址、即当 GPMC_A[19:27]= 0x0004 000时、工作正常。


    此外、我们还尝试在从 SD 卡引导时转储寄存器、并在尝试时加载回
    从 NOR 闪存中删除。 但由于某些状态寄存器、它不会出现。 我不这么认为
    正确的方法、但我只是试了一次。


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

    你好,Stan

    我们仅尝试了 XIP 模式、但观察结果没有变化。

    BR

    安特里克什

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

    您好 TI

    我们对跟踪数据矢量寄存器有一些观察结果

    寄存器地址             

    0x4037 F040          0x0000 009F
    0x4037 F044          0x4000 1000
    0x4037 F048          0x0000 0022  
    0x4037 F04C         0x0000 0000
    0x4037 F050          0x0000 0000
    0x4037 F054          0x0000 0000
    0x4037 F058          0x0000 0000
    0x4037 F05C         0x0000 0000
    0x4037 F060         0x0000 00001

    观察结果:

    a.跟踪数据矢量3 (0x4037 F040)、其中包含0x0000 009F、此处第20位为零、表示未找到 CH。
        其中、当我们从 SD 卡(值0x0010 009F)引导时、第20位表示 CH 发现。 如果的通道是必需的
        NOR 闪存启动配置接头(CH)中的数据内容是什么。

    b.跟踪数据矢量3 (0x4037 F048)、其中包含0x0000 0022、表示存储器引导设备
       和 SD 的数据。
       
       而当我们从包含0x0000 0020的 SD 卡跟踪数据矢量3引导时、
       它表示从 SD 引导存储器件。

    c.在硬件侧、我们探测 A[0:10]、数据线 D[0:15]正在切换。
       其余地址行探测不可行。

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

    对于跟踪向量2 (0x4037 F044 = 0x4000 1000)、该值是用于 XIP 引导还是用于 SD?

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

    您好、Stan、

    此值来自 XIP 引导。

    当我们尝试从 NOR (XIP)引导时、我们从以下寄存器收集了这些内容。

    寄存器地址             值

    0x4037 F040          0x0000 009F
    0x4037 F044          0x4000 1000
    0x4037 F048          0x0000 0022  
    0x4037 F04C         0x0000 0000
    0x4037 F050          0x0000 0000
    0x4037 F054          0x0000 0000
    0x4037 F058          0x0000 0000
    0x4037 F05C         0x0000 0000
    0x4037 F060         0x0000 00001

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的。
    请注意、您设置了以下位:
    12. 存储器引导 内存引导试用(第一块)
    30 引导 跳至初始软件

    这意味着引导 ROM 成功地将控制权移交给保存在 NOR 中的引导程序。
    现在、NOR 代码未执行或卡住、但 A15 CPU0受 NOR 软件控制、而不是引导 ROM 代码。

    您尝试引导哪个 OS/SDK? 我知道并非所有支持 NOR (XIP)、但我不知道具体支持哪一个。

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

    您好、Stan、

    在前面的对话 中、我提到 GPMC_A[19:27]未启用、其值为(0x0004 000f)  

      相应的寄存器。

    2.让我知道它是由引导 ROM 代码启用还是由 U-boot 启用。

    我们使用的是 ti-glsdk_dra7xx-evm_6_10_00_02。

    BR

    安特里克什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    TRM 初始化部分:
    •可连接高达1Gibit (128Mibb)的存储器。

    ROM 代码不会对整个 NOR 进行寻址、因此未启用高位地址行。 之后、初始软件可以根据需要启用地址引脚。

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

    请澄清启用上部地址行的初始软件的含义。
    启用这些高位地址线的过程是什么。

    请更新我们、进一步解决 NOR 启动问题。


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

    "您能否澄清启用上部地址行的初始软件的含义。"
    初始软件=引导=第一级引导加载程序。 换句话说、在 ROM 代码之后运行的第一个软件。

    "启用这些高位地址行的过程是什么。"
    我认为除了在 padconf 寄存器中设置适当的多路复用模式之外、没有其他任何东西。 其他步骤是 GPMC 寄存器内存储器大小和优化时序的正常设置。

    现在最重要的是 ROM 代码跳转至 NOR、NOR 映像现在应该运行。 您观察到什么(如果有)? 您能否检查程序计数器指向的位置?
    高位地址 A[19:27]是否浮动? 您是否在 PCB 上有下拉电阻器?
    您的 NOR 品牌/型号/体积是多少?

    此致、
    STAN

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ROM 代码通过寄存器(0x4037 F048)= 0x0000 0022所包含的值跳转到 NOR。
    但根据 TRM 2.0、该值表示 XIP 和 SD 均已启用。

    2.程序计数器指向什么位置?
    从 XIP 启动时,我们已经看到使用仿真器时 PC 正在地址(物理地址) 0x0800 02C0处进行存根。

    上部地址 A[19:27]是否浮动?
    是的、在我们的设计地址 A[19:27] float.它没有任何下拉。

    4.您的或非制造/型号/体积是多少
    Numonyx PC28F00AP30TFA 1Gbit 大小。


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

    1.如果您的 sysboot 配置为1st=SD;2st=XIP、那么 log (0x4037 F048)= 0x0000 0022是正确的。 ROM 已尝试 SD、失败后尝试 XIP。

    该地址证实了我的理论、即 ROM 跳转到 XIP 地址(不带 CH 的0x0800 0000或带 CH 的0x0800 0200)

    3.这可能是一个问题。 我已经检查了一些 EVM、它们都有下拉电阻器。

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

    您好、Stan、

    因为我们没有使线路下拉的选项。

    我们是否有任何与软件 或 CH 相关的选项?

    请告诉我们下一步要做的是什么。

    BR

    安特里克什

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

    Antriksh、

    如果 CH IN NOR 已正确加载并执行、您是否立即尝试过?

    此致、

    STAN

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、您能否发布或通过邮件将与 GPMC 和 NOR 芯片相关的原理图器件发送给我?

    此致、
    STAN
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    否、
    到目前为止、我们没有任何 CH、您能否更新 CH 文件信息。
    或过程来生成 CH。

    此致
    安特里克什
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    TRM 32.3.8.2配置接头部分介绍了 CH。
    您将需要:
    目录项:CHSETINGS
    TOC 项目:CHFLASH
    关闭 TOC 项目:0xFFFF FFFF
    CHSETINGS 项目
    CHFLASH 项目

    我认为您可以从 MLO 文件中重复使用它、并根据需要进行更改。

    此致、
    STAN
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可以看到您已连接 WAIT0引脚、但您没有在 sysboot 引脚中启用等待监控。 是有目的吗? 是否在启用等待的情况下进行了试用?
    只需检查每个细节。

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

    您好、Stan、

    我们可以在下拉高地址行后从 NOR 引导。


    但仅可访问1Gb 的芯片(CS0)、对于第二个芯片、我们将获得未知的组2、如下所述。

     /drivers/mtd/cfi_flash.c 中存在的 FLASH_init 函数内给出的 U-boot 日志消息

    Flash 信息:flash_info[0]。flash_id = 0x1000000:size = 0x80000
    CFI_FLASH_BANK_addr (1)= 0x10000000
    Flash 信息:flash_info[1].flash_id = 0xFFFF:size = 0x80000
    ##组2上未知的闪存-大小= 0x00000000 = 0MB
    128 MIB

    我们能够使用 JTAG 访问 NOR 芯片以及从 MMC 引导。
    请找出根本原因。

    BR

    安特里克什

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

    您的原理图看起来不错、您可以访问第二个芯片的事实证明了这一点。
    我对 u-boot 不是很了解、因此无法为您提供帮助。 我只想 u-boot 不是真正检测到任何芯片、而是需要一些现成的配置。 但我怎么知道(如果完全不知道)。
    我相信、在这个论坛上发布新主题将使更多的工程师能够在 u-boot 方面提供帮助。

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

    根据您的建议、我将为 U-boot 打开一个新线程。

    BR
    安特里克什