<
头闻号

上海起翔塑胶材料有限公司

海绵|车用密封条|密封条|机械密封件|隔音、吸声材料|保温、隔热材料

首页 > 新闻中心 > 米尔STM32MP25x开发板Bring Up培训课程
米尔STM32MP25x开发板Bring Up培训课程
发布时间:2025-03-12 11:49:07        浏览次数:0        返回列表

1.概述

本文引用地址:

本文将以 MYIR 的 MYC-LD25X 核心模块及MYD-LD25X开发平台为例,讲解如何使用 STM32CubeMX 来实现Developer package最小系统和外设资源的配置。

2.修改设备树(接上一期)

查看生成的Bring up工程空文件的设备树,CA35的设备树文件夹,其他的是M33核的工程资料。

我们可以看到生成的设备树文件如下

myir@myir-vm:/mnt/hgfs/ShareWorkspace/stm32mp25x-bringup/Bringup/CA35/DeviceTree/Bringup$ tree -l

.

├── kernel

│   ├── stm32mp257d-bringup-mx.dts

│   └── stm32mp257d-bringup-mx-resmem.dtsi

├── optee-os

│   ├── stm32mp257d-bringup-mx.dts

│   ├── stm32mp257d-bringup-mx-rcc.dtsi

│   ├── stm32mp257d-bringup-mx-resmem.dtsi

│   └── stm32mp257d-bringup-mx-rif.dtsi

├── tf-a

│   ├── stm32mp257d-bringup-mx.dts

│   ├── stm32mp257d-bringup-mx-fw-config.dts

│   ├── stm32mp257d-bringup-mx-rcc.dtsi

│   └── stm32mp25-mx.dtsi

└── u-boot

    ├── stm32mp257d-bringup-mx.dts

    ├── stm32mp257d-bringup-mx-resmem.dtsi

    └── stm32mp257d-bringup-mx-u-boot.dtsi

4 directories, 13 files

以上的设备树已经配置了大部分内容的工程,但是工程是还无法全部启动,我们需要先把设备树同步到相应的BSP代码中。

stm32mp25x-BringUp-bsp.tar.gz已拷贝并解压到虚拟机:/home/myir。

       注:windows和ubuntu之间目录共享

myir@myir-vm:~/stm32mp25x-BringUp-bsp$ tree -L 2

.

├── Bringup

│   ├── Bringup.ioc

│   ├── CA35

│   ├── CM33

│   ├── Common

│   └── Drivers

├── build

├── FIP_artifacts

│   ├── arm-trusted-firmware

│   ├── fip

│   ├── flash-all.sh

│   ├── FlashLayout_emmc_stm32mp25x-bringup-mx.tsv

│   ├── flash.sh

│   ├── optee

│   └── u-boot

├── myir-st-optee

│   ├── fiptool-stm32mp

│   ├── Makefile.sdk

│   ├── myir-st-external-dt

│   ├── myir-st-optee

│   └── README

├── myir-st-tfa

│   ├── fiptool-stm32mp

│   ├── Makefile.sdk

│   └── tf-a-myir

├── myir-st-uboot

│   ├── fiptool-stm32mp

│   ├── Makefile.sdk

│   └── u-boot-myir

└── stm32mp-ddr-phy-A2022.11-r0

    ├── README.HOW_TO.txt

    └── stm32mp-ddr-phy-A2022.11

19 directories, 13 files

在“虚拟机设置”选项中设置完成后, 启动虚拟机执行如下命令进行挂载:

 myir@myir-vm# sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

sudo 密码为:123456      

在虚拟机的/mnt/hgfs目录下已经成功挂载上共享的目录,如未挂载上,可以重新启动下虚拟机。

/home/myir/目录为我这边虚拟机的目录,实际目录以自己本机为准。

tf-a设备树软链接:

myir@myir-vm:/mnt/hgfs/ShareWorkspace#  ln -s /mnt/hgfs/ShareWorkspace/Bringup/CA35/DeviceTree/bringup/tf-a

#include stm32mp25xf.dtsi

#include stm32mp25-pinctrl.dtsi

在”USER CODE BEGIN root”位置添加”chosen”和”aliases”节点:

aliases {

             serial0 = usart2;

};

chosen {

             stdout-path = serial0:115200n8

 };

增加PMIC配置

