mtk平台ATF介绍

1、链接地址

uboot
ATF

2、工具链

ARM 64位平台需要aarch64工具链,可以在staging_dir/toolchain- aarch64_xxxxx中找到。另外dtc工具来为ATF编译.dts文件,一般在
Ubuntu中的device-tree-compiler包,编译后的u-boot/kernel源代码树中的脚本/dtc。

3、配置 u-boot

make XXXXX_defconfig

4. Compile u-boot

make CROSS_COMPILE=<toolchain-prefix>

工具链位置一般位于
~/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0-musl下的aarch64-openwrt-linux

~/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0-musl/bin/aarch64-openwrt-linux-

5,编译ATF

make -f Makefile PLAT=<plat> BOOT_DEVICE=<bootdevice> BL33=<path-to-u-boot.bin> <optional-options> all fip

目标文件为bl2.img和fip.bin位于

<atf-src-dir>/build/<plat>/release

参数说明:

  • PLAT=
    mt7622/mt7981/mt7986/mt7988
  • BOOT_DEVICE
    在这里插入图片描述
  • NMBM=

This option is valid only when BOOT_DEVICE= is set to snand or spim-nand.
This option is incompatible with UBI=1
Value Description
0 Disable NMBM (default)
1 Enable NMBM

  • UBI=

Enable this option if FIP is located in a volume of UBI.
This option is valid only when BOOT_DEVICE= is set to snand or spim-nand.
This option is incompatible with NMBM=1
Value Description
0 Disable Full-UBI layout (default)
1 Enable Full-UBI layout

  • DRAM_USE_DDR4=

This option is valid only for mt7981/mt7986/mt7988.
MT7988: this is used for single DDR4 chip.
Value Description
0 The DRAM chip is DDR3 (default)
1 The DRAM chip is DDR4

  • DRAM_USE_COMB=

When this option suppresses DRAM_USE_DDR4.
This option is valid only for mt7988.
Value Description
0 No effect (default)
1 The MT7988 CPU uses KGD DDR die, or the board is using two DDR chips

  • DDR4_4BG_MODE=

This option must be used with DRAM_USE_COMB=1.
This option is valid only for mt7988.
Value Description
0 No effect (default)
1 Enable DDR4 32-bit 8GBytes mode

  • DDR3_FLYBY=

This option is valid only for mt7622.
Value Description
0 The board uses only one DRAM chip (default)
1 The board uses two dram chips (For BPI-R64)

  • BOARD_BGA=

This option is valid only for mt7981.
Value Description
0 The chip package is QFN (MT7981C) (default)
1 The chip package is BGA (MT7981A/MT7981B)

  • RAM_BOOT_DEBUGGER_HOOK=

This option is valid only when BOOT_DEVICE= is set to ram.
By using this option, the bl2.bin can be load by OpenOCD for debricking.
Please refer to: https://github.com/mtk-openwrt/openocd-scripts/tree/main/mt7622 16
Value Description
0 Disable debugger hook (default)
1 Enable debugger hook

  • DEVICE_HEADER_OFFSET=

This option is valid only when PLAT is mt7622 and BOOT_DEVICE= is set to sdmmc.
This option specify the absolute address of the BL2 in the SD card.
This value must match the real address of the BL2 in the SD card otherwise the device will not boot.
The default value is 0x80000.

  • ENABLE_JTAG=

This option is valid only when PLAT is mt7981/mt7988.
By default JTAG will be disabled in BL2.
Value Description
0 Disable JTAG (default)
1 Enable JTAG

  • USE_MKIMAGE= and MKIMAGE=

If you don’t want to use the closed-source program bromimage to generate bl2.img, you can use the open-source replacement —— The mkimage from u-boot.

To enable using mkimage, these two parameters must be used together:

USE_MKIMAGE=1 MKIMAGE= <path-to-mkimage>
  • OVERRIDE_FIP_BASE= and OVERRIDE_FIP_SIZE=

If both specified, they will override the default FIP base & size provided by each platform.
These options have no effect if UBI=1.

  • OVERRIDE_UBI_START_ADDR=

