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.

[参考译文] 66AK2G12:无法读取 CCSv7中的 PLL 寄存器

Guru**** 2933120 points

Other Parts Discussed in Thread: 66AK2G12

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/667290/66ak2g12-unable-to-read-pll-registers-in-ccsv7

器件型号:66AK2G12

您好!

我正在使用66AK2G12处理器开发新电路板、并且在将 U-Boot 移植到我们的系统方面遇到了相当大的困难。   我首先要修改以下文件:

board/ti/ks2_evm/board.c
board/ti/ks2_evm/board_k2g.c
board/ti/ks2_evm/ddr3_cfg.c
board/ti/ks2_evm/DDR_k2g.c
arch/arm/mach-keystone/sdr3.c

为了确保 SPL 正确配置部件、我尝试验证时钟树。 我按照 Linux 电路板移植视频系列(https://training.ti.com/linux-board-porting-series-module-1-introduction)中的步骤 来设置 makefile 工程、以便在 CCS 中进行调试。  我能够上传 SPL 并查看串行端口上的输出。   我使用 Tools->Load Memory 上传起始地址为0x0c080000的 spl/u-boot-spl.bin。  我将程序计数器设置为该地址并允许处理器运行。  此时、我在串行端口上看到输出、指示 SPL 已运行、并且正在尝试从 UART 加载 U-Boot。  然后、我暂停处理器并尝试读取 PLL 寄存器、并收到"无法读取"消息。  但是、我能够读取处理器上的任何其他寄存器集。

我认为 SPL 配置器件的方式可能存在问题、因此尝试了 K2G EVM 的 GEL 脚本。  我成功加载 GEL 文件并运行 OnTargetConnect()。  所有 GEL 函数似乎都可以正常工作、并且我成功运行了 DDR3L 测试。  这似乎表示硬件正常工作、但当我尝试读取 PLL 寄存器时、我仍然在寄存器视图中得到"无法读取"消息、在存储器浏览器中得到0x00000000。  当我将鼠标悬停在存储器浏览器中的寄存器上时、它表示无法读取寄存器。  我可以在 GEL 文件中运行 PLL 配置脚本、不会出现错误、但 PLL 寄存器仍然不可读。

是否有人曾发现过这样的问题、或知道在哪里寻找解决方案?

谢谢、

Jeff

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

    您使用的是哪个 Linux SDK 版本?

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

    我使用的是2月15日下载的 Linux SDK 04.02.00.09。 我还在使用 CCS 7.3.0.00019。 U-Boot 版本为2017.01。

    请告诉我您需要哪些其他信息。

    Jeff
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    还值得注意的是、我能够查看 BOOTCFG PLL 寄存器。 我只能查看 PLL 控制器存储器(Base 0x0213 0000)中的寄存器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否能够使 u-boot 正常工作? 您是否在调试控制台上看到任何活动? 请共享输出。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    以下是我的调查结果:

    -在 USB 转 UART 桥接器连接到 UART0且处理器引导模式[0:3]设置为 UART 引导的情况下、释放上电复位后、我会在终端上看到"C"。

    -此时尝试通过 xmodem 加载 SPL 会导致处理器挂起。

    -通过 Tools->Load Memory 通过 JTAG 上传 SPL (u-boot-spl-nodtb.bin 或 u-boot-spl.bin)并将入口点和 PC 设置为0x0c080000后 ,我看到了

    U-Boot SPL 2017.01-00444-g7588864-M脏(2018年2月28日- 17:24:52)
    尝试从 UART 引导
    C 

    -如果我随后通过 JTAG 加载 U-Boot、入口点/PC 0x0c000000、我将得到以下结果:

    U-Boot 2017.01-00444-g7588864-M脏(2018年2月28日- 17:02:37 -0700)
    
    initcall:0c00b5e1
    U-Boot 代码:0C000000 -> 0C0576F0 BSS:-> 0C0A4A58
    initcall:0c001031
    CPU:66AK2Gx-60 SR1.0
    initcall:0c002759
    选择配置"keystone-k2g-evm"、FDT 'FDT@2"
    时基故障:选择的"keystone-k2g-evm"
    initcall:0c00b9fd
    型号:德州仪器 Keystone 2 Galileo EVM
    initcall:0c00b611
    I2C:就绪
    initcall:0c00b601
    DRAM:initcall:0c002485 

    在这一点上、我发现 DRAM 初始化有问题、因为它会在这一点上持续挂起。  我还能够通过 xmodem 和 Ymodem 通过串行端口加载 u-boot.bin、结果相同、加上一些前面的代码:

    U-Boot SPL 2017.01-00444-g7588864-M脏(2018年2月28日- 17:24:52)
    尝试从 UART 引导
    CCC/0 (CAN)数据包、8次重试
    加载了431192字节
    跳转到 U-Boot
    已加载-跳转到 U-Boot...
    图像入口点:0xC000000
    initcall:0c037de1
    

    在遇到一些困难时、我终于能够调试 u-boot 并找到代码会中断的确切位置。  代码步骤耗时超过5秒(HOORAY XDS100...) 有时很难找到用于设置断点的正确源文件。  我经常被告知、我尝试设置断点的代码中不存在符号。  这似乎是由于对什么是 SPL 代码和什么是 U-Boot 代码缺乏了解。

    无论如何、当 u-boot 尝试通过执行一系列读取来确定 DDR 大小时、我发现 memtest.c 中的代码损坏。  在第一次读取时、存储器总线将挂起、处理器将对 JTAG 无响应、从而确认我怀疑 DDR 配置不正确。  这导致我转到 GEL 文件并尝试使用 CTT 调试工具。  (请注意、CTT 在 Linux 中似乎仍然不起作用)

    我使用 GEL 脚本配置了该部件、发现所有函数都正常工作。  我看到将处理器设置为400MHz 会导致 SYSCLKOUT 引脚发生变化(66.66MHz 或400/6MHz)。  我运行了 DDR 测试、测试正常、因此我开始比较每个配置之间的寄存器内容。  当 SPL/U-Boot 不同于 GEL 时、我更改了 GEL、直至其损坏。  然后、我更改了 U-Boot (在 ddr3_k2g.c 中)以匹配 GEL 配置。  U-Boot 仍会挂起。  我注意  到、在 U-Boot 配置中、DDR PHY 中的状态错误显示读/写/DQS 调平错误、结果是配置数据中没有屏蔽".datx8_4_mask = DXEN_mask "。  我们的存储器配置为2个 x16 DDR3L 器件、我们不使用 ECC。  这允许 U-Boot 引导... 更全面一点。  现在、输出如下所示:

    U-Boot 2017.01-00444-g7588864-M脏(2018年2月28日- 17:02:37 -0700)
    
    initcall:0c00b5e1
    U-Boot 代码:0C000000 -> 0C0576F0 BSS:-> 0C0A4A58
    initcall:0c001031
    CPU:66AK2Gx-60 SR1.0
    initcall:0c002759
    选择配置"keystone-k2g-evm"、FDT 'FDT@2"
    时基故障:选择的"keystone-k2g-evm"
    initcall:0c00b9fd
    型号:德州仪器 Keystone 2 Galileo EVM
    initcall:0c00b611
    I2C:就绪
    initcall:0c00b601
    DRAM:initcall:0c002485
    initcall:0c00b7cd
    显示器长度:000A4A58
    RAM 大小:40000000
    RAM 顶部:C0000000
    initcall:0c00b48d
    initcall:0c00b599
    将 TLB 表从 bfff0000更改为 bfff4000
    initcall:0c00b725
    initcall:0c00b559
    为 U-Boot 保留658k,地址为:bff4b000
    initcall:0c00b535
    在 bdf0b000处为 malloc()保留33024k
    initcall:0c00b6e5
    为电路板信息保留80字节、地址为:bdf0afb0
    initcall:0c00b729
    initcall:0c00b50d
    为全局数据保留200字节、地址为:bdf0aee8
    initcall:0c00b4bd
    为 FDT 保留11360字节、地址为:bdf08288
    initcall:0c00b71d
    initcall:0c00b835
    initcall:0c00b7b1
    initcall:0c00b735
    
    RAM 配置:
    组#0:8000000 1 GiB
    
    DRAM:1 GiB
    initcall:0c00b4a9
    新的堆栈指针为:bdf08260
    initcall:0c00b6b9
    initcall:0c00b661
    重定位偏移为:b3f4b000
    重新定位到 bff4b000、bdf0aee8的新 gd、bdf08260的 sp
    initcall:bff569d7
    initcall:bff56875
    initcall:0c00b9c9 (重定位到 bff569c9)
    initcall:0c00b9a1 (重定位到 bff569a1)
    efi_runtime_relocate:重定位到 offset=bff4b000
    efi_runtime_relocate:将 bffa25a0设置为 bffa25f8
    efi_runtime_relocate:将 bffa25ac 设置为 bff88a90
    efi_runtime_relocate:将 bffa25b4设置为 bff88a9c
    efi_runtime_relocate:将 bffa25bc 设置为 bff88a9c
    efi_runtime_relocate:将 bffa25c0设置为 bffa2610
    efi_runtime_relocate:将 bffa25c4设置为 bff88010
    efi_runtime_relocate:将 bffa25cc 设置为 bffa25d0
    efi_runtime_relocate:将 bffa2628设置为 bff7cdc5
    efi_runtime_relocate:将 bffa262c 设置为 bffa2575
    efi_runtime_relocate:将 bffa2630设置为 bffa256d
    efi_runtime_relocate:将 bffa2634设置为 bffa256d
    efi_runtime_relocate:将 bffa2638设置为 bff7cf01
    efi_runtime_relocate:将 bffa263c 设置为 bffa257d
    efi_runtime_relocate:将 bffa2640设置为 bffa2575
    efi_runtime_relocate:将 bffa2644设置为 bffa2575
    efi_runtime_relocate:将 bffa2648设置为 bffa2575
    efi_runtime_relocate:将 bffa264c 设置为 bffa2575
    efi_runtime_relocate:将 bffa2650设置为 bff7cdcd
    initcall:0c00b9d3 (重定位到 bff569d3)
    initcall:0c00b975 (重定位到 bff56975)
    预分配 malloc()使用了0x10c 字节(0KB)
    将内存 bbbbbdf0b000-bbbff4b000用于 malloc()
    initcall:0c00b889 (重定位到 bff56889)
    initcall:0c00b871 (重定位到 bff56871)
    initcall:0c00b963 (重定位到 bff56863)
    uclass_find_device_By_Seq:0 -1
    uclass_find_device_By_Seq:0 0
    --11.
    -未找到
    已选择绑定节点
    "所选"器件没有兼容字符串
    绑定节点别名
    设备“别名”没有兼容的字符串
    绑定节点内存
    器件"内存"没有兼容的字符串
    绑定节点 CPU
    设备'CPU'没有兼容字符串
    绑定节点中断控制器
    -尝试匹配兼容字符串"arm、cortex-a15-GIC"
    节点"中断控制器"不匹配
    绑定节点 SoC
    -尝试匹配兼容字符串"ti,keystone"
    -尝试匹配兼容的字符串"多总线"
    -在"generic_simple_bus"中找到匹配项
    fdtdec get_int_array:范围
    get_prop_check_min_len:范围
    绑定节点 serial@02530c00
    -尝试匹配兼容字符串'ns16550a'
    -在'ns16550_serial'中找到匹配项
    在936处查找'serial',名称为 serial@02530c00
    - serial0、/soc/serial@02530c00
    找到序列0
    将器件串行@02530c00绑定到 SoC
    绑定节点 MDIO@4200f00
    -尝试匹配兼容字符串"ti、keyston_mdio"
    -尝试匹配兼容字符串"ti、davinci_mdio"
    节点'mdio@4200f00'不匹配
    -忽略禁用的设备
    绑定节点 qmss@4020000
    -尝试匹配兼容字符串"ti,keystone-navigator-qmss-l"
    节点"qmss@4020000"不匹配
    绑定节点 knav_dma@0
    -尝试匹配兼容字符串"ti,keystone-navigator-dma"
    节点'knav_DMA@0'不匹配
    绑定节点子系统@4200000
    -尝试匹配兼容字符串"syscon"
    节点"子系统@4200000"不匹配
    绑定节点 netcp@4000000
    -尝试匹配兼容字符串"ti,netcp-1.0"
    -在'eth_ks2'找到匹配项
    在2768处查找'eth'、将 netcp@4000000命名
    - serial0、/soc/serial@02530c00
    - spi0、/soc/spi@21805400
    - SPI1、/soc/spi@21804800
    - SPI2、/soc/spi@21805c00
    - spi3、/soc/spi@21806000
    - SPI4、/soc/qspi@2940000
    未找到
    将器件 netcp@4000000绑定到 SoC
    绑定节点 PMMC@2900000
    -尝试匹配兼容字符串"ti, power-processor"
    -在"ti_power_proc"中找到匹配项
    在3596处查找'moteproc'、名称 PMMC@2900000
    - serial0、/soc/serial@02530c00
    - spi0、/soc/spi@21805400
    - SPI1、/soc/spi@21804800
    - SPI2、/soc/spi@21805c00
    - spi3、/soc/spi@21806000
    - SPI4、/soc/qspi@2940000
    未找到
    将器件 PMMC@2900000绑定到 SoC
    -忽略禁用的设备
    -忽略禁用的设备
    -忽略禁用的设备
    -忽略禁用的设备
    -忽略禁用的设备
    -忽略禁用的设备
    绑定节点 GPMC@21818000
    -尝试匹配兼容的字符串"ti,am3352-gpMC"
    节点'GPMC@2不匹配 

    然后处理器自行复位。  因此、这现在看起来像是设备树问题、如果能在这里获得任何见解(但可能属于另一篇文章)、将不胜感激。   至于主 PLL 寄存器、我仍然无法通过调试接口读取它们。

    Jeff

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

    控制台似乎截断了输出。  下面是一个更完整的集:

    U-Boot SPL 2017.01-00444-g7588864-M脏(2018年2月28日- 17:24:52)
    尝试从 UART 引导
    CxyzModem - CRC mode、3399 (SOH)/0 (STX)/0 (CAN) packets、6次重试
    加载了434768字节
    跳转到 U-Boot
    已加载-跳转到 U-Boot...
    图像入口点:0xC000000
    initcall:0c038911
    
    
    U-Boot 2017.01-00444-g7588864-M脏(2018年3月1日- 11:17:06 -0700)
    
    initcall:0c00b631
    U-Boot 代码:0C000000 -> 0C058408 BSS:-> 0C0A5798
    initcall:0c001031
    CPU:66AK2Gx-60 SR1.0
    initcall:0c002759
    选择配置"keystone-k2g-evm"、FDT 'FDT@2"
    时基故障:选择的"keystone-k2g-evm"
    initcall:0c00ba4d
    型号:德州仪器 Keystone 2 Galileo EVM
    initcall:0c00b661
    I2C:就绪
    initcall:0c00b651
    DRAM:initcall:0c002485
    initcall:0c00b81d
    显示器长度:000A5798
    RAM 大小:40000000
    RAM 顶部:C0000000
    initcall:0c00b4dd
    initcall:0c00b5e9
    将 TLB 表从 bfff0000更改为 bfff4000
    initcall:0c00b775
    initcall:0c00b5a9
    为 U-Boot 保留661k,地址为:bff4a000
    initcall:0c00b585
    在 bdf0a000处为 malloc()保留33024k
    initcall:0c00b735
    为电路板信息保留80字节、地址为:bdf09fb0
    initcall:0c00b779
    initcall:0c00b55d
    为全局数据保留200字节、地址为:bdf09ee8
    initcall:0c00b50d
    为 FDT 保留11360字节、地址为:bdf07288
    initcall:0c00b76d
    initcall:0c00b885
    initcall:0c00b801
    initcall:0c00b785
    
    RAM 配置:
    组#0:8000000 1 GiB
    
    DRAM:1 GiB
    initcall:0c00b4f9
    新的堆栈指针为:bdf07260
    initcall:0c00b709
    initcall:0c00b6b1
    重定位偏移是:b3f4a000
    重定位到 bff4a000、bdf09e8的新 gd、sp at bdf07260
    initcall:bff55a27
    initcall:bff558c5
    initcall:0c00ba19 (重定位到 bff55a19)
    initcall:0c00b9bfp27 initcall:bff558c5c5c5c5c5cw_offset
    重
    
    
    
    定位到 bfi_bffa4:bfi_runtime24_bff_runtimmediatel_bffa4:bffa24_bffa24_bffe100_bff4 将 bffa22d4设置为 bff885cc
    efi_runtime_relocate:将 bffa22d8设置为 bffa2328
    efi_runtime_relocate:将 bffa22dc 设置为 bffa87b40_runtime_relocate
    :将 bffa22e4设置为 bffa22e8
    ef_runtime_relocate:将 bffa2340_bffa23245_bffa23245_bffa245_bffa245bffa245bffa245_bffa245bffa245bffa245bf_bffa245bffa245bffa245bffa245bffa245bffa245bffa245bffa245bffa245bffa245bffa245bffa245_
    
    
    
    
    
    将 bffa2358设置为 bffa228d
    efi_runtime_relocate:将 bffa235c 设置为 bffa228d
    efi_runtime_relocate:将 bffa2360设置为 bffa228d efi_runtime_relocate:将
    bffa2364设置
    为 bffa228d efa2360
    
    
    
    (将 bffa228d EFI_runtime_relocature_relocate 设置为 bffa2350)(将 bffa0bffa235)调用 bffa553b0b)(将 bffa553bc 调用 b0b 0b)
    0c00b8d9 (重定位到 bff558d9)
    initcall:0c00b8c1 (重定位到 bff558c1)
    initcall:0c00b9b3 (重定位到 bff559b3)
    uclass_find_device_By_seq:0 -1
    uclass_find_device_By_seq: 0
    0 --1 -
    未找到
    所选绑定节点
    器件"选定"没有兼容的字符串
    绑定节点别名
    器件"别名"没有兼容的字符串
    绑定节点内存
    器件"内存"没有兼容的字符串
    绑定节点 CPU
    器件"没有兼容的字符串
    绑定节点中断控制
    器-尝试执行此操作 匹配兼容字符串"arm、cortex-a15-GIC"
    不匹配节点"中断控制器"
    绑定节点 SoC
    -尝试匹配兼容字符串"ti、keystone"
    -尝试匹配兼容字符串"simple-bus"
    -在"generic_simple_bus"
    fdtd_dec_get_int_array:范围
    get_prop_check_min_len: 范围
    绑定节点 serial@02530c00
    -尝试匹配兼容的字符串'ns16550a'
    -在'ns16550_serial'中找到匹配
    项,在936处查找'serial',名称 serial@02530c00
    - serial0, /soc/serial@02530c00
    founded seq 0
    bound device serial@02530c00 to soc
    bind node MDIO@4200f00
    -尝试匹配兼容字符串"ti、keyston_MDIO"
    -尝试匹
    
    
    
    
    配兼容字符串"ti、Davinci_MDIO"不匹配节点"mdio"-忽略禁用的器件绑定节点 qmss@@@40l"不匹配"mstone-ms"字符串"qms"、40l"
    绑定节点 knav_dma@0
    -尝试匹配兼容字符串"ti,keystone-navigator-dma"
    节点"knav_dma@0"
    绑定节点子系统@4200000
    -尝试匹配兼容字符串"syscon"
    节点"subsys@4200000"
    不匹配节点"netcp"@4000000
    -尝试匹配"netth"、
    
    以查找"subscon"节点"subscon" 名称 netcp@4000000
    - serial0、/soc/serial@02530c00
    - spi0、/soc/spi@21805400
    - SPI1、/soc/spi@21804800
    - SPI2、/soc/spi@21805c00
    - spi3、 /soc/spi
    
    
    
    
    
    
    
    
    /soc/spi@21806000 - SPI4、/soc/qspi
    /soc/spi@2940000未找到将器件 netcp@4000000绑定到 SoC 绑定节点 PMMC@2900000 -尝试匹配兼容字符串"ti、power-processor"-在"ti_power_proc"找到匹配查找"recoteproc"(位于3596)、名称 PMMC@2900000 - serial0、SP2180500
    -/soc/serial@0250400 -/soc/spi@@@021002 -
    /soc/spi@21806000
    - SPI4、 /soc/qspi@2940000
    未找到
    绑定器件 PMMC@2900000至 SoC
    -忽略已禁用器件
    -忽略已禁用器件
    -忽略
    已禁用器件
    -忽略已禁用器件
    -忽略已禁用器件
    绑定节点 GPMC@21818000
    -尝试匹配兼容字符串"ti、am3352-GPMC"
    节点"GPMC@21818000"不匹配
    -忽略已禁用 将
    器件 SoC 绑定到 ROOT_DRIVER
    initcall:0c00b9a7 (重定位到 bff559a7)
    initcall:0c00249d (重定位到 bff4c49d)
    initcall:0c032fe5 (重
    
    
    
    
    定位到 bff7cfe5) seq_add_memory_map:0x80000247 (重定位到 bff4c49b_emb
    ) initcall
    :0c99n_em_zh_in64_em_zh_cp_em_cp_em_in_cp_zh_cp_cp_em_em_em_em_em_en_cp_cp_cp_cp_em_cp_em_zh_em_em_em_em_en_cp_cp_em_cp_em_cp_em_em_en_em_em_en_em_em_ 0 0
    --1 -
    未找到
    uclass_find_device_By_seq:0
    - 0 -1
    -未找到
    :**器件串行@02530c00的转换**
    在 SoC 上,总线为默认值(na=1,ns=1)
    以下位置:转换地址:000c5302
    在:父总线为默认值(na=1,ns=1):
    1:无转换范围:1:
    以下项的父级转换:00000000
    、偏移量:38996992
    、其中:一级转换:000c5302
    、其中:已到达根节点
    fdtdec _get_int:reg-offset:(未找到)
    fdtdec get_int:reg-shift:0x2
    (2) fdtdec get_int:clock-frequency:(未找到)
    调用:(
    未找到) fdtdec
    )调用:initdec 0558bd:rb089-已在 bb 中重定位为0b)
    0c00b971 (重定位到 bff55971)
    MMC:uclass_find_device_By_seq:0
    -未找到
    uclass_find_device_By_seq: 1 0
    -未找到
    
    initcall:0c00b929 (重定位到 bff55929)
    fdtace dec get_config_int:加载环境
    MMC 设备0
    :
    
    
    
    未找到 mc00b929 (重命名为 bc 设备)硬件设备0) bffa0590 table = 00000000
    创建哈希表:n=512
    删除候选项:"bootargs"
    hdelete:删除关键字"bootargs"
    删除错误############################
    插页:table bffa0590、filled 1/521 RV bdf0ce34 => name="bootcmd" value="run fdfdt;run envboot;run"
    插页:table bffa0590、filled 2/521 RV bdf0d690 => name="bootdelay" value="2"
    插页:table bffa0590
    = bf24521"、brt bfb bcr = bf015b = bfb = bcr = bcr = bf2、fb 0521、fb = fb = f2、fb = fb = fb = fb
    表 bffa0590、填充的5/521 RV bdf0da28 => name="cpu" value="armv7"
    插入:表 bffa0590、填充的6/521 RV bdf0d1e0 => name="board" value="ks2_evm"
    插入:表 bffa0590、填充的7/521 vr bdf0d4e4
    
    = bdffa0521"、bdr = bdffa0490"
    插入表 bfd/ fb = bfd4pensor_dev = bfd0490"插入 dfdcr = bfb:bffa0d4dffa0d4 pensor_dev = bfb 表 bffa0590、填充
    
    
    
    的88010/521 RV bdf0d514 => name="loadaddr" value="0x82000000"插入:表 bffa0590、填充的11/521 RV bdf0ce98 => name="kernel_addr_r" value="0x82000000"插入的 bffa0590 =填充的 bq514-0521rb = dfdfb、dr b = 05521 rbdr b = 0x000590"
    插入的值: 表 bffa0590、填充的15/521 RV bdf0dbb8 => name="ramdisk_addr"值="0x88080000"
    插入:表 bffa0590、填充的16/521 RV bdf0c68c => name="脚本 addr"值="0x80000000"
    插入:表 bffa0590 =
    
    填充的1600/521 RV bdff0c68c => bf100000=填充的 bf100nf 17-010521"、bfb = bff000="bf100000="bfb = f100000"
    插入的 bfb = bff000b 表 bffa0590、填充20/521 RV bdf0c330 => name="mmcdev" value="0"
    插入:表 bffa0590、填充21/521 RV bdf0d03c => name="mmcrootfstrv" value="ext4 rootwait"
    
    
    插入:表 bffa0590、填充21/2521/rv bdf0dv=dle= duc1dlebdfindu dfindu dlev = duc1dlebfindu dfindu vb 0234/dlev = duc1duc1dlev = duc1dleb 024b table bffa0590、filled 24/521 RV bdf0c010 => name="loadbootscript" value="load MMC ${mmcdev}${"
    insert:table bffa0590、filled 25/521 RV bdf0c970 => name="bootscript" value="回显正在运行 bootscript f"
    insert:table bffa0590
    = bffdensed v524/v= v0524/rv = v0524/rv = pref0524/rv = fb 文件 b
    表 bffa0590、填充了28/521 RV bdf0e374 => name="loadbootenv" value="fatload MMC ${mmcdev}${"
    插入:表 bffa0590、填充了29/521 RV bdf0d7bc => name="load ${mmcdev}${dloadbd0301/521}paddt =$
    {dffa3bdf df df d5992$}、填
    充了 bdV bdV bdf df df df c0df df c0dV!bdf cpdt! 如果 MMC 重新"
    插入:表 bffa0590、填充的32/521 RV bdf0e504 => name="mmclamos" value="run args_mmc;如果测试${bo"
    插入:表 bffa0590、填充的33/521 RV bdf0e108 => name="mmcboot" value="mmc dev_cn=$bffa0590"
    、填充的 PM534/2552v = bffff0eMC =设置的 pmmccs_env_env_env_enc =设置:
    表 bffa0590、填充的35/521 RV bdf0cfc4 => name="dev_PMMC" value="0"
    插入:表 bffa0590、填充的36/521 RV bdf0d0b4 => name="get_PMMC_net" value="dhcp bffa0590"${tfp"
    、
    填充的 pnf_bnf= bnf_b534/bnfb = p_pbnf_p_f0562p"插入的 nf_bnfb = p_p_f_pbnfb = pbnfb = pbnf_loadbnf_bnf_f_f_f0dnf_nf_bnf_bnf_bnfb = p_bnf_bnf_bnf_bnf_bnf_nf_
    表 bffa0590、填充39/521 RV bdf0d4ec => name="get_PMMC_mmc" value="load MMC ${bootpart}${"
    插入:table bffa0590、填充40/521 RV bdf0c1a0 => name="get_PMMC_ubi" value="fp bffa0590;
    填充 pref_bpref_bdcpf = bngv_bngb = bngb 0521pref_pref_pref_pu v_pr.prb = bngb = ngb = f_bngb 0521"、pref_pr.prb = f_bngb = f_b.prb 0490"
    ;填充 bf_bf_bf_bf_bf_b.prb
    表 bffa0590、填充的43/521 rv bdf0c498 => name="set_rd_spec " value="setenv rdaddr ${rdaddr}"
    插入:表 bffa0590、填充
    
    的 rd521 rv bdf0cccc => name="init_fw_rd_net" value="dfp = dnfs bf_br>插入的 nfs = tf_bnf 0490rf =$44,521 rf rf = tf bnf cr = tbfr = tf_fr = tbf_fr = tf c54900b
    表 bffa0590、填充的47/521 RV bdf0e0a4 => name="init_fw_rd_ubi" value="ubifsload ${rdaddr}$"
    插入:表 bffa0590、填充的48/521 RV bdf0bf70 => name="boot_ffit " value="05600"
    
    = dffa049"、
    填充的 bfdfb 0bvrv = bfb 0490bfb = dfb = dfb = dfb 表 bffa0590、填充51/521 RV bdf0dd34 => name="update_fit" value="setenv loadaddr ${fit_"
    插入:表 bffa0590、填充52/521 RV bdf0dffc8 => name="loadffit " value="run args_mmc;
    填
    充 bffa0590 = bdrv bdf0521"、填充 bdrv b df0dr = dffdff90;填充 bdcpuf 0521" bdffdcpub = bdffd100b = bf0df 05340b = dr = bf0df 0dr = df 0df 0df c8;填充 bdf df df df c2000 rv
    表 bffa0590、已填充55/521 RV bdf0e220 => name="bootpart" value="0:2"
    插入:表 bffa0590、已填充56/521 RV bdf0be08 => name="bootdir" value="/boot"
    插入:表 bffa0590、已填充57/521 RV bdf0be08 => bdfdv=$bdf521"
    插入:bdbdvb = bdv/bdv/bdv/bdv/bdv/bdv/bdv/bdv/bdv= dv/fdv/fdv/fdv/fdv= dv/v/fdv/br/fdv/dv/fdv
    表 bffa0590、已填充59/521 RV bdf0e324 => name="findfdt" value="如果 test $board_name = 66AK2G"
    插入:表 bffa0590、已填充60/521 RV bdf0c844 => name="name_mon" value="skern-k2g.emb"
    
    、已填充 bdf0521" vrb.emb = bdfbid-f0451b.emb = bub、dfbub 0dfbub = dfbub 0dfg.emb
    表 bffa0590、填充的63/521 RV bdf0bee4 => name="init_mmc" value="run args_all args_mmC"
    插入:表 bffa0590、填充的64/521 RV bdf0d140 => name="init_fw_rd_mmc" value="load ${mc" part =
    d0590
    、填充的 d641rv b dfdf df0dr = d641df df df df df df df df df0dr = d641df df df df df df df df df df df dMC" insert = cr = cr = cr = cr = d65b df df df df dFF521 df df df df df df d
    表 bffa0590、填充的67/521 RV bdf0c984 => name="get_kern_mmc" value="load MMC ${bootpart}${"
    插入:表 bffa0590、填充的68/521 RV bdf0d190 => name="get_bootmon_mmc" value="load ${bootpart}"= bffa0521"
    、bdfdprb = bd090" bdf dfb = bfb = dfftisd0490"、
    
    填充的 bfb dpr-mcb = bfb dfb = dfb dfb = dffdfb dfb d0df dfb = dfb dfb dfb dfb = dfb dffd0dfb dfb = df d0df df df d 表 bffa0590、填充的70/521 RV bdf0bf98 => name="tftp_root" value="//
    "插入:表 bffa0590、填充的71/521 RV bdf0e414 => name="nfs_root" value="/export"
    插入:表 bffa0590、填充的71/521 RV bdf052100
    
    = bdb = bdfb = bdfb 040">
    填充的 bdb 值 bdb = bdb = bdb 0400b = bdb 0db = db 0db = 0db 0db = 0db 0db 0db = 0db 0db 0db = 0db 0db 0db 0db 0db 0db 0db = 0db 0db = db = db 0db 0db 0db = db 0db 0db 0 表 bffa0590、填充75/521 RV bdf0d76c => name="name_kr" value="zImage"
    插入:表 bffa0590、填充76/521 RV bdf0cec0 => name="addr_mon" value="0x875900"
    插入:表 bffa0590、填
    充为 bf0521_bcr = bd078000_addr_cr = cr = cr 0521、填充值 bcr = 0cr = 0cr bcr = cr 0cr = 0cr bcr 0cr = cr 0cr 0cr = 0cr
    表 bffa0590、填充79/521 RV bdf0d8c0 => name="run_mon" value="mon_install ${addr_mon}"
    插入:表 bffa0590、填充80/521 RV bdf0bfdfd4 => name="run_mon_hs" value="off_definched
    0521"、tr bdfbdf_insert
    = df_d0521r"、dfdf_dfbfbdfbfbfbfbfbfbf_insert =$bfdf_df_addr"值={dbd0521r"、df_bdf_df_df_df_df_df_df_df_df_dfdfdf_df_df_insert =$0590"插入:
    表 bffa0590、填充的83/521 RV bdf0bdb8 => name="init_nfs" value="setenv autoload no;dhcp;r"
    插入:表 bffa0590、填充的84/521 RV bdf0dbc => name="run_ubi"值="run dcp_undp_insert
    =$ 85/521 rt bdfdf0434b = fundp_undp";填充的 dtbdf_undp_undp_undp_insert =$ 8fundp_undp_undp_undp_undp_undp_undp_insert = df_undp_undp_undp_undp_undp=$8f_
    表 bffa0590、填充的86/521 RV bdf0cb00 => name="get_FDT_nf" value="nfs ${fdtaddr}${nfs_roo"
    插入:table bffa0590、填充的87/rv bdf0d1cc => name="get_fdDT_udp"插入
    的${nfdf_dffdf_degin
    =$}bdf8/nf 0521、填充的 nf df df df df df df df df df df df dfdf df_df = df df dfb、dffdf df dfb =${dffdf df df df df df dfb}、df df df df df df df df df df df df df df df df df df df df df dfb:tfb
    表 bffa0590、填充90/521 RV bdf0c1c8 => name="get_kern_ubi" value="ubifsload ${loadadmon}$"
    插入:表 bffa0590、填充91/521 rv bdf0d1f4 => name="get_mon_net" insert $
    {dffmon_fp}
    dfp = dfp、填充值:dfp = dfp = dfp 0528、df df df df dr、df df df df dr
    、df dr、dr、df cp = df cp = dfp、df 0528 表 bffa0590、填充94/521 RV bdf0e3c4 => name="get_fit_net" value="DHCP ${fit_loadaddr}${t"
    插入:表 bffa0590、填充951/521
    
    RV bdf0bfc0 => name="get_fit_nf" value=${tms_loadbfb =$ 0951/521rv 填充 dr bfp、填充 dfr bfp = df_addr =${df_fp = dfp}bfp = dffbfp = dcpf dcpf dfp、dfp = tb 0951/dfp = dfp = dfp、dfp、dfp = dfp = dcpf nfp、dfp = dfp = dfp、dfp = dfp = dffbfp = dcpf d
    表 bffa0590、填充98/521 RV bdf0cac4 => name="get_ubboot_net" value="DHCP ${loadaddr}${tft "
    插入:表 bffa0590、填充99/521
    RV bdf0d820 => name="get_ubboot_nfs" value="填充 nf_nf_bf0521";dfb nf_f_fb nf_bnf_bnfb = nf_bnf_bnf_bnf_bnf_bnf_bnf_bnf_bnf_bnf_bnf_bnf_bnf_bnf_bnfb
    table bffa0590、filled 101/521 RV bdf0ddac => name="burn_ubboot_nand" value="nand erase 0 0x1000"
    插入:table bffa0590、filled 102/521 RV bdf0d0d0c8 => name="args_all" value="setenv 0v3"
    、dv2pv
    = dv51402 = dvrbdvn、dv1、dvc = dfbdv4、dv1、dv4、dv4、dv4、dv3 = dv4、dv1、dv4、dv4、dv1、dv4、dv3 = dv4、dv4、dv4、dv4、dv4、dv4、dv4、dv4、dv3 = dv4、dv4、dv4、dv1、
    表 bffa0590、填充105/521 RV bdf0d898 => name="get_FDT_ramfs" value="DHCP ${fdtaddr}${tft "
    插入:表 bffa0590、填充106/521
    
    RV bdf0d60 => name="get_kern_ramfs" value=${dfftf bd0590、填充 dr bdf = df df df df dr
    、df 0521 rf df df dr = df df df df dr、df df df df dr、df df dr、df df df dr、df df df df dr、df df df df df dr、df df df df df df dr、df df df df df dr、df df df df df df 表 bffa0590、填充的109/521 RV bdf0de88 => name="get_fs_ramfs" value="dhcp ${rdaddr}${tftp_"
    插入:表 bffa0590、填充的110/521 RV bdf0e4f0 => name="get_ubi_net"${tftbnfp
    
    }、
    填充的 nfp = 112/521 rf nfb、nfb、nfb、nfp = nfb、nfb、nfp = nfb、nfb、nfp = nfb、填充的 nf0152f、nf、nf nf、nf、nf、nf、nf、nf、nf、nf、nf、nf、nf、nf、nf、nf、nf、nf、nf、nf、nf、nf、nf、nf、nf、 表 bffa0590、填充113/521 rv bdf0d334 => name="init_ramfs" value="run args_all args_ramfs "
    插入:表 bffa0590、填充114/521 rv bdf0dde8 => name="setenv_ramfs" value="setenv"= dffa0590"
    
    、填充 dvb dvb = bdf0dvb = dv100、dvb 0dvb = dv100、dvb = dvb = dv100、dvb 0dv100 dvb = dv100、dvb = dv100、dvb = dv100 dv100、dvb = dv100
    、dvb = dvf 0dvb = dv100 dv100、dvf = dv100、dvf = dvf = dv100、dv100 dfb = df
    argc=3完成
    初始值
    argc=3
    initcall 的最终值:0c00ba2d (重定位到 bff55a2d)
    initcall:0c00fe85 (重定位到 bff59e85)
    initcall:0c00b91f (重定位到 bff5591f)
    initcall: 0c00e035 (重定位到 bff58035)
    argc=3的初始值
    argc=3的最终值
    argc=3的初始值
    argc=3
    的最终值 argc=3
    的最终值 argc=3的最终值
    initcall:0c002091 (重
    
    
    定位到 bff4c091) initcall:0c000c6c55d (重定位到 bff8db)
    0c002a35 (重定位到 bff4c35)
    argc=3的初始值
    argc=3
    的最终值 initcall:0c00b8e9 (重定位到 bff558e9)
    net:uclass_find_device_Byseq:0 -1
    uclass_find_device_Byseq:0
    - dt-1 -
    not fnavigator:
    
    0xfind_port_dec
    
    
    :0xfind_f_port_dec:vel_fdec:0xfind_port_fdec:0_dec:v_find_port_find_port_port_fdec:0_fdec:0dec
    PHY-handle
    fdtdec
    
    @get_int:reg:0x0 (0) fdtdec GET_addr_size_fixed:reg:Addr=04200f00 of:**设备 netcp 4000000的转换**
    of:SoC 上的总线为默认值(na=1、ns=1)
    ;转换地址:10016202
    of:
    
    父总线为默认值:9900001:
    1、偏移量:1:na1、转换为0:990000 1:1:1:0
    一级转换:10016202
    ,共:到达根节点
    
    Ethernet-MDIO PHY:0找不到
    以太网-MDIO 的 PHY:Addr 0
    预取中止
    PC:[[3541cd20>] LR:[ ]
    重新分配 PC:[<814d2d20>] LR:[<0c01f9a1>]
    sp:bdf071d0 IP:bdf0a744 fp:00000017
    R10:0c058368 R9:bdf09ee8 R8:bffa0564
    r7:bdf0a1d8 r6:00000000 r5:00000000 r4:bdf0a600
    r3:3541cd1d r2:e59ff098 R1:00000000 r0:00000000
    标志:nzcv 关闭 FIQ 关闭模式 SVC_32
    正在重置 CPU ...
    
    正在重置...
    

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

    这肯定是加载 DTB 时出现的问题、但仍可能与错误的内存设置相关。
    您能否共享 DDR EMIF 的寄存器设置? 您的电路板与 K2G EVM 有何不同:它有多少存储器? DDR 芯片有多简单?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    struct ddr3_phy_config ddr3phy_1600_2g ={
    .pllcr = 0x000DC000ul、//
    .pgcr1_mask =(IODDRM_MASK | ZCKSEL_MASK)、//
    .pgcr1_val =((1 << 2)|(2 << 7)|(1 << 23)))、//
    .ptr0 = 0x42C21590ul、//
    .ptr1 = 0xD05612C0ul、//
    .ptr2 = 0x00083DEFul、//
    .ptr3 = 0x06C30D40ul、//
    .ptr4 = 0x06413880ul、//
    .DCR_MASK =(PDQ_MASK | MPRDQ_MASK | BYTEMASK_MASK)、
    .dCR_val =((1 << 10))、
    .dtpr0 = 0x510E6644ul、//
    .dtpr1 = 0x32834200ul、//
    .dtpr2 = 0x50022A00ul、//
    .mr0 = 0x00001430ul、//
    .MR1 = 0x00000006ul、//
    .mr2 = 0x00000000ul、//
    .dtcr = 0x710035C7ul、//
    .pgcr2 = 0x00F03D09ul、//
    .zq0cr1 = 0x0001005Dul、//
    .zq1cr1 = 0x0001005Bul、//
    .zq2cr1 = 0x0001005Bul、//
    .PIR_v1 = 0x00000033ul、
    .datax8_2_mask = 0、
    .datax8_2_val = 0、
    .datax8_3_mask = 0、
    .datax8_3_val = 0、
    .datax8_4_mask = DXEN_MASK、
    .datax8_4_val = 0、
    .datax8_5_mask = DXEN_MASK、
    .datax8_5_val = 0、
    .datax8_6_mask = DXEN_MASK、
    .datax8_6_val = 0、
    .datax8_7_mask = DXEN_mask、
    .datax8_7_val = 0、
    .datax8_8_mask = DXEN_mask、
    .datax8_8_val = 0、
    .PIR_v2 = 0x00000F81ul、
    };
    struct ddr3_EMIF_config ddr3_1600_2g ={
    .sdcfg = 0x62005662ul、
    .sdrfc = 0x00000C34ul、
    .sdtim1 = 0x0A344C33ul、
    .sdtim2 = 0x00001CA5ul、
    .sdtim3 = 0x21ADFF32ul、
    .sdtim4 = 0x533F067Ful、
    .zqcfg = 0x70073200ul
    
    、}; 

    我们使用2个没有 ECC 的16位宽器件。 这里的希望是节省布板空间并简化布线。
    此配置以零错误通过 GEL 读/写测试、但仅测试存储器的一小部分。
    该部件是 ISSI IS43TR16256AL-125KBL。 它是 DDR3L-1600、16x256。 板上有1GB 的 DDR、在 U-Boot 过程中可以有效地检测到这一点。
    我已将复位问题缩小到 MDIO 无法与 PHY 通信、这可能是由于 PHY 没有时钟。 我们尝试使用 RMII_REFCLK 引脚作为时钟源、但我们在该引脚上看不到信号。
    我认为这是一个单独的问题、与读取 PLL 寄存器无关、可以布置在单独的线程中。

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

    [引用]我已将复位问题缩小到 MDIO 无法与 PHY 通信、这可能是由于 PHY 没有时钟。 我们尝试使用 RMII_REFCLK 引脚作为时钟源、但我们在该引脚上看不到信号。
    我认为这是一个单独的问题、与读取 PLL 寄存器无关、可以发布在单独的线程中。

    我在另一个主题上回答了有关 RMII_REFCLK 引脚的问题。

    至于无法使用 CCS 读取 PLL 寄存器、我在 K2G EVM 上尝试过这种方法、并且能够读取和写入这些寄存器... 尝试在不加载 u-boot 的情况下访问它们、只需使用 GEL 文件即可。 也许 u-boot 已经在 bootcfg 中设置了 KICK0和 KICK1寄存器?

    此致、
    Yordan