关于Uboot的USB下载功能
来源:互联网 发布:android开源项目源码 编辑:程序博客网 时间:2024/05/29 03:36
很多人USB的电脑驱动是正确的,但是DNW中会提示usb host is not connected yet错误。这是因为你的硬件没有设置好。硬件设置步骤是1. 设置GPG9为输出引脚(ok2440.c);2. 然后先设输出0(ok2440.c); 3. 最后在usb_init_slave函数中,输出1,使能(usbinit.c)。
还有人是在编译u_boot.bin的时候Port_Init()和usb_init()出错。那是因为你下载的usb slave源码版本不对。
slave源码的版本不止一种。http://blog.chinaunix.net/uid-8087110-id-1989046.html的源码就是有Port_Init()和usb_init() (usbinit.c)。我用的是https://github.com/tekkamanninja/u-boot-2010.03-tekkaman中提取的usb slave源码。
下面我就来胡说八道一番。当然我是参考了网上别人移植的步骤,如果我侵犯了谁的权益,请直接拨打客服110。
其实大家在网上都能找到移植的步骤,大同小异。只是很少有人来说硬件引脚问题。比如我的板子是GPG9作为USB_EN的引脚,驱动USB工作。有其他人的板子是GPG12引脚USB_EN的引脚。那么移植的时候就要看自己的硬件实际情况了。以我的板子为例,简要说一下吧。涉及到的文件 board/samsung/ok2440/ok2440.c 和 drivers/usb/slave/usbinit.c(uboot的版本不同可能文件目录也会不同,我的是u-boot-2010.06版本)。
board/samsung/ok2440/ok2440.c中的int board_init (void)函数
中设置好引脚:输出功能、输出低电平,关闭USB使能。
gpio->GPGCON = 0xFF95FFBA;
gpio->GPGUP = 0x0000FFFF;
gpio->GPGDAT &= ~(1<<9);
drivers/usb/slave/usbinit.c中的void usb_init_slave(void)函数
writel((readl(&gpioregs->MISCCR) & ~((1<<3) | (1<<12) | (1<<13))), &gpioregs->MISCCR);// USBD is selected instead of USBH1
// USB port 1 is enabled.
// USBD should be initialized first of all.
MISCCR杂项控制寄存器 第3、12、13是和USB相关的,记住板子不同,实用USB端口的情况不同,别给挂起了。
writel((readl(&gpioregs->GPGDAT) | (1<<9)), &gpioregs->GPGDAT);
/* enable USB Device, thisway.diy */
这里是驱动USB,我的是GPG9管脚,输出高电平,使能之。
drivers/usb/slave/usbinit.c中的void udc_disconnect (void) 函数writel((readl(&gpioregs->GPGDAT) & ~(1<<9)), &gpioregs->GPGDAT);
这里是关闭USB,我的是GPG9管脚,输出低电平,关闭之。
- 关于Uboot的USB下载功能
- TQ2440 Uboot的USB下载修改
- 为uboot-2009.08 添加 dnw usb下载功能
- 为uboot-2009.08 添加 dnw usb下载功能
- 为uboot-2009.08 添加 dnw usb下载功能
- 为uboot-2009.08 添加 dnw usb下载功能
- uboot支持usb功能
- MINI6410 uboot中USB下载
- uboot tftp下载功能
- 支持nandflash启动,具有USB功能的UBOOT移植
- 移植最新的uboot之:支持网络下载功能
- 关于TQ2440通过Jlink下载Uboot到开发板的方法(不能识别自己板子的norflash型号,且不能安装USB)
- 关于html的下载功能
- tiny6410无法使用usb下载功能的解决办法
- uboot usb
- WRTNode(MT7620) UBoot 中实现USB功能过程记录
- uboot 下载、启动(含NFS, USB, NAND)指令备忘
- 关于a标签的下载功能
- S5PV210(TQ210)学习笔记——Nand驱动之HWECC
- Comet轮询网络即时通讯
- HTTP协议详解
- 阿里旺旺不显示好友,重新添加时,却显示好友已经存在 的解决办法
- 动态实例变量:解决脆弱的基类问题
- 关于Uboot的USB下载功能
- Java的MD5加密和解密类
- MFC 拷贝ListBox单行的数据到剪切板
- PDU编码规则
- SEH中的prolog和epilog
- 数据结构之线性表——倒数第k个结点
- 30分钟理解关键链--《突破项目的瓶颈--关键链 》读书笔记
- 一个经典的iptables的shell脚本
- 关于JAVA字符串对象数组的循环次数问题