These options is only valid for UBI=1.
If specified, it will override the default UBI partition start address, which is 0x200000.

  • OVERRIDE_UBI_END_ADDR=

These options is only valid for UBI=1 and OVERRIDE_UBI_START_ADDR is set.
If specified, it will override the default UBI partition end address, which is 0, meaning the end of NAND.

  1. 例子
    Build for BPI-R64 booting from SPI-NAND:
make -f Makefile PLAT=mt7622 BOOT_DEVICE=snand DDR3_FLYBY=1 all fip

Build for MT7986 booting from SD using DDR4:

make -f Makefile PLAT=mt7986 BOOT_DEVICE=sdmmc DRAM_USE_DDR4=1 all fip

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

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

相关文章

设计模式(工厂模式)

设计模式&#xff08;工厂模式&#xff09; 一、工厂模式介绍 在工厂模式中&#xff0c;父类决定生成示例的方式&#xff0c;但不决定所要生成的具体的类&#xff0c;具体的处理部分交给子类负责。这样就可以将生成示例的框架和生成示例的类解耦。 二、示例程序 以下示例程…

[壹],安卓开发环境搭建

1&#xff0c;下载JDK并安装 网址: Java Downloads | Oracle 下载完成&#xff0c;安装到自定义位置。 2&#xff0c;设置系统环境变量 2.1&#xff0c;新建环境变量JAVA_HOME 2.2&#xff0c;Path环境变量追加 %JAVA_HOME%\bin 2.3&#xff0c;验证安装效果 3&#xff0c;…

error Mixed spaces and tabs no-mixed-spaces-and-tabs报错

vue尚硅谷todolist案例 中报错如下&#xff1a; ERROR Failed to compile with 1 error 21:18:11 Module Error (from ./node_modules/eslint-loader/index.js): F:\文件\网页文件\code\source\vu…

UCRTBASED.DLL缺失怎么办?UCRTBASED.DLL文件的解决方法分享

UCRTBASED.DLL 是一个属于Microsoft Universal C Runtime (UCRT) 的动态链接库&#xff08;DLL&#xff09;文件。在Windows操作系统中&#xff0c;这个文件提供了一系列C和C标准库函数的实现&#xff0c;这些函数对于支持基于C或C开发的应用程序至关重要。 UCRT是微软为了统一…

揭秘:我的GPTs广告项目到底挣了多少银子?

写在前面 &#x1f31f; 之前分享了GPTs接入广告赚取收益的项目保姆级教程: GPTs接入广告到提现成功全过程真实记录 &#xff0c;很多粉丝朋友问&#xff0c;我GPTs广告项目&#xff0c;一共赚了多少钱&#xff0c;现在还能入场吗&#xff1f; 这篇文章&#xff0c;就来总结一下…

【web | CTF】BUUCTF [强网杯 2019]随便注

天命&#xff1a;这题考点有两个&#xff0c;第一个是闭合&#xff0c;第二个是叠堆注入 先探测一下是不是单引号闭合&#xff0c;其实我一开始以为是没有引号闭合的&#xff0c;毕竟是数字 经过测试&#xff0c;的确是单引号闭合 然后探测未知的东西&#xff0c;我习惯性直接…

雷卯的ESD管SDA3311DN可以替代AZ5883-01F ---国产化替代篇

已经有很多客户选用雷卯的 SDA3311DN替代Amazing的 AZ5883-01F&#xff0c;客户可以获得更好的价格和更快的交期。 SDA3311DN主要应用于对3.3V供电的静电浪涌防护等&#xff0c;特别是在一些受空间所限的小电子设备很受青睐。 雷卯的SDA3311DN优势&#xff1a; IPP大(65A) &…

【Python】Python Astar算法生成最短路径GPS轨迹

简介 最短路径问题是计算机科学中一个经典问题&#xff0c;它涉及找到图中两点之间距离最短的路徑。在实际应用中&#xff0c;最短路径算法用于解决广泛的问题&#xff0c;例如导航、物流和网络优化。 步骤 1&#xff1a;加载道路网络数据 要计算最短路径&#xff0c;我们需…

