• 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} && "

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