LS1028ARDB I2C eeprom:如何加载 RCW 和引导加载程序 你好,我想知道如何在 I2C eeprom 中加载 RCW 和 BL,以便从这个源头启动主板。 我找到了这个主题:https://community.nxp.com/t5/QorIQ/LS1028-RCW-generation-to-boot-from-I2C-EEPROM-to-NOR-Flash/m-p/1455702、但我也被卡住了。 我想知道需要加载哪个版本的 BL2,bl2_emmc、bl2_sd......但在我的 Yocto 编译中,并没有出现 bl2_i2c。 我需要修改什么才能生成这个吗?还是没有必要? 谢谢! 伊穆古鲁扎 Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 我知道这是个老话题,但我遇到的问题与这张票类似。 我按照步骤使用可启动的 SD 卡中的 u-boot 将 rcw 和 bl2 垃圾箱编程到 eeprom 中,并验证了数据存在于 EEPROM 中。当我将交换机重新配置为从 EEPROM 启动并捕获 j26 上的 i2c 流量时,我看到了: 看来 EEPROM 没有响应。 您能帮我弄明白如何让它像宣称的那样工作吗? Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 又见面了 我已经很久没有试过这个了,但它不起作用。 我一直在检查连接器 J26 上的 I2C 信号。当我启动板时,我只看到一个 I2C 命令。该命令是对 0x50 地址的写入请求。它没有来自 EEPROM 的 ACK: 这意味着 I2C 多路复用器的配置不正确,它没有连接到连接 EEPROM 的总线 0... 我相信 CPLD 应该配置这个设备以启用从 LS 到 EEPROM 的路径。 有什么变通办法可以让它正常工作吗?这是一个已知的问题吗? 谢谢! 伊穆古鲁扎 Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 请检查能否将 RCW 映像写入 i2c eeprom。
=> tftp 0xa0000000 nxa22585/ls1028ardb/rcw_1500_gpu600.bin => i2c 写 0xa0000000 0x50 0.2 0x10c
= > 重置
=> i2c read 0x50 0.2 0x10c 0xc0000000 => md 0xc0000000 c0000000: aa55aa55 80100000 3c004010 00000030 U.U......@.<0... c0000010:00000000 00000000 00000000 018f0000 ................ c0000020: 0030c000 00000000 020031a0 00002580 ...0......1...%... c0000030: 00000000 00003296 00000000 00000010 .....2.......... c0000040: 00000000 00000000 00000000 ................ c0000050: 00000000 00000000 00000000 ................ c0000060: 00000000 00000000 00000000 ................ c0000070: 200e705a 00000000 bb580000 00000000 Zp.......X..... c0000080: 00000000 00000000 458ca4b5 334008bc ...........E..@3 c0000090: 00000001 33400154 47474747 33400158 ....T.@3GGGGX.@3 c00000a0: 47474747 334008bc 00000000 335008bc
[email protected] c00000b0: 00000001 33500154 47474747 335008bc ....T.P3GGGG..P3 c00000c0: 00000000 33400890 00800401 33500890
[email protected] c00000d0: 00800401 33400098 00000000 33500098
[email protected] c00000e0: 00000000 31e00900 00000004 31e00400 .......1.......1 c00000f0: 1800d000 8000000a 00000400 1800d000 ................ => Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders ping@yipingwang Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 你好@yipingwang 在编写 bl2.bin 的过程中,板被冻结了,我相信加载不正确... 以下是捕获: 查看 LS1028ARDB 原理图,我认为 sw_cfg_wp 引脚应为 "0",以允许写入 eeprom: 我也设置了,但是写入过程冻结了,之后,一旦我切换到eeprom的启动选项,我就看不到任何打印的字符。 知道可能出了什么问题吗? 此致, 伊穆古鲁扎 Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 请尝试 https://community.nxp.com/t5/QorIQ/LS1028-RCW-generation-to-boot-from-I2C-EEPROM-to-NOR-Flash/m-p/1455702中所附 i2c_ls1028a.zip 中的图像。
=> tftp 0xa0000000 rcw_1500_gpu600.bin
=> i2c 写 0xa0000000 0x50 0.2 10c
=> tftp 0xa0000000 bl2.bin
=> i2c 写 0xa0000000 0x50 0x400.29431
请在与非闪存器上以 0x100000 的速度闪烁 fip 图像。 Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 平@yipingwang,知道发生了什么吗? 此致, 伊穆古鲁扎 Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 您好, 感谢你的支持 看起来就像我执行时的样子: => i2c 写 0xa0000000 0x50 0x400.20x13431 处理器挂机了,所以我不确定 eeprom 中是否正确刷新了 bl2 二进制文件... 我已经在i2c写入命令中以十六进制格式写了大小。看起来已经完成了,我已经更换了启动开关,但在串行会话中什么也没打印... 我还有一个问题,是否需要重新刷新 fip?就我而言,我想用与非作为存储 uboot/kernel/rtfs 的地方。 谢谢! 伊穆古鲁扎 Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 以下是更新后的步骤:
$ bitbake rcw -c cleansstate
$ bitbake rcw -c patch
进入 RCW 源代码文件夹 build_ls1028ardb/tmp/work/ls1028ardb-fsl-linux/rcw/git-r0/git/ls1028ardb/R_SQPP_0x85bb/,在 rcw_1500_gpu600.rcw 文件 .pbi的末尾添加以下命令 写 0x01e00400,0x1800d000 blockcopy 0xa,0x400,0x1800d000,0x9435 .结束 CCSR 写入命令: 在 DCFG 中存在的 启动位置指针低阶地址 (BOOTLOCPTRL) 寄存器中将启动位置指针 设置为 0x1800d000 。 区块复制命令: blockcopy 0x0a,0x400,0x00100000,0x9400 来源: I2C EEPROM = 0xa 源地址:0x400 目标地址:OCRAM (0x100000) 区块大小:B L2 二进制文件的大小(以字节为单位)
$ bitbak rcw
$ bitbake atf -c cleansstate
$ bitbake atf
获取 build_ls1028ardb/tmp/deploy/images/ls1028ardb/atf/ 中的 atf 映像 bl2_flexspi_nor.pbl 和 fip_uboot.bin。 在 LS1028ARDB 的 U-Boot 启动上使用 I2C 编程 EEPROM = > i2c 探测器 有效芯片地址:00 50 52 53 57 66 67 77 7C = > i2c 写入 0xa0000000 0x50 0.2 0x11c = > i2c 读取 0x50 0.2 0x114 0x114 0x0000000 = > i2 c 写入 0xa0000000 0x50 0x400.2