STM32MP15x TF-A移植

1.1 添加自己的开发板

根据所参考的官方开发板创建自己开发板的设备树文件

$ cp ./fdts/stm32mp157f-dk2.dts ./fdts/stm32mp151-custom.dts

$ cp ./fdts/stm32mp15xx-dkx.dtsi ./fdts/stm32mp151-custom.dtsi

1.2 修改stm32mp151-custom.dts文件

#include "stm32mp15xx-dkx.dtsi"

改为:

#include "stm32mp15xx-custom.dtsi"

----

model = "STMicroelectronics STM32MP157D-DK1 Discovery Board";

compatible = "st,stm32mp157d-dk1", "st,stm32mp157";

改为

model = "STMicroelectronics STM32MP157D-Custome Discovery Board";

compatible = "st,stm32mp157d-custom", "st,stm32mp157";

增加nor flash设备树

1.3修改SD卡pinctrl文件

cp stm32mp15-pinctrl.dtsi ./stm32mp15-pinctrl-custom.dtsi

将PC10改为PE6

1.4 我们的ddr3是256Mbytes, 开发板DK2是512Mbytes。

修改stm32mp15xx-100ask.dtsi文件

#include "stm32mp15-ddr3-1x4Gb-1066-binG.dtsi"

//改为

#include "stm32mp15-ddr3-1x2Gb-1066-Custom.dtsi"

内存的修改使用STM32CubeMX生成的设备树,打开STM32CubeMX,新建一个STM32MP157A-DK1开发板的一个工程,点击System view找到DDR单击,目标板是两个16位组成32位所以选择位宽32bits,选择大小4Gb,点击Project Manager选择项目存储位置,然后生成代码。复制生成代码到stm32mp15-ddr3-2x2Gb-1066-binG.dtsi中,注意最后一行包含一个头文件。这里直接附上修改好的代码。

1.5 Makefile.sdk增加编译自己的配置

# Set default TF-A config

TF_A_CONFIG ?=  optee trusted emmc nand nor sdcard   uart usb NMC

....

# Init default config settings

TF_A_DEVICETREE_Custom?=  stm32mp151_NMC

TF_A_EXTRA_OPTFLAGS_Custom ? = STM32MP_SPI_NOR=1 PSA_FWU_SUPPORT=1 STM32MP_FORCE_MTD_START_OFFSET=0x00080000

TF_A_BINARY_ Custom?= tf-a

TF_A_MAKE_TARGET_Custom ? = all

然后执行:

make -f $PWD/../Makefile.sdk all

部署:

$> export FIP_DEPLOYDIR_ROOT=$PWD/../../FIP_artifacts

$> make -f $PWD/../Makefile.sdk DEPLOYDIR=$FIP_DEPLOYDIR_ROOT/arm-trusted-firmware all 

在以下路径中能找到生成的stm32文件

sources\arm-ostl-linux-gnueabi\FIP_artifacts\arm-trusted-firmware

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

horsen_duan

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值