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

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为了维护世界和平_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值