1 Uboot编译配置
NXP官网下载原始Uboot,配置ARCH和CROSS_COMPILE后编译配置
1、u-boot.bin .bin文件不可以直接烧到Flash中,必须需要先添加头部文件形成u-boot.imx(镜像文件)。u-boot编译最后会通过/tools/mkimage软件添加头部信息,生成u-boot.imx。
1.1 uboot部分指令
md[.b, .w, .l] address[# of object]
md.b 80000000 20
80000000: ff a1 00 00 3b 00 00 00 d1 87 fe 60 d1 87 fe 60 ....;......`...`
80000010: 17 b7 fa 60 00 00 00 00 00 00 01 00 00 00 00 00 ...`............
md nm、mm(修改内存) mw(写入内存) cp(拷贝内存)
设置uboot网络环境
手动设置地址等
setenv ipaddr 192.168.1.1
setenv ethaddr xx:xx:xx:xx:xx:xx
saveenv
dhcp 直接自动获得ip地址
1.2 nfs
1、首先设置serverip;
2、nfs [要下载到哪] [serverip:文件地址];
3、第一个报错是因为NFS版本过旧,需要Ubuntu的nfs兼容nfs ver=2.
4、当出现问题时先ping一下主机,ping就重新设置ip、网关和MAC地址。
1.3 tftp
ubunutu安装tftp已经其目录
sudo apt-get install tftp-hpa tftpd-hpa
修改 /etc/xinetd.d/tftp文件内容
server tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/bin/in.tftpd
server+args = 目录
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
sudo service tftpd-hpa start
修改文件/etc/default/tftpd-hpa中的
TFTP_DIRECTORY=“目录”
Uboot
tftp [要下载到哪] [ubuntu tftp目录下的文件名]
2 mmc操作命令
emmc和SD卡一样的。需要uboot支持驱动的,恩智浦官网已经写好了。
mmc info:当前启动介质的新知
mmc rescan:搜素全部的启动介质
mmc list:罗列所有的启动介质
mmc part:查看分区
mmc read
mmc read addr blk# cnt
从EMMC的第blk个块开始拷贝cnt个块到DDR中的addr处,均为十六进制
mmc write
mmc write addr blk# cnt
mmc write 2 0x90000000 0x600 0x10
从DDR内存0x90000000开始,长度为16x512大小的数据,写入到第2个mmc设备块偏移位置为0x600处
2.1 使用nfs更新uboot
nfs 08080000 192.168.5.11:/home/lcx/nfs/u-boot.imx
mmc write 80800000 2 32E
//从第二个块开始写,32E(十六进制)个块
3 FAT格式
IM6U而言,SD/EMMC分为三个分区
第一个:存放uboot
第二个:存放Linux zImang , .dtb 为FAT格式
第三个:系统的根文件系统,EXT4
fatinfo mmc 0:0
查看第0号mmc的第1一个分区信息,仅针对FAT格式。
fatls 查询FAT格式分区下的所有文件
fatload mmc 1:1 80800000 zImage
ext2格式的
ext2load、ext2ls、ext4load、ext4ls和ext4write。