DFU u-boot搭建
DFU u-boot搭建
参考资料:
- BeagleBone Black 从零到一 (2 MLO、U-Boot):关于AM335x的MLO解析
- Linux内核用户指南:linux core u-boot user’s Guide
- 视频:How to use AM57x/Dra7x DFU Boot Mode with Linux Host
- 虽然AM5728 IDK EVM的USB1仅作为host使用,但是可以通过修改U-boot
- 虽然AM5728 IDK EVM 的USB1仅作为host使用,但可以通过修改u-boot,使USB1成为peripheral,从而完成DFU步骤。
- 虽然TI员工警告该开发板的USB1仅设计为host使用,与VBUS有关。但我实际使用过程中,并没有损坏电脑器件,但也没完成DFU的完整步骤。没有办法在进入u-boot后,无法正常输入,不知是否与这个有关系。
基础配置
安装AM5728的SDK-Linux来获取U-Boot源码
- PROCESSOR-SDK-LINUX-AM57X 06_03_00_106
修改IDK上用来配置启动项的电阻, 使其能够从USB启动
- 当设置成 [00010]时,ROM code 将会从USB启动:
- 建立MLO和u-boot文件
- 建议在构建时使用以对象命名的目录。通过O = parameter来设置对象。同时建议输出目录以目标对象命名。这样即使你有多个配置目标,也会从名字上清晰的分辨。
- 设置编译链接地址
export PATH="/home/pi/ti-processor-sdk-linux-am57xx-evm-05.03.00.07/linux-devkit/sysroots/x86_64-arago-linux/usr/bin":$PATH
- 清理源文件
- 如果没有使用单独的对象目录
$ make CROSS_COMPILE=arm-linux-gnueabihf- distclean
- 如果使用’O = am57xx_evm’ 作为你的输出目录:
$ rm -rf ./am57xx_evm
- 编译MLO和u-boot文件
- u-boot 和 SPL 是同时建立完成,必须一开始就将要配置你所需要的板子。使用下表确定要使用的defconfig:
- 表中并没有am5728的usb启动的配置,我们通过修改am57xx_evm_defconfig部分配置来达到我们的目的。
- cd <u-boot 文件夹>
export CROSS_COMPILE=arm-linux-gnueabihf-
export ARCH=arm
make O=am57xx_evm am57xx_evm_defconfig
make O=am57xx_evm
利用USB设备进行Device Firmware Upgrade(DFU)
- host Linux PC 需要安装有 dfu-util
- 使用 dfu-util 工具经由 DFU 去烧录所选的储存设备
USB Peripheral boot mode on DRA7x/AM57x (SPL-DFU support)
在 AM5728 IDK 开发板使用USB外设模式(改变sysboot模式,上文有所叙述),修改menuconfig中的部分配置,使能USB1外设模式和DFU功能。下文内容和步骤简介:
- 在u-boot 使能SPL-DFU功能,并且生成MLO/ u-boot的二进制文件
- 主机使用dfu-util 烧写MLO 和 u-boot.img
- 一旦u-boot启动,使用DFU命令将二进制文件烧写到eMMC ,或者其他存储
- 使用默认的"am57xx_evm_defconfig"来构建spl/u-boot-spl.bin和 u-boot.img
export PATH="/home/pi/ti-processor-sdk-linux-am57xx-evm-05.03.00.07/linux-devkit/sysroots/x86_64-arago-linux/usr/bin":$PATH
export CROSS_COMPILE=arm-linux-gnueabihf-
export ARCH=arm
make am57xx_evm_defconfig
make menuconfig
- select SPL/DFU support
menuconfig->SPL/TPL —>
…
[] Support booting from RAM
[] Support USB Gadget drivers
[*] Support DFU (Device Firmware Upgrade)
Unselect CONFIG_HUSH_PASER
menuconfig->Command Line interface
[*] Support U-boot commands
[ ] Use hush shell
建立spl/u-boot-spl.bin 和 u-boot.img
11. make -j8
12. 使用TI提供的usbboot工具
host$ git clone git://git.omapzoom.org/repo/omapboot.git
host$ cd omapboot
host$ checkout 609ac271d9f89b51c133fd829dc77e8af4e7b67e
host$ make -C host/tools
13. 获得usbboot-stand-alone 后, 使用该工具来载入spl/u-boot-spl.bin 到
IDK中
14. host$ sudo usbboot-stand-alone -S spl/u-boot-spl.bin
15.
16. 然后下载u-boot.img 到RAM中,并自动重新加载boot
17. host$ sudo dfu-util -c 1 -i 0 -a 0 -D "u-boot.img" -R
18. 如果安装过补丁
19.
20. 如果没有安装补丁,则会报错:
21. dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
dfu-util: No DFU capable USB device available
22. 由于am572x IDK 的 USB1 设计仅作为host,TI官方提供的配置默认无法使用peripheral模式,我们需要打上以下两份补丁,或者以这两份补丁做参考修改原配置文件:6505.0001-usb-enable-usb1-device-mode-for-am57x.patch.txt
23. 下载链接:6505.0001-usb-enable-usb1-device-mode-for-am57x.patch.txt
USB设备模式补丁 (将USB1设置为外设模式)
- am57xx-beagle-x15-commom.dtsi
- am57xx-idk-common.dtsi
修改设备树 - board.c
修改开发板定义和结构,打开usb相关定义 - am57xx_evm_defconfig
- am57xx_hs_evm_defconfig
设置配置选项 - am57xx_evm.h
头文件设置 - 为SPL_DFU功能定义CONFIG_SPL_LOAD_FIT_ADDRESS 地址,使能SPL_DFU功能
- 8662.0002-configs-am57xx_evm-define-
CONFIG_SPL_LOAD_FIT_ADDRES.patch.txt - include/configs/am57xx_evm.h
头文件设置 - git am patches/*.patch.txt
make clean
make -j8 - 重新之前的步骤。在进入u-boot后立即按任意按钮,进入boot。minicom将有以下报文:
U-Boot 2018.01-00571-ga76d30be29 (May 03 2019 - 16:34:17 +0800) CPU : DRA752-GP ES2.0 Model: TI AM5728 IDK Board: AM572x IDK REV 1.3B DRAM: 2 GiB MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1 omap_hsmmc_send_cmd : DMA timeout: No status update *** Warning - MMC init failed, using default environment omap_hsmmc_send_cmd: timedout waiting on cmd inhibit to clear invalid mmc device SCSI: SATA link 0 timeout. AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode flags: 64bit ncq stag pm led clo only pmp pio slum part ccc apst scanning bus for devices... Found 0 device(s). Net: Warning: ethernet@48484000 using MAC address from ROM eth0: ethernet@48484000 Hit any key to stop autoboot: 0 =>
接下来开始DFU部分。
DFU u-boot搭建相关推荐
- spring boot 搭建 和 全局异常处理
spring boot 搭建: java -jar -Dserver.port=10000 -Dlogging.path=/var/logs xxx.jar & -- 默认在/var/lo ...
- maven 聚合工程 用spring boot 搭建 spring cloud 微服务 模块式开发项目
项目的简单介绍: 项目采用maven聚合工程 用spring boot 搭建 spring cloud的微服务 模块式开发 项目的截图: 搭建开始: 能上图 我少打字 1.首先搭建maven的聚合工程 ...
- Spring Boot 搭建应用实现登陆实例,页面使用bootstrap
2019独角兽企业重金招聘Python工程师标准>>> Spring boot 搭建web应用集成了thymeleaf模板实现登陆 下面是pom.xml的配置 <?xml v ...
- java 搭建个人博客_Spring boot 搭建个人博客系统(一)——整体思路
Spring boot 搭建个人博客系统(一)--整体思路 一直想用Spring boot 搭建一个属于自己的博客系统,刚好前段时间学习了叶神的牛客项目课受益匪浅,乘热打铁也主要是学习,好让自己熟悉这 ...
- move_uploaded_file返回false但实际成功_023 Spring Boot 搭建实际项目开发框架
前面的课程中,我主要给大家讲解了 Spring Boot 中常用的一些技术点,这些技术点在实际项目中可能不会全部用得到,因为不同的项目可能使用的技术不同,但是希望大家都能掌握如何使用,并能自己根据实际 ...
- spring boot 搭建的一个企业级快速开发脚手架
源码地址 https://github.com/javanan/slife slife spring boot 搭建的一个企业级快速开发脚手架. 技术栈 Spring Boot MySQL Freem ...
- Spring Boot搭建简易spring clound框架 (一)
Spring Boot搭建简易spring clound框架 (一) 1.搭建之前先了解微服务 微服务架构介绍 微服务架构(Microservice Architecture)是一种架构概念,旨在通过 ...
- Spring boot 搭建个人博客系统(二)——登录注册功能
Spring boot 搭建个人博客系统(二)--登录注册功能 一直想用Spring boot 搭建一个属于自己的博客系统,刚好前段时间学习了叶神的牛客项目课受益匪浅,乘热打铁也主要是学习,好让自己熟 ...
- ureport2 + spring boot 搭建
ureport2使用 ureport2 UReport2是一款基于架构在Spring之上纯Java的高性能报表引擎,通过迭代单元格可以实现任意复杂的中国式报表 在UReport2中,提供了全新的基于网 ...
- 使用Spring boot搭建Wechat(企业微信)Demo -图文教程 -01 环境搭建
** Spring Boot-Wachat Demo [1] 环境搭建[适用小白的哥哥大白,高手跳过本节,内容主要记录个人搭建所遇到的坑和分享过程] ** Spring boot简介.特点等这里就不过 ...
最新文章
- Linux下程序时间消耗监控与统计
- ios6.x越狱将不会再呈现了
- SpringBoot Thymeleaf使用教程(实用版)
- Linux下I/O多路转接之select --fd_set
- jclouds_jclouds的命令行界面
- 作业二:个人博客作业内容:需求分析
- java web 请求跟踪_IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie技术
- angular div 滚动条事件_DOM事件
- python海贼王logo_Python 实现的下载op海贼王网的图片(网络爬虫)
- volatile关键字与synchronization关键字的区别?
- java的中文源代码
- VB操作access数据库
- c语言oj1065统计,东方博宜OJ
- 蓝桥杯试题 基础练习 十六进制转八进制
- 大数据模型交易平台案例:消费贷款客户营销分析解决方案
- JDK安装和环境变量配置(Win10图文详解)
- Java基础知识每日总结(19)---Java输入输出流、文件、递归
- 微商php源码,Thinkphp内核微商新零售平台源码
- 判断101到200有多少素数,并输出所有素数
- Windows配置ThingsBoard,并实现简单Demo(未完待续)
热门文章
- 淘宝模板开发系列之DOM、CSS规范
- 结合实际案例谈谈项目管理经验
- JavaFX报错: Exception in thread WindowsNativeRunloopThread java.lang.NoSuchMethodError
- android更改menu字体颜色,Android 修改 Menu字体颜色
- NYOJ54-小明的存钱计划
- java学习的第二个代码(飞行棋比赛-----龟兔赛跑),继上一个博客,对数组和Arrays的熟悉
- 悬浮组件 - gitter 在线交流
- 简单盘点游戏开发引擎
- 内容交付网络(CDN)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- ESP32编程使用OLED屏