OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [Documentation/] [usb/] [sl811hc.txt] - Diff between revs 1275 and 1765

Only display areas with differences | Details | Blame | View Log

Rev 1275 Rev 1765
README for embedded host controller SL811 (i386)
README for embedded host controller SL811 (i386)
================================================
================================================
Original drivers from Pei Liu  for ARM architecture only.
Original drivers from Pei Liu  for ARM architecture only.
Documentaion and readme for Architecture x86 (ADNP/1486) premealy.
Documentaion and readme for Architecture x86 (ADNP/1486) premealy.
Kernel configuration:
Kernel configuration:
---------------------
---------------------
o Patch USB drivers into your kerneltree
o Patch USB drivers into your kerneltree
        cd Your_kernel_root
        cd Your_kernel_root
        gunzip linux-2.4.20-usb-1.patch.gz
        gunzip linux-2.4.20-usb-1.patch.gz
        patch -p1 -T < linux-2.4.20-usb*.patch
        patch -p1 -T < linux-2.4.20-usb*.patch
   OR
   OR
        gunzip -dc linux-2.4.20-usb*.patch.gz | patch -p1 -T
        gunzip -dc linux-2.4.20-usb*.patch.gz | patch -p1 -T
o Load default configuration for CP486SX/2 with ADNP/1486 and USB
o Load default configuration for CP486SX/2 with ADNP/1486 and USB
        arch/i386/adnp1486-usb104-SSV20030516
        arch/i386/adnp1486-usb104-SSV20030516
o Run "make configure" and set / verify this entries
o Run "make configure" and set / verify this entries
    Code maturity level options  --->
    Code maturity level options  --->
        [*] Prompt for development and/or incomplete code/drivers
        [*] Prompt for development and/or incomplete code/drivers
    General setup  --->
    General setup  --->
        [*] PCI support
        [*] PCI support
        (BIOS)   PCI access mode
        (BIOS)   PCI access mode
        [ ] PCI device name database
        [ ] PCI device name database
    SCSI support  --->
    SCSI support  --->
         SCSI support
         SCSI support
           SCSI disk support
           SCSI disk support
        (8) Maximum number of SCSI disks that can be loaded as modules
        (8) Maximum number of SCSI disks that can be loaded as modules
        ... Disable all other options ...
        ... Disable all other options ...
        SCSI low-level drivers  --->
        SCSI low-level drivers  --->
            ... Disable all low level drivers ...
            ... Disable all low level drivers ...
    Input core support  --->
    Input core support  --->
         Input core support                     (Need only for Keyboard or Mouse)
         Input core support                     (Need only for Keyboard or Mouse)
           Keyboard support
           Keyboard support
           Mouse support
           Mouse support
    Character devices  --->
    Character devices  --->
        [*] Virtual terminal                    (Need only for Keyboard)
        [*] Virtual terminal                    (Need only for Keyboard)
    Console drivers  --->
    Console drivers  --->
        [*] VGA text console                    (Need only for Key/Mouse)
        [*] VGA text console                    (Need only for Key/Mouse)
        Frame-buffer support  --->              (... or use FB)
        Frame-buffer support  --->              (... or use FB)
    USB support  --->
    USB support  --->
         Support for USB
         Support for USB
        [ ]   USB verbose debug messages        (Optional)
        [ ]   USB verbose debug messages        (Optional)
        [*]   Preliminary USB device filesystem (Optional for debugging)
        [*]   Preliminary USB device filesystem (Optional for debugging)
    --- USB Host Controller Drivers
    --- USB Host Controller Drivers
           SL811HS Alternate (support isochronous mode)
           SL811HS Alternate (support isochronous mode)
        ...
        ...
           SL811HS (x86, StrongARM)  support (old driver)
           SL811HS (x86, StrongARM)  support (old driver)
        Disable all others "USB Host Controller Drivers"
        Disable all others "USB Host Controller Drivers"
    --- USB Device Class drivers
    --- USB Device Class drivers
           USB Mass Storage support
           USB Mass Storage support
        ... and some aditional devices ...
        ... and some aditional devices ...
           USB Printer support
           USB Printer support
           USB HIDBP Keyboard (basic) support
           USB HIDBP Keyboard (basic) support
           USB HIDBP Mouse (basic) support
           USB HIDBP Mouse (basic) support
        USB Serial Converter support  --->
        USB Serial Converter support  --->
             USB Serial Converter support
             USB Serial Converter support
               USB FTDI Single Port Serial Driver
               USB FTDI Single Port Serial Driver
o We have no PCI- and no SCSI-System, but all USB-drivers need CONFIG_PCI=y.
o We have no PCI- and no SCSI-System, but all USB-drivers need CONFIG_PCI=y.
  USB-Floppy driver need the SCSI-Subsystem, so we must enable this global
  USB-Floppy driver need the SCSI-Subsystem, so we must enable this global
  and disable all low level drivers in this menu.
  and disable all low level drivers in this menu.
--- OR ---
--- OR ---
  Download origanal kerneltree, and patch comlplete ADNP
  Download origanal kerneltree, and patch comlplete ADNP
  with USB support and load configuration for this:
  with USB support and load configuration for this:
        bunzip2 -c linux-2.4.20.tar.bz2 | tar xvf -
        bunzip2 -c linux-2.4.20.tar.bz2 | tar xvf -
        gunzip -c linux-2.4.20-SSV20030516.diff.gz | patch -p1 -T
        gunzip -c linux-2.4.20-SSV20030516.diff.gz | patch -p1 -T
        Configuration: arch/i386/adnp1486-usb104-SSV20030516
        Configuration: arch/i386/adnp1486-usb104-SSV20030516
o Compile the kernel
o Compile the kernel
  make dep
  make dep
  make ROOT_DEV=/dev/ram0 zImage
  make ROOT_DEV=/dev/ram0 zImage
  make modules
  make modules
  export INSTALL_MOD_PATH="`pwd`/_install" ; make modules_install
  export INSTALL_MOD_PATH="`pwd`/_install" ; make modules_install
Default device configuration hc_sl811.o for USB1/104:
Default device configuration hc_sl811.o for USB1/104:
-----------------------------------------------------
-----------------------------------------------------
io      = 0x220
io      = 0x220
irq     = 12
irq     = 12
Remember: Second Controller was handled internal with IO offset +2.
Remember: Second Controller was handled internal with IO offset +2.
Installation hc_sl811.o for CF1/USB:
Installation hc_sl811.o for CF1/USB:
------------------------------------
------------------------------------
Compact Flash to USB adapter in io address of ide driver. It is for embedded
Compact Flash to USB adapter in io address of ide driver. It is for embedded
deviced only.
deviced only.
Please disable IDE driver in kernel configuration or do not load IDE drivers!
Please disable IDE driver in kernel configuration or do not load IDE drivers!
Change MAX_CONTROLERS = 1 into source asm/sl811-hw.h, recompile driver!
Change MAX_CONTROLERS = 1 into source asm/sl811-hw.h, recompile driver!
  First Controller only
  First Controller only
    insmod hc_sl811.o io=0x1F0 irq=14
    insmod hc_sl811.o io=0x1F0 irq=14
  Second Controller only
  Second Controller only
    insmod hc_sl811.o io=0x3F6 irq=14
    insmod hc_sl811.o io=0x3F6 irq=14
Driver hc_sl811.o can not handle both controllers at same time.
Driver hc_sl811.o can not handle both controllers at same time.
This driver need a address-offset of 2 between controllers.
This driver need a address-offset of 2 between controllers.
Please use alternate driver sl811.o instand.
Please use alternate driver sl811.o instand.
Installation Alternate driver sl811.o:
Installation Alternate driver sl811.o:
--------------------------------------
--------------------------------------
This driver have a better interrupt handler, but don't tested with all devices.
This driver have a better interrupt handler, but don't tested with all devices.
Install both controllers on USB1-104 (default):
Install both controllers on USB1-104 (default):
    insmod sl811.o io=0x220,0x222 irq=12,12
    insmod sl811.o io=0x220,0x222 irq=12,12
Install both controllers on CF/USB1:
Install both controllers on CF/USB1:
    insmod sl811.o io=0x1f0,0x3f6 irq=14,14
    insmod sl811.o io=0x1f0,0x3f6 irq=14,14
Second controller can disable with specific IOBASE=0 for this controller.
Second controller can disable with specific IOBASE=0 for this controller.
General about USB:
General about USB:
------------------
------------------
Please install first the driver for hardware,
Please install first the driver for hardware,
and than plugin the hardware into first USB port.
and than plugin the hardware into first USB port.
If your hardware find no driver the usbcore give ub a massage for missing
If your hardware find no driver the usbcore give ub a massage for missing
driver on conole or in file /proc/kmsg such as:
driver on conole or in file /proc/kmsg such as:
    new USB device -1.9, assigned address 7
    new USB device -1.9, assigned address 7
    USB device 7 (vend/prod 0x403/0x8372) is not claimed by any active drive
    USB device 7 (vend/prod 0x403/0x8372) is not claimed by any active drive
In this case remove the hardware from USB port, install the driver and
In this case remove the hardware from USB port, install the driver and
than plugin hardware again.
than plugin hardware again.
A list of driver for this missing hardware can found in file
A list of driver for this missing hardware can found in file
/_install/lib/modules/2.4.20/modules.usbmap
/_install/lib/modules/2.4.20/modules.usbmap
Search the number 8372 in this file an verify the vendor ID. So you will
Search the number 8372 in this file an verify the vendor ID. So you will
find the driver name "ftdi_sio" in this file.
find the driver name "ftdi_sio" in this file.
If your hardware not listen in this file. Look into source and search your
If your hardware not listen in this file. Look into source and search your
numbers in source.
numbers in source.
More read file:/Documentation/usb/proc_usb_info.txt
More read file:/Documentation/usb/proc_usb_info.txt
Drivers are all under contructions. So some drivers make a kernel panic. In
Drivers are all under contructions. So some drivers make a kernel panic. In
this case read all about the drivers dokumentaiona and the drivers source.
this case read all about the drivers dokumentaiona and the drivers source.
Some drivers need a other kernel driver, but not strictly checked in kenel
Some drivers need a other kernel driver, but not strictly checked in kenel
configuration. Here can help the ksymsoops.
configuration. Here can help the ksymsoops.
Install a Floppy (NEC UF0001) or USB Stick Fujitsu/Siemens/iomega:
Install a Floppy (NEC UF0001) or USB Stick Fujitsu/Siemens/iomega:
------------------------------
------------------------------
Copy files to target (FTP) and load all drivers.
Copy files to target (FTP) and load all drivers.
Load Generic USB-Handler
Load Generic USB-Handler
        insmod usbcore.o
        insmod usbcore.o
Load USB-Host controller, parameters are optional (default urb_debug=0 io=220 irq=12)
Load USB-Host controller, parameters are optional (default urb_debug=0 io=220 irq=12)
        insmod hc_sl811.o
        insmod hc_sl811.o
Run the USB-Filesystem
Run the USB-Filesystem
        mount -t usbdevfs usbdevfs /proc/bus/usb
        mount -t usbdevfs usbdevfs /proc/bus/usb
Load drivers for disk storage and file systems
Load drivers for disk storage and file systems
        insmod scsi_mod.o
        insmod scsi_mod.o
        insmod usb-storage.o
        insmod usb-storage.o
        insmod fat.o
        insmod fat.o
        insmod vfat.o
        insmod vfat.o
        insmod sd_mod.o
        insmod sd_mod.o
Create node for floppy
Create node for floppy
        mknod /dev/sda b 8 0
        mknod /dev/sda b 8 0
