qq2440启动linux后插入u盘出现usb 1-1: device descriptor read/64, error -110,usb 1

上位机:ubuntu14.04 64bit

下位机:qq2440

交叉编译器:arm-linux-gcc 3.4.1

下位机使用的linux内核版本:kernel2.6.13

1.插入u盘时错误信息如下:

[root@FriendlyARM /home]# usb 1-1: new full speed USB device using s3c2410-ohci and address 6
usb 1-1: device descriptor read/64, error -110
usb 1-1: device descriptor read/64, error -110
usb 1-1: new full speed USB device using s3c2410-ohci and address 7
usb 1-1: device descriptor read/64, error -110
usb 1-1: device descriptor read/64, error -110
usb 1-1: new full speed USB device using s3c2410-ohci and address 8
usb 1-1: device not accepting address 8, error -110
usb 1-1: new full speed USB device using s3c2410-ohci and address 9
usb 1-1: device not accepting address 9, error -110

2.解决方案如下:

2.1修改drivers/usb/host/ohci-s3c2410.c文件,添加以下内容:

  a.先添加头文件#include <mach/regs-clock.h>

  b.在s3c2410_start_hc函数中添加以下内容:

bash/shell Code复制内容到剪贴板
  1. unsigned long upllvalue = (0x78 << 12) | (0x02 << 4) | (0x03);
  2. while (upllvalue != __raw_readl(S3C2410_UPLLCON)) {
  3. __raw_writel(upllvalue, S3C2410_UPLLCON);
  4. mdelay(1);
  5. }

  添加后的s3c2410_start_hc函数如下:

bash/shell Code复制内容到剪贴板
  1. static void s3c2410_start_hc(struct platform_device *dev, struct usb_hcd *hcd)
  2. {
  3. struct s3c2410_hcd_info *info = dev->dev.platform_data;
  4. dev_dbg(&dev->dev, "s3c2410_start_hc:\n");
  5. clk_enable(clk);
  6. if (info != NULL) {
  7. info->hcd       = hcd;
  8. info->report_oc = s3c2410_hcd_oc;
  9. if (info->enable_oc != NULL) {
  10. (info->enable_oc)(info, 1);
  11. }
  12. }
  13. unsigned long upllvalue = (0x78 << 12) | (0x02 << 4) | (0x03);
  14. while (upllvalue != __raw_readl(S3C2410_UPLLCON)) {
  15. __raw_writel(upllvalue, S3C2410_UPLLCON);
  16. mdelay(1);
  17. }
  18. }

  2.2总结:以上修改的函数功能是启动主机控制器,因为usb时钟设置有问题,因而在开启主机控制器时修改时钟,修改后的S3C2410_UPLLCON的值为0xF4100008;

3.注意:本版本内核没有头文件regs-clock.h,因而我从其他内核中复制过来的,命令如下:

jello@jello-Inspiron-N4050:~/Downloads/qq2440/linux/kernel-2.6.13$ cp /tftpboot/kernel-2.6.35.7/arch/arm/mach-s3c2410/include/mach/regs-clock.h ./

(0)

相关推荐

  • U盘装完系统,无法启动系统,插入U盘才能进系统

    U盘装完系统,无法启动系统,是因为你设置了启动了u盘启动系统,所以要将启动盘设置为电脑硬盘 操作方法 01 开机时,按下f10,进入bios设置,不同的电脑进入的方式不一样,可以到网上进行搜索,进入后 ...

  • 将普通U盘变身一个加密+启动的双效U盘

    大容量U盘越来越便宜,很多人在使用8GB、16GB的U盘。若这些大容量U盘仅用来数据交换显然会让很多存储空间闲置。何不划出一部分空间打造一个“加密+启动”双效U盘! 小知识:加密启动U盘工作原理简介。 ...

  • 安装完虚拟机插入U盘不能正常使用无法识别USB设备

    虚拟机也能使用U盘?想必大家以前从未想过。我们默认安装完虚拟机,新建系统后,插入U盘,实机可以使用,但是虚拟机中不能正常使用USB设备。今天我们就要来学学如何设置让你的虚拟机也能使用U盘。 第一步:先 ...

  • win7插入u盘开机启动出现蓝屏故障怎么办

    现在的u盘携带方便和小巧的优点,让很多人在装系统的时候都喜欢用u盘装系统,不过在安装过程中会遇到一些问题,比如有使用win7旗舰版系统的用户说,在安装系统的时候将u盘插入电脑中后开机就出现蓝屏的现象, ...

  • U盘分区后插入电脑不显示分区的原因及解决方法

    最近有用户因为需要把U盘进行了分区操作,可是在操作完之后,将U盘插入电脑却无法显示U盘分区,这是怎么回事呢?是因为U盘分区失败的原因吗?该怎么办呢?一起来看下高手是如何来为大家解答这个问题的。 原因分 ...

  • 用完后的u盘启动盘还原的办法

    操作方法 01 很多人在用u盘安装完系统之后,想把制作好的U盘启动盘还原成普通u盘,但却不知道怎么下手,小编就这个问题分享一些方法: 02 1.插入U盘,进入"我的电脑",在磁盘管 ...

  • Win7旗舰版系统下插入u盘开机启动出现蓝屏故障的原因及解决方法

    插入u盘开机出现蓝屏原因分析及解决方法: 1、可能是u盘本身中毒 解决方案:使用u盘pe工具来修复u盘就可以了。 2、可能是计算机遭到了病毒、木马、流氓软件等恶意程序的攻击 解决方法:执行安全防护类软 ...

  • 全新Linux笔记本电脑用U盘装Win7/XP系统教程

    买了预装Linux笔记本的用户,第一件事就是想着Windows XP系统安装或者Windows 7系统安装的事,在网上搜索XP系统安装教程(怎么用U盘装XP系统),如何重装XP系统(如何安装Win7系 ...

  • 直接从硬盘启动Linux ISO镜像的图文教程

    Linux的GRUB2启动加载器可以直接从硬盘启动Linux ISO文件,可以启动Live CD的 ISO,而不用烧录到光盘来安装Linux到一个硬盘分区,或从USB驱动启动。 我们在Ubuntu 1 ...