如果在uboot阶段调试驱动,可以充分利用uboot已有的资源,这样比较方便,也能加速开发的速度,站在巨人的肩膀上做事,才能事半功倍。
1、uboot提供了操作命令覆盖了
2、Nand Flash的操作,读写,擦除,以及状态打印;
3、DDR的操作,内存字节打印;
4、网络的操作,ping命令,ftp下载功能,命令码详见,《[Linux 底层]U-boot烧录脚本介绍SecureCRT》
=> ping 192.168.2.108
5、MAC控制器的操作,MII 可以读取MAC控制器的数据,和改变MAC控制的数据;
//双网卡,激活当前网卡设置 ethprime=ethernet@f0028000,当前网卡
=> setenv ethprime ethernet@f0028000 //eth0 gmac
=> setenv ethprime ethernet@f802c000 //eth1 emac
=> mii device ethernet@f802c000 //MII接口切换PHY
=> mii device ethernet@f0028000
=> mii device //查询当前MII接口使能那个PHY
MII devices: 'ethernet@f0028000' 'ethernet@f802c000'
Current device: 'ethernet@f802c000'
=>mii read 0 3 //使用MII接口读取 eht0的寄存器地址3的信息
=>mii read 1 3 //使用MII接口读取 eht1的寄存器地址3的信息
uboot命令可以正确读取PHY信息
使用MII 接口读取PHY信息
=> mii info
MII_PHYSID2 @ 0x0 = 0xb8a0
PHY_PHYIDR[1,2] @ 0x0 = 0x0181b8a0
PHY 0x00: OUI = 0x606E, Model = 0x0A, Rev = 0x00, 10baseT, HDX
6、更改启动参数
bootargs=console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,768k(uboot)ro,256K(env_redundant),256k(env),512k(dtb),6M(kernel)ro,-(rootfs) rootfstype=ubifs ubi.mtd=6 root=ubi0:rootfs
bootcmd=nand read 0x21000000 0x180000 0x80000;nand read 0x22000000 0x200000 0x600000;bootz 0x22000000 - 0x21000000
7、环境变量设置及查看
//环境变量
=> pri
arch=arm
baudrate=115200
board=sama5d3_xplained
board_name=sama5d3_xplained
bootargs=console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,768k(uboot)ro,256K(env_redundant),256k(env),512k(dtb),6M(kernel)ro,-(rootfs) rootfstype=ubifs ubi.mtd=6 root=ubi0:rootfs
bootcmd=nand read 0x21000000 0x180000 0x80000;nand read 0x22000000 0x200000 0x600000;bootz 0x22000000 - 0x21000000
bootdelay=3
cpu=armv7
eth1addr=EE:AB:C1:D2:E6:C6
ethact=ethernet@f802c000
ethaddr=EE:AB:C1:D2:E6:C6
fdtcontroladdr=2fb16b48
ipaddr=192.168.1.100
ipaddr1=192.168.2.100
serverip=192.168.1.108
soc=at91
stderr=serial@ffffee00
stdin=serial@ffffee00
stdout=serial@ffffee00
vendor=atmel
8、EMMC的调试命令,可以查看驱动是否成功,可以打印出大小;
9、使用help命令可以查看uboot支持哪些命令,列表会打印出来;
10、命令用法,也可以通过help获取,比如:命令行$mii help
关注微信公众号,回复“uboot调试命令”,免费下载uboot打印日志及命令说明