Put a disk into your floppy anth than plugin a USB-Floppy (such NEC Model UF0001)
Put a disk into your floppy anth than plugin a USB-Floppy (such NEC Model UF0001)
into first USB-Port. Some Messages will be list on console or in file /proc/kmsg.
into first USB-Port. Some Messages will be list on console or in file /proc/kmsg.
The disk is power on and the SCSI driver will search some partions on disk. Floppy
The disk is power on and the SCSI driver will search some partions on disk. Floppy
have no partions, so must use the first SCSI device without a partion number for mount.
have no partions, so must use the first SCSI device without a partion number for mount.
Than mount the floppy:
Than mount the floppy:
        mount /dev/sda /mnt -t vfat
        mount /dev/sda /mnt -t vfat
If you see a partions check with valid partion 1, you should mount this partion.
If you see a partions check with valid partion 1, you should mount this partion.
Mostly Memory Sticks are formated with one partion. But if Windows format it again,
Mostly Memory Sticks are formated with one partion. But if Windows format it again,
no partions is use.
no partions is use.
You see that:
You see that:
        Partition check:
        Partition check:
         sda: sda1
         sda: sda1
Than mount with follow steps:
Than mount with follow steps:
        mknod /dev/sda1 b 8 1
        mknod /dev/sda1 b 8 1
        mount /dev/sda1 /mnt -t vfat
        mount /dev/sda1 /mnt -t vfat
Create complete list of nodes for SCSI-devices:
Create complete list of nodes for SCSI-devices:
    # First inserted device
    # First inserted device
    echo -n "Create /dev/sda... "
    echo -n "Create /dev/sda... "
    mknod /dev/sda b 8 0
    mknod /dev/sda b 8 0
    for i in  1 2 3 4 5 6 7
    for i in  1 2 3 4 5 6 7
    do
    do
      echo -n "$i "
      echo -n "$i "
      mknod sda$i c 8 $i
      mknod sda$i c 8 $i
    done
    done
    # Second inserted device
    # Second inserted device
    echo -n "Create /dev/sdb... "
    echo -n "Create /dev/sdb... "
    mknod /dev/sdb b 8 16
    mknod /dev/sdb b 8 16
    mknod /dev/sdb1 b 8 17
    mknod /dev/sdb1 b 8 17
    echo " done"
    echo " done"
    # Set some rights
    # Set some rights
    chown root.disk sd*
    chown root.disk sd*
    chmod 660 sd*
    chmod 660 sd*
Install a Keyboard:
Install a Keyboard:
-------------------
-------------------
Copy files to target (FTP) and load all drivers.
Copy files to target (FTP) and load all drivers.
Load Generic USB-Handler
Load Generic USB-Handler
        insmod usbcore.o
        insmod usbcore.o
Load USB-Host controller, parameters are optional (default urb_debug=0 io=220 irq=12)
Load USB-Host controller, parameters are optional (default urb_debug=0 io=220 irq=12)
        insmod hc_sl811.o
        insmod hc_sl811.o
Run the USB-Filesystem
Run the USB-Filesystem
        mount -t usbdevfs usbdevfs /proc/bus/usb
        mount -t usbdevfs usbdevfs /proc/bus/usb
Load drivers for USB-Keyboard
Load drivers for USB-Keyboard
        insmod input.o
        insmod input.o
        insmod keybdev.o
        insmod keybdev.o
        insmod usbkbd.o
        insmod usbkbd.o
Now you can plugin Keyboard into first USB-Port and login on first console.
Now you can plugin Keyboard into first USB-Port and login on first console.
Something stuff:
Something stuff:
"Undefined Symbols handle_scancode, keyboard_tasklet, kbd_ledfunc" at install ???
"Undefined Symbols handle_scancode, keyboard_tasklet, kbd_ledfunc" at install ???
USB keyboard need PC-style keyboard driver, because the USB driver
USB keyboard need PC-style keyboard driver, because the USB driver
simulate standard AT-Keycodes. A normaly AT- or PS/2-Keyboard must not
simulate standard AT-Keycodes. A normaly AT- or PS/2-Keyboard must not
exist for this. The driver says normaly error (Timeout) on boot.
exist for this. The driver says normaly error (Timeout) on boot.
You must enable CONFIG_VT in kernel konfiguration!
You must enable CONFIG_VT in kernel konfiguration!
Character devices  --->
Character devices  --->
    [*] Virtual terminal
    [*] Virtual terminal
    [ ]   Support for console on virtual terminal
    [ ]   Support for console on virtual terminal
