USB驱动移植

USB驱动移植
1   在arch/arm/mach-s3c2410/mach-smdk2410.c中紧接着LCD的部分添加
//usb
#include <asm/arch/usb-control.h>
#include <asm/arch/regs-clock.h>
#include <linux/device.h>
#include <linux/delay.h>
//-------------------usb两个USBHOST支持---------------
struct s3c2410_hcd_info usb_s3c2410_info = {
 .port[0] = {
  .flags = S3C_HCDFLG_USED
 }
};

int smdk2410_usb_init(void)
{
 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;
}
2   在smdk2410_map_io函数最后添加
 //usb
 smdk2410_usb_init();
------------配置USB鼠标键盘----------
Device Drivers >
       USB support  ---> 
            <*> Support for Host-side USB
            <*> OHCI HCD support
--- USB Input Devices
<*> USB Human Interface Devices (full HID) support
[*] HID input layer support
------------配置U盘支持------------------------
因为要优盘用到了SCSI 命令,所以我们先增加SCSI 支持。
Device Drivers >
       SCSI device support  ---> 
            [*] legacy /proc/scsi support
   <*> SCSI disk support
   [*]   SCSI generic support
Device Drivers >
        USB support  --->
    [*] Support for Host-side USB 
    <*> USB Mass Storage support
                [*]     USB Mass Storage verbose debug
  Block devices --->
    <*> Low Performance USB Block driver
    
-------------让内核支持热插拔 -----------
│ General setup --->
│ │ Support for hot-pluggable devices  
│ Device Drivers --->
│   Generic Driver Options --->
│   <*> Hotplug firmware loading support  
-----------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
│ │Partition Types --->
│ │    PC BIOS (MSDOS partition tables) support
没有加上这个就出现下面这个提示了...
[root@Qiu /]# mount -t vfat /dev/scsi/host0/bus0/target0/lun0/disc /mnt
mount: mounting /dev/scsi/host0/bus0/target0/lun0/disc on /mnt failed: No such device
还有下面这个提示... 
[root@Qiu /]# mount -t vfat /dev/scsi/host0/bus0/target0/lun0/disc /mnt
FAT: codepage cp936 not found
mount: mounting /dev/scsi/host0/bus0/target0/lun0/disc on /mnt failed: Invalid argument
-----------加入中文字体库---------------------
│ │ Native Language Support --->
│ │   <*> Simplified Chinese charset (CP936, GB2312)
│ │   <*> NLS UTF8
最后加载提示:
[root@Qiu /]# usb 1-1: new full speed USB device using s3c2410-ohci and address 3
scsi1 : SCSI emulation for USB Mass Storage devices
  Vendor:           Model:                   Rev:    
  Type:   Direct-Access                      ANSI SCSI revision: 00
SCSI device sdb: 483041 512-byte hdwr sectors (247 MB)
sdb: Write Protect is off
sdb: assuming drive cache: write through
SCSI device sdb: 483041 512-byte hdwr sectors (247 MB)
sdb: Write Protect is off
sdb: assuming drive cache: write through
 /dev/scsi/host1/bus0/target0/lun0:<7>usb-storage: queuecommand called
 unknown partition table
Attached scsi removable disk sdb at scsi1, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi1, channel 0, id 0, lun 0,  type 0
挂载上后:(刚插上拔下一次变成host1)
[root@Qiu /]# mount -t vfat /dev/scsi/host1/bus0/target0/lun0/disc /mnt
[root@Qiu /]# cd mnt
[root@Qiu /mnt]# ls
9600gso.jpg                Linux命令大全(修改版).chm

  

 

你可能感兴趣的:(USB驱动移植)