Linux第34步_TF-A移植的第2步_修改设备树和tf-a.tsv

在虚拟机中,使用VSCode打开linux /atk-mp1/atk-mp1/my-tfa/目录下tf-a.code-workspace”;

找到“tf-a-stm32mp-2.2.r1/fdts”目录,就是设备树文件所在的目录。

见下图:

一、修改“stm32mp157d-atk.dts”

修改后,见下图:

二、修改设备树中的电源管理

由于正点原子STM32MP157开发板没有使用“STPMIC1A”这个电源管理芯片,所以,要修改电源管理。ST公司的STM32MP157 EVK开发板将STPMIC1A芯片挂到了I2C4下,在设备树头文件中,我们要修改节点“i2c4”。

1、打开设备树头文件“stm32mp157d-atk.dtsi”,将“54~281行之间的代码”全部删除掉,就相当于删除掉“STPMIC1A”这个芯片的相关描述了

见下图:

2、在“stm32mp157d-atk.dtsi”文件里,面找到“vin节点”,见下图:

3、删除掉“vin节点”的内容,替换为下面的代码:

//描述VDDCORE电源,也就是STM32MP157的内核电源,最小为为1.2V,最大为1.35V

   vddcore: regulator-vddcore {

        compatible = "regulator-fixed";

        regulator-name = "vddcore";

        regulator-min-microvolt = <1200000>;

        regulator-max-microvolt = <1350000>;

        regulator-off-in-suspend;

        regulator-always-on;

    };

//描述3.3V电源,最小和大都是3.3V

    v3v3: regulator-3p3v {

        compatible = "regulator-fixed";

        regulator-name = "v3v3";

        regulator-min-microvolt = <3300000>;

        regulator-max-microvolt = <3300000>;

        regulator-off-in-suspend;

        regulator-always-on;

    };

//描述vdd电源,最小和大都是3.3V

    vdd: regulator-vdd {

        compatible = "regulator-fixed";

        regulator-name = "vdd";

        regulator-min-microvolt = <3300000>;

        regulator-max-microvolt = <3300000>;

        regulator-off-in-suspend;

        regulator-always-on;

    };

//描述vdd_usb电源,最小和大都是3.3V

    vdd_usb: regulator-vdd-usb {

        compatible = "regulator-fixed";

        regulator-name = "vdd_usb";

        regulator-min-microvolt = <3300000>;

        regulator-max-microvolt = <3300000>;

        regulator-off-in-suspend;

        regulator-always-on;

    };

见下图:

至此,设备树中的电源管理修改完成了。

三、修改TF卡和EMMC设备树

1、打开设备树头文件“stm32mp157d-atk.dtsi”,找到“sdmmc1”节点和“sdmmc2”节点。

见下图:

2、修改“TF卡和EMMC设备树”后的内容为:

&sdmmc1 {

pinctrl-names = "default";

pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;

st,neg-edge;

    broken-cd;

bus-width = <4>;

vmmc-supply = <&v3v3>;

status = "okay";

};

&sdmmc2 {

pinctrl-names = "default";

pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;

non-removable;

st,neg-edge;

bus-width = <8>;

vmmc-supply = <&v3v3>;

    vqmmc-supply = <&v3v3>;

status = "okay";

};

修改“TF卡和EMMC设备树”后结果,见下图:

四、修改USB OTG设备树

1、打开设备树头文件“stm32mp157d-atk.dtsi”,找到“usbotg_hs”节点。

见下图:

 2、修改“usbotg_hs”节点的内容如下:

&usbotg_hs {

phys = <&usbphyc_port1 0>;

phy-names = "usb2-phy";

usb-role-switch;

status = "okay";

};

见下图:

 4、添加usbphyc节点,其内容如下:

&usbphyc {

status = "okay";

};

见下图:

 五、修改“linux /atk-mp1/atk-mp1/my-tfa/Makefile.sdk”

1、打开终端

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd linux回车”,切换“linux”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd atk-mp1/回车”,切换“atk-mp1”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd my-tfa回车”,切换“my-tfa”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

见下图:

2、输入“vim Makefile.sdk回车”,使用vim命令打开已有的“Makefile.sdk”文件

 3、将“TFA_DEVICETREE ?=   stm32mp157a-dk1 stm32mp157d-dk1 stm32mp157c-dk2 stm32mp157f-dk2   stm32mp157c-ed1 stm32mp157f-ed1   stm32mp157a-ev1 stm32mp157c-ev1 stm32mp157d-ev1 stm32mp157f-ev1  stm32mp157d-atk”注释掉,只用“TFA_DEVICETREE ?= stm32mp157d-atk”,目的是:关闭多个STM32MP1开发板的TF-A镜像,只保留正点原子的开发板的TF-A镜像