i2c7{

             pinctrl-names = default

             pinctrl-0 = i2c7_pins_mx

             status = okay

            

             pmic2: stpmic@33 {

              compatible = st,stpmic2

              reg = 0x33

              status = okay

              regulators {

                     compatible = st,stpmic2-regulators

                     vddcpu: buck1 {

                            regulator-name = vddcpu

                            regulator-min-microvolt = 800000

                            regulator-max-microvolt = 910000

                            regulator-always-on;

                     };

                     vddcore: buck2 {

                            regulator-name = vddcore

                            regulator-min-microvolt = 820000

                            regulator-max-microvolt = 820000

                            regulator-always-on;

                     };

                     vddgpu: buck3 {

                            regulator-name = vddgpu

                            regulator-min-microvolt = 800000

                            regulator-max-microvolt = 900000

                            regulator-always-on;

                     };

                     vddio_pmic: buck4 {

                            regulator-name = vddio_pmic

                            regulator-min-microvolt = 3300000

                            regulator-max-microvolt = 3300000

                            regulator-always-on;

                     };

                     v1v8: buck5 {

                            regulator-name = v1v8

                            regulator-min-microvolt = 1800000

                            regulator-max-microvolt = 1800000

                            regulator-always-on;

                     };

                     vdd2_ddr: buck6 {

                            regulator-name = vdd2_ddr

                            regulator-min-microvolt = 1100000

                            regulator-max-microvolt = 1100000

                     };

                     v3v3: buck7 {

                            regulator-name = v3v3

                            regulator-min-microvolt = 3300000

                            regulator-max-microvolt = 3300000

                            regulator-always-on;

                     };

                     vdda1v8_aon: ldo1 {

                            regulator-name = vdda1v8_aon

                            regulator-min-microvolt = 1800000

                            regulator-max-microvolt = 1800000

                            regulator-always-on;

                     };

                     vdd_emmc: ldo2 {

                            regulator-name = vdd_emmc

                            regulator-min-microvolt = 3300000

                            regulator-max-microvolt = 3300000

                            regulator-always-on;

                     };

                     vdd1_ddr: ldo3 {

                            regulator-name = vdd1_ddr

                            regulator-min-microvolt = 1800000

                            regulator-max-microvolt = 1800000

                            regulator-enable-ramp-delay = 1000

                     };

                     vdd3v3_usb: ldo4 {

                            regulator-name = vdd3v3_usb

                            regulator-min-microvolt = 3300000

                            regulator-max-microvolt = 3300000

                            regulator-always-on;

                     };

                     v5v_hdmi: ldo5 {

                            regulator-name = v5v_hdmi

                            regulator-min-microvolt = 2000000

                            regulator-max-microvolt = 2000000

                     };

                     vdd_sdcard: ldo7 {

                            regulator-name = vdd_sdcard

                            regulator-min-microvolt = 3300000

                            regulator-max-microvolt = 3300000

                            regulator-always-on;

                     };

                     vddio_sdcard: ldo8 {

                            regulator-name = vddio_sdcard

                            st,regulator-bypass-microvolt = 3300000

                            regulator-min-microvolt = 3300000

                            regulator-max-microvolt = 3300000

                            regulator-always-on;

                     };

            

};

ddr{

             status = okay

            

             vdd1-supply = vdd1_ddr

             vdd2-supply = vdd2_ddr

             vddq-supply = vdd2_ddr

            

};

使用文本编辑工具打开生成的 打开 TF-A 设备树(BringupCA35DeviceTreeBringuptf-astm32mp257d-bringup-mx-fw-config.dts)

本次配置不涉及防火墙内容,因此屏蔽如下内容:

新增如下内容:

       

        dtb-registry {

                soc_fw-config {

                        load-address = 0x0 0x81fc0000

                        max-size = 0x40000

                };

                tos_fw {

                        load-address = 0x0 0x82000000

                        max-size = 0x2000000

                };

       st-mem-firewall {

                bl31_context: bl31-context@81fc0000 {

                    reg = 0x0 0x81fc0000 0x0 0x40000

                    st,protreg = ;

                };

                op_tee: op-tee@82000000 {

                    reg = 0x0 0x82000000 0x0 0x2000000

                    st,protreg = ;

                };

       

以上已完成配置,就可以进行TF-A的单独编译。

myir@myir-vm: cd /home/myir/stm32mp25x-BringUp-bsp/myir-st-tfa/tf-a-myir

myir@myir-vm:~/stm32mp25x-BringUp-bsp/myir-st-tfa/tf-a-myir$ source /opt/st/myd-ld25x/4.2.4-snapshot/environment-setup-cortexa35-ostl-linux

myir@myir-vm:~/stm32mp25x-BringUp-bsp/myir-st-tfa/tf-a-myir$ export FIP_DEPLOYDIR_ROOT=../../FIP_artifacts

myir@myir-vm:~/stm32mp25x-BringUp-bsp/myir-st-tfa/tf-a-myir$ export FWDDR_DIR=../../stm32mp-ddr-phy-A2022.11-r0/stm32mp-ddr-phy-A2022.11

myir@myir-vm:~/stm32mp25x-BringUp-bsp/myir-st-tfa/tf-a-myir$  make -f $PWD/../Makefile.sdk DEPLOYDIR=$FIP_DEPLOYDIR_ROOT/arm-trusted-firmware TF_A_ConFIG= optee-emmc usb TF_A_DEVICETREE=stm32mp257d-bringup-mx ELF_DEBUG_ENABLE= 1 stm32 metadata

注:已将上述TF-A单独编译的命令存放在/home/myir/stm32mp25x-BringUp-bsp/myir-st-tfa/tf-a-myir/build.sh