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.
我原来用的uboot是所购开发板厂家提供2011.9版本的,现在我自己做板子,音频、网络等接口芯片都重新根据需要做了调整,为了方便调试我的uboot也采用了2014.1版本,现在都已经基本完成,只剩下在boot中写文件系统,原来版本是通过nandecc选择软件ecc来写的文件系统,现在只是什么也不选择的写入,文件系统无法正常启动。因为从官网上下载的uboot中没有nandecc命令,我下载了官网上的2011.9里也没有这部分的内容,感觉是后来加上的,不知道是开发板厂家加的?还是ti官方加的?我把原来的nandecc考到2014.1版里,里面又有好多冲突的东西,一时之间不知道从哪下手了,请赐教
首先问下,您打算用device tree吗?
如果是,请使用我们ezsdk 7.0中的uboot,如果不是, 请使用ezsdk 6.0中的uboot。
我们的uboot已经merge到mainline,但是用我们的sdk中的版本,稳定性更好。
你好,移植完了sdk7中的uboot2013.10之后,也仿照arch\arm\cpu\armv7\omap3\board.c把nandecc加入到我的移植的boot中,现在出现的问题是通过uboot的nandecc hw 命令然后nand write.i写uImage,然后再启动的时候也采用其方式读出uImage,kernel能够启动 ,如果文件系统是通过此uboot的nandecc sw写入的,就没法正常启动文件系统;如果文件系统是通过厂家提供的uboot的nandecc sw方式写入,则能够正常启动文件系统,厂家的nandecc 是调用ti81xx_nand_switch_ecc(),不知道怎样能够通过uboot正确的写入文件系统?
我用SDK06.00.00里的U-boot烧写的NAND UBIFS(SDK7之前的版本),里面确实没有了nand ecc的命令,但是烧写之后是可以正常起来的。
我会在论坛上把文档总结出来。
如果您对device tree还不熟悉,建议使用ezsdk 6.0,毕竟这个版本的uboot资料毕竟多。
在我们的uboot中,已经把nandecc默认配置为了BCH8,nandecc命令在uboot origin中已经关闭了,可以找cmd中找找,打开看看。
我总结一篇制作NAND UBIFS的文档:http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/59921.aspx
不知道是否对您有所帮助
看了您关于ubifs的总结,首先感谢您的支持,不过我的问题还是没有解决,同一个文件系统,如果用写入工具写入或者用以前的uboot tftpboot 82000000 ubi.img;nandecc sw ;nand write.i 82000000 780000 xxxxxxx ,此时的uboot是飞凌提供的2011.9版本的,文件系统写入可以正常启动 ,然后重新写入sdk7版本的uboot,内核和文件系统不动,系统照常能够正常运行,如果用sdk7版本的uboot重新写入文件系统则文件系统无法正常启动反复打印如下信息[ 1.882843] UBI: VID header offset: 2048 (aligned 2048)
[ 1.889221] UBI: data offset: 4096
[ 1.895080] uncorrectable error :
[ 1.898773] uncorrectable error :
[ 1.902709] uncorrectable error :
[ 1.906555] uncorrectable error :
[ 1.910217] UBI error: ubi_io_read: error -74 (ECC error) while reading 512 bytes from PEB 0:2048, read 512 bytes
[ 1.921325] Backtrace:
[ 1.923980] [<c0017d68>] (dump_backtrace+0x0/0x110) from [<c04c9e84>] (dump_stack+0x18/0x1c)
[ 1.932983] r6:00000004 r5:df5a7000 r4:ffffffb6 r3:c06d2e48
[ 1.939056] [<c04c9e6c>] (dump_stack+0x0/0x1c) from [<c02860f0>] (ubi_io_read+0x1c4/0x39c)
[ 1.947875] [<c0285f2c>] (ubi_io_read+0x0/0x39c) from [<c0286820>] (ubi_io_read_vid_hdr+0x68/0x304)
[ 1.957519] [<c02867b8>] (ubi_io_read_vid_hdr+0x0/0x304) from [<c028b870>] (ubi_scan+0x2fc/0x154c)
[ 1.967071] [<c028b574>] (ubi_scan+0x0/0x154c) from [<c027fe5c>] (ubi_attach_mtd_dev+0x710/0xdcc)
[ 1.976531] [<c027f74c>] (ubi_attach_mtd_dev+0x0/0xdcc) from [<c0692e18>] (ubi_init+0x210/0x300)
[ 1.985900] [<c0692c08>] (ubi_init+0x0/0x300) from [<c000876c>] (do_one_initcall+0x3c/0x180)
[ 1.994903] [<c0008730>] (do_one_initcall+0x0/0x180) from [<c0672884>] (kernel_init+0x9c/0x130)
[ 2.004180] [<c06727e8>] (kernel_init+0x0/0x130) from [<c0040a3c>] (do_exit+0x0/0x67c)
[ 2.012603] r5:c06727e8 r4:00000000
[ 2.016448] UBI warning: process_eb: valid VID header but corrupted EC header at PEB 0
[ 2.025604] uncorrectable error :
[ 2.029327] uncorrectable error :
[ 2.033203] uncorrectable error :
[ 2.037078] uncorrectable error :
[ 2.040740] UBI error: ubi_io_read: error -74 (ECC error) while reading 512 bytes from PEB 1:2048, read 512 ,感觉是文件系统没有正确找到
您好,我有查看了源码,默认的是ECC_BCH8_CODE_HW,我也把uboot中nandecc打开了,可是无论怎么设置hw/sw开关,用sdk7中uboot写入的ubi文件系统还是不能正常启动,我觉得好您说的device tree没有什么关系吧?应该还是nandecc开关的问题,但是不知道问题出在哪儿了?是不是omap_nand_switch_ecc函数哪里有问题?
您好,我写的那个guide是用SDK06.00.00里面的U-boot验证的,不是SDK7的U-boot。
SDK06.00.00里面确实没有nandecc这个命令了,但是烧写进去也没发现什么问题。
我多问一下,您是在飞凌的板子上做的吗?
将nand_base.c中的函数nand_scan_tail中case NAND_ECC_SOFT:下的if (!chip->ecc.size)去掉直接=256,用nandecc sw;nand write 写入的文件系统就好用了
我的nandflash是K9F2G08U0B,不过从nand本身来看每页的字节数是应该是2048,跟踪看原来的writesize=2048,不知道为什么这个不行,必须改成256才好用
擦,都不发正确答案呐....
http://e2e.ti.com/support/arm/sitara_arm/f/791/p/244832/856140#pi316653=2
nand flash 子页问题,链接中绿色框框部分照着改完就OK
亲,能否给我发一份,您的uboot源码吗?小弟我是菜鸟(邮箱:709372733@qq.com),正在学习,买的天嵌的开发板,但是uboot不是全开源的,学习起来很困难,万分感谢啊
请问,打印如下的信息,是不是说明uboot没问题了呢,大哥
U-Boot 2014.10 (Sep 08 2015 - 20:45:08)
Watchdog enabled
I2C: ready
DRAM: 512 MiB
NAND: 1024 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - bad CRC, using default environment
Net: <ethaddr> not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
** Unable to read file boot.scr **
** Unable to read file uEnv.txt **
** No partition table - mmc 0 **
Card did not respond to voltage select!
SD/MMC found on device 1
Card did not respond to voltage select!
** Bad device mmc 1 **
Card did not respond to voltage select!
** Bad device mmc 1 **
Card did not respond to voltage select!
** Bad device mmc 1 **
Booting from nand ...
NAND read: incorrect device type in u-boot-spl-os
NAND read: incorrect device type in kernel
Bad Linux ARM zImage magic!
U-Boot#