You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.9 KiB
3.9 KiB
PSCI 测试
- 本例程已经经过多元异构系统部署方案整改,
amp_config.json
具体配置方式含义参考多元异构系统部署 - 新的方案只生成一个组合镜像(包含多个子镜像),由引导程序进行镜像解析,多核启动.
1. 例程介绍
<font size="1">
介绍例程的用途,使用场景,相关基本概念,描述用户可以使用例程完成哪些工作 </font><br />
本例程主要演示了PSCI 初始化特性以及CPU hotplug 的功能
本例程一共包含了两个工程目录,分别如下所示:
- psci_test ---- 为psci特性测试与CPU hotplug 主程序源码
- psci_slave ---- 从核程序,程序运行之后会倒数5秒之后,进入power down 模式,等待主核唤醒
2. 如何使用例程
<font size="1">
描述开发平台准备,使用例程配置,构建和下载镜像的过程</font><br />
- 具体的配置方案可以参考文档 doc/reference/usr/how_to_use.md
2.1 硬件配置方法
<font size="1">
哪些硬件平台是支持的,需要哪些外设,例程与开发板哪些IO口相关等(建议附录开发板照片,展示哪些IO口被引出)</font><br />
- 准备一块E2000Q/D开发板
- 将串口连接好电脑,波特率设为 115200-8-1-N
2.2 SDK配置方法
<font size="1">
依赖哪些驱动、库和第三方组件,如何完成配置(列出需要使能的关键配置项)</font><br />
本例程提供独特的编译指令,具体如下:
- make menuconfig_test 配置主核中的相关参数
- make menuconfig_slave 配置从核中的相关参数
- make backupconfig 将配置的主核与从核参数保存
- make clean 清理./下的编译结果
- make amp_make AMP_CONFIG=config[num] 将当前目录下的amp_config.json定义的配置项编译打包,config[num]为配置项的名称
- 具体使用方法为:
- 为了方便快速配置测试,本项目配置文件列举了11个默认配置项目,会同时加载apu、rpu的默认配置,然后使用
make amp_make AMP_CONFIG=config[num]
命令进行对应soc的对应aarch编译 - 在当前 makefile 目录下
- make + 以上指令
2.3 构建和下载
<font size="1">
描述构建、烧录下载镜像的过程,列出相关的命令</font><br />
- 以E2000Q为例:
通过amp_config.json我们可以看到config0,config1分别代表目录下的aarch64、aarch32配置项,输入:
make amp_make AMP_CONFIG=config0
然后进行编译,在目标目录下/mnt/d/tftpboot/生成 baremetal.elf 文件,如果您没有此路径,可自行使用packed_image.elf即可
- 网口烧录请参考: SDK 使用说明
- 利用串口终端工具,烧录镜像
setenv ipaddr 192.168.4.20;
setenv serverip 192.168.4.50;
setenv gatewayip 192.168.4.1;
tftpboot f0000000 baremetal.elf;
bootelf -p f0000000
2.4 输出与实验现象
<font size="1">
描述输入输出情况,列出存在哪些输入,对应的输出是什么(建议附录相关现象图片)</font><br />
操作步骤
- bootcode会同时自动启动主核与从核,并等待5s从核关闭
- 程序内交互命令:
psci feature
- 此命令用于查看当前psci 例程支持的特性
psci amp
- 此命令用于主核与从核之间进行cpu hotplug 操作的特性
3. 如何解决问题 (Q&A)
<font size="1">
主要记录使用例程中可能会遇到的问题,给出相应的解决方案</font><br />
4. 修改历史记录
<font size="1">
记录例程的重大修改记录,标明修改发生的版本号</font><br />
- 2023-06-27 :v1.0.0 初始化项目
- 2024-06-27 :v1.1.0 整改多核启动方式,优化代码结构