Read 
Read 
Install a Mouse:
Install a Mouse:
----------------
----------------
Load Generic USB-Handle
Load Generic USB-Handle
        insmod usbcore.o
        insmod usbcore.o
Load USB-Host controller
Load USB-Host controller
        insmod hc_sl811.o
        insmod hc_sl811.o
Run the USB-Filesystem
Run the USB-Filesystem
        mount -t usbdevfs usbdevfs /proc/bus/usb
        mount -t usbdevfs usbdevfs /proc/bus/usb
Load Generic Input device
Load Generic Input device
        insmod input.o
        insmod input.o
Load USB-Mouse driver
Load USB-Mouse driver
        insmod input.o
        insmod input.o
        insmod mousedev.o
        insmod mousedev.o
        insmod usbmouse.o
        insmod usbmouse.o
Read 
Read 
Install a serial adapter (Sample FTDI):
Install a serial adapter (Sample FTDI):
---------------------------------------
---------------------------------------
Load Generic USB-Handle
Load Generic USB-Handle
        insmod usbcore.o
        insmod usbcore.o
Load USB-Host controller
Load USB-Host controller
        insmod hc_sl811.o
        insmod hc_sl811.o
Run the USB-Filesystem
Run the USB-Filesystem
        mount -t usbdevfs usbdevfs /proc/bus/usb
        mount -t usbdevfs usbdevfs /proc/bus/usb
Load Generic derial device and hardware specific device
Load Generic derial device and hardware specific device
        insmod usbserial.o
        insmod usbserial.o
        insmod ftdi_sio.o
        insmod ftdi_sio.o
Create node entry for this device
Create node entry for this device
        mknod /dev/ttyUSB0 c 188 0
        mknod /dev/ttyUSB0 c 188 0
Than plugin the hardware into first USB port and
Than plugin the hardware into first USB port and
use serial device on /dev/ttyUSB0, such call a login:
use serial device on /dev/ttyUSB0, such call a login:
        /sbin/getty 115200 ttyUSB0 vt100 &
        /sbin/getty 115200 ttyUSB0 vt100 &
USB-Utils:
USB-Utils:
----------
----------
- usb-0.6-7.rpm, usb-0.6-7.src.rpm
- usb-0.6-7.rpm, usb-0.6-7.src.rpm
  /usr/sbin/lsusb, /usr/share/usb.ids
  /usr/sbin/lsusb, /usr/share/usb.ids
  Good tool to list devices parameters.
  Good tool to list devices parameters.
  You must load usbcore.o, hc_sl811.o and proc-usb before
  You must load usbcore.o, hc_sl811.o and proc-usb before
  program works right (use script usb.sh).
  program works right (use script usb.sh).
  More details: Install usb-0.6-7.rpm on Your desktop and use "man lsusb".
  More details: Install usb-0.6-7.rpm on Your desktop and use "man lsusb".
Known Bugs:
Known Bugs:
-----------
-----------
PL2302 Profilic USB to serial converter will not work with hc_sl811.c (Bulk/Timeout).
PL2302 Profilic USB to serial converter will not work with hc_sl811.c (Bulk/Timeout).
USB Floppy will not work with alternate driver sl811.o (Sector not found)
USB Floppy will not work with alternate driver sl811.o (Sector not found)
CHANGELOG:
CHANGELOG:
----------
----------
* Fri 03 Okt 2003 hne
* Fri 03 Okt 2003 hne
- Patch for 2.4.23-pre6
- Patch for 2.4.23-pre6
- Only low level port io in hardware include as inline functions.
- Only low level port io in hardware include as inline functions.
- Move hc_sl811 and sl811 into host directory.
- Move hc_sl811 and sl811 into host directory.
- sl811 for two controllers (alternate x86 only).
- sl811 for two controllers (alternate x86 only).
* Mit 24 Sep 2003 hne
* Mit 24 Sep 2003 hne
- Misplaced "host/uhci.o" in Makefile.
- Misplaced "host/uhci.o" in Makefile.
- Move all x86/arm arch depens from main sl811.c to sl811-hw.h.
- Move all x86/arm arch depens from main sl811.c to sl811-hw.h.
* Die 23 Sep 2003 hne
* Die 23 Sep 2003 hne
- Put arm and x86 architectur into separate file in include directory.
- Put arm and x86 architectur into separate file in include directory.
- Modifications for both controllers on CF/USB1, alternate sl811 only.
- Modifications for both controllers on CF/USB1, alternate sl811 only.
  Parameter for CF/USB1: "io=0x1f0,0x3f6 irq=14".
  Parameter for CF/USB1: "io=0x1f0,0x3f6 irq=14".
