• 基于高通 qca4531 mp3 demo板 双系统引导设计


    为了系统和稳定性,flash上有两套系统。在uboot引导阶段会根据当前的bootslot变量,决择运行哪套系统。进入系统之后,会自动挂载数据区,然后启动开关的应用程序。

    如上图所示系统有两块存储芯片,分别为512K的SPI-NOR与128M的SPI-NAND。Spi-nor分为5个区,其中reserved分区为预留,art分区存放WIFI校准数据。spi-nand也分为5个区,其中overlay为用户数据区。分区信息由uboot传递给kernel,通过参数mtdpartX:

    mtdpartX=spi0.0:256k(u-boot)ro,64k(u-boot-env),64k(u-boot-env-bak)ro,64k(reserved),64k(art);spi0.1:4m(kernel-0)ro,30m(root-0),4m(kernel-1),30m(root-1),-(overlay)

    在include/configs/953x.h  uboot参数修改改成即可:关键思路为如下红色字体。

    #define CONFIG_EXTRA_ENV_SETTINGS     

             "kernel_0_start=0x0"

             "root_0_start=0x400000"                                                                           

             "mtdparts0=spi0.0:256k(u-boot)ro,64k(u-boot-env),64k(u-boot-env-bak),64k(reserved),64k(art);spi0.1:4m(kernel-0)ro,40m(root-0),4m(kernel-1),40m(root-1),-(overlay)"   

             "boot_from_slot_0=setenv bootargs ubi.mtd=6 ${std_bootargs0} mtdparts=${mtdparts0}; nboot 0x81000000 0 ${kernel_0_start}"                                                                                                                                                                         

             "kernel_1_start=0x2C00000" 

             "root_1_start=0x3000000"   

             "mtdparts1=spi0.0:256k(u-boot)ro,64k(u-boot-env),64k(u-boot-env-bak),64k(reserved),64k(art);spi0.1:4m(kernel-0),40m(root-0),4m(kernel-1)ro,40m(root-1),-(overlay)"    

           "boot_from_slot_1=setenv bootargs ubi.mtd=8 ${std_bootargs1} mtdparts=${mtdparts1}; nboot 0x81000000 0 ${kernel_1_start}"   

           "std_bootargs0=board=CUS531MP3-NAND console=ttyS0,115200 ubi.mtd=overlay rootfs=/dev/mtdblock:rootfs  rootfstype=squashfs noinitrd init=/sbin/init  bootslot=0" 

           "std_bootargs1=board=CUS531MP3-NAND console=ttyS0,115200 ubi.mtd=overlay rootfs=/dev/mtdblock:rootfs  rootfstype=squashfs noinitrd init=/sbin/init  bootslot=1" 

             "bootslot=0"      

             "flash_uboot=tftp 0x80060000 u-boot.bin&&erase 0x9f000000 +$filesize&&cp.b $fileaddr 0x9f000000 $filesize"            

             "flash_kernel-0=tftp 0x80060000 kernel.bin&&nand erase 0x0 0x400000&&nand write $fileaddr 0x0 $filesize"                                                           

             "flash_root-0=tftp 0x80060000   root.bin&&nand erase 0x400000 0x2800000&&nand write $fileaddr 0x400000 $filesize"                     

             "flash_kernel-1=tftp 0x80060000 kernel.bin&&nand erase 0x2C00000 0x400000&&nand write $fileaddr 0x2C00000 $filesize"

             "flash_root-1=tftp 0x80060000  root.bin&&nand erase 0x3000000 0x2800000&&nand write $fileaddr 0x3000000 $filesize"          

             "overy_start=0x5800000"           

    #ifdef ATH_SPI_NAND

    #       define CONFIG_BOOTCOMMAND       "if test ${bootslot} -ne 1;then run boot_from_slot_0;else run boot_from_slot_1;fi"

  • 相关阅读:
    opencvadd加法
    opencvcopyMakeBorder拓展边界
    opencvcountNonZero计算非0值个数
    opencvcompare比较
    opencvputText绘字
    opencvaddWeighted加法
    opencvconvertScaleAbs位深转化函数
    opencvsplit分离通道
    软件测试的人际关系(转载)
    Struts 1.3.10 jar包官网下载地址
  • 原文地址:https://www.cnblogs.com/lianghong881018/p/9580236.html
Copyright © 2020-2023  润新知