k73 uboot 和emmc启动移植

参考:socfpga_arria5.h

#define CONFIG_BOOTCOMMAND    "run mmcload; run mmcboot"

#define CONFIG_EXTRA_ENV_SETTINGS
    "verify=n"
    "loadaddr= " __stringify(CONFIG_SYS_LOAD_ADDR) ""
    "ramboot=setenv bootargs " CONFIG_BOOTARGS ";"
         "bootm ${loadaddr} - ${fdt_addr}"
    "bootimage=zImage"
    "fdt_addr=100"
    "fdtimage=socfpga.dtb"
        "fsloadcmd=ext2load"
    "bootm ${loadaddr} - ${fdt_addr}"
    "mmcroot=/dev/mmcblk0p2"
    "mmcboot=setenv bootargs " CONFIG_BOOTARGS
        " root=${mmcroot} rw rootwait;"
        "bootz ${loadaddr} - ${fdt_addr}"
    "mmcload=mmc rescan;"
        "load mmc 0:1 ${loadaddr} ${bootimage};"
        "load mmc 0:1 ${fdt_addr} ${fdtimage}"
    "qspiroot=/dev/mtdblock0"
    "qspirootfstype=jffs2"
    "qspiboot=setenv bootargs " CONFIG_BOOTARGS
        " root=${qspiroot} rw rootfstype=${qspirootfstype};"
        "bootm ${loadaddr} - ${fdt_addr}"

mmcload先扫描,分别家长zImage和dtb

然后再设置bootargs,增加root部分参数为mmcroot,然后再用bootz启动

这里补充一下bootz这个命令:

bootz命令用来从内存启动zImage文件

例如

tftp 0x8000 zImage 将内核下载到0x8000位置

tftp 0x100 test.dtb   将设备树下载到0x100位置

bootz 0x8000 - 0x100 则可以启动系统 注意减号前后有空格

比较复杂的引导可以看这篇:

https://www.cnblogs.com/aaronLinux/p/6629376.html?utm_source=itdadao&utm_medium=referral

原文地址:https://www.cnblogs.com/cute/p/12502307.html