k73 uboot 和emmc启动移植

参考:socfpga_arria5.h

#define CONFIG_BOOTCOMMAND    "run mmcload; run mmcboot"

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

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

猜你喜欢

转载自www.cnblogs.com/cute/p/12502307.html