天嵌 ARM开发社区

 找回密码
 注册
查看: 3631|回复: 10

求助!!u-boot出问题了!!

[复制链接]
xujiangyu0619 发表于 2012-10-8 16:37:38 | 显示全部楼层 |阅读模式
我移植的u-boot-2010-06,通过tftp命令下载内核和文件系统都OK,但是通过菜单下载时,文件系统正常,但是内核就出问题了!如下面所示

好像是说地址没有对齐,我的默认分区如下:
#define MTDPARTS_DEFAULT                "mtdparts=nandflash0:256k@0(bios)," \
                                            "128k(params)," \
                                            "128k(toc)," \
                                            "512k(eboot)," \
                                            "1024k(logo)," \
                                            "3m(kernel)," \
                                            "-(root)"

和天嵌光盘的u-boot一样,查了好几天还是没搞定,请问怎么解决啊?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
亚瑟王 发表于 2012-10-9 14:38:22 | 显示全部楼层
你用什么命令写数据到nand的?错误信息提示和你的nand写命令有关哦。
 楼主| xujiangyu0619 发表于 2012-10-10 11:28:04 | 显示全部楼层
亚瑟王 发表于 2012-10-9 14:38
你用什么命令写数据到nand的?错误信息提示和你的nand写命令有关哦。

下载菜单里用的这句,strcpy(cmd_buf, "tftp 0x30000000 zImage.bin; nand erase kernel; nand write.jffs2 0x30000000 kernel $(filesize)"); 和天嵌光盘里的u-boot-1.1.6源码一样的,我移植的u-boot-1.1.6也是这样写的,完全正确。但是不用菜单,单独用tftp命令(tftp 0x30000000 zImage.bin)下载就没问题,单独用tftp命令如下三步(1)tftp 0x30000000 zImage.bin        (2)nand erase 0x200000 0x300000(3)nand write 0x30000000 0x200000 0x300000
希望能得到你的帮助!谢谢~~~
 楼主| xujiangyu0619 发表于 2012-10-10 11:33:12 | 显示全部楼层
亚瑟王 发表于 2012-10-9 14:38
你用什么命令写数据到nand的?错误信息提示和你的nand写命令有关哦。

突然想到这样改不知道行不行,把strcpy(cmd_buf, "tftp 0x30000000 zImage.bin; nand erase kernel; nand write 0x30000000 kernel $(filesize)");  就是把write.jffs2改成write,不知道这样行不行,先去试试!!
亚瑟王 发表于 2012-10-10 14:29:05 | 显示全部楼层
xujiangyu0619 发表于 2012-10-10 11:33
突然想到这样改不知道行不行,把strcpy(cmd_buf, "tftp 0x30000000 zImage.bin; nand erase kernel; nand ...

可以的。反正写kernel是不需要ecc和oob的。
 楼主| xujiangyu0619 发表于 2012-10-10 20:05:17 | 显示全部楼层
亚瑟王 发表于 2012-10-10 14:29
可以的。反正写kernel是不需要ecc和oob的。

nand write不行! 也一样出错,下载失败!!!
现在真知道从哪儿下手解决了~~~请帮忙解决下!!
亚瑟王 发表于 2012-10-10 21:33:19 | 显示全部楼层
xujiangyu0619 发表于 2012-10-10 20:05
nand write不行! 也一样出错,下载失败!!!
现在真知道从哪儿下手解决了~~~请帮忙解决下!!

你用的驱动从哪里来的?我移植过u-boot-2011版本的,没有发现你说的这个问题。根据你的错误信息去找具体代码,看是什么条件引起错误的,然后解决。
 楼主| xujiangyu0619 发表于 2012-10-11 19:13:39 | 显示全部楼层
本帖最后由 xujiangyu0619 于 2012-10-11 19:14 编辑
亚瑟王 发表于 2012-10-10 21:33
你用的驱动从哪里来的?我移植过u-boot-2011版本的,没有发现你说的这个问题。根据你的错误信息去找具体代 ...

驱动是在网上找的,能把你移植的2011源码给我参考下么? 或者我给你我移植的源码!你帮我看看!
问题出在drivers/mtd/nand/nand_util.c文件中
/* Reject writes, which are not page aligned */
        if ((offset & (nand->writesize - 1)) != 0 ||
            (*length & (nand->writesize - 1)) != 0) {
                printf ("Attempt to write non page aligned data\n");
                return -EINVAL;
        }

我注释掉这段代码还是不行!然后就不知道去哪儿找了!
亚瑟王 发表于 2012-10-12 16:34:24 | 显示全部楼层
xujiangyu0619 发表于 2012-10-11 19:13
驱动是在网上找的,能把你移植的2011源码给我参考下么? 或者我给你我移植的源码!你帮我看看!
问题出在 ...

分别把offset,length,writesize的值打印出来看一下。
 楼主| xujiangyu0619 发表于 2012-10-12 18:46:38 | 显示全部楼层
本帖最后由 xujiangyu0619 于 2012-10-12 18:47 编辑
亚瑟王 发表于 2012-10-12 16:34
分别把offset,length,writesize的值打印出来看一下。

好的,我试试!!
write.jffs2命令是不需要页对齐的!
亚瑟王 发表于 2012-10-13 09:17:55 | 显示全部楼层
xujiangyu0619 发表于 2012-10-12 18:46
好的,我试试!!
write.jffs2命令是不需要页对齐的!

理论上所有对nand操作的命令都要页对齐的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-19 11:06 , Processed in 1.031250 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表