基于高通 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\0" \
"root_0_start=0x400000\0" \
"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)\0" \
"boot_from_slot_0=setenv bootargs ubi.mtd=6 ${std_bootargs0} mtdparts=${mtdparts0}; nboot 0x81000000 0 ${kernel_0_start}\0" \
"kernel_1_start=0x2C00000\0" \
"root_1_start=0x3000000\0" \
"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)\0" \
"boot_from_slot_1=setenv bootargs ubi.mtd=8 ${std_bootargs1} mtdparts=${mtdparts1}; nboot 0x81000000 0 ${kernel_1_start}\0" \
"std_bootargs0=board=CUS531MP3-NAND console=ttyS0,115200 ubi.mtd=overlay rootfs=/dev/mtdblock:rootfs rootfstype=squashfs noinitrd init=/sbin/init bootslot=0\0" \
"std_bootargs1=board=CUS531MP3-NAND console=ttyS0,115200 ubi.mtd=overlay rootfs=/dev/mtdblock:rootfs rootfstype=squashfs noinitrd init=/sbin/init bootslot=1\0" \
"bootslot=0\0" \
"flash_uboot=tftp 0x80060000 u-boot.bin&&erase 0x9f000000 +$filesize&&cp.b $fileaddr 0x9f000000 $filesize\0" \
"flash_kernel-0=tftp 0x80060000 kernel.bin&&nand erase 0x0 0x400000&&nand write $fileaddr 0x0 $filesize\0" \
"flash_root-0=tftp 0x80060000 root.bin&&nand erase 0x400000 0x2800000&&nand write $fileaddr 0x400000 $filesize\0" \
"flash_kernel-1=tftp 0x80060000 kernel.bin&&nand erase 0x2C00000 0x400000&&nand write $fileaddr 0x2C00000 $filesize\0" \
"flash_root-1=tftp 0x80060000 root.bin&&nand erase 0x3000000 0x2800000&&nand write $fileaddr 0x3000000 $filesize\0" \
"overy_start=0x5800000\0"
#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"
基于高通 qca4531 mp3 demo板 双系统引导设计的更多相关文章
- ARM开发板实现双系统引导的一种方法——基于迅为iTOP-4412开发板
前言 本文所用的uboot代码为迅为官方提供,开发板是迅为iTOP-4412开发板.本文如有错误,欢迎指正. 首先,我们确定一下系统启动的流程:首先启动uboot,uboot启动内核并挂载rootfs ...
- Win7&Ubuntu12.04 双系统引导问题
周末的时候手贱,重装系统,导致原来的ubuntu12.04和win7双系统的引导不见了,所以在此进行一下说明,如何修复. 1. win7和ubuntu12.04双系统引导修复 问题描述: 在重装 ...
- win10 + Ubuntu 20.04 LTS 双系统 引导界面美化
版权声明:本文为CSDN博主「ZChen1996」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/ZChen1 ...
- Android图形合成和显示系统---基于高通MSM8k MDP4平台
介绍了Android SurfaceFlinger层次以下的图形合成和显示系统,主要基于高通MSM8k MDP4x平台. 做为Android Display专题.SurfaceFlinger的详细介绍 ...
- Android上HDMI介绍(基于高通平台)
本文重点针对HDMI在android上的应用,而比较相关的就是overlay机制.overlay在这里只是简单的介绍,后续会有文章再专门详述. 我没记错的话,高通从7X30开始,平台就可以支持HDMI ...
- 高通MSM8255 GPS 调试分析&&Android系统之Broadcom GPS 移植【转】
本文转载自:http://blog.csdn.net/gabbzang/article/details/12063031 http://blog.csdn.NET/dwyane_zhang/artic ...
- 基于window 7安装ubuntu 18.04双系统
window7下安装ubuntu双系统 1.首先下载ubuntu镜像文件 进入ubuntu官网,http://releases.ubuntu.com/18.04/.下载最新镜像,ubuntu-18.0 ...
- 基于Struts2,Spring4,Hibernate4框架的系统架构设计与示例系统实现
笔者在大学中迷迷糊糊地度过了四年的光景,心中有那么一点目标,但总感觉找不到发力的方向. 在四年间,尝试写过代码结构糟糕,没有意义的课程设计,尝试捣鼓过Android开发,尝试探索过软件工程在实际开发中 ...
- centos7 ,windows7 grub2 双系统引导
因为原先的windows7 和 centos6.3 安装在一台笔记本上.因为centos6.3不能识别无线网卡,在网上找了找,要升级内核到3.2以上. 因为本人初级水平,不敢擅自行动,怕把window ...
随机推荐
- Linux中设备号及设备文件【转】
本文转载自:http://blog.csdn.net/ymangu666/article/details/39292651 主.次设备号 应用程序可以通过对/dev 目录下的设备文件读写,从而访问实际 ...
- ubuntu 安转redis
一 ,redis 安装配置 在 Ubuntu 系统安装 Redis 可以使用以下命令: sudo apt-get update sudo apt-get install redis-server 这样 ...
- UVa 11292 勇者斗恶龙
https://vjudge.net/problem/UVA-11292 题意:有n条任意个头的恶龙,你希望雇一些其实把它杀死.一个能力值为x的骑士可以砍掉恶龙一个直径不超过x的头,且需要支付x个金币 ...
- .NET反射的优化
写在前面 1)本篇博客并非原创,而是我针对.NET反射相关知识的总结.本篇内容来源汇总于3篇博客.在后面的介绍中会在开头给出对应的链接,方便读者自行学习.2)本篇博客主要针对表达式树代码进行详细讲解. ...
- Croc Champ 2013 - Round 1 E. Copying Data 分块
E. Copying Data time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- codeforces 251 div2 C. Devu and Partitioning of the Array 模拟
C. Devu and Partitioning of the Array time limit per test 1 second memory limit per test 256 megabyt ...
- java 基本数据类型及自动类型提升
1.Java的8种基本数据类型及其所占空间大小: boolean 8bit/1byte byte 8bit/1byte char 16bit/2byte ...
- JavaMai——邮箱验证用户注册
这篇文章简单的模拟了网上利用邮箱激活用户注册这样的一个功能 1. 呈现给用户的注册界面:(为了简单起见,就剩下两个输入域,邮箱和昵称) <%@ page language="java& ...
- Codeforces A - Bear and Prime 100(交互题)
A - Bear and Prime 100 思路:任何一个合数都可以写成2个以上质数的乘积.在2-100中,除了4,9,25,49外都可以写成两个以上不同质数的乘积. 所以打一个质数加这四个数的表: ...
- Redis之哈希类型命令
Hash(哈希) Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿 ...