目录


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 系统。


  1. # mkfs.vfat /dev/sdb1
  2. # 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分区情况


  1. root@myd_zu3eg4ev_2020:/usr/bin# cat /proc/mtd 
  2. dev:    size   erasesize  name
  3. mtd0: 00a00000 00002000 “boot”
  4. mtd1: 01400000 00002000 “kernel”
  5. mtd2: 00160000 00002000 “data”
  6. mtd3: 00040000 00002000 “bootenv”


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


  1. &qspi {
  2. #address-cells = <1>;
  3. #size-cells = <0>;
  4. flash0: flash@0 {
  5. compatible = “m25p80”;
  6. reg = <0x0>;
  7. #address-cells = <1>;
  8. #size-cells = <1>;
  9. spi-tx-bus-width=<1>;
  10. spi-rx-bus-width=<4>;
  11. spi-max-frequency = <54000000>;
  12. partition@0 {
  13. label = “boot”;
  14. reg = <0x00000000 0x00a00000>;
  15. };
  16. partition@1 {
  17. label = “kernel”;
  18. reg = <0x00a00000 0x01400000>;
  19. };
  20. partition@2 {
  21. label = “data”;
  22. reg = <0x01e00000 0x00160000>;
  23. };
  24. partition@3 {
  25. label = “bootenv”;
  26. reg = <0x01f60000 0x00040000>;
  27. };
  28. };
  29. };




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


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

emmc


  1. #fdisk -l
  2. Device         Boot   Start     End Sectors  Size Id Type
  3. /dev/mmcblk0p1         2048 2099199 2097152    1G 83 Linux
  4. /dev/mmcblk0p2      2099200 4196351 2097152    1G 83 Linux
  5. /dev/mmcblk0p3      4196352 6293503 2097152    1G 83 Linux
  6. /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