目前正在调试spi nand,发现同样的一段引导代码(大小是2k),放在norflash上能跑,放在nand 上不反应,确定是没运行。目前用的是w25n01g。根据spi flash读写说明,winbond的nand和nor读命令是一样的啊。
离线
brom 加载 spl 部分考虑到兼容性, page size 强制到 1k, 你按每page只写1k试一试。
谢谢晕哥的提点,我将2k的代码分成两份,1k放在第0页,另外1k放在第1页,还是没引导。brom是根据什么来判断是从nand还是从nor引导呢?
离线
首先, 你确认写进去了?
这个比较了,写成功了的。
离线
启动后还是进入 fel 模式?
是啊,是啊
离线
https://whycan.cn/files/members/3/QQ20180919170350.png
除了1k之外,起始地址问题,应该是不同flash,地址到page的map不一样
spl也不能超过18k
brom引导时默认哪个page(page address)开始读呢
离线
gd这个我试的是224个page开始
奇怪哦,是不是得有个MBR啊
离线
晕哥 说:gd这个我试的是224个page开始
奇怪哦,是不是得有个MBR啊
晕哥你的gd片子上有文件系统吗,还是原始裸片啊
离线
你先把spl烧进去,别烧整个u-boot进去, 芯片内部的brom只加载spl.
我就烧了2kB的代码,只想看看它的机制是如何的.
离线
晕哥 说:你先把spl烧进去,别烧整个u-boot进去, 芯片内部的brom只加载spl.
我就烧了2kB的代码,只想看看它的机制是如何的.
看不到规范真是难受。
离线
分析一下 BROM 的二进制代码, 看有没有帮助.
没下载到那牛逼的ida
离线
ida下载: https://whycan.cn/t_440.html
感谢晕哥提供的强大的工具,看了一天,终于坚定信心搞定了。发现v3s brom从32页开始读,没发现魔术字便跳到下一个32页,32,64,96...直到256。终于明白前面那老兄放在224页能行了。
离线
晕哥 说:ida下载: https://whycan.cn/t_440.html
感谢晕哥提供的强大的工具,看了一天,终于坚定信心搞定了。发现v3s brom从32页开始读,没发现魔术字便跳到下一个32页,32,64,96...直到256。终于明白前面那老兄放在224页能行了。
为你的研究精神点赞!
有空整理一下可以发个帖子哦,造福后来到这里的网友,也给自己提供一个备忘录。
离线
迪卡 说:https://whycan.cn/files/members/1228/6.png
刚反第二个函数就卡住了....感觉像是反编译的不对吧...这是反编译 BROM ?
对的,就是你发的那个f1c100s的brom
离线
晕哥 说:我看你的spi nand 可以启动 spl(u-boot0), 说明基本没有问题, 检查 spl0 搬运 u-boot.bin 到ddr, 检查 ddr里面的u-boot 是否正确。
我的spl(u-boot0)并没有起来吧....使用nand启动,一点串口信息都不打....
那只能说明一个问题, sunxi-fel 没有适配新唐的spi nand
试一试 sunxi-fel 回读 spi nand,确认是不是这个问题引起.
离线
迪卡 说:晕哥 说:我看你的spi nand 可以启动 spl(u-boot0), 说明基本没有问题, 检查 spl0 搬运 u-boot.bin 到ddr, 检查 ddr里面的u-boot 是否正确。
我的spl(u-boot0)并没有起来吧....使用nand启动,一点串口信息都不打....
那只能说明一个问题, sunxi-fel 没有适配新唐的spi nand
试一试 sunxi-fel 回读 spi nand,确认是不是这个问题引起.
读回来一看...是空的,都是FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
离线
晕哥 说:迪卡 说:我的spl(u-boot0)并没有起来吧....使用nand启动,一点串口信息都不打....
那只能说明一个问题, sunxi-fel 没有适配新唐的spi nand
试一试 sunxi-fel 回读 spi nand,确认是不是这个问题引起.
读回来一看...是空的,都是FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
那就是没烧进去了。
用我前面那个方法, 在 TF卡把自带 nand 驱动的 linux 4.19 怼上去, 然后在linux里面读写spi nand 分区完成烧录.
离线