Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++

usb in uclinux 1.4

Altera_Forum
Honored Contributor II
1,838 Views

To use the USB on uCLinux1.4, is it just necessary to turn on USB support in menuconfig or do I need to do something more, similar to this thread? 

 

http://forum.niosforum.com/forum/index.php...wtopic=1539&hl= (http://forum.niosforum.com/forum/index.php?showtopic=1539&hl=

 

Thanks!
0 Kudos
8 Replies
Altera_Forum
Honored Contributor II
950 Views

Hi Shindou, 

 

1. in root fs, you need some scsi dev nodes, eg sda, sda1... to use mass storage dev 

you need usbfs, too. I have setup them in the post of buildroot guide, so they are ready. 

 

2. in kernel menuconfig, 

turn on file system support, eg, vfat and native lang codepage 437 

turn on scsi device, scsi disk 

turn on host-side usb, usb dev fs, your hcd, usb device eg mass storage. 

 

when booting, the kernel will detect your hcd, your usb devices.
0 Kudos
Altera_Forum
Honored Contributor II
950 Views

hi hippo, 

 

thx for the reply. 

 

i added all of the stuff you mentioned but it seems to not recognize the usb hcd for some reason 

 

[*] OHCI HCD support │ │ 

│ │[ ] SL811HS HCD support │ │ 

│ │[ ] ISP116X HCD support  

 

(the USB is the phillips ISP1362) 

 

drivers/usb/host/ohci-hcd.c:911:2:# error "missing bus glue for ohci-hcd" 

drivers/usb/host/ohci-hcd.c:418: warning: 'ohci_init' defined but not used 

drivers/usb/host/ohci-hub.c:304: warning: 'ohci_hub_status_data' defined but not used 

drivers/usb/host/ohci-hub.c:521: warning: 'ohci_hub_control' defined but not used 

drivers/usb/host/ohci-mem.c:27: warning: 'ohci_hcd_init' defined but not used 

drivers/usb/host/ohci-hcd.c:171: warning: 'ohci_urb_enqueue' defined but not used 

drivers/usb/host/ohci-hcd.c:302: warning: 'ohci_urb_dequeue' defined but not used 

drivers/usb/host/ohci-hcd.c:343: warning: 'ohci_endpoint_disable' defined but not used 

drivers/usb/host/ohci-hcd.c:398: warning: 'ohci_get_frame' defined but not used 

drivers/usb/host/ohci-hcd.c:481: warning: 'ohci_run' defined but not used 

drivers/usb/host/ohci-hcd.c:689: warning: 'ohci_irq' defined but not used 

make[3]: *** [drivers/usb/host/ohci-hcd.o] Error 1 

make[2]: *** [drivers/usb/host] Error 2 

make[1]: *** [drivers/usb] Error 2 

make: *** [drivers] Error 2 

 

