精华精华|关于uboot一些概念( 二 )


H.mtdparts
mtdparts=[
:= :[,]
:= [@offset][][ro]
:= unique id used in mapping driver/device
:= standard linux memsize OR "-" to denote all remaining space
:= (NAME)
因此你在使用的时候需要按照下面的格式来设置:mtdparts=mtd-id:@(),@()这里面有几个必须要注意的:a. mtd-id 必须要跟你当前平台的flash的mtd-id一致 , 不然整个mtdparts会失效b. size在设置的时候可以为实际的size(xxM,xxk,xx) , 也可以为"-"这表示剩余的所有空间 。 举例:假设flash 的mtd-id是sa1100 , 那么你可以使用下面的方式来设置:mtdparts=sa1100:- → 只有一个分区mtdparts=sa1100:256k(ARMboot)ro,-(root) → 有两个分区可以查看drivers/mtd/cmdlinepart.c中的注释找到相关描述 。
I. ip指定系统启动之后网卡的ip地址 , 如果你使用基于nfs的文件系统 , 那么必须要有这个参数 , 其他的情况下就看你自己的喜好了 。 设置ip有两种方法:ip = ip addrip=ip addr:server ip addr:gateway:netmask::which netcard:off这两种方法可以用 , 不过很明显第二种要详细很多 , 请注意第二种中which netcard 是指开发板上的网卡 , 而不是主机上的网卡 。
精华精华|关于uboot一些概念
本文插图
说完常见的几种bootargs , 那么我们来讨论平常我经常使用的几种组合:
1). 假设文件系统是ramdisk , 且直接就在内存中 , bootargs的设置应该如下:setenv bootargs ‘initrd=0x32000000,0xa00000 root=/dev/ram0 console=ttySAC0 mem=64M init=/linuxrc’
2). 假设文件系统是ramdisk , 且在flash中 , bootargs的设置应该如下:setenv bootargs ‘mem=32M console=ttyS0,115200 root=/dev/ram rw init=/linuxrc’注意这种情况下你应该要在bootm命令中指定ramdisk在flash中的地址 , 如bootm kernel_addr ramdisk_addr (fdt_addr)
3). 假设文件系统是jffs2类型的 , 且在flash中 , bootargs的设置应该如下setenv bootargs ‘mem=32M console=ttyS0,115200 noinitrd root=/dev/mtdblock2 rw rootfstype=jffs2 init=/linuxrc’4). 假设文件系统是基于nfs的 , bootargs的设置应该如下setenv bootargs ‘noinitrd mem=64M console=ttySAC0 root=/dev/nfs nfsroot=192.168.0.3:/nfs ip=192.168.0.5:192.168.0.3:192.168.0.3:255.255.255.0::eth0:off’或者setenv bootargs ‘noinitrd mem=64M console=ttySAC0 root=/dev/nfs nfsroot=192.168.0.3:/nfs ip=192.168.0.5’
精华精华|关于uboot一些概念
本文插图
【精华精华|关于uboot一些概念】上面就是我们经常使用的几种bootargs的组合 , 老实说 , bootargs非常非常的灵活 , 所以设置的方法有很多种形式 , 具体的还应该根据你的平台具体的情况来设置 。


推荐阅读