通过上节内容,我们大概了解了Uboot中DDR的配置相关知识,这节我们学习一下默认环境变量配置。在zynq开发的时候,在u-boot阶段,有的环境变量需要在烧录后再设置,
在烧录之后都会有一些默认的环境变量比如bootarg等,如果在编译u-boot之前就把自己需要的变量设置好,烧录的时候直接就得到自己想要的变量,这在量产中是很方便的。
在哪里配置呢?经过研习,终于找到了,在这里include/configs/<你的板子名称>.h,如include/configs/zynq_zturn.h,环境变量的部分配置如下:
#define CONFIG_EXTRA_ENV_SETTINGS \
"qboot_addr=0x000000\0"\
"qbootenv_addr=0x080000\0"\
"qbootenv_size=0x020000\0"\
"qkernel_addr=0x500000\0"\
"qdevtree_addr=0x980000\0"\
"qramdisk_addr=0x990000\0"\
"kernel_size=0x480000\0" \
"devicetree_size=0x010000\0" \
"ramdisk_size=0x600000\0" \
"boot_size=0x080000\0" \
"ethaddr=00:0a:35:00:01:22\0" \
"kernel_image=uImage\0" \
"kernel_load_address=0x2080000\0"\
"ramdisk_image=uramdisk.image.gz\0" \
"ramdisk_load_address=0x4000000\0" \
"devicetree_image=devicetree.dtb\0" \
"devicetree_load_address=0x2000000\0" \
"bitstream_image=system.bit.bin\0" \
"boot_image=BOOT.bin\0" \
"loadbit_addr=0x100000\0" \
"loadbootenv_addr=0x2000000\0"\
"fdt_high=0x20000000\0" \
"initrd_high=0x20000000\0" \
"bootenv=uEnv.txt\0"\
"loadbootenv=fatloadmmc 0 ${loadbootenv_addr} ${bootenv}\0" \
"importbootenv=echoImporting environment from SD ...; " \
"envimport -t ${loadbootenv_addr} $filesize\0" \
"mmc_loadbit_fat=echoLoading bitstream from SD/MMC/eMMC to RAM.. && " \
"get_bitstream_name&& mmcinfo && " \
"fatloadmmc 0 ${loadbit_addr} ${bitstream_image} && " \
"fpgaloadb 0 ${loadbit_addr} ${filesize}\0" \
"norboot=echoCopying Linux from NOR flash to RAM... && " \
"cp.b0xE2100000 ${kernel_load_address} ${kernel_size} && " \
"cp.b0xE2600000 ${devicetree_load_address} ${devicetree_size} && " \
"echoCopying ramdisk... && " \
"cp.b0xE2620000 ${ramdisk_load_address} ${ramdisk_size} && " \
"bootm${kernel_load_address} ${ramdisk_load_address}${devicetree_load_address}\0" \
"uenvboot="\
"ifrun loadbootenv; then " \
"echoLoaded environment from ${bootenv}; " \
"runimportbootenv; " \
"fi;" \
"iftest -n $uenvcmd; then " \
"echoRunning uenvcmd ...; " \
"runuenvcmd; " \
"fi\0"\
"sdboot=ifmmcinfo; then " \
"runuenvboot; " \
"get_bitstream_name&& " \
"echo- load ${bitname} to PL... && " \
"fatloadmmc 0 0x200000 ${bitname} && " \
"fpgaloadb 0 0x200000 ${filesize} && " \
"echoCopying Linux from SD to RAM... && " \
"fatloadmmc 0 ${kernel_load_address} ${kernel_image} && " \
"fatloadmmc 0 ${devicetree_load_address} ${devicetree_image} && " \
"fatloadmmc 0 ${ramdisk_load_address} ${ramdisk_image} && " \
"bootm${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address};" \
"fi\0"\
"usbboot=ifusb start; then " \
"runuenvboot; " \
"echoCopying Linux from USB to RAM... && " \
"fatloadusb 0 ${kernel_load_address} ${kernel_image} && " \
"fatloadusb 0 ${devicetree_load_address} ${devicetree_image} && " \