您尚未登录。

楼主 #1 2020-06-14 18:30:30

everlink
会员
注册时间: 2020-02-16
已发帖子: 93
积分: 93

请教:SPL 调试方法

我照着各帖子的方法准备 SPI NAND 的 uboot, 然后烧到 H3 板子,然后挂掉,一点输出都没有

用 sunxi-fel uboot xxx.bin 是可以工作的

请教各位, SPL 大概是怎么调的呢, 现在情况是一点打印都没有. 先在还不考虑 H3 跟 V3S 的 bom rom 差异

但是打印都没有, 身为 ruby 工程师, 这回只好默默吐血, 然后吞下了.

调这种东西, 是要 jtag 吗. 还是投降算了

离线

#2 2020-06-14 18:44:09

哇酷小二
管理员
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,387
积分: 1902
个人网站

Re: 请教:SPL 调试方法

uboot的默认配置spl是有打印信息的。





离线

楼主 #3 2020-06-14 18:59:55

everlink
会员
注册时间: 2020-02-16
已发帖子: 93
积分: 93

Re: 请教:SPL 调试方法

哇酷小二 说:

uboot的默认配置spl是有打印信息的。

恩恩,应该是有打印才对. 现在情况是烧好后重启没有打印, 估计是 spl 没有正确加载, 用 sunxi-fel uboot 加载启动后可以读取 1k/1k 间隔的数据(还没有逐个字节比对).

离线

#4 2020-06-14 19:01:40

哇酷小二
管理员
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,387
积分: 1902
个人网站

Re: 请教:SPL 调试方法

uboot有打印,spl没有打印?





离线

楼主 #5 2020-06-14 19:49:24

everlink
会员
注册时间: 2020-02-16
已发帖子: 93
积分: 93

Re: 请教:SPL 调试方法

哇酷小二 说:

uboot有打印,spl没有打印?


我说的不够清楚, 详细是这样的

我有 f1c200s , h3 两个板子, 用 TF 卡确定板子能够工作, 两块板子都焊接了 1Gb 的 WINBOND SPI-NAND
使用Jie Lei位同学的资料,代码 确定 f1c200s + spi-nand 正常工作,
Jie Lei 同学资料和代码: https://github.com/hcly/f1c100s
烧录方法: sunxi-fel uboot uboot-with-spl-usb.bin write 0x80000000 uboot-with-spl-spinand.bin

然后
- 针对h3修改编译出来 uboot.bin 及生成烧写 spi-nand 的 bin
- 使用 sunxi-fel uboot xxx 能成功烧写到 h3+spi nand 板子
这里是 fel 运行 uboot, 使用uboot 进行烧写, 烧写过程是有打印的,没有看出异常

- 重启后 板子没有串口输出. (目前想法是 brom 没有成功加载 spi-nand 里面的 spl)

h3 平台 spi-nand 里面的 spl+uboot 跟上述步骤用于烧写的 uboot 仅有很少改动, 这个改动已经在 f1c200s 平台验证
另外读取 spi-nand 里面数据跟用于烧写的 bin 比对, 格式和结构上大致未发现异常, 还没有逐个字节比对

针对 h3 平台尝试修改 下载地址但结果并无差异( 0x80000000 -> 0x40000000)
sunxi-fel uboot uboot-with-spl-usb.bin write 0x40000000 uboot-with-spl-spinand.bin
sunxi-fel uboot uboot-with-spl-usb.bin write 0x41000000 uboot-with-spl-spinand.bin

最近编辑记录 everlink (2020-06-14 19:50:45)

离线

#6 2020-06-15 09:09:34

哇酷小二
管理员
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,387
积分: 1902
个人网站

Re: 请教:SPL 调试方法

这个不会了, 帮你up一下吧, 感谢你提供的 f1c200s + spi-nand 项目信息。





离线

楼主 #7 2020-06-15 10:29:15

everlink
会员
注册时间: 2020-02-16
已发帖子: 93
积分: 93

Re: 请教:SPL 调试方法

哇酷小二 说:

这个不会了, 帮你up一下吧, 感谢你提供的 f1c200s + spi-nand 项目信息。

非常非常谢谢你 !!~~   ^_^ ^_^

离线

#8 2020-06-15 11:01:52

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 389
积分: 338

Re: 请教:SPL 调试方法

everlink 说:

我说的不够清楚, 详细是这样的

我有 f1c200s , h3 两个板子, 用 TF 卡确定板子能够工作, 两块板子都焊接了 1Gb 的 WINBOND SPI-NAND
使用Jie Lei位同学的资料,代码 确定 f1c200s + spi-nand 正常工作,
Jie Lei 同学资料和代码: https://github.com/hcly/f1c100s
烧录方法: sunxi-fel uboot uboot-with-spl-usb.bin write 0x80000000 uboot-with-spl-spinand.bin

然后
- 针对h3修改编译出来 uboot.bin 及生成烧写 spi-nand 的 bin
- 使用 sunxi-fel uboot xxx 能成功烧写到 h3+spi nand 板子
这里是 fel 运行 uboot, 使用uboot 进行烧写, 烧写过程是有打印的,没有看出异常

- 重启后 板子没有串口输出. (目前想法是 brom 没有成功加载 spi-nand 里面的 spl)

h3 平台 spi-nand 里面的 spl+uboot 跟上述步骤用于烧写的 uboot 仅有很少改动, 这个改动已经在 f1c200s 平台验证
另外读取 spi-nand 里面数据跟用于烧写的 bin 比对, 格式和结构上大致未发现异常, 还没有逐个字节比对

针对 h3 平台尝试修改 下载地址但结果并无差异( 0x80000000 -> 0x40000000)
sunxi-fel uboot uboot-with-spl-usb.bin write 0x40000000 uboot-with-spl-spinand.bin
sunxi-fel uboot uboot-with-spl-usb.bin write 0x41000000 uboot-with-spl-spinand.bin

分享点调试经验吧,之前调试F1C的SPINAND遇到的:
1. 建议先导出BSP的SPL部分代码对比下,全志的brom确实是按照1k的形式进行的,但是我不知道后1k滞后偏移了512,
机理未知但是确实会导致不启动。这个我的测试代码

if __name__ == '__main__':
    args = sys.argv
    if len(args) < 3:
        print_usage()
        exit(-1)
    if not os.access(args[1], os.F_OK):
        print 'input file %s is not exist' % (args[1])
        exit(-1)
    f_in = os.open(args[1], os.O_RDONLY)
    f_out = os.open(args[2], os.O_RDWR | os.O_CREAT)
    os.ftruncate(f_out, 0x80000)

    for blk in range(0, 4):
        for pos in range(0, os.stat(args[1]).st_size/0x400):
            os.lseek(f_in, 0x400*pos, os.SEEK_SET)
            temp = os.read(f_in, 0x800)
            os.lseek(f_out, 0x20000*blk + 0x800*pos, os.SEEK_SET)
            os.write(f_out, temp)
    os.close(f_in)
    os.close(f_out)

2. 需要能启动的文件是spl/sunxi-spl.bin,不是其他什么东西,只需要配置好这个就行。
3. 如果写入成功并且能够引导,系统将不会进入FEL烧录模式,这个是最直接验证镜像格式正确与否的方法。
4. 如果以上还不能确认,建议抓取波形观察。

离线

楼主 #9 2020-06-15 13:58:09

everlink
会员
注册时间: 2020-02-16
已发帖子: 93
积分: 93

Re: 请教:SPL 调试方法

shaoxi2010 说:

分享点调试经验吧,之前调试F1C的SPINAND遇到的:
1. 建议先导出BSP的SPL部分代码对比下,全志的brom确实是按照1k的形式进行的,但是我不知道后1k滞后偏移了512,
2. 需要能启动的文件是spl/sunxi-spl.bin,不是其他什么东西,只需要配置好这个就行。
3. 如果写入成功并且能够引导,系统将不会进入FEL烧录模式,这个是最直接验证镜像格式正确与否的方法。
4. 如果以上还不能确认,建议抓取波形观察。

谢谢你! 再请教两个问题

- 你提到的 "后1k滞后偏移了512" 详细是指第二个 1k 再加 512 偏移吗?

- 另外, 您的脚本是将 spl/u-boot-spl.bin 转换后直接烧到 spi-nand 进行测试吗?
(加入 import os,sys 后脚本就顺利执行, 我生成 bin 后烧写, 重新上电后还进入 fel 模式)

