书接上回。。。。。。。。哈哈。。。。。。。
最开始我没有增加DM9000驱动,本想着用supervivi直接烧写内核就可以了,只要将内核的位置告诉u-boot,它自己复制到ram中引导即可,即使它自己不会,那我用nand read自己复制也行啊,可是试了很多次都不成功,只好改用nfs下载保存到nand flash上,没想到不但内核启动了,连文件系统跟着都能用了。。。。。。。。。。。。话说回来,还是要先看看u-boot的基本命令是怎么用的。
通常,在u-boot和kernel中都会有一个机器码(即:MACH_TYPE),只有这两个机器码一致时才能引导内核,否则就会出现如下mach的错误信息或者死机。
打开board/samsung/mini2440/mini2440.c,定位到124行附近,修改如下:
#if defined(CONFIG_S3C2410)
/* arch number of SMDK2410-Board */
gd->bd->bi_arch_number = MACH_TYPE_SMDK2410;
#endif
#if defined(CONFIG_S3C2440)
/* arch number of S3C2440-Board */
gd->bd->bi_arch_number = MACH_TYPE_MINI2440 ;
#endif
(2)修改u-boot中内核引导参数:
打开/include/configs/mini2440.h,定位到60行附近,修改如下:
#define CONFIG_BOOTDELAY 3
//boot kernel
#define CONFIG_SETUP_MEMORY_TAGS 1 //如果没有定义这个参数,则uboot参数必须加入men=内存大小
#define CONFIG_INITRD_TAG 1
#define CONFIG_CMDLINE_TAG 1 //设置bootargs出入内核必须
#define CONFIG_BOOTARGS "noinitrd console=ttySAC0,115200 init=/linuxrc mem=64M \
root=/dev/mtdblock3 rw rootfstype=yaffs \
ip=10.1.0.129:10.1.0.128:10.1.0.1:255.255.255.0::eth0:off"
/*#define CONFIG_BOOTARGS "root=ramfs devfs=mount console=ttySA0,9600" */
#define CONFIG_ETHADDR 08:00:3e:26:0a:5b
#define CONFIG_NETMASK 255.255.255.0
#define CONFIG_IPADDR 192.168.0.223
#define CONFIG_SERVERIP 192.168.0.224
#define CONFIG_GATEWAYIP 192.168.0.1
#define CONFIG_OVERWRITE_ETHADDR_ONCE
/*#define CONFIG_BOOTFILE "elinos-lart" */<
最开始我没有增加DM9000驱动,本想着用supervivi直接烧写内核就可以了,只要将内核的位置告诉u-boot,它自己复制到ram中引导即可,即使它自己不会,那我用nand read自己复制也行啊,可是试了很多次都不成功,只好改用nfs下载保存到nand flash上,没想到不但内核启动了,连文件系统跟着都能用了。。。。。。。。。。。。话说回来,还是要先看看u-boot的基本命令是怎么用的。
一、添加内核引导 参考《u-boot-2009.08在mini2440上的移植(六)---增加引导内核功能 》(行数不够准确哦~)
【1】机器码的确定通常,在u-boot和kernel中都会有一个机器码(即:MACH_TYPE),只有这两个机器码一致时才能引导内核,否则就会出现如下mach的错误信息或者死机。
打开board/samsung/mini2440/mini2440.c,定位到124行附近,修改如下:
#if defined(CONFIG_S3C2410)
/* arch number of SMDK2410-Board */
gd->bd->bi_arch_number = MACH_TYPE_SMDK2410;
#endif
#if defined(CONFIG_S3C2440)
/* arch number of S3C2440-Board */
gd->bd->bi_arch_number = MACH_TYPE_MINI2440 ;
#endif
(2)修改u-boot中内核引导参数:
打开/include/configs/mini2440.h,定位到60行附近,修改如下:
#define CONFIG_BOOTDELAY 3
//boot kernel
#define CONFIG_SETUP_MEMORY_TAGS 1 //如果没有定义这个参数,则uboot参数必须加入men=内存大小
#define CONFIG_INITRD_TAG 1
#define CONFIG_CMDLINE_TAG 1 //设置bootargs出入内核必须
#define CONFIG_BOOTARGS "noinitrd console=ttySAC0,115200 init=/linuxrc mem=64M \
root=/dev/mtdblock3 rw rootfstype=yaffs \
ip=10.1.0.129:10.1.0.128:10.1.0.1:255.255.255.0::eth0:off"
/*#define CONFIG_BOOTARGS "root=ramfs devfs=mount console=ttySA0,9600" */
#define CONFIG_ETHADDR 08:00:3e:26:0a:5b
#define CONFIG_NETMASK 255.255.255.0
#define CONFIG_IPADDR 192.168.0.223
#define CONFIG_SERVERIP 192.168.0.224
#define CONFIG_GATEWAYIP 192.168.0.1
#define CONFIG_OVERWRITE_ETHADDR_ONCE
/*#define CONFIG_BOOTFILE "elinos-lart" */<