DualOs Alkaid Config Guide

此文将指导用户配置Dualos相关alkaid配置项。包括必要环境配置和内存规划配置。


1. Product配置

menuconfig路径:Product

请选择“ipc-rtos”。


2. uboot config

menuconfig路径:Board->Uboot build config

请选择dualos相关的uboot config配置。uboot config配置详情请参考对应文档。

请根据LH or HYP of Dualos Type选项选择对应的config。

以iFord为例:

如果选择HYP,则此处应该根据开发板型号填写:

iford_spinand_vm_defconfig

ifado平台暂不支持HYP

如果选择LH,则此处应该根据开发板型号填写:

iford_ssc029a_s01a_lh_spinand_defconfig

3. kernel config

menuconfig路径:Kernel->Kernel config

请选择dualos相关的kernel config配置。Kernel config配置详情请参考对应文档。

请根据LH or HYP of Dualos Type选项选择对应的config。

以iFord为例:

如果选择HYP,则此处应该根据开发板型号填写:

iford_ssc029a_s01a_vm_spinand_defconfig

ifado平台暂不支持HYP

如果选择LH,则此处应该根据开发板型号填写:

iford_ssc029a_s01a_lh_spinand_defconfig

3.1. Init Ramfs Addr

menuconfig路径:Misc Options->Init Ramfs Addr

Ramdisk所在的内存起始地址,kernel启动时会通过此地址挂载rootfs,缺省值为0x21800000。


4. Image

dualos image打包配置。


4.1. Image Partition Config

menuconfig路径:Image->Image Partition Config

DualOs分区请参照系统分区按需配置。

DualOs会比pure linux多出rtos等分区。

以iFord为例,此处应该填写:

spinand-ramdisk.rtos.partition.config

4.2. IPL File Config

menuconfig路径:Image->IPL File Config

请按照Dualos需求配置正确的IPL文件名称。


4.3. IPL_CUST File Config

menuconfig路径:Image->IPL_CUST File Config

请按照Dualos需求配置正确的IPL_CUST文件名称。


4.4. VMM File Config

menuconfig路径:Image->VMM File Config

如果LH or HYP of Dualos Type选用了HYP,此处必须填写正确的VMM bin名称。

以iFord为例,此处应该根据开发板型号填写:

vmm32_ssc029a_512.bin

ifado平台暂不支持HYP


4.5. TF-A File Config

menuconfig路径:Image->TF-A File Config

TF-A bin文件名称。请选择DualOs对应的bin。

以iFord为例,此处应该填写:

u-bl31.hyp.256.bin

ifado平台暂不支持TF-A


4.6. OPTEE File Config

menuconfig路径:Image->OPTEE File Config

OPTEE bin文件名称。

请选择DualOs对应的bin。

以iFord为例,此处应该填写:

tee.bin

ifado平台暂不支持OPTEE


5. Rtos enable

menuconfig路径:Rtos->Rtos enable

开启后则开启RTOS编译,此配置在编译时期和打包时期生效。

DualOs请务必开启此项。


5.1. RtosType

menuconfig路径:Rtos->RtosType

此项务必选择“dualos”!


5.2. LH or HYP of Dualos Type

menuconfig路径:Rtos->LH or HYP of Dualos Type

RtosType选择为dualos时需要配置Dualos方案。目前sigmastar支援SMPLH(LH)hypervisor(HYP)两种方案。此配置在编译时期和打包时期生效。

选择HYP时请正确配置VMM File Config

ifado平台暂不支持HYP


5.3. Rtos build config

menuconfig路径:Rtos->Rtos build config

编译Rtos使用的config文件名字,此文件位于rtos目录。此配置在编译时期和打包时期生效。Rtos config配置详情请参考对应文档。toolchain设置请参照环境搭建文档。

以iFord为例:

如果选择HYP,则此处应该根据开发板型号填写:

iford_ssc029a_s01a_512_vm_dualos_up_spinand_ptree_defconfig

ifado平台暂不支持HYP

如果选择LH,则此处应该根据开发板型号填写:

iford_ssc029a_s01a_512_ipc_lh_spinand_defconfig

5.4. Rtos Application Options

menuconfig路径:Rtos->Rtos Application Options

选择Rtos开机后自动运行的app,据此决定在image打包过程中拷贝到misc/miscL分区的文件。请正确配置以确保rtos启动后能运行正确的app。


5.5. Support pipeline demo applications

menuconfig路径:Rtos->Rtos Application Options->Support pipeline demo applications

如有勾选Support IPC application会自动开启Support application selector,此为pipeline demo applications的总入口。当有同时勾选Support IPC application和Support pipeline tree application,可选择将Support pipeline tree application关闭以达到减少code size的目的。


6. DualOs memory layout

本节将会介绍DualOs内存规划,如何分配各个区域的内存。

dualos_memory_layout.svg

  • 内存区域起始地址CONFIG_MIU_BUS_BASE在Kernel config中设置,DualOs默认值为0x20000000。

    在alkaid defconfig 调整各个runtime module 的size

    make defconfig 之后会在project\configs 目录下生成dram_layout.txt

    make image 之后会check 各个runtime module 的laod addr 是否有重叠。在project\image\output\images 目录生成laod_addr.txt


6.1. 需留意 layout 须符合以下原則:

  • 不得超出物理 DRAM 大小。
  • 各区域不可重叠。
  • 系统运行时 Linux/RTOS ramdisk 区域必须完整落在 Linux/RTOS 区域內,若打包太多內容且 Linux/RTOS 区域不够大,可能导致解析 ramdisk 失敗。经验值是 ramdisk 大小不要超过 Linux/RTOS 区域的 ⅓。
  • 系统运行时 RTOS timestamp 区域必须完整落在 RTOS 区域內。

6.2. Memory Layout 调整后 Debug

若原始 layout 可以正常开机,但调整layout 后开机异常,可采取以下 debug SOP:

  1. 整理当前 IPL_Cust / u-Boot / Linux / Ramdisk / MMA / RTOS 的规划范围,确保是否符合前述原则。
  2. 确认开机失败在哪个阶段,例如:
  3. 可以启动 IPL_Cust 但 RTOS 启动失败 ➜ 检查 RTOS 区域設定。
  4. 可以启动 RTOS 但 Linux 启动失败 ➜ 检查 Linux 和 Ramdisk 区域設定。
  5. 可以启动 Linux 但解析 ramdisk 失敗 ➜ 检查 Ramdisk 区域和大小是否合理。