见下图:

 4、按下ESC”键,输入“:wq,保存退出。

六、编译TF-A

1、输入“cd tf-a-stm32mp-2.2.r1/回车”,进入到“tf-a-stm32mp-2.2.r1”目录下;

输入“ls回车”,列出“tf-a-stm32mp-2.2.r1”目录下所有的文件和文件夹;

输入“make -f ../Makefile.sdk all回车”, 执行编译, '-f'的意思是重新指定Makefile。

如果需要加快编译速度,可是使用多线程编译,线程数量最好和自己给虚拟机分配的物理核心保持一致,使用-j来指定线程数,命令如下:

make -f ../Makefile.sdk -j8 all //使用8线程编译

见下图:

2、输入“cd ..回车”,返回上层目录“my-tfa”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd build/回车”,切换“build”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd trusted/回车”,切换“trusted”目录下

输入“ls -l回车”,列出当前目录下所有的文件和文件夹

见下图:

可见,还可以看到多个STM32MP1开发板的TF-A镜像,所以要删除“build”目录和“build目录下所有文件”。

3、输入“cd ..回车”,返回上层目录“build”目录下

输入“cd ..回车”,返回上层目录“my-tfa”目录下

输入“rm build -rf回车”,删除“build”目录和“build目录下所有文件

注意:通常用输入“make -f ../Makefile.sdk clean”,清除以前的编译

输入“cd tf-a-stm32mp-2.2.r1/回车”,进入到“tf-a-stm32mp-2.2.r1”目录下;

输入“ls回车”,列出“tf-a-stm32mp-2.2.r1”目录下所有的文件和文件夹;

输入“make -f ../Makefile.sdk all回车”, 执行编译, '-f'的意思是重新指定Makefile。

如果需要加快编译速度,可是使用多线程编译,线程数量最好和自己给虚拟机分配的物理核心保持一致,使用-j来指定线程数,命令如下:

make -f ../Makefile.sdk -j8 all //使用8线程编译

见下图:

 4、输入“cd ..回车”,返回上层目录“my-tfa”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd build/回车”,切换“build”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd trusted/回车”,切换“trusted”目录下

输入“ls -l回车”,列出当前目录下所有的文件和文件夹

见下图:

至此,生成了“tf-a-stm32mp157d-atk-trusted.stm32镜像文件”。

七、再次修改“linux /atk-mp1/atk-mp1/my-tfa/Makefile.sdk”

1、打开终端

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd linux回车”,切换“linux”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd atk-mp1/回车”,切换“atk-mp1”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd my-tfa回车”,切换“my-tfa”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

见下图:

 2、输入“vim Makefile.sdk回车”,使用vim命令打开已有的“Makefile.sdk”文件

将“EXTRA_OEMAKE_SERIAL= STM32MP_UART_PROGRAMMER=1 STM32MP_USB_PROGRAMMER=1”注释掉

换成下面的语句:

EXTRA_OEMAKE_SERIAL=$(filter-out STM32MP_SDMMC=1 STM32MP_EMMC=1 STM32MP_SPI_NOR=1 STM32MP_RAW_NAND=1 STM32MP_SPI_NAND=1,$(EXTRA_OEMAKE)) STM32MP_UART_PROGRAMMER=1 STM32MP_USB_PROGRAMMER=1

见下图:

按下ESC”键,输入“:wq,保存退出。

八、再次编译TF-A

1、输入“cd tf-a-stm32mp-2.2.r1/回车”,进入到“tf-a-stm32mp-2.2.r1”目录下;

输入“ls回车”,列出“tf-a-stm32mp-2.2.r1”目录下所有的文件和文件夹;

输入“make -f ../Makefile.sdk clean”,清除以前的编译;

输入“make -f ../Makefile.sdk all回车”, 执行编译, '-f'的意思是重新指定Makefile。

如果需要加快编译速度,可是使用多线程编译,线程数量最好和自己给虚拟机分配的物理核心保持一致,使用-j来指定线程数,命令如下:

make -f ../Makefile.sdk -j8 all //使用8线程编译

见下图:

 2、输入“cd ..回车”,返回上层目录“my-tfa”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd build/回车”,切换“build”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd serialboot/回车”,切换“serialboot”目录下

输入“ls -l回车”,列出当前目录下所有的文件和文件夹

至此,生成了“tf-a-stm32mp157d-atk-serialboot.stm32”。

九、创建新的“tf-a.tsv”文件

