2024.4.1 系统移植

TF-A移植

TF-A是基于 Arm 的可信固件 Trusted Firmware-A,简称 TF-A。它是一个开源软件,运行在一个硬件隔离的安全环境中并提供安全服务。

分析README文档

Compilation of TF-A (Trusted Firmware-A): ========> tf-a目录

        1. Pre-requisite ========> 准备工作

        2. Initialise cross-compilation via SDK ========> 初始化交叉编译工具链

        3. Prepare tf-a source code ========> 准备tf-a源码

        4. Management of tf-a source code ========> 管理tf-a源码

        5. Compile tf-a source code ========> 编译tf-a源码

        6. Update software on board ========> 更新tf-a源码

TF-A移植步骤

1.在顶层目录下打开Makefile.sdk文件,更改交叉编译工具

        EXTRA_OEMAKE=CROSS_COMPILE=arm-ostl-linux-gnueabi-        

         ======>  EXTRA_OEMAKE=CROSS_COMPILE=arm-ostl-linux-gnueabi-

        TFA_DEVICETREE ?=  ======>  TFA_DEVICETREE ?= stm32mp157a-fsmp1a

2.源码目录进行补丁

        for p in `ls -1 ../*.patch`; do patch -p1 < $p; done

        补丁:修改或增加配置信息

3.修改设备树信息

        FSMP1A开发板参考DK1公板进行移植的,DK1公板所有的硬件信息都在设备树中进行存放

        所以需要将DK1设备树的信息复制为FSMP1A信息

        1)进入设备树目录

                cd fdts/

        2)将 DK1公板设备树信息,复制为FSMP1A设备树内容

                cp stm32mp157a-dk1.dts stm32mp157a-fsmp1a.dts

                cp stm32mp15xx-dkx.dtsi stm32mp15xx-fsmp1x.dtsi

        3)修改设备树的源文件

                vi stm32mp157a-fsmp1a.dts

                #include "stm32mp15xx-dkx.dtsi" =====> #include "stm32mp15xx-fsmp1x.dtsi"

4.安装相关库

        sudo apt-get install device-tree-compiler

5.源码目录下,编译,生成TF-A镜像文件

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

烧写结果

解决方法:

1.删除DK1设备树相关内容

        1)打开源码目录下的设备树,打开设备树文件

                cd fdts/

                vi stm32mp15xx-fsmp1x.dtsi

        2)删除&i2c4代码块

        3)删除cpu0和cpu1节点

        4)添加电源节点

        5)添加sdmmc2节点

搭建Linux系统

准备镜像文件

tf-a镜像文件:tf-a-stm32mp157a-fsmp1a-trusted.stm32(烧写位置:TF卡 / EMMC)

uboot镜像文件:u-boot-stm32mp157a-fsmp1a-trusted.stm32(烧写位置:TF卡 / EMMC)

内核镜像文件:stm32mp157a-fsmp1a.dtb 和 uImage(通过tftp服务器下载)

根文件系统:rootfs(通过nfs服务器进行挂载)

烧写镜像文件到EMMC设备中

ums 0 mmc 0 =========> 将TF卡挂载到Ubuntu中

ums 0 mmc 1 =========> 将EMMC设备挂载到Ubuntu中

执行ums指令后虚拟机Ubuntu弹出USB外部设备连接对话框,选择连接虚拟机

执行脚本烧写

更改拨码开关

 更改为eMMC,与SDCARD拨码方向相反

成功现象

  • 31
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值