BootLoader引导程序制作及移植(二)
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-14
2、添加命令 U-Boot中提供了丰富的命令,smdk2410板增加一些命令.我们为我们的开发板配置了一部分命令,找到下面的几行: #define CONFIG_CMD_CACHE #define CONFIG_CMD_DATE #define CONFIG_CMD_ELF 在其下面添加下面几行: #define CONFIG_CMD_REGINFO #define CONFIG_CMD_NAND #define CONFIG_CMD_PING #define CONFIG_CMD_DLF #define CONFIG_CMD_ENV #define CONFIG_CMD_NET 这样就添加了一些我们需要的命令. 这样就添加了一些我们需要的命令. 3、修改环境变量 环境变量是U-Boot运行时或者传递给内核的重要参数,需要正确设置.找到下面的一行: #define CONFIG_BOOTDELAY 3 /*#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 10.0.0.110 #define CONFIG_SERVERIP 10.0.0.1 /*#define CONFIG_BOOTFILE "elinos-lart" */ /*#define CONFIG_BOOTCOMMAND "tftp; bootm" */ #if defined(CONFIG_CMD_KGDB) 注意上面的#if defined(CONFIG_CMD_KGDB)处,需要做的修改都在这之前进行修改.修改后的代码如下: #define CONFIG_BOOTDELAY 3 #define CONFIG_BOOTARGS "root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200" #define CONFIG_ETHADDR 08:00:3e:26:0a:5b #define CONFIG_NETMASK 255.255.255.0 #define CONFIG_IPADDR 10.88.221.118 #define CONFIG_SERVERIP 10.88.221.117 #define CONFIG_BOOTFILE "uImage" #define CONFIG_BOOTCOMMAND "tftp; bootm" #define CONFIG_CMDLINE_TAG 1 #define CONFIG_SETUP_MEMORY_TAGS 1 #define CONFIG_INITRD_TAG 1 #if defined(CONFIG_CMD_KGDB)添加的环境变量在U-Boot启动时作为U-Boot的默认环境变量,如果不执行saveenv命令,则这些变量只存在于SDRAM中;执行saveenv命令后,这些便量会保存到Flash中,下次上电,在从Flash中把它读出来,作4、修改命令提示符为环境变量使用. 拥有帝国一切,皆有可能。欢迎访问phome.net 找到下面一行: #define CFG_PROMPT "SMDK2410 # " /* Monitor Command Prompt */ 修改为: #define CFG_PROMPT "[UP-2410 #]" 这样,U-Boot的命令提示符就是[UP-2410 #]用的是经典.这样做只是为了使用的时候知道我们使2410开发板上Bootloader,当然不改的话,也没有什么影响.5、修改默认下载地址 找到下面的一行: #define CFG_LOAD_ADDR 0x33000000 /* default load address */ 这个变量定义的是在使用串口或者网卡下载文件到SDRAM址,则下载到这个宏指定的默认地址.我们用下面的两行来替代:时,如果不指定下载地 #define CFG_LOAD_ADDR 0x30008000 #define CFG_TFTP_LOAD_ADDR 0x300080006、修改环境变量在Flash 中的存储地址 找到下面的两行: #define CFG_ENV_IS_IN_FLASH 1 #define CFG_ENV_SIZE 0x10000 /* Total Size of Environment Sector */ 上面的定义说明环境变量是存在Flash中.我们的板子上只有Nand Flash量只能存在,因此环境变Nand Flash中.因此,注释掉上面的两行,用下面的几行代替: #define CFG_ENV_IS_IN_NAND 1 #define CFG_ENV_SIZE 0x4000 #define CFG_ENV_OFFSET (0x80000-0x4000) 表示环境变量存储在Nand Flash中,大小为16KB,起始地址是0.5M往下的16KB址处.这样的话, 地U-Boot占用的Flash地址是前0.5M,对U-Boot来说,已经足够了.到这里,配置文件的修改就完成了. 四、修改网卡驱动 前面提到,我们的开发板上是DM9000A网卡,不能直接只用U-Boot这动个,驱我动们的提实供现了代这码个.网公卡有的两驱个动文,件由:于修改的地方比较多,就不作详细解释了提,供直的接网给卡出驱dm9000x.c和dm9000x.h.这两个文件在我们的src目录中存放.把这两个拷贝到u-boot源代码目录下的drivers/net下,替换掉U-Boot驱动文件. 拥有帝国一切,皆有可能。欢迎访问phome.net |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Linux学习笔记 Day 2~3下一篇: 设置vim语法高亮显示和自动缩进
关于BootLoader引导程序制作及移植(二)的所有评论