WebSocket:实现客户端与服务器实时通信的技术

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【分库分表】基于mysql+shardingSphere的分库分表技术

目录 1.什么是分库分表 2.分片方法 3.测试数据 4.shardingSphere 4.1.介绍 4.2.sharding jdbc 4.3.sharding proxy 4.4.两者之间的对比 5.留个尾巴 1.什么是分库分表 分库分表是一种场景解决方案&#xff0c;它的出现是为了解决一些场景问题的&#xff0c;哪些场景喃…

ERC20学习

ERC20简介 ERC20是一种代币标准&#xff0c;用于创建可替代的代币。 ERC20是在以太坊网络上实现的代币标准&#xff0c;它为数字资产或代币定义了一套规则和接口。这些符合ERC20标准的代币在性质上是完全相同的。即每一个代币都可以被另一个同类型的代币替代&#xff0c;这种属…

数据结构——线性表顺序表示详解

目录 1.线性表的类型定义 2.基本操作 3.线性表的存储结构 4.补充 1.元素类型说明 2.数组定义​编辑 3.c语言的内存动态分配 4.c的动态存储分配 5.c中的参数传递 引用类型作参数 6.顺序表基本操作的实现 1.线性表的初始化 代码示例&#xff1a; 2.销毁线性表&…

11. 搭建较通用的GoWeb开发脚手架

文章目录 导言一、加载配置二、初始化日志三、初始化MySQL连接四、初始化Redis连接五、初始化gin框架内置的校验器使用的翻译器六、注册路由七、 启动服务八、测试运行九&#xff1a;注意事项 代码地址&#xff1a;https://gitee.com/lymgoforIT/bluebell 导言 有了前述知识的…

【LV15 DAY8 多路复用及信号驱动】

一、多路复用 描述符&#xff1a; 文件描述符&#xff1a;设备文件、管道文件 socket描述符1.1 应用层&#xff1a;三套接口select、poll、epoll select&#xff1a;位运算实现 监控的描述符数量有限&#xff08;32位机1024,64位机2048&#xff09; 效率差 poll&#xff1a…

MySQL基础-----约束

目录 前言 一、概述 二、约束演示 三、外键约束 1.介绍 2.语法 四、删除/更新行为 1.CASCADE 2.SET NULL 前言 本期我们开始MySQL约束的学习&#xff0c;约束一般是只数据键对本条数据的约束&#xff0c;通过约束我们可以保证数据库中数据的正确、有效性和完整性。 下面…

如何打sap NOTE

文章目录 1 Introduction2 Method2.1 search note2.2 download note2.3 upload note 3 Summarry 1 Introduction SAP Notes is a set of instructions to remove known errors from the SAP systems. Using the Note Assistant tool, SAP Notes can be applied to the system.…

分类算法入门:以鸢尾花数据集为例

近两年人工智能技术蓬勃发展&#xff0c;OpenAI连续放出ChatGPT、Sora等“王炸”产品&#xff0c;大模型、AIGC等技术带来了革命性的提升&#xff0c;很多人认为人工智能将引领第四次工业革命。国内各大互联网公司也是重点投资布局&#xff0c;从个人角度来说要尽快跟上时代的潮…

记录汇川:IO隔离编程

IO隔离&#xff1a;方便程序修改 无论是输入点坏了还是输出点坏了&#xff0c;或者人为接错线&#xff0c;或者对调点&#xff0c;我们只需要更改IO隔离得输入输出就可以了。方便。 停止按钮外接常闭&#xff0c;里面也使用常闭&#xff0c;为了断线检测功能(安全)&#xff…

基于java ssm springboot女士电商平台系统

基于java ssm springboot女士电商平台系统源码文档设计 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末…

基础刷题50之四(有效的字母异位词)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、题目二、力扣官方题解1、排序2、哈希表 三、文心一言解释1、排序2、哈希表 总结 前言 刚上研一&#xff0c;有人劝我好好学C&#xff0c;当时用的不多就没…