1、从以前的拷贝一份“tf-a.tsv”文件,修改为新的“tf-a.tsv”文件。

路径:C:\Program Files\STMicroelectronics\images

见下图:

 2、使用“Notepad++”打开“tf-a.tsv”文件

见下图:

3、修改后,见下图:

“PE”:不用更新程序,即“指定的分区”或“指定的设备”不需要烧写固件

十、烧录

打开虚拟机,使用“FileZilla Client”,将tf-a-stm32mp157d-atk-trusted.stm32tf-a-stm32mp157d-atk-serialboot.stm32传到“C:\Program Files\STMicroelectronics\images”目录下;

1、关闭虚拟机,防止开发板连接到虚拟机

2、将开发板上拨码开关拨到“000”位置

3、将USB导线连接电脑的USB3.0接口,另外一端连接开发板的USB OTG接口;

4、将USB导线连接电脑的USB3.0接口,另外一端连接到开发板的USB TTL接口;

5、双击“STM32CubeProgrammer”图标

6、选择图中的USB,然后点击“Connect”

7、点击“刷新”,直到出现USB1,表示连接成功。

8、点击“Open file”,找到“C:\Program Files\STMicroelectronics\images”目录下“tf-a.tsv”打开。

9、点击“Browse”,打开“C:\Program Files\STMicroelectronics\images”目录。

10、点击“选择文件夹”

11、点击“Download”

12、点击“确定”

 

13、将拨码开关设置为“010”

14、按下开发板的“复位按钮”,重新启动开发板。

TF-A运行信息,见下图:

uboot运行信息,见下图:

 至此,TF-A全部移植完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/339548.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

日志平台搭建手册

1. Java环境安装和配置 JDK要求安装1.8版本&#xff0c;安装可以参考《Linux安装JDK完整步骤》。 2. 创建用户 创建elk用户&#xff0c;用来管理elk相关的服务&#xff0c;包括&#xff1a;filebeat、logstash、elasticsearch、kibana。执行命令&#xff1a; useradd elk …

VC++中使用OpenCV进行人脸检测

VC中使用OpenCV进行人脸检测 对于上面的图像&#xff0c;如何使用OpenCV进行人脸检测呢&#xff1f; 使用OpenCV进行人脸检测十分简单&#xff0c;OpenCV官网给了一个Python人脸检测的示例程序&#xff0c; objectDetection.py代码如下&#xff1a; from __future__ import p…

计算机网络-分层结构,协议,接口,服务

文章目录 总览为什么要分层怎样分层正式认识分层概念小结 总览 为什么要分层 发送文件前要做的准备工作很多 把这个准备工作分层小问题解决&#xff0c;也就分层解决 怎样分层 每层相互独立&#xff0c;每层做的工作不同 界面自然清晰&#xff0c;层与层之间的接口能够体现…

(2)(2.1) Andruav Android Cellular(二)

文章目录 前言 5 Andruav Web Client 6 Andruav Telemetry 7 Andruav高级功能 8 将Andruav与SITL配合使用 9 FAQ 10 术语表 前言 Andruav 是一个基于安卓的互联系统&#xff0c;它将安卓手机作为公司计算机&#xff0c;为你的无人机和遥控车增添先进功能。 5 Andruav W…

【Java】IDEA集成开发环境工具切换JDK和设置环境变量

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《Java》序列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握…

CTF CRYPTO 密码学-5

题目名称&#xff1a;山岚 题目描述&#xff1a; 山岚 f5-lf5aa9gc9{-8648cbfb4f979c-c2a851d6e5-c} 解题过程&#xff1a; Step1&#xff1a;根据题目提示栅栏加密 分析 观察给出的密文发现有f、l、a、g等字符有规律的夹杂的密文中间&#xff0c;看出都是每3个字符的第1…

只会 Python 不行,不会 Python 万万不行 。。。

当下的环境大家有目共睹&#xff0c;未来一段时间情况如何&#xff0c;想必不少人心里也清楚&#xff0c;技术人走到中年&#xff0c;难免会焦虑&#xff0c;职场上干得不爽&#xff0c;但是跳槽也不容易&#xff0c;加上不少企业裁员&#xff0c;换个满意的工作更是难上加难。…

大学生图像采集上传成功的秘诀被破解了‼️

✅大学生毕业图像采集上传成功了我喜欢的 大学生图像采集可以自己上传 尤其是毕业采集&#xff0c; 很多同学都需要自己拍照上传&#xff0c;只要你照片人像比例对&#xff0c; 像素和大小对&#xff0c;真的分分钟上传成功&#xff01; 毕业采集照片要求&#xff1a; 像素480*…

