Skip to main content
以下部分描述如何为 Qualcomm Linux 支持的机器添加、删除、修改和重命名 flash 分区。分区通过 partitions.conf 配置文件定义。这些文件位于 https://github.com/qualcomm-linux/qcom-ptool/tree/main/platforms。有关更多信息,请参见:Ptool 工作流图。 您可以修改分区配置文件以添加、删除、修改或重命名分区。例如,要处理 IQ-9075 EVK 的 UFS 分区文件,请使用以下文件:https://github.com/qualcomm-linux/qcom-ptool/tree/main/platforms/iq-9075-evk/ufs 通过修改这些配置文件并将其集成到构建中,您可以生成自定义分区布局。当在 Qualcomm Linux 构建中使用来自 https://github.com/qualcomm-linux/qcom-ptool/tree/main/platforms 的配置文件时,工作流涵盖了 Ptool 工作流图中的所有步骤。 下表列出了分区工作流中使用的文件和工具:

分区布局文件

通用闪存存储 (UFS) 和嵌入式多媒体卡 (eMMC) 上的分区存储启动链和 Linux 操作系统的各种镜像。配置文件详细说明了为特定 Qualcomm 开发套件配置的分区。以下配置文件定义了 RB3 Gen 2 开发套件的 UFS 分区和 IQ-9075 EVK 的分区:

分区布局文件语法

来自 qcs6490-rb3gen2 的 partitions.conf 中的以下示例展示了分区布局文件的语法。 配置文件中的第一个条目定义了磁盘类型、磁盘大小、逻辑块寻址 (LBA) 大小(扇区大小)以及最后一个分区是否应扩展至最后一个可用的 LBA。
  • 以下是 UFS 的示例:
  • 以下是 eMMC 的示例:
qcs6490-rb3gen2/ufs 文件指定了以下分区示例。LUN0 中定义了几个分区,每一行代表一个单独的分区。

UFS

注意 在以下示例中,LUN1 至 LUN5 条目中通过 partitions.conf 的 --filename= 参数提及的文件名,由方案 firmware-qcom-boot-qcs6490.inc 从 Qualcomm software center 下载
  • 示例 1:LUN0 中定义了 524288 KB 的 efi 分区。efi.bin 文件在 BitBake 构建期间生成。
LUN1 中定义了几个分区。每一行定义一个单独的分区:
  • 示例 2:为 LUN1 定义了 3604 KB 的 xbl_a 分区。将 xbl.elf 文件烧录到该分区。
  • 示例 3:为 LUN1 定义了 512 KB 的 xbl_config_a 分区。将 xbl_config.elf 文件烧录到该分区。
LUN4 中定义的一个分区:
  • 示例 4:为 LUN4 定义了 512 KB 的 aop_a 分区。将 aop.mbn 文件烧录到该分区。

eMMC

  • 示例 1:为 LUN0 定义了 3584 KB 的 xbl_a 分区。将 xbl.elf 文件烧录到该分区。
  • 示例 2:为 LUN0 定义了 128 KB 的 xbl_config_a 分区。将 xbl_config.elf 文件烧录到该分区。
每个分区条目使用的选项如下:
  • 必需选项:
    • --lun(对于 UFS 是必需的,对于 eMMC 不需要。以数字表示)
    • --name(分区的名称,字符串)
    • --size(分区的大小,通常以 KB 表示)
    • --type-guid(分区的 GUID)
  • 可选选项:
    • --attributes(可选的 64 位属性,例如 1000000000000004)
    • --filename(要烧录到分区的文件名)
    • --readonly(分区是否应为只读,值为 true 或 false)
    • --sparse(分区是否用于稀疏镜像,值为 true 或 false)

Linux 操作系统分区

分区工具 (Ptool)

Ptool 生成一个 GUID 分区表二进制文件,QDL 工具使用该文件对存储进行分区。 下图展示了 Ptool 工作流:
Figure: Ptool workflow

图:Ptool 工作流

QCS6490 RB3 Gen 2 Vision 开发套件的 Ptool 生成的二进制文件位于 build/tmp/deploy/images/rb3gen2-core-kit/qcomflash 目录中。

修改分区

位于 https://github.com/qualcomm-linux/qcom-ptool/tree/main/platforms/qcs6490-rb3gen2/ufs 的 partitions.conf 文件定义了 QCS6490 RB3 Gen 2 Core 开发套件的分区。gen_partition.py 工具进行处理并生成 partition.xml,这是 ptool.py 的必需输入。作为最后一步,Ptool 生成 rawprogram.xml、patch.xml、gpt_main*.bin 和 gpt_backup*.bin 文件,QDL 工具需要这些文件将系统镜像烧录到设备。
  1. 要添加分区,请在特定设备的配置文件 partitions.conf 中添加分区条目。
  2. 运行 BitBake 命令以生成所有必要文件:
  3. 镜像构建完成后,如果 MACHINE 为 rb3gen2-core-kit 且所选的镜像方案为 qcom-multimedia-image,请运行以下命令以烧录镜像:

最佳实践

  • 许多分区对功能至关重要。在删除或调整分区大小之前,请仔细查看分区布局文档。
  • 要反映 partitions.conf 中的更改,请更新机器配置中的 QCOM_PARTITION_CONF 变量。
  • 对于 UFS 设备,务必为每个分区条目指定 --lun 选项。

后续步骤