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拨码方向相反

成功现象

相关推荐

  1. QT系统移植教程

    2024-04-01 22:00:02       29 阅读
  2. 系统移植及相关介绍

    2024-04-01 22:00:02       28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-01 22:00:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-01 22:00:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-01 22:00:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-01 22:00:02       20 阅读

热门阅读

  1. Linux共享网络给其它主机

    2024-04-01 22:00:02       14 阅读
  2. FastAPI+React全栈开发13 FastAPI概述

    2024-04-01 22:00:02       12 阅读
  3. C# 字符串转json

    2024-04-01 22:00:02       17 阅读
  4. 医疗器械测试面试准备—质量部总监二面

    2024-04-01 22:00:02       30 阅读
  5. 蓝桥杯考前复习二

    2024-04-01 22:00:02       17 阅读
  6. 前端CSS样式(image)

    2024-04-01 22:00:02       18 阅读
  7. 2084: [蓝桥杯2023初赛] 整数删除

    2024-04-01 22:00:02       16 阅读
  8. Stable Diffusion 本地部署教程

    2024-04-01 22:00:02       18 阅读
  9. 学习记录之数学表达式(3)

    2024-04-01 22:00:02       14 阅读