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下载。

更新说明: V1.70 1.改进了对于大容量U盘的操作 ================================================ V1.68 1.增加导出重要扇区功能,供改进软件用 ================================================ V1.67 1.支持多合一读卡器的制作,能找到读卡器的有卡插槽 2.在多处增加了数据可能丢失的警告 ================================================ V1.66 1.增加写保护跳过对话框,允许用户跳过写保护提示 2.增加备份和恢复磁盘的功能,类似克隆 3.可自定制启动文件包 ================================================ V1.65 1.增加写保护检测功能 2.提示拔盘时首先软件弹出U盘 3.在WMI不能使用时枚举磁盘 ================================================ V1.64 1.在C盘根目录生成日志文件,以调查打不开磁盘的问题 ================================================ V1.63 1.对设备名太长不予列出 2.提示文字考虑其长度,以免超出提示框 3.对不支持的方式不禁用 4.增加TIP提示完整信息 5.增加了多语言支持功能 ================================================ V1.62 1.解决了ZIP模式兼容性问题 2.增加了“固定磁盘”和“移动磁盘”的图标提示 3.对HDD/ZIP/FDD模式的应用范围做了限制 4.向磁盘中增加MSDOS.SYS以避免启动时出现WINDOWS菜单 ================================================ V1.61 1.解决了取消格式化后无法操作的问题 2.编写了使用说明 ================================================ V1.6 1.解决了磁盘容量问题,现在可以准确计算出U盘的容量 了,已在多种U盘上进行试验 2.增设了“引导处理”功能,可以不损伤原有数据使其 能够引导,类似DOS的SYS.COM命令 3.读取U盘的名称 4.根据接口类型判断U盘,而不是根据容量或者移动属性 判断,这样USB硬盘盒也可处理,而IDE硬盘不会被误操作 5.更新了引导区启动代码,USB-FDD模式可用了,在SIS630 主板上验证通过(AMI BIOS,仅支持USB-FDD) ================================================ V1.5 1.解决了“磁盘未格式化”的问题,凡是使用USBoot后 提示说磁盘未格式化的朋友请重新试用。 ================================================ V1.4 各位热心网友,请试用新的ZIP方式和FDD方式,HDD方 式未作变更,不必试验了。 1.增加了“重置”功能,如果发现USBOOT设置的参数不对 可以使用此功能将U盘的引导扇清空,然后用原配工具重 新格式化; 2.将原来的ZIP方式更名为FDD方式,增加了ZIP方式,ZIP 方式和HDD方式均有分区表,但ZIP方式参数和HDD方式不 同;从一些热心网友反馈的数据看,各种不同U盘之间参 数差别很大,大体分为32扇和63扇两类。 3.增加了自动停止U盘功能,不用等待U盘灯灭,只要提示 拔盘即可动手了; 其实和ZIP或HDD并无实质区别,一些PC根本就不设置 USB-ZIP还是USB-HDD,只有一个USB-STORAGE启动; U盘启动和PC关系很大,有的PC无论用什么参数都可以 启动,有的则很挑;同样的U盘在这台机器可以,在另 一台试遍FDD/ZIP/HDD都不行;筹划采用一种统一的方式, 彻底解决这个问题; ================================================ V1.3 由于暂时无法获得磁盘“剩余扇”,因此做了一个 额外处理,将用柱面数弥补剩余扇,这样可以减少磁盘 空间减少的情况,但是请大家注意,磁盘空间可能会多 计算!对于16M的盘误差很小,对于32M的盘误差在4M左 右,对于128M的盘误差在8M左右。后果是当磁盘接近满 时,会提示找不到对应扇区,但是不会浪费U盘的空间了! ================================================ V1.2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值