美文网首页
UUU烧录EMMC分区问题

UUU烧录EMMC分区问题

作者: Lazy_Caaat | 来源:发表于2020-06-14 14:32 被阅读0次

    https://github.com/NXPmicro/mfgtools/releases/download/uuu_1.2.135/UUU.pdf

    https://blog.csdn.net/z2066411585/article/details/94332882

    参考这个脚本kernel_emmc.uuu

    ucmd <any uboot command>

    也就是说ucmd后面跟uboot支持的命令

    FBK: ucmd mmc=`cat /tmp/mmcdev`; PARTSTR=$'10M,500M,0c\n600M,,83\n'; echo "$PARTSTR" | sfdisk --force /dev/mmcblk${mmc}
    

    上面就是通过sfdisk进行分区的操作。

    下面是参考脚本

    uuu_version 1.2.39
    
    # Please Replace below items with actually file names
    # @_flash.bin           | boot loader
    # @_Image           | kernel image, arm64 is Image, arm32 it is zImage
    # @_board.dtb           | board dtb file
    # @_initramfs.cpio.gz.uboot | mfgtool init ramfs
    # @_rootfs.tar.bz2      | rootfs
    # @_uTee.tar            | optee image
    
    # This command will be run when i.MX6/7 i.MX8MM, i.MX8MQ
    SDP: boot -f _flash.bin
    
    # This command will be run when ROM support stream mode
    # i.MX8QXP, i.MX8QM
    SDPS: boot -f _flash.bin
    
    # These commands will be run when use SPL and will be skipped if no spl
    # SDPU will be deprecated. please use SDPV instead of SDPU
    # {
    SDPU: delay 1000
    SDPU: write -f _flash.bin -offset 0x57c00
    SDPU: jump
    # }
    
    # These commands will be run when use SPL and will be skipped if no spl
    # if (SPL support SDPV)
    # {
    SDPV: delay 1000
    SDPV: write -f _flash.bin -skipspl
    SDPV: jump
    # }
    
    # use uboot burn bootloader to eMMC
    # becaue difference chip, offset is difference
    # you can use kernel to do that for specific boards
    FB: ucmd setenv fastboot_dev mmc
    FB: ucmd setenv mmcdev ${emmc_dev}
    FB: flash bootloader _flash.bin
    
    FB: ucmd if env exists emmc_ack; then ; else setenv emmc_ack 0; fi;
    
    FB: ucmd setenv emmc_cmd mmc partconf ${emmc_dev} ${emmc_ack} 1 0
    FB: ucmd if test "${emmc_skip_fb}" != "yes"; then run emmc_cmd; fi
    FB: ucmd setenv emmc_cmd mmc bootbus ${emmc_dev} 2 2 1;
    FB: ucmd if test "${emmc_skip_fb}" != "yes"; then run emmc_cmd; fi
    
    FB: ucmd setenv fastboot_buffer ${loadaddr}
    FB: download -f _Image
    FB: ucmd setenv fastboot_buffer ${fdt_addr}
    FB: download -f _board.dtb
    FB: ucmd setenv fastboot_buffer ${initrd_addr}
    FB: download -f _initramfs.cpio.gz.uboot
    #FB: ucmd setenv bootargs console=${console},${baudrate} earlycon=${earlycon},${baudrate}
    FB: acmd ${kboot} ${loadaddr} ${initrd_addr} ${fdt_addr}
    
    # get mmc dev number from kernel command line
    # Wait for emmc
    FBK: ucmd while [ ! -e /dev/mmcblk*boot0 ]; do sleep 1; echo "wait for /dev/mmcblk*boot* appear"; done;
    
    # serach emmc device number, if your platform have more than two emmc chip, please echo dev number >/tmp/mmcdev 
    FBK: ucmd dev=`ls /dev/mmcblk*boot*`; dev=($dev); dev=${dev[0]}; dev=${dev#/dev/mmcblk}; dev=${dev%boot*}; echo $dev > /tmp/mmcdev;
    
    # create partition
    FBK: ucmd mmc=`cat /tmp/mmcdev`; PARTSTR=$'10M,500M,0c\n600M,,83\n'; echo "$PARTSTR" | sfdisk --force /dev/mmcblk${mmc}
    
    FBK: ucmd mmc=`cat /tmp/mmcdev`; dd if=/dev/zero of=/dev/mmcblk${mmc} bs=1k seek=4096 count=1
    FBK: ucmd sync
    # you can enable below command to write boot partition. but offset is difference at difference platform
    #FBK: ucmd mmc=`cat /tmp/mmcdev`; echo 0 > /sys/block/mmcblk${mmc}boot0/force_ro
    #FBK: ucp  _flash.bin t:/tmp
    #FBK: ucmd mmc=`cat /tmp/mmcdev`; dd if=/tmp/_flash.bin of=/dev/mmc${mmc}boot0 bs=1K seek=32
    #FBK: ucmd mmc=`cat /tmp/mmcdev`; echo 1 > /sys/block/mmcblk${mmc}boot0/force_ro
    FBK: ucmd mmc=`cat /tmp/mmcdev`; while [ ! -e /dev/mmcblk${mmc}p1 ]; do sleep 1; done
    FBK: ucmd mmc=`cat /tmp/mmcdev`; mkfs.vfat /dev/mmcblk${mmc}p1
    FBK: ucmd mmc=`cat /tmp/mmcdev`; mkdir -p /mnt/fat
    FBK: ucmd mmc=`cat /tmp/mmcdev`; mount -t vfat /dev/mmcblk${mmc}p1 /mnt/fat
    FBK: ucp  _Image t:/mnt/fat
    FBK: ucp  _board.dtb t:/mnt/fat
    FBK: ucp  _uTee.tar t:/tmp/op.tar
    FBK: ucmd tar -xf /tmp/op.tar -C /mnt/fat
    FBK: ucmd umount /mnt/fat
    FBK: ucmd mmc=`cat /tmp/mmcdev`; mkfs.ext3 -F -E nodiscard /dev/mmcblk${mmc}p2
    FBK: ucmd mkdir -p /mnt/ext3
    FBK: ucmd mmc=`cat /tmp/mmcdev`; mount /dev/mmcblk${mmc}p2 /mnt/ext3
    FBK: acmd export EXTRACT_UNSAFE_SYMLINKS=1; tar -jx -C /mnt/ext3
    FBK: ucp  _rootfs.tar.bz2 t:-
    FBK: Sync
    FBK: ucmd umount /mnt/ext3
    FBK: DONE
    
    
    

    相关文章

      网友评论

          本文标题:UUU烧录EMMC分区问题

          本文链接:https://www.haomeiwen.com/subject/hbvxxktx.html