xilinx zynqmp平台uboot环境变量

本文详细解释了在XilinxZynqMP平台上,U-Boot如何通过MMC环境变量如uEnv.txt控制启动过程,包括加载bootenv、设置sd_rootfs_args、加载内核和设备树等步骤。
摘要由CSDN通过智能技术生成
  • 1、在uboot源码中include/configs/xilinx_zynqmp.h下存放着环境变量
    在这里插入图片描述
    简单说,sd卡和emmc使用的是MMC设备,故sd和emmc都是使用同一环境变量
    在这里插入图片描述
      1、先判断sd卡中是否存在uEnv.txt环境变量的文件存在
      “run uenvboot;”
        --> "if run loadbootenv; then "
          -->“loadbootenv=fatload mmc ${mmc_device_env} ${loadbootenv_addr} ${bootenv}\0”
          环境变量中"mmc_device_env初始值为1
          在目录board/xilinx/zynqmp/zynqmp.c 中会根据拨码开关的值,设置环境变量mmc_device_env,以便去对应的启动设备寻找固件在这里插入图片描述
          “bootenv=uEnv.txt\0”
          “loadbootenv_addr=0x2000000\0”
          如果从SD卡启动,下列uEnv.txt文件将会去mmc的0分区中寻找
          -->“loadbootenv=fatload mmc 0 0x2000000 uEnv.txt\0”

  2、运行sd_rootfs_args
    -->"run sd_rootfs_args && "
    这里设置运行的串口、文件系统
      “sd_rootfs_args=setenv bootargs console=ttyPS0,115200 " “root=/dev/mmcblk${mmc_device_env}p2 rw earlyprintk rootfstype=ext4 zynqmp-dpsub.gfx_init_fmt=2 \0” dpsub.gfx_init_fmt=2 \0”
   3、下载内核
     "fatload mmc ${mmc_device_env} ${kernel_load_address} ${kernel_image} && "
  4、下载设备树
     "fatload mmc ${mmc_device_env} ${devicetree_load_address} ${devicetree_image} && "

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值