# PSCI 测试 - 本例程已经经过多元异构系统部署方案整改,`amp_config.json`具体配置方式含义参考[多元异构系统部署](../../../../system/amp/README.md) - 新的方案只生成一个组合镜像(包含多个子镜像),由引导程序进行镜像解析,多核启动. ## 1. 例程介绍 ``介绍例程的用途,使用场景,相关基本概念,描述用户可以使用例程完成哪些工作 `
` 本例程主要演示了PSCI 初始化特性以及CPU hotplug 的功能 本例程一共包含了两个工程目录,分别如下所示: 1. psci_test ---- 为psci特性测试与CPU hotplug 主程序源码 2. psci_slave ---- 从核程序,程序运行之后会倒数5秒之后,进入power down 模式,等待主核唤醒 ## 2. 如何使用例程 > ``描述开发平台准备,使用例程配置,构建和下载镜像的过程 `
` > > - 具体的配置方案可以参考文档 doc/reference/usr/how_to_use.md ### 2.1 硬件配置方法 > ``哪些硬件平台是支持的,需要哪些外设,例程与开发板哪些IO口相关等(建议附录开发板照片,展示哪些IO口被引出)`
` 1. 准备一块E2000Q/D开发板 2. 将串口连接好电脑,波特率设为 115200-8-1-N ### 2.2 SDK配置方法 > ``依赖哪些驱动、库和第三方组件,如何完成配置(列出需要使能的关键配置项)`
` 本例程提供独特的编译指令,具体如下: 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 构建和下载 > ``描述构建、烧录下载镜像的过程,列出相关的命令 `
` - 以E2000Q为例: 通过amp_config.json我们可以看到config0,config1分别代表目录下的aarch64、aarch32配置项,输入: ``` make amp_make AMP_CONFIG=config0 ``` 然后进行编译,在目标目录下/mnt/d/tftpboot/生成 baremetal.elf 文件,如果您没有此路径,可自行使用packed_image.elf即可 - 网口烧录请参考: [SDK 使用说明](https://gitee.com/phytium_embedded/phytium-standalone-sdk/blob/release/doc/reference/usr/usage.md) - 利用串口终端工具,烧录镜像 ``` 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 输出与实验现象 > ``描述输入输出情况,列出存在哪些输入,对应的输出是什么(建议附录相关现象图片)`
` #### 操作步骤 - bootcode会同时自动启动主核与从核,并等待5s从核关闭 1. 程序内交互命令: ```c psci feature ``` - 此命令用于查看当前psci 例程支持的特性 ![psci_feature](figs/psci_feature.png) ```c psci amp ``` - 此命令用于主核与从核之间进行cpu hotplug 操作的特性 ![master_slave_test](figs/master_slave_test.png) ## 3. 如何解决问题 (Q&A) > ``主要记录使用例程中可能会遇到的问题,给出相应的解决方案 `
` ## 4. 修改历史记录 > ``记录例程的重大修改记录,标明修改发生的版本号 `
` - 2023-06-27 :v1.0.0 初始化项目 - 2024-06-27 :v1.1.0 整改多核启动方式,优化代码结构