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内存规划,如何分配各个区域的内存。
-
内存区域起始地址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:
- 整理当前 IPL_Cust / u-Boot / Linux / Ramdisk / MMA / RTOS 的规划范围,确保是否符合前述原则。
- 确认开机失败在哪个阶段,例如:
- 可以启动 IPL_Cust 但 RTOS 启动失败 ➜ 检查 RTOS 区域設定。
- 可以启动 RTOS 但 Linux 启动失败 ➜ 检查 Linux 和 Ramdisk 区域設定。
- 可以启动 Linux 但解析 ramdisk 失敗 ➜ 检查 Ramdisk 区域和大小是否合理。