U-boot和根文件系统

U-boot和根文件系统

 

 

 U-boot采用相应的配置文件编译好,注意选择串口地址,是串口1还是串口2(stb7109eref.h),还要选择对应的PIO口(board/stb7109eref.c)。
我采用stb7109平台
make mrproper
make stb7109eref_config (include/configs/stb7109eref.h)
make

使用调试器
sh4-linux-gdb u-boot 调试进入
gdb>mb411bypass 192.168.0.6 这里就是调试器地址
gdb>load  加载U-boot进入内存  
gdb>c  执行

连接串口,使用C-Kermit,先编写一个启动脚本kscript
set line /dev/ttyS0 (使用usb串口/dev/ttyUSB0)
set speed 115200 (波特率)
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5
set prompt Kermit>
set output pacing 4
输入kermit kscript,提示符出来后输入c(connect)

拷贝U-boot到板子内存
set load_addr 0xa4000000 (SDRAM地址,a表示是uncache)
set uboot_addr /u-boot.bin路径
如果是从串口拷贝
loadb $load_addr
回到kermit,ctl+/c
robust
send /u-boot.bin路径
c
如果是从网络nfs拷贝
set ipaddr 192.168.0.88 (板子ip)
set netmask 255.255.255.0 (服务器掩码)
set serverip 192.168.0.11 (服务器ip)
set ethaddr 12:34:56:78:9a:bc (板子MAC地址)
nfs $load_addr $serverip:$uboot_addr

把U-boot从SDRAM烧写到FLASH中
prot off 1:0-1 (Bank1 Sector 0-1,Sector大小由FLASH决定)
erase 1:0-1
cp.b a4000000 a0000000 $filesize
prot on 1:0-1

拷贝内核到内存
set vm_addr /vmlinux.ub路径
nfs $load_addr $serverip:$vm_addr
prot off 1:4-35
erase 1:4-35
cp.b a4000000 a0040000 $filesize (内核在FLASH的位置)
iminfo a0040000 (查看FLASH上内核的信息)
set bootargs 'c,115200 nwhwc:eth0,hwaddr:00:08:E1:12:06:BD stmmaceth=msglv1:0,phyaddr:2,watchdog:500000,rxsize:32 root=/dev/mtdblock2 rootfstype=jffs2 ide0=noprobe  ip=192.168.0.88::192.168.0.1:255.255.255.0:LDDE_LINUX:eth0:off mem=36m bigphysarea=1512' (设置传递给内核的参数)
set bootcmd 'bootm a0040000' (设置内核自动启动的位置)
save

制作内核image
sh4-linux-objcopy -O binary vmlinux vmlinux.bin
gzip vmlinux.bin
mkimage -A sh4 -O linux -T kernel -C gzip -a 0x84400100 -e 0x84400200 -n "Linux 2.6"
-d vmlinux.bin.gz vmlinux.ub (制作U-boot识别的内核image)

制作根文件系统
使用busybox生成需要的工具,再加上一些必需的启动脚本就可以了
mkfs.jffs2 --eraseblock=0x10000 --root=/tmp/fs --output=/tmp/fs.img
可以使用mtd_debug info /dev/mtd2 查看eraseblock大小
flash_eraseall /dev/mtd2
dd if=/tmp/fs.img of=/dev/mtd2
mount -t jffs2 /dev/mtdblock2 /mnt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值