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:引导问题

Guru**** 2925050 points

Other Parts Discussed in Thread: AM3358

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/663593/linux-am3358-boot-problem

器件型号:AM3358

工具/软件:Linux

您好!

我们构建了定制的 AM3358板、但未遵循评估板的板布局。因此、借助论坛和一些专业知识、我们能够执行软件调配并获得优化的时序参数。 加载这些值后、我能够使用 CCS 执行所有 DDR 测试。 通过 Code Composer Studio、我能够连接到电路板并查看存储器、寄存器、SRAM 内容的所有内容。

问题是当我将相同的值加载到 DDR_def 文件、board.c 文件中并生成自定义的 MLO、u-boot.img 并将其加载到 MMC0时,我看到 PC (程序计数器)卡在 0x402f0440上,不能继续移动。

即使我们尝试将相同的端口加载到串行端口中,它也没有启动。

以下是运行 DSS 脚本时的输出。

控制:DEVICE_ID = 0x2b94402e
* AM335x 系列
*器件修订版本2.1

PRM_DEVICE:PRM_RSTST = 0x00000001
*位0:global_cold_RST

控制:CONTRAL_STATUS = 0x007f03d7
* SYSBOOT[15:14]= 01b (24MHz)
* SYSBOOT[13:12]设置不正确!
* SYSBOOT[11:10]= 11b 非法值!
* SYSBOOT[9]= 0 GPMC CS0忽略等待输入
* SYSBOOT[9]= 1 GPMC CS0使用等待输入
* SYSBOOT[8]= 0 GPMC CS0 8位数据总线
* SYSBOOT[8]= 1 GPMC CS0 16位数据总线
*器件类型=通用(GP)
* SYSBOOT[7:6]= 11b RGMII 无内部延迟(仅限 EMAC 引导模式)
* SYSBOOT[5]= 0禁用 CLKOUT1
*引导顺序:MMC0 -> SPI0 -> UART0 -> USB0

ROM:电流跟踪矢量、字1 = 0x0010009e
位1:[General]进入 main 函数
位2:[General]正在冷复位后运行
*位3:输入[Boot]主引导例程
*位4:[Memory Boot]内存引导已启动
*位7:找到[Boot] GP 报头
*位20:找到[配置标题] CHSETTINGS

ROM:电流跟踪矢量、字1 = 0x00011000
*位12:[Memory Boot] Memory booting trial 0
*位16:[Memory Boot] Execute GP image

ROM:电流跟踪矢量、字1 = 0x00001000
*位12:内存引导设备 SPI

ROM:PRM_RSTST 的当前副本= 0x00000000

ROM:冷复位跟踪矢量、字1 = 0x00000000

ROM:冷复位跟踪矢量、字1 = 0x00000000

ROM:冷复位跟踪矢量、字1 = 0x00000001
*位0:[Memory Boot] Memory booting device NULL

Cortex A8程序计数器= 0x402f0440

ROM 异常向量
* 0x4030CE04未定义
* 0x4030CE08 SWI
* 0x4030CE0C 预取中止
* 0x4030CE10数据中止
* 0x4030CE14未使用
* 0x4030CE18 IRQ
* 0x4030CE1C FIQ

ROM 死区循环
* 0x00020080未定义异常默认处理程序
* 0x00020084 SWI 异常默认处理程序
* 0x00020088预取中止异常默认处理程序
* 0x0002008C 数据异常默认处理程序
* 0x00020090未使用的异常默认处理程序
* 0x00020094 IRQ 异常默认处理程序
* 0x00020098 FIQ 异常默认处理程序
* 0x0002009C 验证测试通过
* 0x000200A0验证测试失败
* 0x000200A4保留
* 0x000200A8图像未执行或返回
* 0x000200AC 保留
* 0x000200B0保留
* 0x000200B4被保留
* 0x000200B8保留
* 0x000200BC 保留

