为了支持该功能,需要两个工具sd_fdisk和u-boot-head-tool。
sd_fdisk功能是对TF卡分区,u-boot-head-tool则是修改编译生成的u-boot以适合s5p4418硬件启动的要求。
两个工具的下载地址是http://download.csdn.net/detail/u010406724/8362055,
另外还需要一个脚本,来使用这两个工具sd_fusing.sh,具体的代码如下:
# # Copyright (C) 2010 Samsung Electronics Co., Ltd. # http://www.samsung.com/ # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # #################################### reader_type1="/dev/sdj" #如果是使用的新卡(或者没有烧写过s5p4418程序的卡),那么需要把disk_tf_enable设置为1(默认值),执行完成后再设置为0,除非更换卡才再次设置为1,否则请保持为0,避免顺坏tf卡中原有的数据 disk_tf_enable=0 if [ -z $1 ] then echo "usage: ./sd_fusing.sh <SD Reader's device file>" exit 0 fi if [ $disk_tf_enable = 1 ] then if [ $1 = $reader_type1 ] then partition1="$1"'1' partition2="$1"'2' partition3="$1"'3' partition4="$1"'4' fi if [ -b $1 ] then echo "$1 reader is identified." else echo "$1 is NOT identified." exit 0 fi #################################### # make partition echo "make sd card partition" echo "./sd_fdisk $1" ./sd_fdisk $1 dd iflag=dsync oflag=dsync if=sd_mbr.dat of=$1 rm sd_mbr.dat #################################### # format umount $partition1 2> /dev/null umount $partition2 2> /dev/null umount $partition3 2> /dev/null umount $partition4 2> /dev/null echo "mkfs.vfat -F 32 $partition1" sudo mkfs.vfat -F 32 $partition1 #echo "mkfs.ext2 $partition2" #mkfs.ext2 $partition2 #echo "mkfs.ext2 $partition3" #mkfs.ext2 $partition3 #echo "mkfs.ext2 $partition4" #mkfs.ext2 $partition4 #mount $partition1 fi #################################### #<BL1 fusing> bl1_position=1 uboot_position=64 echo "2ndboot fusing" dd iflag=dsync oflag=dsync if=2ndboot.bin of=$1 seek=$bl1_position ./u-boot-head-tool #对u-boot进行加头处理 #################################### #<u-boot fusing> echo "u-boot fusing" dd iflag=dsync oflag=dsync if=u-boot-tmp.bin of=$1 seek=$uboot_position rm u-boot-tmp.bin #################################### #<Message Display> echo "U-boot image is fused successfully."
另外当然还需要u-boot.bin和2ndboot两个文件了,这两个文件也都会在官方的系统文件中提供了。
在执行脚本之前需要确保文件如下图所示:
另外需要注意脚本中的一个变量
disk_tf_enable=0
只有在使用新卡或者没有烧写过4418程序的卡时设置为1,其他都设置为0,免得因为格式化顺坏tf卡。
时间: 2024-11-10 16:51:52