AM335x USB Boot详细说明

首先,要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下载。

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

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

相关文章

RFID技术在危险废物管理中的应用解决方案

一、背景介绍 随着我国经济的快速发展,轻纺、化工、制药、电子等行业的危险废物排放量逐年增加。然而,由于危险废弃物处理不当,可能导致大气、水体和土壤污染,对环境和人体健康造成严重威胁,制约了经济和健康的可持续…

Linux-查询目录下包含的目录数或文件数

1. 前置 1)ls Linux最常用的命令之一,列出该目录下的包含内容。 -l:use a long listing format-以列表的形式展现 -R:list subdirectories recursively-递归列出子目录 2)| 管道符 将上一条命令的输出&#xff…

调研了一下java常用的几个图片处理工具对Tiff文件的支持

ImageMagick 官网 https://imagemagick.org/, 支持多种格式。命令行工具很适合调试。功能很强大. 还有一款工具GraphicsMagick 是从ImageMagick的基础上研发出来的。 OpenCV 官网 https://opencv.org/ , github地址https://github.com/opencv/opencv&…

Springboot项目中打印SQL语句日志

在项目中我想查看自己的SQL语句是什么,就是如下图的内容: 方法一:(我常用的) 可以在项目中的.yml配置文件中添加如下内容: logging:level:com.uyun.bankbranchalert.mapper: debug其中com.uyun.bankbran…

如何挑选猫主食罐头?宠物店自用的5款猫主食罐头推荐!

临近双十二大促,是时候给家里的猫主子屯猫主食罐头了。许多铲屎官看大促的各种品牌宣传,看到眼花缭乱,不知道选哪些猫主食罐头好,胡乱选又怕踩坑。 猫罐头侠闪亮登场!如何挑选猫主食罐头?作为经营宠物店7年…

开启核磁数据处理新篇章-MestReNova(MNOVA14)助您轻松解读科学界密码

在科学研究领域,核磁共振(NMR)技术被广泛应用于分析和解读化学物质的结构和性质。而MestReNova(MNOVA14)作为一款专业的核磁数据处理软件,凭借其强大的功能和易用性,已成为众多科研人员的首选工…

百度曹海涛:生成式AI正从“探索能力边界”向“推动应用落地”过渡

11月9日,以“星云棋布,步步为‘赢’”为主题的2023 IDC中国生态峰会在北京举办。会上,IDC中国区总裁霍锦洁女士的发表致辞。同时,IDC生态伙伴和行业领袖从多重维度分析了AI技术应用的发展,以及对于整体IT生态所产生的影…

【QT HTTP】使用QtNetwork模块制作基于HTTP请求的C/S架构

目录 0 引言1 HTTP基本知识1.1 请求类型1.2 HTTP请求报文格式1.3 HTTP响应报文格式1.4 拓展:GET vs POST 请求方法GET请求请求报文:响应报文 POST请求请求报文响应报文 其他注意事项示例:GET请求示例POST请求示例 2 实战2.1 QtNetwork模块介绍…

FPGA时序分析与约束(13)——I/O接口约束

一、概述 在应用了时钟约束后,所有寄存器到寄存器的路径都能定时。为了获得更加精准的FPGA外部时序信息,设计者需要为FPGA的I/O接口指定时序信息,一般时序工具只能获取FPGA器件内部的时序信息,对于FPGA器件引脚之外的时序信息&…

Feature Pyramid Networks for Object Detection(2017.4)

文章目录 Abstract1. Introduction3. Feature Pyramid NetworksBottom-up pathwayTop-down pathway and lateral connections 7. Conclusion FPN Abstract 特征金字塔是识别系统中检测不同尺度物体的基本组成部分。但最近的深度学习对象检测器避免了金字塔表示,部分…

Swift的Copy on Write 简称CoW

了解Copy on Write在Swift开发时非常重要,因为这是Swift Standard Library的一个基础特性。 值类型:struct,enum,和tuple,比如在调用函数时传递参数,就会发送副本拷贝 引用类型:class&#xff…

用户的生命周期

用户生命周期是指用户在产品使用过程中的状态变化,一般分为5个阶段,分别为引入期、成长期、成熟期、沉默期和流失期。用户生命周期能够反映不同阶段用户的状态,可根据用户的不同状态进行针对性运营。运营中常说的拉新、促活、留存就是基于用户…

SLAM中提到的相机位姿到底指什么?

不小心又绕进去了,所以掰一下。 以我个人最直观的理解,假设无旋转,相机在世界坐标系的(5,0,0)^T的位置上,所谓“位姿”,应该反映相机的位置,所以相机位姿应该如下: Eigen::Matrix4d T Eigen::M…

上位机模块之halcon绘制ROI与获取ROI,在hsmartwindow实现

在上位机中通常需要使用到绘制ROI模块或者获取已经绘制好的ROI区域的参数&#xff0c;在这里通过使用hsmartwindow窗体控件进行对ROI的绘制和获取。 先上代码&#xff1a; /// <summary>/// 创建ROI/// </summary>/// <param name"Win">传入HSmar…

Centos7安装frps作内网穿透--实现外部访问家里群晖

实现在外可访问家用群晖 需要在外界访问家里的局域网设备&#xff0c;正常情况是需要有公网IP&#xff0c;而IPV4作为家用&#xff0c;运营商基本不给&#xff0c;除非钞能力&#xff0c;IPV6可以用&#xff0c;但是有缺陷&#xff0c;需要互访的两端都是IPV6才能访问。选择fr…

Mysql删除占用事务的线程

参考&#xff1a;https://www.jianshu.com/p/dd0291391188 产生原因&#xff1a;这个问题的原因是在mysql中产生了事务A&#xff0c;执行了修改的语句&#xff0c;比如&#xff1a; update t1 set aget18 where id1;此时事务并未进行提交&#xff0c;事务B开始运行&#xff0c…

kubernetes集群编排(10)

目录 prometheus监控 部署prometheus 部署nginx监控实例 部署prometheus-adapter prometheus监控 部署prometheus 创建项目仓库并上传镜像 [rootk8s2 helm]# vim prometheus-values.yaml alertmanager:alertmanagerSpec:image:repository: prometheus/alertmanagertag: v0.24.0…

知识解读:香港轻量云/云服务器/VPS性能差距解读

​  提起香港轻量云/云服务器/VPS 这三类&#xff0c;往往汇聚了中小企业和开发者等群体的讨论声音。当然&#xff0c;这跟它们本身产品定位有关&#xff0c;加上在初级配置这块价格上相差不大&#xff0c;也因此经常被拿来对比。 首先来简单了解一下最基础的区别&#xff1a…

Copliot:让你一秒变身网页达人的神奇助手

Copliot&#xff1a;一款能够帮助你快速理解网页内容的智能助手 你是否有过这样的经历&#xff0c;当你浏览网页时&#xff0c;遇到了一些你不太了解的内容&#xff0c;比如一些专业术语&#xff0c;一些复杂的概念&#xff0c;或者一些有趣的话题&#xff1f;你是否想要快速地…