米尔STM32MP25x开发板Bring Up培训课程(二)
扫描二维码
随时随地手机看文章
1. 概述
本文将以 MYIR 的 MYC-LD25X 核心模块及MYD-LD25X开发平台为例,讲解如何使用 STM32CubeMX 来实现Developer package最小系统和外设资源的配置。
2. 修改设备树(接上一期)
查看生成的Bring up工程空文件的设备树,CA35的设备树文件夹,其他的是M33核的工程资料。
我们可以看到生成的设备树文件如下
以上的设备树已经配置了大部分内容的工程,但是工程是还无法全部启动,我们需要先把设备树同步到相应的BSP代码中。
stm32mp25x-BringUp-bsp.tar.gz已拷贝并解压到虚拟机:/home/myir。
注:windows和ubuntu之间目录共享
在“虚拟机设置”选项中设置完成后, 启动虚拟机执行如下命令进行挂载:
sudo 密码为:123456
在虚拟机的/mnt/hgfs目录下已经成功挂载上共享的目录,如未挂载上,可以重新启动下虚拟机。
/home/myir/目录为我这边虚拟机的目录,实际目录以自己本机为准。
tf-a设备树软链接:
Optee-os设备树stm32mp257d-bringup-mx.dts和stm32mp257d-bringup-mx-rcc.dtsi软链接:
Optee-os设备树stm32mp257d-bringup-mx-resmem.dtsi和stm32mp257d-bringup-mx-rif.dtsi直接使用SourceCode压缩包Optee-os目录中的文件,可通过软链接或者拷贝的方式放到stm32mp25x-BringUp-bsp/myir-st-optee/myir-st-optee/core/arch/arm/dts/目录下。
Uboot设备树软链接:
Kernel设备树软链接:
Note: STM32CubeMX 的规则是先生成 Kernel 的 dts, 然后将生成的 dts 文件拷贝到 u-boot 目录下,也就是说 u-boot 的设备树 stm32mp257d-bringup-mx.dts 是从 kernel 目录拷贝过来的,所以在 U-Boot 阶段修改设备树,添加 User code 时,请同步修改 kernel 的设备树或者将修改好的设备树拷贝到 Kernel 目录,防止下次使用 CubeMX 生成设备树的时候,u-boot 部分的修改被 kernel 未修改的设备树覆盖。
2.1. 配置和编译TF-A
需要手动添加 TF-A 阶段的串口配置的 user code. 使用文本编辑工具打开生成的 打开 TF-A 设备树(Bringup\CA35\DeviceTree\Bringup\tf-a\stm32mp257d-bringup-mx.dts)
添加头文件
在”USER CODE BEGIN root”位置添加”chosen”和”aliases”节点:
增加PMIC配置
使用文本编辑工具打开生成的 打开 TF-A 设备树(Bringup\CA35\DeviceTree\Bringup\tf-a\stm32mp257d-bringup-mx-fw-config.dts)
本次配置不涉及防火墙内容,因此屏蔽如下内容:
新增如下内容:
以上已完成配置,就可以进行TF-A的单独编译。
注:已将上述TF-A单独编译的命令存放在/home/myir/stm32mp25x-BringUp-bsp/myir-st-tfa/tf-a-myir/build.sh
编译完成:
2.2. 配置与编译Optee-OS
现在进行OP-TEE的配置编译,首先需要在设备树中添加串口 UART 以及 PWR 相关的配置:
串口部分配置:
在之前 STM32CubeMX 配置串口的过程中,UART 的配置是没办法在 OP-TEE 中使能的,也就是说 OP-TEE 的设备树中没有任何关于串口的配置,包括 UART 节点以及引脚,这些都需 要我们手动添加上去:
(Bringup\CA35\DeviceTree\Bringup\optee-os\stm32mp257d-bringup-mx.dts)
添加pin脚定义
使用是 PMIC,那么 VDD_CPU 的配置需要包含在 PMIC 中,所以同样的建议 copy tf-a里的配置,增加到I2C7的设备树里。
增加CPU电源配置
在上一章节中提到stm32mp257d-bringup-mx-resmem.dtsi 和 stm32mp257d-bringup-mx-rif.dtsi 直接使用 SourceCode 压缩包 Optee-os 目录中的文件,如果还未拷贝,需要将其通过软链接或者拷贝的方式放到stm32mp25x-BringUp-bsp/myir-st-optee/myir-st-optee/core/arch/arm/dts/目录下。
编译 Optee
注:已将上述Optee单独编译的命令存放在/home/myir/stm32mp25x-BringUp-bsp/myir-st-optee/myir-st-optee/build.sh
可以看到已经生成了bin文件
2.3. 配置和编译Uboot
已同样的方式进行手动添加uboot的设备树的一些配置,使用编辑工具打开uboot下的(Bringup\CA35\DeviceTree\Bringup\u-boot\stm32mp257d-bringup-mx.dts)
需要增加eMMC的配置
添加USB配置,后续用于刷机
使用编辑工具打开uboot下的(Bringup\CA35\DeviceTree\Bringup\u-boot\stm32mp257d-bringup-mx-u-boot.dtsi)
PMIC配置与tf-a一样,这里略写。
修改完成后,编译 U-Boot
注:已将上述uboot单独编译的命令存放在/home/myir/stm32mp25x-BringUp-bsp/myir-st-uboot/u-boot-myir/build.sh
编译完成后生成fip文件在定义的FIP_artifacts文件夹下,如下图所示: