目录
硬件: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