imx6ull uboot

1.uboot 移植的一般流程:
①、在 uboot 中找到参考的开发平台,一般是原厂的开发板。
②、参考原厂开发板移植 uboot 到我们所使用的开发板上。

2.在移植之前,我们先编译一下 NXP 官方 I.MX6ULL EVK 开发板对应的 uboot,首先是配置
uboot,configs 目录下有很多跟 I.MX6UL/6ULL 有关的配置,使用mx6ull_14x14_evk_emmc_defconfig 作为默认配置文件。

执行命令:

make  mx6ull_14x14_evk_emmc_defconfig  //配置
make   //编译

3.命令执行过程:  
            切换到 EMMC
            读取 zImage 镜像文件到 0x80800000
            读取设备树文件到 0x83000000
            启动 Linux

4.每次修改 linux 系统文件或者 linux 下的某个驱动以后都要将其烧写到 EMMC 中去测试,太麻烦。

为了方便调试,可以设置 linux 从网络启动,也就是将 linux 镜像文件和根文件系统都放到 Ubuntu 下某个指定的文件夹中。

使用 tftp 从 Ubuntu 中下载 zImage 和设备树文件,前提是要将 zImage 和设备树文件放到 Ubuntu 下的 tftp 目录中。

5.uboot命令:

base   -打印或设置地址偏移
bdinfo -打印板信息结构
bmode  -sd1 | sd2 | qspi1 | normal | usb | sata | ecspi1:0 | ecspi1:1 | ecspi1:2 | ecspi1:3 | esdhc1 | esdhc2 | esdhc3 | esdhc4[noreset]

bmp   -处理bmp图像数据
boot  -boot默认值,即运行“bootcmd”
bootd -启动默认值,即运行“bootcmd”
bootefi -从内存启动EFI负载
bootelf -从内存中的ELF映像启动
bootm   -从内存启动应用程序映像
bootp   -使用bootp/TFTP协议通过网络引导映像
bootvx  -从ELF映像启动vxWorks
bootz   -从内存中引导Linux zImage映像
clocks  -显示时钟
clrlogo -用黑色填充引导标志区域
cmp     -内存比较
coninfo -打印控制台设备和信息
cp      -内存拷贝
crc32   -校验和计算
dcache  -启用或禁用数据缓存
dhcp    -使用dhcp/TFTP协议通过网络引导映像
dm      -驾驶模型低级访问
echo    -控制台的echo参数
editenv -编辑环境变量
env     -环境处理命令
erase   -擦除闪存
exit    -退出脚本
ext2load -从Ext2文件系统加载二进制文件
ext2ls   -列出目录中的文件(默认/)
ext4load -从Ext4文件系统加载二进制文件
ext4ls   -列出目录中的文件(默认/)
ext4size -确定文件的大小
ext4write -在根目录中创建文件
false   -什么都不做,不成功
fatinfo -打印有关文件系统的信息
fatload -从dos文件系统加载二进制文件
fatls   -列出目录中的文件(默认/)
fatsize -确定文件的大小
fdt     -展平设备树实用程序命令
flinfo- 打印闪存信息
fstype -查找文件系统类型
fuse   -保险丝子系统
go     -在地址“addr”启动应用程序
gpio   -查询和控制gpio引脚
help   -print命令说明/用法
i2c    -i2c子系统
icache -启用或禁用指令缓存
iminfo -打印应用程序图像的标题信息
imxtract -提取多图像的一部分
itest  -整数比较时返回true/false
load   -从文件系统加载二进制文件
loadb  -通过串行线加载二进制文件(kermit模式)
loads  -通过串行线加载S-Record文件
loadx  -通过串行线加载二进制文件(xmodem模式)
loady  -通过串行线加载二进制文件(ymodem模式)
loop   -地址范围上的无限循环
ls     -列出目录中的文件(默认/)
md     -内存显示
mdio   -mdio实用程序命令
mii    -mii实用程序命令
mm     —内存修改(地址自动递增)
mmc   -mmc子系统
mmcinfo -显示MMC信息
mtest -简单RAM读/写测试
mw    -内存写入(填充)
nfs   -使用nfs协议通过网络引导映像
nm    -内存修改(恒定地址)
ping  -向网络主机发送ICMP ECHO_REQUEST
printenv -打印环境变量
protect  -启用或禁用FLASH写入保护
reset  -执行CPU的重置
run    -run环境变量中的命令
save   -将文件保存到文件系统
saveenv -将环境变量保存到持久存储
setenv  -设置环境变量
setexpr -将环境变量设置为eval表达式的结果
sf      -SPI闪存子系统
showvar -打印局部hushshell变量
size    -确定文件的大小
sleep   -延迟执行一段时间
source  -从内存运行脚本
test    -最小测试,如/bin/sh
tftpboot -使用TFTP协议通过网络引导映像
true    -不做任何事,成功
usb     -usb子系统
usbboot -从USB设备启动
version -打印监视器、编译器和链接器版本

6.如果你想获取某条命令的更详细的帮助,可以使用:

help <你想要查的指令>
或者 ? <你想要查的指令> ,
甚至 h <你想要查的指令缩写>。

7.cmdline是uboot引导内核启动时传递给内核的,作用是指导内核启动。内核启动阶段会去解析cmdline,并根据cmdline去指导内核启动。

例如:mem=1408M console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait rootfstype=squashfs mtdparts=xxx
(1)mem=       用来告诉内核当前系统的内存有多少;
(2)console=  指定控制台使用的串口已经波特率;
(3)root=        根文件系统的位置,比如上面就是指定根文件系统在mmcblk0p2分区,内核挂载根文件系统时会用到;
根文件系统也可以通过nfs远程挂载:
root=/dev/nfs nfsroot=192.168.1.141:/root/imx6ull/nfs ip=192.168.1.10:192.168.1.100:192.168.1.1:255.255.255.0::eth0:off
(4)rootfstype=  指明文件系统的格式和权限;
(5)mtdparts=  指明存储设备的分区情况;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值