离线

#10 2020-06-15 15:44:41

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 389
积分: 338

Re: 请教:SPL 调试方法

everlink 说:

谢谢你! 再请教两个问题

- 你提到的 "后1k滞后偏移了512" 详细是指第二个 1k 再加 512 偏移吗?

- 另外, 您的脚本是将 spl/u-boot-spl.bin 转换后直接烧到 spi-nand 进行测试吗?
(加入 import os,sys 后脚本就顺利执行, 我生成 bin 后烧写, 重新上电后还进入 fel 模式)

spl/sunxi-spl.bin我提到了第二项,并非spl/u-boot-spl.bin。

离线

楼主 #11 2020-06-15 19:57:22

everlink
会员
注册时间: 2020-02-16
已发帖子: 93
积分: 93

Re: 请教:SPL 调试方法

shaoxi2010 说:

spl/sunxi-spl.bin我提到了第二项,并非spl/u-boot-spl.bin。

多谢你细心纠错,. 我等下试验看

更新:

改正了重新测试仍然没有能阻止进入fel模式

还尝试了
- 使用确定能够运行的 ( orangepi-zero 编译配置,之前在spi nor 试过 ok) sunxi-spl.bin 经由脚本转换后烧录
- 烧录确定能够在 f1c100s spi-nand 正常运行的 u-boot (https://github.com/hcly/f1c100s/blob/master/images/uboot-with-spl-spinand.bin)
都无法加载

还用 crc32 检查了烧录的数据没有问题
今天还反复看了好多遍这个 https://linux-sunxi.org/Bootable_SPI_flash#The_BROM_implementation_details
--
又另有想法,
1, 在 fel 加载 能运行的 uboot后查 ffff0000 地址,好像有code, 网上有说就是 brom. 或许dump出来用模拟器跑可慢慢查
2, 或者 用 jtag, attach 上去调 0xffff0000 地址运行跟踪看(在原厂工程师的环境,这个问题应该就是几分钟能确定的问题)

这两个方法对我来说有点折腾, 第一个是建环境有点花时间. 第二个是我没有jtag, 也不知道怎么连, 就算知道该怎么连我的板子可能还要改..

所以, 这个我得先放一放了... 搞不定.

最近编辑记录 everlink (2020-06-15 21:05:52)

离线

#12 2020-06-16 09:39:29

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 389
积分: 338

Re: 请教:SPL 调试方法

everlink 说:

多谢你细心纠错,. 我等下试验看

更新:

改正了重新测试仍然没有能阻止进入fel模式

还尝试了
- 使用确定能够运行的 ( orangepi-zero 编译配置,之前在spi nor 试过 ok) sunxi-spl.bin 经由脚本转换后烧录
- 烧录确定能够在 f1c100s spi-nand 正常运行的 u-boot (https://github.com/hcly/f1c100s/blob/master/images/uboot-with-spl-spinand.bin)
都无法加载

还用 crc32 检查了烧录的数据没有问题
今天还反复看了好多遍这个 https://linux-sunxi.org/Bootable_SPI_flash#The_BROM_implementation_details
--
又另有想法,
1, 在 fel 加载 能运行的 uboot后查 ffff0000 地址,好像有code, 网上有说就是 brom. 或许dump出来用模拟器跑可慢慢查
2, 或者 用 jtag, attach 上去调 0xffff0000 地址运行跟踪看(在原厂工程师的环境,这个问题应该就是几分钟能确定的问题)

这两个方法对我来说有点折腾, 第一个是建环境有点花时间. 第二个是我没有jtag, 也不知道怎么连, 就算知道该怎么连我的板子可能还要改..

所以, 这个我得先放一放了... 搞不定.

我看了看,H3并没有说过它支持SPINAND启动阿,他只支持raw NAND启动,你可以看看brom介绍

离线

楼主 #13 2020-06-16 21:16:51

everlink
会员
注册时间: 2020-02-16
已发帖子: 93
积分: 93

Re: 请教:SPL 调试方法

shaoxi2010 说:

我看了看,H3并没有说过它支持SPINAND启动阿,他只支持raw NAND启动,你可以看看brom介绍

嗯,今天做了更多实验,现在基本确定了.应该不行

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn