AM335x USB Boot详细说明

news2024/11/18 11:28:40

首先,要rev2.1的芯片才支持,以前的cpu有bug,无法使用usb boot

上位机需要uniflash,

以太网上截取的报文,可以进入第一阶段

AM335x自动从c:\am335x_flashtool\images目录下下载u-boot-spl-restore.bin

http://processors.wiki.ti.com/index.php/Sitara_Linux_AM335x_Flash_Programming_Linux_Development

注意,需要先关掉windows防火墙,才能tftp下载成功。

必须要用ubuntu才能编译,uboot下的config,需要用am335x_evm_XXXXXX, 在board.cfg 里能看到支持的平台,

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=flash-restore am335x_evm_ usbspl

然后执行拷贝,到uniflash的tftp主目录,改成固定文件名,就能看到打印信息。串口0上

COPY Z:\media\disk2\ti-sdk-am335x-evm-07.00.00.00\board-support\u-boot-2013.10-ti2013.12.01\flash-restore\u-boot.img C:\AM335x_Flashtool\images\u-boot-restore.img

COPY Z:\media\disk2\ti-sdk-am335x-evm-07.00.00.00\board-support\u-boot-2013.10-ti2013.12.01\flash-restore\spl\u-boot-spl.bin C:\AM335x_Flashtool\images\u-boot-spl-restore.bin

串口上的输出结果

U-Boot SPL 2013.10-00189-g78d8ebd-dirty (Jun 23 2014 - 13:00:54)

Could not read the EEPROM; something fundamentally wrong on the I2C bus.

Could not get board ID.

Could not read the EEPROM; something fundamentally wrong on the I2C bus.

Could not get board ID.

Unknown board, cannot configure pinmux.### ERROR ### Please RESET the board ###

看来我的理解没有错,SPL被通过usb Ethernet的tftp下载到内部sram上执行,执行后usb口再次被枚举成USB RNDIS以太网,下载uboot,然后再用uboot根据脚本Debrick Script下载内核文件系统等。整体的流程就是这样无疑。

U-Boot SPL 2013.10-00189-g78d8ebd-dirty (Jun 24 2014 - 13:00:20)

Using default environment

usb_ether

using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in

MAC d0:ff:50:03:cc:14

HOST MAC de:ad:be:af:00:00

RNDIS ready

musb-hdrc: peripheral reset irq lost!

high speed config #2: 2 mA, Ethernet Gadget, using RNDIS

USB RNDIS network up!

BOOTP broadcast 1

BOOTP broadcast 2

BOOTP broadcast 3

Using usb_ether device

TFTP from server 192.168.2.1; our IP address is 192.168.2.2

Filename 'u-boot-restore.img'.

Load address: 0x807fffc0

Loading: ###########################

         752 KiB/s

done

Bytes transferred = 388968 (5ef68 hex)

U-Boot 2013.10-00189-g78d8ebd-dirty (Jun 24 2014 - 13:00:20)

I2C:   ready

DRAM:  128 MiB

NAND:  128 MiB

MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1

Net:   cpsw, usb_ether

Hit any key to stop autoboot:  0

mmc0 is current device

Scanning mmc 0...

** File not found /boot/zImage **

mmc0 is current device

SD/MMC found on device 0

reading uEnv.txt

** Unable to read file uEnv.txt **

** File not found /boot/zImage **

Card did not respond to voltage select!

mmc1(part 0) is current device

Card did not respond to voltage select!

Booting from nand ...

NAND read: device 0 offset 0x80000, size 0x40000

 262144 bytes read: OK

NAND read: device 0 offset 0x200000, size 0x800000

 8388608 bytes read: OK

Bad Linux ARM zImage magic!

U-Boot# setenv ethact usb_ether

U-Boot# tftp 0x80008000 zImage

using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in

MAC d0:ff:50:03:cc:16

HOST MAC de:ad:be:af:00:00

RNDIS ready

musb-hdrc: peripheral reset irq lost!

high speed config #2: 2 mA, Ethernet Gadget, using RNDIS

USB RNDIS network up!

Using usb_ether device

TFTP from server 192.168.100.111; our IP address is 192.168.100.241

Filename 'zImage'.

Load address: 0x80008000

Loading: T T

Abort

U-Boot# setenv ipaddr 192.168.2.2

U-Boot# setenv serverip 192.168.2.1

U-Boot# saveenv

Saving Environment to NAND...

Erasing NAND...

Erasing at 0x1c0000 -- 100% complete.

Writing to NAND... OK

U-Boot# tftp 0x80000000 zImage

using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in

MAC d0:ff:50:03:cc:16

HOST MAC de:ad:be:af:00:00

RNDIS ready

high speed config #2: 2 mA, Ethernet Gadget, using RNDIS

USB RNDIS network up!

Using usb_ether device

TFTP from server 192.168.2.1; our IP address is 192.168.2.2

Filename 'zImage'.

Load address: 0x80000000

Loading: T #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #######################

         2 MiB/s

done

Bytes transferred = 32768000 (1f40000 hex)

U-Boot#

至此,usbboot已经完成功能,能通过usb下载boot和内核了,文件系统等均可以用usb eth通过tftp下载。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3ds Max渲染用专业显卡还是游戏显卡?

使用3dsmax建模时,会面临诸多选择,除了用vr还是cr的决策,硬件选择上也存在着疑问,比如用专业显卡还是消费级游戏显卡?一般来说,除非是特别专业的大型项目和软件,且预算在5位数以上,常…

ssm047网上服装销售系统+jsp

ssm047网上服装销售系统jsp 交流学习: 更多项目: 全网最全的Java成品项目列表 https://docs.qq.com/doc/DUXdsVlhIdVlsemdX 演示 项目功能演示: ————————————————

spring cloud之服务熔断

四、Hystrix组件(*) - 官网:https://github.com/Netflix/Hystrix - 在分布式环境中,许多服务依赖项不可避免的会失败。Hystrix是一个库,它通过添加延迟容忍和容错逻辑来帮助您控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点…

【【OpenCV实现图像:用OpenCV进行模板匹配】

文章目录 概要整体架构流程图像灰度化结论 概要 模板匹配是一种在图像处理领域广泛应用的技术,旨在寻找目标模板在源图像中的位置。该算法的核心思想是通过比较模板与源图像的局部区域,逐像素滑动,创建一个相似度图,反映了模板与…

【React】Redux基本使用

什么情况使用 Redux ? Redux 适用于多交互、多数据源的场景。简单理解就是复杂 从组件角度去考虑的话,当我们有以下的应用场景时,我们可以尝试采用 Redux 来实现 某个组件的状态需要共享时 一个组件需要改变其他组件的状态时 一个组件需要…

sqli-labs(Less-2)

1.进入环境就是这样的界面 2. id1 and 11 页面返回正常 3. id1 and 12 页面显示不正常 由此可确实是数字型注入 4. 使用 order by 语句进行字段查询 说明页面存在三个字段 5. 使用联合查询 union select 6. 查询当前数据库的所有表 7. 查询某表的所有字段名 8. 查用户…

Linux信号量以及基于环形队列的生产者消费者模型

文章目录 信号量信号量的接口初始化销毁等待信号量发布信号量 环形队列结合信号量设计模型 实现基于环形队列的生产者消费者模型Task.hppRingQueue.hppmain.cc效果对于多生产多消费的情况 信号量 信号量的本质是一个计数器 首先一份公共资源在实际情况中可能存在不同的线程可…

关于修改了mysql的my_conf文件之后,不能生效问题

个人名片: 🐅作者简介:一名大三在校生,热爱生活,爱好敲码! \ 💅个人主页 🥇:holy-wangle ➡系列内容: 🖼️ tkinter前端窗口界面创建与优化 &…

相关关系与因果关系

本文来自:https://towardsdatascience.com/a-step-by-step-guide-in-detecting-causal-relationships-using-bayesian-structure-learning-in-python-c20c6b31cee5 作者:Erdogan Taskesen 在机器学任务中,确定变量间的因果关系(c…

CentOS修改root用户密码

一、适用场景 1、太久没有登录CentOS系统,忘记管理密码。 2、曾经备份的虚拟化OVA或OVF模板,使用模板部署新系统后,忘记root密码。 3、被恶意攻击修改root密码后的紧急修复。 二、实验环境 1、VMware虚拟化的ESXI6.7下,通过曾经…

基于PyTorch搭建你的生成对抗性网络

前言 你听说过GANs吗?还是你才刚刚开始学?GANs是2014年由蒙特利尔大学的学生 Ian Goodfellow 博士首次提出的。GANs最常见的例子是生成图像。有一个网站包含了不存在的人的面孔,便是一个常见的GANs应用示例。也是我们将要在本文中进行分享的…

11.3SpringMVC

一.概念 1.SpringMvc: a.构建在Servlet(api)基础上. b.是一个Web框架(HTTP). c.来自于Spring webMVC模块. 2.MVC 二.注册路由的注解 1.RequestMapping("/test") // 路由注册 注意: 这个注解在类和方法上都要使用,代表不同等级的路由. 2.RestController a)R…

FPGA_边沿检测电路设计

FPGA_边沿检测电路设计 边沿检测原理图波形图分析实现方法方法一:与逻辑实现方法二:或逻辑实现方法三:与逻辑实现 边沿检测原理图 由状态转移表可以看出,其转换条件中需要检测到下降沿以及上升沿,而边沿检测其原理就是…

「题解」相交链表

🍉题目 题目链接 🍉解析 “提示”部分有提示链表数不为零,所以讨论链表为空的情况。 最简单粗暴的思路就是:遍历链表,先使用循环遍历A链表,然后嵌套循环遍历B,比对A、B是否存在地址相同的…

Windows10配置深度学习环境

一、Anaconda安装与虚拟环境创建 Anaconda的出现极大的方便了研究人员的Python开发工作,anaconda可以创建多个虚拟环境,这些虚拟环境就像一间间教室一样,虚拟环境彼此之间、虚拟环境与基础环境(base)之间互不影响&…

C++之Max

背景 想学习数据结构,这是看的课程的习题,讲课老师用的是类C语言,具体的实现还是得自己来。 准备工作 用开发工具Microsoft Visual Studio(VS)建立一个空白的C控制台项目 选择项目的存储路径 成功建立 我在 Microsoft Visual Studio中用…

VSCode配置msvc编译调试环境

1.VS Code简介 VS Code 使用 Electron 框架构建用户界面,该框架使用 Chromium 和 Node.js 构建桌面应用程序。这使得 VS Code 能够在 Windows、Linux 和 macOS 上运行,并且可以使用 Web 技术 (HTML、CSS 和 JavaScript) 构建用户界面。 VS Code 使用 Monaco 引擎来提供文本编辑…

OpenCV入门——图像视频的加载与展示一些API

文章目录 OpenCV创建显示窗口OpenCV加载显示图片OpenCV保存文件利用OpenCV从摄像头采集视频从多媒体文件中读取视频帧将视频数据录制成多媒体文件OpenCV控制鼠标关于[np.uint8](https://stackoverflow.com/questions/68387192/what-is-np-uint8) OpenCV中的TrackBar控件TrackBa…

antd中的form表单数据不更新

antd中的form表单 initialValue导致数据不更新问题 理解 : initialValue就是所谓的defaultValue,只会在第一次赋值的时候改变,却又有一些不同,因为 initialValue又会因其他改动而改变。 解决: form.resetFields();

内网Jenkins 部署.net(dotnet)项目

一、前置条件 内网部署Jenkins,并安装好所需插件 此篇内容需承接内网搭建Jenkins自动化远程部署项目到Windows服务器_jenkins内网安装-CSDN博客 ,才更好操作与理解 二、在Jenkins中创建项目 三、配置项目 General Source Code Management Build Envi…