移植u-boot-2012.04----修改默认参数、烧写yaffs文件
来源:互联网 发布:不成问题的问题 知乎 编辑:程序博客网 时间:2024/05/19 14:02
环境参数的设置:
串口打印信息
* Warning - bad CRC, using default environment
搜索 using default environment
找到默认参数的数组定义:
const uchar default_environment[] = {#ifdef CONFIG_BOOTARGS "bootargs=" CONFIG_BOOTARGS "\0"#endif#ifdef CONFIG_BOOTCOMMAND "bootcmd=" CONFIG_BOOTCOMMAND "\0"#endif#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0) "bootdelay=" MK_STR(CONFIG_BOOTDELAY) "\0"#endif
smdk2440.h配置中添加:
#define CONFIG_BOOTARGS "console=ttySAC0 root=/dev/mtdblock3" //串口打印,根文件#define CONFIG_BOOTCOMMAND "nand read 30000000 kernel;bootm 30000000" //启动内核
修改smdk2440.h默认参数
#define CONFIG_NETMASK 255.255.255.0 //子网掩码#define CONFIG_IPADDR 10.0.0.110 //开发板ip#define CONFIG_SERVERIP 10.0.0.1 //服务器ip
为
#define CONFIG_NETMASK 255.255.255.0#define CONFIG_IPADDR 192.168.1.7#define CONFIG_SERVERIP 192.168.1.100#define CONFIG_ETHADDR 00:0c:29:6f:17:35
然后对u-boot做一些裁剪,在smdk2440.h中注销不需要的定义即可。
save命令环境设置
下载一个移植好的内核,看一下分区分区信息print
一直没有使用save,可能会破坏flash内容。因为save到哪里和配置有关
修改smdk2440.h
#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + 0x070000)#define CONFIG_ENV_IS_IN_FLASH#define CONFIG_ENV_SIZE 0x10000/* allow to overwrite serial and ethaddr */#define CONFIG_ENV_OVERWRITE
修改为:
#if 0#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + 0x070000)#define CONFIG_ENV_IS_IN_FLASH#define CONFIG_ENV_SIZE 0x10000/* allow to overwrite serial and ethaddr */#define CONFIG_ENV_OVERWRITE#endif #define CONFIG_ENV_IS_IN_NAND#define CONFIG_ENV_OFFSET 0x00040000#define CONFIG_ENV_SIZE 0x20000#define CONFIG_ENV_RANGE CONFIG_ENV_SIZE
修改好的smdk2440.h移动到linux编译生成u-boot.bin烧写。
set ipaddr 192.168.1.7
set ethaddr 00:0c:29:6f:17:35 //linux下 ifconfig查看
set serverip 192.168.1.100
save
启动tftp 从新烧写新的u-boot
tftp 30000000 u-boot.bin
protect off all
erase 0 3ffff
cp.b 30000000 0 40000
reset
烧写:内核
tftp 30000000 uImage
nand erase 60000 200000
nand write 30000000 60000 200000
bootm 30000000
uboot分区设置
ource insight 搜 mtdparts
linux下
vi common/Makefile
/parts
找到
COBJS-$(CONFIG_CMD_MTDPARTS) += cmd_mtdparts.o
修改smdk2440.h添加宏定义
#define CONFIG_CMD_MTDPARTS
分区设置方法:
cmd_mtdparts.c
int mtdparts_init(void)
grep “mtdpart” * -nR
结果:
include/configs/TQM866M.h:275:#define MTDPARTS_DEFAULT "mtdparts=TQM8xxM-0:512k(u-boot)," \
添加TQM866M.h到source insight,看看里面怎样设置分区
#define MTDIDS_DEFAULT "nor0=TQM8xxM-0"#define MTDPARTS_DEFAULT "mtdparts=TQM8xxM-0:512k(u-boot)," \ "128k(dtb)," \ "1920k(kernel)," \ "5632(rootfs)," \ "4m(data)"
修改如下:
#define MTDIDS_DEFAULT "nand0=jz2440-0" /*设备名*/#define MTDPARTS_DEFAULT "mtdparts=jz2440-0:256k(u-boot)," \ "128k(params)," \ "2m(kernel)," \ "5632(rootfs)," \
“5632(rootfs),” 的修改
grep “MTDPARTS_DEFAULT” * -nR
结果:
include/configs/omap3_beagle.h:156:#define MTDPARTS_DEFAULT "mtdparts=nand:512k(x-loader),"\
修改为:”-(rootfs)”
错误修改:
vi drivers/mtd/Makefile
/core
结果:
COBJS-$(CONFIG_MTD_DEVICE) += mtdcore.o
所以还要定义 CONFIG_MTD_DEVICE
在smdk2440.h 添加:
#define CONFIG_MTD_DEVICE
u-boot分区设置总的修改
#define CONFIG_CMD_MTDPARTS #define CONFIG_MTD_DEVICE#define MTDIDS_DEFAULT "nand0=jz2440-0" /*设备名*/#define MTDPARTS_DEFAULT "mtdparts=jz2440-0:256k(u-boot)," \ "128k(params),"\ "2m(kernel)," \ "-(rootfs)" \
修改添加:board.c(arch/asm/arm/lib)
//mtdparts_init();
run_command (“mtdparts default”,0);
重新烧写内核:
tftp 30000000 uImage
nand erase.part kernel
nand write 30000000 kernel
烧写JFFS2、YAFFS2文件
烧写JFFS2
tftp 30000000 fs_mini_mdev.jffs2
nand erase.part rootfs
nand write.jffs2 30000000 0x00260000 jffs2文件大小
set bootargs console=ttySAC0 root=/dev/mtdblock3 rootfstype=jffs2
boot
烧写YAFFS
tftp 30000000 fs_mini_mdev.yaffs2
nand erase.part rootfs
nand write.yaffs 30000000 260000 yaffs2文件大小
错误
修改
smdk2440.h中添加定义
#define CONFIG_CMD_NAND_YAFFS
烧写YAFFS
错误
修改:
图:
三条下载命令:
tftp 30000000 u-boot.bin; protect off all; erase 0 3ffff; cp.b 30000000 0 40000
tftp 30000000 uImage; nand erase.part kernel; nand write 30000000 kernel
tftp 30000000 fs_mini_mdev.yaffs2;nand erase.part rootfs;nand write.yaffs 30000000 260000 791340
- 移植u-boot-2012.04----修改默认参数、烧写yaffs文件
- 移植u-boot-2015.07-rc3之修改代码支持yaffs文件系统烧写(十)
- u-boot移植--5、支持烧写yaffs文件系统映像
- u-boot-2012.04.01移植到TQ2440(八):支持烧写yaffs文件系统
- u-boot-2016.05移植:(6)、修改默认参数
- u-boot移植--6、修改默认配置参数
- 移植u-boot学习笔记9-----u-boot裁剪和修改默认参数
- 移植u-boot学习笔记9-----u-boot裁剪和修改默认参数
- u-boot-1.1.6移植(支持yaffs 映象的烧写)
- 看韦东山视频移植u-boot到mini2440支持烧写yaffs
- 移植u-boot学习笔记10-----支持烧写yaffs映象及制作补丁
- u-boot移植(八)支持yaffs
- U-Boot-2010.06添加烧写yaffs根文件系统功能
- U-boot移植需要修改哪些文件?
- U-Boot移植需要修改的文件
- U-boot移植需要修改哪些文件?
- 06-S3C2440学习之移植2012u-boot到S3C2440(移植过程五--最终)裁剪+修改默认参数+分区设置+支持文件系统下载
- 《转》u-boot移植烧写步骤、u-boot命令和kernel烧写步骤
- 移动端车牌识别技术,基于安卓,ios平台支持二次开发
- UVa 401
- 使用ifstream ofstream copy快速处理文本
- 20171109
- mybatis分页拦截器的实现
- 移植u-boot-2012.04----修改默认参数、烧写yaffs文件
- 【 CodeFors 877 】 A B
- 习题6.4
- 二叉树的重建(3种)---编程之美
- String、StringBuffer与StringBuilder之间区别
- 二叉查找树(BST)
- 跨进程间如何进行AIDL IPC 通信(二)
- windows下面安装Python和pip终极教程
- ZOJ