ZynqMP升级方案Qspi+emmc

Posted 为了维护世界和平_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZynqMP升级方案Qspi+emmc相关的知识,希望对你有一定的参考价值。

目录

SD卡分区

QSPI

emmc

UBOOT环境


        硬件:Xilinx ZynqMP

        将BOOT.BIN image.ub烧录到 Qspi中,将rootfs与app烧了在emmc
        升级方法:使用SD卡作为辅助工具,SD卡先要分区,FAT32 与 ext4

  

SD卡分区

使用 fdisk 命令把 tf 卡分成两个分区,建议第一个分区大小为 500M,剩下的空间分配给第二个分区。
# fdisk /dev/sdb

第一个分区格式化成 FAT32 系统,第二个分区格式化成 ext4 系统。

# mkfs.vfat /dev/sdb1
# mkfs.ext4 /dev/sdb2

将BOOT.BIN Image.ub  rootfs.tar.gz 放在第一分区


执行如下命令拷贝 rootfs.tar.gz 的内容到第二个分区。

# sudo tar -xvf rootfs.tar.gz -C /media/rootfs


开发板启动时选择SD卡启动,将SD卡的信息烧录到Qspi,emmc

QSPI

1、查看QSPI分区情况

root@myd_zu3eg4ev_2020:/usr/bin# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00a00000 00002000 "boot"
mtd1: 01400000 00002000 "kernel"
mtd2: 00160000 00002000 "data"
mtd3: 00040000 00002000 "bootenv"

如果分区可以在设备树中调整

&qspi 
        #address-cells = <1>;
        #size-cells = <0>;
        flash0: flash@0 
                compatible = "m25p80";
                reg = <0x0>;
                #address-cells = <1>;
                #size-cells = <1>;
                spi-tx-bus-width=<1>;
                spi-rx-bus-width=<4>;
                spi-max-frequency = <54000000>;
                partition@0 
                        label = "boot";
                        reg = <0x00000000 0x00a00000>;
                ;
                partition@1 
                        label = "kernel";
                        reg = <0x00a00000 0x01400000>;
                ;
                partition@2 
                        label = "data";
                        reg = <0x01e00000 0x00160000>;
                ;
                partition@3 
                        label = "bootenv";
                        reg = <0x01f60000 0x00040000>;
                ;
        ;
;

2、替换boot,kernel分区的文件

flashcp /media/sd-mmcblk1p1/update/BOOT.BIN    /dev/mtd0
flashcp /media/sd-mmcblk1p1/update/image.ub      /dev/mtd1

emmc

#fdisk -l
Device         Boot   Start     End Sectors  Size Id Type
/dev/mmcblk0p1         2048 2099199 2097152    1G 83 Linux
/dev/mmcblk0p2      2099200 4196351 2097152    1G 83 Linux
/dev/mmcblk0p3      4196352 6293503 2097152    1G 83 Linux
/dev/mmcblk0p4      6293504 7634943 1341440  655M 83 Linux


emmc被分成4个区,每个区的大小,分区操作fdisk /dev/mmcblk0 

文件分区预存的文件

/dev/mmcblk0p1   文件系统rootfs    1G
/dev/mmcblk0p2   应用文件app       1G
/dev/mmcblk0p3   静态参数区          1G
/dev/mmcblk0p4   预留备份区            

在分区后,系统会自动挂载到/media/sd-sd-mmcblk0p*中

拷贝文件系统

tar xzf /media/sd-mmcblk1p1/update/rootfs.tar.gz -C /media/sd-mmcblk0p1/

拷贝app

cp /media/sd-mmcblk1p1/update/app  -C /media/sd-mmcblk0p2/

拷贝数据库文

cp  /media/sd-mmcblk1p1/update/test.db -C /media/sd-mmcblk0p3/

UBOOT环境

uboot中 bootcmd

sf probe 0 && sf read 10000000 a00000 1300000 && bootm 10000000 

uboot环境变量 bootargs

setenv bootargs console=ttyPS0,115200 root=/dev/mmcblk0p1 rw earlyprintk rootfstype=ext4 rootwait

以上是关于ZynqMP升级方案Qspi+emmc的主要内容,如果未能解决你的问题,请参考以下文章

zynqmp 怎么将linux系统下载到emmc

Zynq ZC702平台 QSPI + eMMC实现

MPSoC QSPI Flash 升级办法

H7-TOOL通过SWD接口脱机下载内部Flash+QSPI Flash+SPI Flash三合一操作说明,也支持1拖4

Xilinx-Petalinux学习-00-开始

emWin6.x的2D图形库之绘制流位图(QSPI Flash内存映射方案)