(以下讨论基于kernel 2.6.11,ARM9 s3c2410,arm-linux-gcc 3.4.1 )
=================================================
2.6在s3c2410上usb host不工作的直接结果就是提示110错误:
usb 1-1: device descriptor read/64, error -110
追踪错误代码,我们来看看能不能找到导致这个错误的线索。
include/asm-generic/errno.h
#define EPROTO 71 /* Protocol error */
#define EILSEQ 84 /* Illegal byte sequence */
#define ETIMEDOUT 110 /* Connection timed out */
Documentation/usb/error-codes.txt
-EPROTO (*, **) a) bitstuff error
b) no response packet received within the
prescribed bus turn-around time
c) unknown USB error
-EILSEQ (*, **) a) CRC mismatch
b) no response packet received within the
prescribed bus turn-around time
c) unknown USB error
-ETIMEDOUT (**) No response packet received within the prescribed
bus turn-around time. This error may instead be
reported as -EPROTO or -EILSEQ.
由此我们可以判断,这个错误与 usb 设备的超时有关。报告这个错误的地方在drivers/usb/core/hub.c中的hub_port_init部分,由于usb_get_device_descriptor获取 usb 设备信息的时候产生了超时。这样基本可以确定三种情况,1、usb 设备及接口有问题;2、usb core有问题;3、usb driver有问题。
我们可以很容易地排除1和2的可能性,问题应该在usb driver implement部分造成的。2.6的usb driver把usb规范中对usb接口的操作集中到了core里面,针对不同设备的implement分别归为host、gadget、storage等。基本确定问题就在ohci-s3c2410.c里。
跟踪进入ohci-s3c2410.c,这里面主要完成s3c2410 usb host设备的初始化工作,包括电源、时钟、寄存器等。
其实很多问题在互联网上已经被遇到和解决,我们要做的就是多参考别人的成功经验,这样可以节省时间,同时能够帮助我们找到一些思路。借助google这双强大的翅膀,我们来看看能找到什么:
http://www.linux-usb.org/FAQ.html#ts6
Q: Why doesn’t USB work at all? I get “device not accepting address”.
A: You may have some problem with your PCI setup that’s preventing your USB host controller from getting hardware interrupts. When Linux submits a request, but never hears back from the controller, this is the diagnostic you’ll see. To see if this is the problem, look at /proc/interrupts to see if the interrupt count for your host controller driver ever goes up. If it doesn’t, this is the problem: either your BIOS isn’t telling the truth to Linux (ACPI sometimes confuses these things, or setting the expected OS to windows in your BIOS), or Linux doesn’t understand what it’s saying.
Sometimes a BIOS fix will be available for your motherboard, and in other cases a more recent kernel will have a Linux fix. You may be able to work around this by passing the noapic boot option to your kernel, or (when you’re using an add-in PCI card) moving the USB adapter to some other PCI slot. If you’re using a current kernel and BIOS, report this problem to the Linux-kernel mailing list, with details about your motherboard and BIOS.
google返回的大量结果中有个建议是设置old_scheme_first标志,让驱动程序优先处理采用老式结构的设备:
设置old_scheme_first=y
测试结果并没有太大帮助,不是这个原因引发的。
linux-usb-devel mail list 上Ben大哥正在不断更新他的ohci-s3c2410 driver,但好像还没最终完成。
http://www.mail-archive.com/linux-usb-devel%40lists.sourceforge.net/msg33670.html
跟踪ohci-s3c2410.c,发现to_s3c2410_info返回NULL,很明显,是platform_data没有定义,在 include/asm/arch/usb-control.h中已经有struct s3c2410_hcd_info,那么仿照simtec的usb-simtec.c,来构造自己的platform_data。
static struct s3c2410_hcd_info smdk2410_usbcfg = {
.port[0] = {
.flags = S3C_HCDFLG_USED
},
};
然后在smdk2410_init中完成初始化:
s3c_device_usb.dev.platform_data = &smdk2410_usbcfg;
重新make zImage,情况有所变化:
初始化usb controller的过程中有一行debug信息:
s3c2410-ohci: CTRL: TypeReq=0x2303 val=0x8 idx=0x1 len=0 ==> -115
在include/asm-generic/errno.h中查了一下这个错误代码:
#define EINPROGRESS 115 /* Operation now in progress */
在Documentation/usb/error-codes.txt中的解释是:
-EINPROGRESS URB still pending, no results yet
(That is, if drivers see this it’s a bug.)
这时无论插入什么USB设备,USB鼠标、U盘、USB无线网卡,都报告:
<6>usb 1-1: new full speed USB device using s3c2410-ohci and address 2
<7>s3c2410-ohci s3c2410-ohci: urb c3c430c0 path 1 ep0in 5ec20000 cc 5 –> status -110
一步一步解决kernel2.6 usb host driver
相关推荐
一个刚走出大学一年的一步一步的脚印的走上电子设计员
它们的使用4.熟悉后开始一步一步的熟悉EDA所用的软件如DXP等,本人英语特差,学起来有点费劲,但是还是慢慢的学,不会的就查5.慢慢的DXP使用的可以了,就开始学习抄板,第一块板正在做着在丝印层,如何快速瞄出各种封装?别人给了个JPG的丝印图后续将自己的路写给各位,希望各位也多多支持
2014-07-15 12:32:09
一步一步介绍在RK3288 Android系统下进行OpenCL开发
1、介绍android下OpenCL开发Firefly rk3288采用Mali-T764的GPU,该GPU支持OpeCL 1.1。下面一步一步介绍android下OpenCL开发。1.首先我们需要
2022-07-20 16:13:01
一步一步学习ModBus
退缩,知难而上;今日开贴 练习写ModBus从机程序,因为我对Modbus还算有一些了解,所以把modbus从机代码的编写作为代码堆积的开始,一步一个脚印,每日一更新,以督促自己,早日成为名副其实的码农,然后
2018-09-02 23:05:01
一步一步学:教你在Windows下对硬盘分区
一步一步学:教你在Windows下对硬盘分区 虽然很多电脑用户、尤其是老玩家们,都习惯了在DOS下用FDISK、DM、PQ这些耳熟能详且驾轻就熟地对硬盘进行分区,但是随着电脑的不断普及,初级
2011-02-27 16:44:56
一步一步将FreeRTOS移植到STM32F103上
前言:由于之前听过太多人抱怨移植FreeRTOS到STM32有各种各样的问题,小灯经过一年多对FreeRTOS的研究并在公司产品中应用,多少有些心得,接下来就由小灯以最新版的FreeRTOS为例一步一步移植到STM32F103上,并提醒大家某些需要注意的事项。本文档为非正式技术文档,故排版会有...
2022-02-21 06:47:44
一步一步教你远程控制
`第一步:制作自己的物联网开发板。下面是我自己制作的一块基于ESP8266的wifi 物联网开发板。一个ESP8266+一个继电器,通过自己搭建的物联网后台实现远程通信。第二步:用lua语言进行
2018-05-26 20:45:33
一步一步精通单端反激式开关电源设计
有着息息相关,影响着每个人的生活,所以大家并不陌生,便于入手,因此很多朋友出于工作兴趣更愿意从反激开关电源设计开始作为电子技术入门,所以学好它是自己成长关键的一步,也是建立电子技术兴趣关键的一步。学习
2015-09-08 08:43:23
一步一步讲解开关电源如何设计,带你入门
开关电源设计的第一步就是看规格,具体的很多人都有接触过;也可以提出来供大家参考,我帮忙分析。我只带大家设计一款宽范围输入的12V2A 的常规隔离开关电源1. 首先确定功率。根据具体要求来选择相应
2017-03-23 19:08:28
一步步进行调试GPRS模块
背景:在不知道硬件是否正确情况下,一步步进行调试,最终完成调试。以下是自己调试步骤。1、从gprs模块TX ,RX 单独焊接两个线出来,通过上位机发送AT指令,是否能正常工作。
2022-01-25 07:33:03
一步步告诉你stm32开发环境搭建流程
调试下载的工具, 下面这一步要添加USE_STDPERIPH_DRIVER, STM32F10X_HD告诉编译器相关参数配置 最后按OK,确认退出,到此搭建完毕,可以开始编程开发了
2018-02-27 15:44:01
ARM嵌入式系统如何入门?怎样一步步的去学习
ARM嵌入式系统的学习步骤对于很多新手来说,不知道ARM嵌入式系统如何入门?怎样一步步的去学习?接下来信盈达教育嵌入式培训网就详解的为大家介绍:关于ARM嵌入式系统学习步骤:1.做个最小系统板:如果
2022-02-16 06:33:46
Bluetooth®5怎么快人一步
随着Bluetooth®5的提速,您是否也想要抢占先机,快人一步?现在,工程师可以借助TI针对单模Bluetooth低功耗应用、首款通过全面认证的Bluetooth5协议栈轻松支持高速模式。
2019-07-29 08:04:14
CC2530一步步演示程序烧写
CC2530一步步演示程序烧写第一步——先安装IAR开发环境第二歩——安装CC2530烧写工具第三歩——CC2530串口配置软件使用具体完整步骤看下面文档
2016-03-03 14:33:11
Hiber 一步一步教你如何在Altium 中导入ALLEGRO的brd文件
本帖最后由 社区管家 于 2014-12-3 15:07 编辑
Altium 中导入ALLEGRO的brd文件(byHiber) 一步一步教你如何在Altium Designer中导
2014-12-03 15:05:29
PCB学习步骤一步一步来
Protel99构成从电路设计到真实板分析的完整体系。2000年 Protel99se性能进一步提高,可以对设计过程有更大控制力。2002年 Protel DXP 集成了更多工具,使用方便,功能更强大。2003年
2014-02-18 11:15:43
STM32F1战舰V3基于跑马灯实验移植FreeRTOS,按照文档一步一步操作,任务调度失败怎么办
STM32F1战舰V3基于跑马灯实验移植FreeRTOS,按照文档一步一步操作,任务调度失败!!!!调试程序进不了创建的任务。求解!!为了跑FreeRTOS买的板子,入门实验就挂了,,,,悲催。
2020-06-16 04:35:41
[推荐]·零基础新手建站教程系列:如何一步一步的搭建属于自己的独立网站
·零基础新手建站教程系列:如何一步一步的搭建属于自己的独立网站 题记: 或许你很久以前就憧憬自己有个属于自己的网站,或许你一直感觉做个网站那都是"牛"人做的事情.其实你也可以轻松
2010-11-25 19:06:43
[讨论]如何一步一步的搭建属于自己的独立网站
如何一步一步的搭建属于自己的独立网站 题记: 或许你很久以前就憧憬自己有个属于自己的网站,或许你一直感觉做个网站那都是"牛"人做的事情.其实
你也可以轻松拥有一个自己的网站
2010-12-02 17:18:28
labview程序中怎样返回上一步操作
确定按钮的非是取消按钮要求按下取消按钮之后重新执行上一步操作例如:在进行中医科选择日期的时候按下了取消键就会执行普通门诊 选择科室的操作
2018-12-15 20:47:04
stm32是如何将配置从库函数调用一步一步到寄存器的
stm32是如何将配置从库函数调用一步一步到寄存器的?0. 前言1.综述1.1 流程2.正式开始2.1 LED库函数初始化2.2 GPIO_TypeDef2.3 GPIOA的访问方法2.4
2022-02-15 06:10:57
u-boot编译到最后一步出现这种问题该怎么办?
编译u-boot的时候到最后一步就出现kefile:263: recipe for target 'u-boot' failedmake: *** [u-boot] Error 1用的光盘里的u-boot和补丁
2019-09-12 02:50:24
【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】一步一步搭开发环境(一)
本人小白一个,搭环境时踩过很多坑,各种失败,官方的指导对小白来说还是比较难看懂的,尤其像我这种小白,对linux系统不熟悉,一边看官方指导一边百度linux如何操作,一步一步的试,通过N多天的努力
2020-11-12 17:25:53
【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】一步一步搭开发环境(二)
上一篇《一步一步搭开发环境(一)》中已经安装好ubuntu 20.04服务器版,并且更改为国内的阿里源,这样下载软件快且稳定,具体请看以下链接的贴子https://bbs.elecfans.com
2020-11-14 10:45:13
【TI CC3200 LaunchPad试用体验】3 一步一步创建工程模板
` 本帖最后由 liuruoshui 于 2016-5-30 21:43 编辑
遇到突发状况,这段时间一直出差,是我的罪过,没有更新帖子!上一步已经利用TI给好的历程通过仿真下载到开发板观察
2016-05-30 21:38:45
【Z-turn Board试用体验】+学习一步一步来
学习慢慢来,一步一步,由浅及深,从最简单的开始。先点亮一个灯(哎····好像在哪儿见过!不,我不是在说单片机!)将附带的SD卡连接到PC上格式化(什么?你不想破坏里面的数据?因为里面有做好的系统
2015-06-07 17:44:09
【分享】一步一步学习uCOS和ARM体系结构的心得
【分享】一步一步学习uCOS和ARM体系结构的心得学习必备条件:1、一块开发板——例如44B0开发板,建议初学者不要去购买那些ARM9体系结构的,因为作为初学者来说ARM9体系的东西是很复杂的,买块
2014-09-24 11:58:24
【图文教程】菜鸟教你如何一步一步免费建一个网站!
【图文教程】菜鸟教你如何一步一步免费建一个网站!新手最佳教程,站长手把手教你免费建一个网站!想要做网站,不懂技术,不懂制作,想免费做网站,请看以下教程!1、不懂任何网站技术,技能,也能快速制作一个
2011-11-15 17:40:07
为什么我按照视频一步一步的做还是有这么多错误?
都是按照Altium designer 17 绘制89C51开发板全程实战视频一步一步的学的,为什么出现的错误和视频的不一样,而且很多错误的。还有我也看了管脚的定义了,就是找不到错误在哪
2019-09-17 02:46:01
利用SIM900 GPRS通信AT+CIPSEND这一步回ERR
求助原子哥,利用SIM900 GPRS通信,AT+CIPSEND这一步回ERR,请问是怎么回事呀?
2019-04-28 08:27:41
如何进一步提高1302精度?
GN1302 晶振引脚连接 2 个 30pf 电容,每天大约慢 4 秒,如何进一步提高精度?时钟每天慢 4 秒是因为晶振的外部负载电容过大,即 30pf 电容过大。如果使用的晶振的负载电容参数为
2022-12-29 17:36:43
学习STM32f103从点灯一步一步开始
学习STM32f103从点灯开始跟着视频一步一步的模仿.1、工程的建立,源文件、头文件2、GPIO的使用3、函数的定义、使用4、查找函数的参数5、查找编译失败原因(中文状态下的符号、缺少符号 )6
2021-08-23 09:21:35
学习单片机的第一步是什么??
我是学生,想学习下单片机。。。我第一步干嘛好呢???要先买单片机的学习板么?买怎样的???我看到淘宝上大把的,但几乎都不同。。。我该怎么办??
2013-11-23 16:40:19
嵌入式Linux USB驱动开发之教你一步步编写USB驱动程序
驱动程序中。 USB 驱动程序依然遵循设备模型 —— 总线、设备、驱动。和I2C 总线设备驱动编写一样,所有的USB驱动程序都必须创建的主要结构体是 struct u***_driver,它们向USB
2017-11-03 10:18:03
怎么让直流电源执行时 一步一步执行
`怎么让直流电源执行时 一步一步执行,比如:第一步输出5V 、2A、 工作10秒、再执行第二步、第二步输出3V、1A、工作30秒再执行第三步,求帮助,不知道怎么做!`
2018-03-08 09:02:35
想入门嵌入式软件,但是不知道需要一步一步学什么,请老司机指点一下
我是一名硬件工程师,我想转嵌入式软件,以前学过一点C,想从0开始学嵌入式,想玩单片机或者linux,希望有老司机能帮我指点一下,先学什么然后一步一步学什么,学到什么程度,大概就是这个意思,我主要是想学单片机,因为现在公司是做只能硬件的
2020-03-02 14:51:41
手把手教你如何一步一步实现人脸识别的门禁系统
是一个人脸识别的门禁系统开源源码及论文,基本功能实现,但其教程较简略且有欠缺。本教程将从零开始,手把手教你如何一步一步实现人脸识别,意在打造一个升级完整版、全CSDN最详细版。本篇将有两个版本:PC端Ubuntu与嵌入式ARM版本。本教程将从基本...
2021-12-14 06:44:12
朱兆祺带你一步一步学习嵌入式(电子书资料)
老师的连载贴。整理出来是为了方便大家学习观看,有不懂的地方还是欢迎大家在原贴中讨论交流。原贴地址:朱兆祺带你一步一步学习嵌入式(连载)https://bbs.elecfans.com
2016-03-21 15:25:52
求助cadence16.6装完之后打不开,总是报错下边的错误,都是按照步骤一步一步来的!大神解决了发红包
求助cadence16.6装完之后打不开,总是报错下边的错误,都是按照步骤一步一步来的!大神解决了发红包。win7,64位系统,安装步骤都是按照步骤来的,怎么回事!哪位大神解决了,红包不成敬意!!!!谢谢了
2017-08-05 21:58:51
编辑图象如此简单,只需一步!
编辑图象如此简单,只需一步!咔咔艺术大师”是一款图像编辑软件,可以对图像进行旋转、裁剪、调色、透明度、特效等多个方面进行设置,且操作简单,容易上手,只需轻点鼠标,即可制作出赏心悦目的图像效果
2008-06-11 18:07:57
自己搭建物联网后台的,一步步实现物联网系统
本帖最后由 一只耳朵怪 于 2018-5-30 09:20 编辑
第一步:制作自己的物联网开发板。下面是我自己制作的一块基于ESP8266的wifi 物联板子一个ESP8266+一个继电器
2018-05-29 19:43:04
让主板浴火重生!编辑一步一步教你刷主板BIOS
让主板浴火重生!编辑一步一步教你刷主板BIOS 电脑开机时是不是会出现一些莫名其妙的报错信息?开机主板自检不太正常?升级了内存之后电脑不太稳定?想买新发布的Phenom II处理器又怕主板不支持
2011-02-26 15:55:00
详解Kernel2.6调度算法
Kernel2.6调度算法仍然是基于优先级的调度,它的算法复杂度为O(1),也就是说是调度器的开销是恒定的,与系统当前的负载没有关系。
2019-08-07 06:52:56
详解一步一步设计开关电源
=oxh_wx3、【周启全老师】开关电源全集http://t.elecfans.com/topic/130.html?elecfans_trackid=oxh_wx 详解一步一步设计开关电源资料来自网络资源
2019-06-20 20:14:39
请教大神,根据GIT上SDK配置指导,最后一步构建HELLO_WORD出现失败的原因
我根据HPM_SDK的说明文档,在WINDOWS下一步一步执行里面的操作,最后尝试“4. 为Ninja-build产生构建文件:”失几,提示截图如下:
哪位大神指导下这是什么问题,是哪一步出错了吗?
2023-06-06 22:15:24
请教如何实现提示一步做一步然后再提示一步
本帖最后由 suicone 于 2012-7-22 18:24 编辑
就是运行时会有个提示 不要对话框的 就是一段文字显示在某个特定的地方然后按照提示完成一步 比如“请按布尔1按钮”然后你点布尔1后 文字改变到下一个提示“请按布尔2按钮”诸如此类的现在完全没有思路额。。。。。
2012-07-22 18:15:14
请问怎么从子函数的某一步返回到主函数的某一步?
简单的说就是希望可以在子函数中的某一步程序执行完之后返回到主函数中段的一句指令,尝试过用goto函数,发现不允许夸函数,有什么好的办法么?谢谢了
2019-05-07 05:27:22
谁有Allegro PCB SI一步一步学会前仿真中里面的案例文件,是pcb图,模型这些文件
我有这个Allegro PCB SI一步一步学会前仿真的文件,要的是案例文件?
2016-11-12 15:43:00
进一步理解量子力学经典 多方面丰富相关图表
进一步理解量子力学经典理论与应用 多方面丰富相关图表为了进一步深入理解量子力学理论经典及其应用,从多个方面丰富内容,附图页码一致,符合国际标准。声学,声波自然现象,以及经典原子理论的应用等对理解量子力学经典之波的概念有益。大湾区2020-8-2
2020-08-02 07:05:50
评论
查看更多