Do I need to add code somewhere? (I'm using the nios_0.ptf) 

 

thanks!
0 Kudos
Altera_Forum
Honored Contributor II
950 Views

You may have to port isp1362 HCD drivers. You can add it to isp116x.

0 Kudos
Altera_Forum
Honored Contributor II
950 Views

is there a guide for porting drivers somewhere in the forum? i've never ported drivers before and not too used to linux so i really appreciate it if you could give some pointers as to where to start? also how much work will it be to port drivers for uclinux? (need to plan out timeline) 

 

thanks in advance!
0 Kudos
Altera_Forum
Honored Contributor II
950 Views

The files are in kernel dir drivers/usb/host/isp116x-hcd.c , isp116x.h. 

You may check with the author, maybe he has the lastest update. 

 

The book on drivers, "Linux Device Drivers 3rd, ed". 

 

You should have the isp1362 and isp1161 data sheets. 

Maybe it is just adding chip ids.
0 Kudos
Altera_Forum
Honored Contributor II
950 Views

maybe you should select isp116x driver, and change arch/nios2nommu/kernel/usb.c, to fix up port address and irq, na_usb, na_usb_irq.

0 Kudos
Altera_Forum
Honored Contributor II
950 Views

hi hippo, 

 

thanks for the reply. 

 

at first i tried with the 2.6.x kernel version which you can select ohci, sl11hs or isp116x. in that version, usb.c seemed to only include sl11hs stuff in the c source. 

 

so i tried 2.6.15.4 next and when i select usb, it only has the isp116x option (ie. no options to select bluetooth support etc, which 2.6.x did have). this version of the usb.c had includes of sl11hs code and isp116x. as you mentioned, na_usb and na_usb_irq are both undefined. I was trying to figure out where to define those because even after replacing na_usb with the port and na_usb_irq with the IRQ, i still got a bunch of compile warnings and errors with the usb stuff. 

 

any help to get the usb working would be greatly appreciated while i wait for the linux drivers book to arrive. 

 

thanx!
0 Kudos
Altera_Forum
Honored Contributor II
950 Views

I fixed up the device address (na_usb - to the address assigned to ISP1362 in SOPC builder) and irq (na_usb_irq - IRQ 4 when viewed in SOPC builder) and corrected the chip id so linux recognizes the usb port, but i get the following error about the IRQ after i plug in a USB flash drive. I checked the DE2_NET design I'm using for this experiment in SOPC builder and the IRQ for ISP1362 is 4, or should i instead be using the IRQ for the DMA? 

 

thanks in advance! 

 

io scheduler deadline registered 

116x: driver isp116x-hcd, 08 Apr 2005 

116x: ISP116x Host Controller, irq 4 

isp116x-hcd isp116x-hcd: new USB bus registered, assigned bus number 1 

hub 1-0:1.0: USB hub found 

hub 1-0:1.0: 2 ports detected 

scheduling while atomic: swapper/0x00000002/1 

Stack from 00187d40:<0> 

<0> 00000002<0> 000d53cc<0> 00000001<0> ffffe000<0> 00002900<0> 001922ec< 

0> 00189b20<0> 00356c00<0> 

<0> 40408180<0> 00000002<0> 000e5504<0> ffff8c59<0> 00000006<0> 000d696c< 

0> 00150020<0> 00150020<0> 

<0> ffff8c59<0> 4b87ad6e<0> 000170f0<0> 00182d60<0> 0014fd50<0> 00000002< 

0> ffffe000<0> 80000080<0> 

<0> 000175bc<0> 001921c0<0> 00192280<0> 000be790<0> 001921c0<0> 00192280< 

0> 000bf130<0> 000df488<0> 

<0> 00000000<0> 00189a20<0> 0000000d<0> 000001f4<0> 00356c04<0> 00357d9c< 

0> 000600fc<0> 00179200<0> 

<0> 0035ada4<0> 00000000<0> 00192294<0> 00356a00<0> 00000001<0> fffffffa< 

0> ffffffed<0> 000ecc94<0> 

Call Trace:<0> 

<0> [<000bcf18>]<0> [<000a1e04>]<0> [<000a1eb8>]<0> [<00000001>]<0> 

<0> [<00000000>]<0> [<00000000>]<0> [<000a20a8>]<0> [<00000000>]<0> 

<0> [<000a0e68>]<0> [<00000000>]<0> [<00000000>]<0> [<000c5c68>]<0> 

<0> [<00000001>]<0> [<00000000>]<0> [<00000000>]<0> [<00000000>]<0> 

<0> [<000001f4>]<0> [<00000001>]<0> [<00000000>]<0> [<000bf95c>]<0> 

<0> [<00000012>]<0> [<00000012>]<0> [<00000012>]<0> [<000c2034>]<0> 

<0> [<00000001>]<0> [<000a1e04>]<0> [<000a1f74>]<0> [<00000000>]<0> 

<0> [<000a22c8>]<0> [<00000001>]<0> [<000a2830>]<0> [<00000000>]<0> 

<0> [<00000000>]<0> [<00000264>]<0> [<00001d64>]<0> [<00006910>]<0> 

<0> [<00006968>]<0> [<0000088c>]<0> [<00000000>]<0> [<00000000>]<0> 

<0> [<00000000>]<0> [<000052a8>]<0> [<00000000>]<0> [<00000001>]<0> 

<0> [<00000b00>]<0> [<00000b00>]<0> [<0000019c>]<0> [<00000000>]<0> 

<0> [<00000120>]<0> [<00000001>]<0> [<00000001>]<0> [<00001d54>]<0> 

drivers/usb/class/bluetty.c: USB Bluetooth support registered 

usbcore: registered new driver bluetty 

drivers/usb/class/bluetty.c: USB Bluetooth tty driver v0.13 

Initializing USB Mass Storage driver... 

usbcore: registered new driver usb-storage 

USB Mass Storage support registered. 

Freeing unused kernel memory: 348k freed (0xf2000 - 0x148000) 

init started: BusyBox v1.1.1-pre0 (2006.03.06-00:20+0000) multi-call binary 

 

 

BusyBox v1.1.1-pre0 (2006.03.06-00:20+0000) Built-in shell (msh) 

Enter &#39;help&#39; for a list of built-in commands. 

# usb 1-2: new full speed USB device using isp116x-hcd and address 2 

isp116x-hcd isp116x-hcd: Unlink after no-IRQ? Controller is probably using the 

wrong IRQ.
0 Kudos
Reply