RK3576 单板机 LinuxSDK 开发与系统定制手册(二)
3 U-Boot开发3.1 U-Boot源码说明进入U-Boot源码目录,执行如下命令,查看U-Boot源码目录。Host# ls -lhttps://file1.elecfans.com/web3/M00/54/A6/wKgZO2ngkIOAddKKAALNsIqbGbY714.png图 23
https://file1.elecfans.com/web3/M00/54/AA/wKgZPGngkIOARGEVAAFzpkLuvEE056.png
图 24
https://file1.elecfans.com/web3/M00/54/A6/wKgZO2ngkJGAKlOXAABQYVdnLQU242.png
3.2配置U-BootU-Boot可使用menuconfig进行配置,请参考“配置内核选项”章节,配置menuconfconfig所需依赖环境。在LinuxSDK源码目录下,执行如下命令先编译一次U-Boot,脚本会在U-Boot目录下执行"make rk3576_defconfig"生成.config文件。Host# ./build.sh uboothttps://file1.elecfans.com/web3/M00/54/AA/wKgZPGngkJuAFWohAAGUkNbg_C4952.png
图 25
https://file1.elecfans.com/web3/M00/54/A6/wKgZO2ngkJuAUcG3AAFbNEV66jc384.png
图 26
在LinuxSDK源码目录下,执行如下命令,进入"u-boot"目录,通过menuconfig配置U-Boot。Host# cd u-boot/Host# make menuconfighttps://file1.elecfans.com/web3/M00/54/AA/wKgZPGngkK-AJg1YAACn4UpyUOU175.png
图 27
https://file1.elecfans.com/web3/M00/54/A7/wKgZO2ngkLKALmmYADAo9iSjw94146.png
图 28
在U-Boot目录下执行如下命令,更新defconfig文件。Host# make savedefconfigHost# mv defconfig configs/rk3576_defconfighttps://file1.elecfans.com/web3/M00/54/AA/wKgZPGngkMmAQ0gxAAB4eQOJVeY002.png
图 29
3.3编译U-Boot在LinuxSDK源码目录下执行如下命令,配置编译选项,并单独编译U-Boot。Host# ./build.sh uboothttps://file1.elecfans.com/web3/M00/54/AA/wKgZPGngkNOAclbHAADRLx5KQSQ051.png
图 30
https://file1.elecfans.com/web3/M00/54/A7/wKgZO2ngkNOAXGX_AAFbCxy1-J0891.png
图 31
备注:U-Boot编译会将"rkbin/bin/rk35/"目录下的bl31固件一起编译。具体U-Boot版本号与对应使用的bl31固件如下表所示。https://file1.elecfans.com/web3/M00/54/A7/wKgZO2ngkOuAby4aAAANtHYksZk567.png
3.4替换U-Boot镜像3.4.1替换U-Boot SPL我司已提供SPL镜像rk3576_idblock_v1.09.107.img和rk3576_spl_loader_v1.09.107.bin文件,位于产品资料“4-软件资料\Linux\U-Boot\image\u-boot-2017.09-[版本号]-\”目录下。其中rk3576_idblock_v1.09.107.img文件可通过单板机系统固化至系统启动卡或eMMC,rk3576_spl_loader_v1.09.107.bin暂未提供固化方法。请从eMMC启动系统,将SPL镜像rk3576_idblock_v1.09.107.img文件拷贝到单板机root目录下,执行如下命令固化至eMMC。备注:如需固化至系统启动卡,请将设备节点修改为"/dev/mmcblk1"。Target#dd if=rk3576_idblock_v1.09.107.img of=/dev/mmcblk0 seek=64 conv=fsyncTarget#reboothttps://file1.elecfans.com/web3/M00/54/A7/wKgZO2ngkPOAGdF6AAAaMeU7w1Y427.png
图 32
3.4.2替换U-Boot镜像我司已提供U-Boot镜像uboot.img文件,位于产品资料“4-软件资料\Linux\U-Boot\image\u-boot-2017.09-[版本号]-\”目录下。请从eMMC启动系统,请将U-Boot镜像uboot.img文件拷贝至单板机root目录下,执行如下命令将其固化至eMMC。备注:如需固化至系统启动卡,请将设备节点修改为"/dev/mmcblk1p1"。Target#dd if=uboot.img of=/dev/mmcblk0p1 conv=fsyncTarget#reboothttps://file1.elecfans.com/web3/M00/54/A7/wKgZO2ngkPqADVuBAAAXIqxiyG8888.png
图 33
3.5U-Boot使用说明3.5.1 U-Boot命令行进入方式单板机上电启动后,在U-Boot倒计时结束之前按下"Ctrl + C"进入U-Boot命令行模式。U-Boot# helphttps://file1.elecfans.com/web3/M00/54/A7/wKgZO2ngkQWAMtecAADGPFSNyVM517.png
图 34
https://file1.elecfans.com/web3/M00/54/AA/wKgZPGngkQWARuJBAAC_z-C0bwQ597.png
图 35
https://file1.elecfans.com/web3/M00/54/A7/wKgZO2ngkRWAP1VpAAAmgyRnCx4091.png
3.5.2环境变量说明(1)环境变量存储执行命令"setenv"或"env default -f -a"修改的是运行空间中的环境变量值,须使用saveenv命令将修改后的环境变量保存起来。否则U-Boot重启后,将会使用修改前的环境变量值。环境变量修改完成后,执行reset命令,即可使用修改后的U-Boot环境变量启动。U-Boot# env default -f -aU-Boot# saveenvU-Boot# resethttps://file1.elecfans.com/web3/M00/54/AA/wKgZPGngkR2AZBY1AAAOlKRnXEU084.png
图 36
(2)默认配置信息在U-Boot命令行执行printenv命令可查看环境变量,如下提供主要U-Boot环境变量的解析说明。不同版本的U-Boot,环境变量可能会有所不同,内容仅供参考。
/*调试串口波特率为115200bps*/baudrate=115200/*系统启动时,将会先设置启动方式*/bootcmd=boot_android ${devtype} ${devnum};boot_fit;bootrkp;run distro_bootcmd;/*设置启动方式为linux启动*/distro_bootcmd=setenv scsi_need_init; for target in ${boot_targets}; do run bootcmd_${target}; done/*单板机名字为evb_rk3576*/board_name=evb_rk3576/*启动延时为0秒*/bootdelay=0/*读取设备树文件至DDR地址0x48300000*/fdt_addr_r=0x48300000/*读取内核镜像至DDR地址0x40400000*/kernel_addr_r=0x40400000/*mmc启动命令。配置mmc启动参数*/mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi/*USB启动命令。配置USB启动参数*/usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi
(3)环境变量修改本次修改以修改启动延时为1秒为例。U-Boot# setenv bootdelay 1https://file1.elecfans.com/web3/M00/54/A7/wKgZO2ngkSeAcywdAABLTiNTIcg188.png
图 37
3.5.3 Kernel参数传递通过U-Boot命令行使用printenv命令看到Kernel参数。https://file1.elecfans.com/web3/M00/54/A7/wKgZO2ngkS-AOVwSABOnTIBI9gM488.png
图 38
亦可观察内核启动阶段的Kernel参数。https://file1.elecfans.com/web3/M00/54/AA/wKgZPGngkTWAHT-MAAAhkef_-YA714.png
图 39
(1)root参数指定根文件系统位置,如"root=/dev/mmcblk0p6"表示根文件系统位于eMMC中的mmcblk0p6分区。(2)console参数指定内核启动时的控制台设备,如"console=ttyFIQ0"表示使用串口FIQ0作为控制台。
由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注Tronlong创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!
页:
[1]