Kotlin 尾递归函数

函数式编程中&#xff0c;重要的概念 尾递归&#xff1a; 当一个函数 在最后调用 自身&#xff0c;称为 尾递归&#xff0c;是一种特殊的递归函数。 Kotlin 使用 tailrec 声明尾递归函数&#xff0c;可以避免 StackOverflowError 的风险。 原理是&#xff1a;通过编译器优化 …

泛微E-Cology getLabelByModule SQL注入漏洞复现

0x01 产品简介 泛微协同管理应用平台e-cology是一套兼具企业信息门户、知识文档管理、工作流程管理、人力资源管理、客户关系管理、项目管理、财务管理、资产管理、供应链管理、数据中心功能的企业大型协同管理平台。 0x02 漏洞概述 由于泛微e-cology未对用户的输入进行有效…

一周时间,开发了一款封面图生成工具

介绍 这是一款封面图的制作工具&#xff0c;根据简单的配置即可生成一张好看的封面图&#xff0c;目前已有七款主题可以选择。做这个工具的初衷来自平时写文章&#xff0c;都为封面图发愁&#xff0c;去图片 网站上搜索很难找到满意的&#xff0c;而且当你要的图如果要搭配上文…

【Java】Maven的基本使用

Maven的基本使用 Maven常用命令 complie&#xff1a;编译clean&#xff1a;清理test&#xff1a;测试package&#xff1a;打包install&#xff1a;安装 mvn complie mvn clean mvn test mvn package mvn installMaven生命周期 IDEA配置Maven Maven坐标 什么是坐标&#xff1f;…

【MIMO 从入门到精通】[P8][A Detailed Introduction to Beamforming]

前言&#xff1a; 本篇参考油管 5G Learning 《A Detailed Introduction to Beamforming》 简单介绍一下波束赋形的原理。 电磁波传播的数学模型如下图&#xff1a; 跟水波几乎是一样的,以圆形的均匀波进行传播 在各个方向上面功率大致相同。 但是我们需要方向性更好的电磁…

【赠书第17期】Excel高效办公:文秘与行政办公(AI版)

文章目录 前言 1 了解Excel的强大功能和工具 2 提升Excel技能的方法 3 结合AI技术提升Excel应用 4 注意事项 5 推荐图书 6 粉丝福利 前言 随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;我们的工作方式也在发生深刻变革。其中&#xff0c;Excel 作…

使用Python对音频进行特征提取

在几年前写的使用Python对音频进行特征提取使用的是人为特征的方法进行特征提取的&#xff0c;近些年随着深度学习的普及&#xff0c;这里尝试使用深度学习方法进行特征提取。 数据集测试 之前的数据集找不到了&#xff0c;这个数据其实是kaggle的一个数据&#xff1a;www.ka…

【Linux C | 进程】进程环境 | 什么是进程?进程的开始、终止、存储空间布局、命令行参数、环境变量

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

LV.19 D1 C++简介 学习笔记

一、C概述 1.1 C的前世今生 C是一种被广泛使用的计算机程序设计语言。它是一种通用程序设计语言&#xff0c;支持多重编程范式&#xff0c;例如过程化程序设计、面向对象程序设计、泛型程序设计和函数式程序设计等。 C的发展&#xff1a; 1.2 C的主要应用领域 C是一门运用很广…

医学图像的数据增强技术 --- 切割-拼接数据增强(CS-DA)

医学图像的新型数据增强技术 CS-DA 核心思想自然图像和医学图像之间的关键差异CS-DA 步骤确定增强后的数据数量 代码复现 CS-DA 核心思想 论文链接&#xff1a;https://arxiv.org/ftp/arxiv/papers/2210/2210.09099.pdf 大多数用于医学分割的数据增强技术最初是在自然图像上开…

如何使用pytorch的Dataset, 来定义自己的Dataset

Dataset与DataLoader的关系 Dataset: 构建一个数据集&#xff0c;其中含有所有的数据样本DataLoader&#xff1a;将构建好的Dataset&#xff0c;通过shuffle、划分batch、多线程num_workers运行的方式&#xff0c;加载到可训练的迭代容器。 import torch from torch.utils.dat…

HYBBS 表白墙网站PHP程序源码 可封装成APP

源码介绍 PHP表白墙网站源码&#xff0c;可以做校园内的&#xff0c;也可以做校区间的&#xff0c;可封装成APP。告别QQ空间的表白墙吧。 安装PHP5.6以上随意 上传程序安装&#xff0c;然后设置账号密码&#xff0c;登陆后台切换模板手机PC都要换开启插件访问前台。 安装完…
最新文章