06-S3C2440学习之移植2012u-boot到S3C2440(移植过程五--最终)裁剪+修改默认参数+分区设置+支持文件系统下载

注意:

内核启动前,uboot可以做一些硬件初始化的工作,如初始化串口。

同时uboot支持不同的机器ID,uboot启动时要注意设备ID 是多少,不同的设备ID,内核会进行不同的初始化操作,所以要确定好uboot的设备ID 以及内核支持的设备ID。

一、环境参数设置

(1)Uboot可以配置一些环境变量,

Uboot执行的时候:
1读参数

2判断是否有效

3无效则用默认写死的值


(2)搜索下using default environment



查看默认的配置default_environment:


Nand存储规划


因此在Smdk2440.h (include\configs) 中加入一些环境变量的定义:


倒数计时时间


IP等信息



网卡MAC:




因此定义头的内容:

#define CONFIG_NETMASK        255.255.255.0

#define CONFIG_IPADDR           192.168.1.17

#define CONFIG_SERVERIP        192.168.1.111

#define CONFIG_ETHADDR      00:0c:29:4d:e4:f5


二、裁剪改小:

(3)修改配置文件 smdk2440.h进行裁剪







编译出错:

3




三、save命令环境设置

(4)save命令


下载一个移植好的内核 看一下分区


内核打印出来的分区信息

0x00000000-0x00040000 :"bootloader"

0x00040000-0x00060000 : "params"

0x00060000-0x00260000 : "kernel"

0x00260000-0x10000000 : "root"

一直不敢用save 怕他破坏flash内容。因为save到哪里和配置有关。

smdk2440.h对于save的配置如下:


看看common里这个文件依赖于那个宏


所以定义这个宏


但是存在nandflash哪里呢 去env_nand看看


存在哪里 :0x00040000-0x00060000 :"params"


大小呢:



擦除的大小:


#define CONFIG_ENV_IS_IN_NAND

#define CONFIG_ENV_OFFSET 0x00040000

#define CONFIG_ENV_SIZE 0x20000

#define CONFIG_ENV_RANGE CONFIG_ENV_SIZE

拿过去编译:



为什么还是有警告 没有sava


基本上到这 已经完整

四、uboot分区设置

(5)下载一个内核的过程


很麻烦,设置分区功能

Uboot的分区只是为了下载方便的作用,不想输入数值,根据内核来划分,不会影响内核


需要定义这个宏:


参考:





更新编译


需要定义这个宏


重新编译:


nanderase 60000 200000

nandwrite 30000000 60000 200000

 

tftp30000000 uImage

nanderase.part kernel

nandwrite 30000000 kernel

需要手工设置

代码里运行命令




使用分区,从kernal分区读内核。



启动成功


五、uboot文件系统烧写支持(jffs2、yaffs2)

(7)烧写JFFS2

tftp30000000 fs_mini_mdev.jffs2

nanderase.part rootfs

nandwrite.jffs2 30000000 0x00260000 5b89a8


setbootargs console=ttySAC0 root=/dev/mtdblock3 rootfstype=jffs2.


(8)烧写YAFFS

tftp30000000 fs_mini_mdev.yaffs2

nanderase.part rootfs

nandwrite.yaffs 30000000 260000  889bc0


搜索.yaffs


#defineCONFIG_CMD_NAND_YAFFS

重新编译

更新UBOOT:

tftp30000000 u-boot_new.bin; protect off all; erase 0 3ffff; cp.b 30000000 0 40000


Reset


下载的很快,可能有问题 :

尝试启动


打开文件系统对比:


如果下载的是yffs 调用这个函数烧写:

修改已经两处:


编译烧写

tftp30000000 u-boot.bin; protect off all; erase 0 3ffff; cp.b 30000000 0 40000



(8)漏洞:

uboot还需要修改:


到此完成了一个支持S3C2440功能够用的uboot。

最终源码下载地址:

http://download.csdn.net/detail/fengyuwuzu0519/9827311

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值