米尔STM32MP25x开发板Bring Up培训课程(二)

发布者:EE小广播最新更新时间:2025-02-28 来源: EEWORLD关键字:米尔  STM32  开发板 手机看文章 扫描二维码
随时随地手机看文章

                };

        };

*/

新增如下内容:

        /* USER CODE BEGIN root */

        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 = ;

                };

        };

        /* USER CODE END root */

以上已完成配置,就可以进行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


编译完成:

 

 image.png?imageView2/2/w/550

 

2.2. 配置与编译Optee-OS


现在进行OP-TEE的配置编译,首先需要在设备树中添加串口 UART 以及 PWR 相关的配置:


串口部分配置:


在之前 STM32CubeMX 配置串口的过程中,UART 的配置是没办法在 OP-TEE 中使能的,也就是说 OP-TEE 的设备树中没有任何关于串口的配置,包括 UART 节点以及引脚,这些都需 要我们手动添加上去:


(BringupCA35DeviceTreeBringupoptee-osstm32mp257d-bringup-mx.dts)

/* USER CODE BEGIN includes */

#include 'stm32mp25-pinctrl.dtsi'

#include

#include

#include

#include

#include

#include 'stm32mp25xf.dtsi'

/* USER CODE END includes */

 

/* USER CODE BEGIN root */

aliases {

 serial0 = &usart2;

};

chosen {

 stdout-path = 'serial0:115200n8';

 };

 

shadow-prov {

             compatible = 'st,provisioning';

             hconf1_prov {

                    nvmem-cells = <&hconf1_otp>;

                    st,shadow-value = <0x00008DB6>;

            };

 };

/* USER CODE END root */

 

&rcc{

        status = 'okay';

 

        /* USER CODE BEGIN rcc */

        st,c1msrd = <2>;

        st,clk_opp {

                st,ck_cpu1 {

                        cfg_1 {

                                hz = <1000000000>;

                                st,clksrc = <0>;

                                st,pll = <&pll1_cfg_1000Mhz>;

                        };

                        cfg_2 {

                                hz = <600000000>;

                                st,clksrc = <0>;

                                st,pll = <&pll2_cfg_600Mhz>;

                        };

                };

        };

        /* USER CODE END rcc */

};

 

添加pin脚定义

/* USER CODE BEGIN addons */

&usart2 {

        pinctrl-names = 'default';

        pinctrl-0 = <&usart2_pins_a>;

        status = 'okay';

};

/* USER CODE BEGIN addons */


使用是 PMIC,那么 VDD_CPU 的配置需要包含在 PMIC 中,所以同样的建议 copy tf-a里的配置,增加到I2C7的设备树里。


&i2c7{

 status = 'okay';

 

 /* USER CODE BEGIN i2c7 */

 pinctrl-names = 'default', 'sleep';

        pinctrl-0 = <&i2c7_pins_a>;

        pinctrl-1 = <&i2c7_sleep_pins_a>;

        i2c-scl-rising-time-ns = <185>;

        i2c-scl-falling-time-ns = <20>;

        clock-frequency = <400000>;

        #address-cells = <1>;

        #size-cells = <0>;

 

 pmic2: stpmic2@33 {

                  compatible = 'st,stpmic2';

                  reg = <0x33>;

                  st,wakeup-pin-number = <1>;

                  st,pmic-it-id = ;

                  st,notif-it-id = <0 1>;

                  status = 'okay';

 

       regulators {

   compatible = 'st,stpmic2-regulators';

 

   ldo1-supply = <&vddio_pmic>;

   vddcpu: buck1 {

 

    regulator-name = 'vddcpu';

    regulator-min-microvolt = <800000>;

    regulator-max-microvolt = <910000>;

[1] [2] [3] [4] [5]
关键字:米尔  STM32  开发板 引用地址:米尔STM32MP25x开发板Bring Up培训课程(二)

上一篇:米尔STM32MP25x开发板Bring Up培训课程(一)
下一篇:米尔STM32MP25x开发板Bring Up培训课程(三)

小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved