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

PSCI 测试

  • 本例程已经经过多元异构系统部署方案整改,amp_config.json具体配置方式含义参考多元异构系统部署
  • 新的方案只生成一个组合镜像(包含多个子镜像),由引导程序进行镜像解析,多核启动.

1. 例程介绍

<font size="1">介绍例程的用途,使用场景,相关基本概念,描述用户可以使用例程完成哪些工作 </font><br />

本例程主要演示了PSCI 初始化特性以及CPU hotplug 的功能

本例程一共包含了两个工程目录,分别如下所示:

  1. psci_test ---- 为psci特性测试与CPU hotplug 主程序源码
  2. 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 />

  1. 准备一块E2000Q/D开发板
  2. 将串口连接好电脑,波特率设为 115200-8-1-N

2.2 SDK配置方法

<font size="1">依赖哪些驱动、库和第三方组件,如何完成配置(列出需要使能的关键配置项)</font><br />

本例程提供独特的编译指令,具体如下:

  1. make menuconfig_test 配置主核中的相关参数
  2. make menuconfig_slave 配置从核中的相关参数
  3. make backupconfig 将配置的主核与从核参数保存
  4. make clean 清理./下的编译结果
  5. make amp_make AMP_CONFIG=config[num] 将当前目录下的amp_config.json定义的配置项编译打包,config[num]为配置项的名称
  6. 具体使用方法为:
  • 为了方便快速配置测试,本项目配置文件列举了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从核关闭
  1. 程序内交互命令:
  psci feature
  • 此命令用于查看当前psci 例程支持的特性

psci_feature

  psci amp
  • 此命令用于主核与从核之间进行cpu hotplug 操作的特性

master_slave_test

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 整改多核启动方式,优化代码结构