usb for HHARM2410 on linux2.6.14

一,修改代码

(1)在linux-2.6.14/arch/arm/mach-s3c2410/mach-smdk2410.c 中加入如下内容

/******************add for usb ***********************/

#include <asm/arch/usb-control.h> #include <asm/arch/regs-clock.h> #include <linux/device.h> #include <linux/delay.h>

struct s3c2410_hcd_info usb_s3c2410_info = { .port[0] = { .flags = S3C_HCDFLG_USED } }int smdk2410_usb_init(void) { /* USB */ unsigned long upllvalue = (0x78<<12)|(0x02<<4)|(0x03); printk(“USB Control, (c) 2006 s3c2410/n”); s3c_device_usb.dev.platform_data = &usb_s3c2410_info; while(upllvalue!=__raw_readl(S3C2410_UPLLCON)) { __raw_writel(upllvalue,S3C2410_UPLLCON); mdelay(1); } return 0;}

/******************************add by YXJ**********************************/

(2)在static void __init smdk2410_map_io(void)函数中添加如下内容

smdk2410_usb_init(); //add for usb by YXJ(3)在 drivers/usb/host/ohci-s3c2410.c中

添加头文件

#include <asm/arch/usb-control.h>

在static void s3c2410_start_hc(struct platform_device *dev, struct usb_hcd *hcd)函数中添加

/*********************add for usb by YXJ***************************/ unsigned long upllvalue = (0x78<<12)|(0x02<<4)|(0x03);

while (upllvalue != __raw_readl(S3C2410_UPLLCON)) { __raw_writel(upllvalue, S3C2410_UPLLCON); mdelay(1); } /***********************add for usb by YX end *********************/ 据说添加这一部分是由S3c2410中UPLLCON自身的问题引起的,具体可参考下面论述

http://www.linuxforum.net/forum/showflat.php?Cat=&Board=embedded&Number=556915&page=0&view=collapsed&sb=7&o=all&fpart=all

否则插上usb设备时会出现如下提示:

usb 1-1: new full speed USB device using s3c2410-ohci and address 2usb 1-1: device descriptor read/64, error -110usb 1-1: device descriptor read/64, error -110

二,编译内核

USB驱动设置,可能有些不选也行,不过没时间去试,至于为什么要选这些选项的话可以看一下这个贴(Linux下的硬件驱动——USB设备):

http://www-128.ibm.com/developerworks/cn/linux/l-usb/index1.html

│ │ Device Drivers —>

│ │ Generic Driver Options —>

│<*> Hotplug firmware loading support

│ │ Block devices —>

│ │ <*> Low Performance USB Block driver

│ │ SCSI device support —>

│ │ <*> SCSI generic support

│ │

? Probe all LUNs on each SCSI device

│ │ USB support —>

│ │<*> Support for Host-side USB

│ │

? USB device filesystem

│ │<*> OHCI HCD support

│ │<*> USB Mass Storage support

│ │

? USB Monitor

3、加入了MSDOS fs和VFAT fs的支持。

│ │ File systems —>

│ │ DOS/FAT/NT Filesystems —>

│ ┌───────────────────────────-───────┐ │

│ │ <*> MSDOS fs support │ │

│ │ <*> VFAT (Windows-95) fs support │ │

│ │ (936) Default codepage for FAT │ │

│ │ (cp936) Default iocharset for FAT │ │

│ │ < > NTFS file system support

4,加入中文字库

│ │ Native Language Support —>│ │<*> Simplified Chinese charset (CP936, GB2312)│ │<*> NLS UTF8

三,运行系统

插上u盘后会出现如下提示

usb 1-1: new full speed USB device using s3c2410-ohci and address 2

ub(1.6): GetMaxLUN returned 0, using 1 LUNs uba: uba1

然后可执行:mount -t vfat /dev/uba1 /mnt 命令将u盘挂载在/mnt目录下

接受失败也等于给了自己从零开始的机会,接受失败更是一种智者的宣言和呐喊;

usb for HHARM2410 on linux2.6.14

相关文章:

你感兴趣的文章:

标签云: