6. 分区修改¶
6.1. 分区表配置¶
CV184x SDK把分区表中的各分区添加为 build/Kconfig.partitions 配置项,不同EVB defconfig档案记录了对应Flash 的各分区默认配置值。
执行defconfig命令选定EVB时,先解析 build/Kconfig.partitions 文件,再加载defconfig档案中的默认配置,最后生成xml文件形式的分区表,保存为 build/partitions.xml。
以cv1842hp_wevb_0014a_spinor为例:
$ source build/envsetup_soc.sh
$ defconfig cv1842hp_wevb_0014a_spinor
$ file build/boards/cv184x/cv1842hp_wevb_0014a_spinor/partition/partition_spinor.xml
build/boards/cv184x/cv1842hp_wevb_0014a_spinor/partition/partition_spinor.xml: symbolic link to ../../../../partitions.xml
$ cat build/partitions.xml
<?xml version="1.0" ?>
<physical_partition type="spinor">
<!--This is an auto-generated file. DO NOT EDIT manually.-->
<partition label="fip" size_in_kb="2048" readonly="false" file="fip_spl.bin" mountpoint="" type=""/>
<partition label="2nd" size_in_kb="1024" readonly="false" file="yoc.bin" mountpoint="" type=""/>
<partition label="BOOT" size_in_kb="3072" readonly="false" file="boot.spinor" mountpoint="" type=""/>
<partition label="MISC" size_in_kb="128" readonly="false" file="logo.jpg" mountpoint="" type=""/>
<partition label="ENV" size_in_kb="64" readonly="false" file="" mountpoint="" type=""/>
<partition label="ENV_BAK" size_in_kb="64" readonly="false" file="" mountpoint="" type=""/>
<partition label="ROOTFS" size_in_kb="4352" readonly="false" file="rootfs.spinor" mountpoint="" type=""/>
<partition label="DATA" size_in_kb="1024" readonly="false" file="data.spinor" mountpoint="/mnt/data" type="jffs2"/>
</physical_partition>
6.2. 分区表解读¶
分区表的标签含义如下:
physical_partitiOn type:flash 种类。
partition label: 分区名称。
size_in_kb:分区大小(以KB为单位) 。
file:所指向的image file名称。
type:(在partition label栏位中) 文件系统格式。
mountpoint:分区挂载路径。
CV184x SDK 会生成以下的image file,每个档案代表不同的分区, 分列如下:
FIP : Bootloader/U-Boot 分区
CV184X CA3 采用FSBL+UBOOT 架构,最后打包后也复用(FIP)檔名,方便后续使用。
2nd(双系统) : Yun on Processor (YOC) 所在分区
BOOT : Partition for Linux Kernel 分区
MISC : Boot Logo 分区
ROOTFS : root file system 分区
SYSTEM: CVITEK libraries所在分区
DATA : 使用这资料分区
注:2nd分区为双系统特有分区,仅在双系统环境下存在
6.3. 修改分区¶
修改分区表
在选定EVB后,支持通过menuconfig命令以图形界面的方式修改 build/partitions.xml 分区表。
需要修改已有分区的大小,可以直接修改对应配置项的值,分区大小对齐参阅前面章节;
当需要增减分区时,先修改分区的数量,然后,取消勾选不需要的分区,或者设置新的分区,如下图所示,修改完后保存设定,退出菜单界面就会自动更新到
build/partitions.xml分区表:当最后一个分区的大小删除不填写时,生成分区表时会自动计算剩余大小作为最后一个分区的大小。
例如,上图保存修改后,更新如下:
$ cat build/partitions.xml
<?xml version="1.0" ?>
<physical_partition type="spinor">
<!--This is an auto-generated file. DO NOT EDIT manually.-->
<partition label="fip" size_in_kb="2048" readonly="false" file="fip_spl.bin" mountpoint="" type=""/>
<partition label="2nd" size_in_kb="1024" readonly="false" file="yoc.bin" mountpoint="" type=""/>
<partition label="BOOT" size_in_kb="3072" readonly="false" file="boot.spinor" mountpoint="" type=""/>
<partition label="MISC" size_in_kb="128" readonly="false" file="logo.jpg" mountpoint="" type=""/>
<partition label="ENV" size_in_kb="64" readonly="false" file="" mountpoint="" type=""/>
<partition label="ENV_BAK" size_in_kb="64" readonly="false" file="" mountpoint="" type=""/>
<partition label="ROOTFS" size_in_kb="4352" readonly="false" file="rootfs.spinor" mountpoint="" type=""/>
<partition label="DATA" size_in_kb="1024" readonly="false" file="data.spinor" mountpoint="/mnt/data" type="jffs2"/>
<partition label="DATA" size_in_kb="128" readonly="false" file="temp.spinor" mountpoint="" type=""/>
</physical_partition>
指定分区表
需要更改为指定分区表,只需要修改EVB 配置目录中的分区表软连接 build/boards/cv184x/cv1842hp_wevb_0014a_spinor/partition/partition_spinor.xml