打印

AT91SAM9260 linux内核的启动

[复制链接]
2633|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
songyuewei|  楼主 | 2013-7-31 09:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求帮助。
   我现在用的板子是at91sam9260的芯片, 启动方式是spi1的一个8M的dataflash。 下载了最新2013的u-boot,  配置好,用工具下载到datafalsh的0x10000, 上电, u-boot正常启动, 下载linux源码2013.10.2版本的, 也是用内核的默认配置, 编译好uImage, 然后我用tftp把uImage下载到SDRAM 0x22000000位子, 命令bootm启动内核, 内核跑到安装VFS的时候一直找不到设备块,无法安装根目录文件。 网上找了下,大部分说的是uboot传递的启动参数有问题, 以前这个板子跑的是实时ucos,有新的需求,拿这个芯片从新搭快板子做网络和显示的应用, 以后的内核源码也是放在dataflash中, nandflash只建立了一个root目录, 求牛人指点下  如何用tftp下载内核到内存中  直接bootm启动内核的配置, 刚刚接触linux  以前一直用的ucos,帮帮忙啊

相关帖子

沙发
jlass| | 2013-7-31 12:46 | 只看该作者
在uboot里用printenv看一下环境变量的参数

使用特权

评论回复
板凳
songyuewei|  楼主 | 2013-7-31 17:42 | 只看该作者
环境变量的参数我是按照内核的Kernel command line type 设置的, uboot和linux的配置真有点蛋疼, uboot中的配置都是按照nandflash作为根目录的, 而linux中的给出的标准配置是ram0根目录启动的, 我在uboot中的bootarges设置的就是linux给的参数,  tftp下载uImage 然后用bootm启动  还是挂了, 启动不了。  有没有那个大神at91sam9260芯片移植过的, 求帮忙啊

使用特权

评论回复
地板
jlass| | 2013-8-1 08:47 | 只看该作者
我用的芯片是9G20(和9260完全兼容)
我发一份启动参数给你,你可以试一下。
#define CONFIG_BOOTARGS                "console=ttyS0,115200 "                        \
                                "root=/dev/mtdblock1 "                        \
                                "mtdparts=at91_nand:-(root) "                \
                                "rw rootfstype=jffs2"

顺便说一下,参数传递的原则是,uboot先去环境变量里找,有的话就用环境变量的参数设定,没有的话就用自己的默认值,然后把参数传递给内核,内核优先使用uboot传递过来的参数,如果传递时出错的话,内核会使用自己的默认参数,所以你也要确认一下传递的正确性(内核的打印信息的前几行里就可以看到内核最终使用的参数)

使用特权

评论回复
5
jlass| | 2013-8-1 08:47 | 只看该作者
本帖最后由 jlass 于 2013-8-1 08:49 编辑

这是nfs方式的启动例子,你也可以试试这种,但是nfs需要内核的支持。
U-Boot>setenv  bootargs  console=ttyS0  115200    root=/dev/nfs
nfsroot=192.168.0.10:/home/target
ip=192.168.0.2:192.168.0.10:192.168.0.10:255.255.255.0::eth0:off

使用特权

评论回复
6
worldsing| | 2013-8-1 09:10 | 只看该作者
现在还有用9260?

使用特权

评论回复
7
songyuewei|  楼主 | 2013-8-1 12:06 | 只看该作者
你那个9G20的传递的参数和uboot 使用的参数差不多, 参数传递是没问题的,  就是一直是这个错误VFS: Cannot open root device "mtdblock0" or unknown-block(0,0): error -19
我也看了下源码,不过没仔细看,err = sys_mount(name, "/root", fs, flags, data); 这个函数返回的是1的错误码, 这个是我打印的4个参数name = /dev/root, fs = jffs2, flags = 32768, data = (null)
我想问下在make menuconfig 应该改的配置, 我的配置是在原来的样本配置中加了个MTD和nandflash的支持, 文件系统改成jfs文件系统, 会不会是我内核配置的有问题?

使用特权

评论回复
8
jlass| | 2013-8-2 08:27 | 只看该作者
VFS: Cannot open root device "mtdblock0" or unknown-block(0,0): error -19

这句话的意思应该是mtdblock0无效,你确定你的文件系统在mtdblock0上,试试mtdblock1。

使用特权

评论回复
9
dong_abc| | 2013-8-2 19:56 | 只看该作者
检查一下flash分区。

使用特权

评论回复
10
songyuewei|  楼主 | 2013-8-5 17:22 | 只看该作者
选择  Caching block device access to MTD devices 问题解决
谢谢 jlass 耐心指教:handshake

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

53

帖子

1

粉丝