请尽早帮助我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的 SYSBOOT 设置是什么? 您的引导设备是什么? 您尝试引导的 Linux 版本是什么? CONTROL_STATUS 寄存器显示您未正确设置某些 SYSBOOT 引脚。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Biser、

    根据 sysboot 设置、我们将尝试从 MMC0引导。  

    Sysboot 设置是  

    15:14 ---- 01b 因为我们的时钟为24MHz

    13:12为00b  

    11:6是随机值、因为在 TRM 中它们被称为"不关心"

    5:0 110111b、选择 MMC0作为主引导。

    我们正在尝试使用与下载 AM335x 软件页面中提供的 SDK 4.0一起提供的相同 Linux。

    此致

    MAD_HU

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据上述跟踪矢量,我了解到内存卡被删除,GP 标头被检测到,并且 MLO 已将 Ben 加载到 SRAM 中。
    我们是否仍然需要怀疑 SYSBOOT 设置有问题?

    我们对电路板进行的定制包括:
    1) 1) PMIC 不同于评估板中使用的 PMIC、但所有时序都已正确匹配。它没有 I2C 接口。
    2)正在使用 DDR3L,并且已在 ddr_defs.h 文件中进行相应的更改。
    3)不使用评估板的确切布局、因此在使用 CCS 设计硬件和软件矫正时会完成长度匹配。 通过 DDR 测试时使用的最 la值 取自 GEL 文件并加载到 board.c 文件中。(正在通过 DDR 完整性和 DDR EDMA 测试)
    4) MLO、u-boot.img 是使用这些更改创建的、并且正在加载。

    如果需要纠正任何软件/硬件、请尽早帮助我。


    此致
    MAD_HU
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否确定在复位释放时将 SYSBOOT[13:12]下拉至00b? 另一个需要检查的问题是、EMU0和 EMU1引脚上的 VDDSHV6上有4.7kOhm 外部上拉电阻器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Biser、
    SYSBOOT[13:12]被下拉至00b。 您可以看到下面的日志文件作为证明。 SYSBOOT[11:10]持续显示为非法值,即11b,即使它们的电压正在变化。

    此外、EMU0和 EMU1引脚使用4.7K 上拉至 VDDSHV6


    控制:DEVICE_ID = 0x2b94402e
    * AM335x 系列
    *器件修订版本2.1

    PRM_DEVICE:PRM_RSTST = 0x00000001
    *位0:global_cold_RST

    控制:CONTRAL_STATUS = 0x004f0377
    * SYSBOOT[15:14]= 01b (24MHz)
    * SYSBOOT[11:10]= 11b 非法值!
    * SYSBOOT[9]= 0 GPMC CS0忽略等待输入
    * SYSBOOT[9]= 1 GPMC CS0使用等待输入
    * SYSBOOT[8]= 0 GPMC CS0 8位数据总线
    * SYSBOOT[8]= 1 GPMC CS0 16位数据总线
    *器件类型=通用(GP)
    * SYSBOOT[7:6]= 01b RMII (仅限 EMAC 引导模式)
    * SYSBOOT[5]= 1使能 CLKOUT1
    *引导顺序:MMC0 -> SPI0 -> UART0 -> USB0

    ROM:电流跟踪矢量、字1 = 0x0010009e
    位1:[General]进入 main 函数
    位2:[General]正在冷复位后运行
    *位3:输入[Boot]主引导例程
    *位4:[Memory Boot]内存引导已启动
    *位7:找到[Boot] GP 报头
    *位20:找到[配置标题] CHSETTINGS

    ROM:电流跟踪矢量、字1 = 0x00011000
    *位12:[Memory Boot] Memory booting trial 0
    *位16:[Memory Boot] Execute GP image

    ROM:电流跟踪矢量、字1 = 0x00001000
    *位12:内存引导设备 SPI

    ROM:PRM_RSTST 的当前副本= 0x00000000

    ROM:冷复位跟踪矢量、字1 = 0x00000000

    ROM:冷复位跟踪矢量、字1 = 0x00000000

    ROM:冷复位跟踪矢量、字1 = 0x00000001
    *位0:[Memory Boot] Memory booting device NULL

    Cortex A8程序计数器= 0x402f0440

    ROM 异常向量
    * 0x4030CE04未定义
    * 0x4030CE08 SWI
    * 0x4030CE0C 预取中止
    * 0x4030CE10数据中止
    * 0x4030CE14未使用
    * 0x4030CE18 IRQ
    * 0x4030CE1C FIQ

    ROM 死区循环
    * 0x00020080未定义异常默认处理程序
    * 0x00020084 SWI 异常默认处理程序
    * 0x00020088预取中止异常默认处理程序
    * 0x0002008C 数据异常默认处理程序
    * 0x00020090未使用的异常默认处理程序
    * 0x00020094 IRQ 异常默认处理程序
    * 0x00020098 FIQ 异常默认处理程序
    * 0x0002009C 验证测试通过
    * 0x000200A0验证测试失败
    * 0x000200A4保留
    * 0x000200A8图像未执行或返回
    * 0x000200AC 保留
    * 0x000200B0保留
    * 0x000200B4被保留
    * 0x000200B8保留
    * 0x000200BC 保留



    此致
    MAD_HU
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、另一个可以停止 MLO 执行的东西是 EEPROM 检查。 如果电路板上没有电路板 ID EEPROM、则应禁用 MLO/U-boot 中的 EEPROM 检查。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Biser、

    此 AM3358 SDK 是否存在 EEPROM IC 相关性。 如果是、请帮助我们禁用它的依赖性、因为我们不使用该 EEPROM。

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

    有关如何在 u-boot 代码中禁用 EEPROM 检查、请参阅以下 e2e 线程:

    e2e.ti.com/.../591641
    e2e.ti.com/.../2047516

    我怀疑您遇到的问题与 EEPROM 无关、因为您稍后会在 u-boot 引导日志中收到有关 EEPROM 的错误消息。 我建议您将 AM335x 板配置为从 UART 启动、并检查您是否有"ccc..." 控制台日志上的流、这意味着 ROM 代码成功完成。 请仔细查看以下 wiki 页面:

    processors.wiki.ti.com/.../AM335x_board_bringup_tips

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

    问题现已解决。
    正如您所说的、它不是 EEPROM 的问题、而是软件水平调整的问题、我们已经解决了。
    现在、引导过程已达到内核执行速度、但未检测到 SD 卡上的根文件系统。

    我没有使用 SD 卡的卡检测信号。
    请告诉我需要在 DTS 文件和其他任何地方进行的更改。

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

    请关闭/验证/解决该主题、并打开有关 SD 卡检测信号问题的新主题。

    此致、
    帕维尔