* Fri 19 Sep 2003 hne
* Fri 19 Sep 2003 hne
- First version for both controllers on USB1-104.
- First version for both controllers on USB1-104.
- Alternative driver sl811.c from kernel 2.4.22 (thanks Yinah),
- Alternative driver sl811.c from kernel 2.4.22 (thanks Yinah),
  also for 2.4.20. USB Sticks works, Floppy not.
  also for 2.4.20. USB Sticks works, Floppy not.
* Die 02 Sep 2003 hne
* Die 02 Sep 2003 hne
- IO range only 2 address. For CF1USB we need io addres 3F6 and 3F7,
- IO range only 2 address. For CF1USB we need io addres 3F6 and 3F7,
  but do not use 3f8 (ttyS0).
  but do not use 3f8 (ttyS0).
* Mon 11 Aug 2003 hne
* Mon 11 Aug 2003 hne
- Comments for using iomega Memory Stick
- Comments for using iomega Memory Stick
* Don 12 Jun 2003 hne
* Don 12 Jun 2003 hne
- Added Bus-Name for Kernel 2.4.20, no pattern_test at unload driver.
- Added Bus-Name for Kernel 2.4.20, no pattern_test at unload driver.
- more doc
- more doc
* Fri May 16 2003 hne
* Fri May 16 2003 hne
- More comments, new patchfile, include usb-konfiguration as file
- More comments, new patchfile, include usb-konfiguration as file
* Wed May 14 2003 hne
* Wed May 14 2003 hne
- Patch error: Old Sources was in Kerneltree!
- Patch error: Old Sources was in Kerneltree!
* Mon Mar 17 2003 hne
* Mon Mar 17 2003 hne
- Copy usb SL811 from 2.4.19-rc into 2.4.20 kerneltree
- Copy usb SL811 from 2.4.19-rc into 2.4.20 kerneltree
- Add SL811 in Config and Make
- Add SL811 in Config and Make
* 18.11.2002 hne
* 18.11.2002 hne
- hc_sl811_rh.c:
- hc_sl811_rh.c:
  rh_unlink_urb: Use usb_dec_dev_use instand of usb_put_dev. Function
  rh_unlink_urb: Use usb_dec_dev_use instand of usb_put_dev. Function
  usb_put_dev isn't known in this module. Some others have a macro for
  usb_put_dev isn't known in this module. Some others have a macro for
  this. What is right usb_put_dev or usb_dec_dev_use?
  this. What is right usb_put_dev or usb_dec_dev_use?
- hc_sl811.c:
- hc_sl811.c:
  Split into 3 files. Arcitectures store in hc_sl811-arm.c and hc_sl811-x86.c
  Split into 3 files. Arcitectures store in hc_sl811-arm.c and hc_sl811-x86.c
  Correct release_region() for both io address, so we can unload modul and
  Correct release_region() for both io address, so we can unload modul and
  load again without reboot.
  load again without reboot.
  All IO access use 8 bit Data and register number (type __u8).
  All IO access use 8 bit Data and register number (type __u8).
  All functions static.
  All functions static.
  Only x86: base_addr renamed to io. data_reg_addr not used.
  Only x86: base_addr renamed to io. data_reg_addr not used.
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.