Forum Discussion
Altera_Forum
Honored Contributor
20 years agoUSB device!
I have a usb flash disk, I want to using it on my board, I choose USB Mass storage and SCSI disk and ISA116X driver support in menuconfig. Start uClinux on NIOS II SDK shell, using dmesg, I got these...
Altera_Forum
Honored Contributor
20 years ago --- Quote Start --- originally posted by goral@Apr 28 2006, 02:07 PM hi, hippo
thank for your help, my usb flash disk was working now,, these is my message using on de ii board:
<div class='quotetop'>quote
--- quote end ---
--- quote start ---
# usb 1-2: new full speed usb device using isp1362-hcd and address 2
usb 1-2: product: usb mass storage
usb 1-2: manufacturer: usb mass storage
usb 1-2: serialnumber: abcdef123456789
usb 1-2: configuration# 1 chosen from 1 choice
scsi0 : scsi emulation for usb mass storage devices
vendor: usb-disk model: freedik-lwformat rev: 1.06
type: direct-access ansi scsi revision: 00
scsi device sda: 261856 512-byte hdwr sectors (134 mb)
sda: write protect is off
sda: assuming drive cache: write through
scsi device sda: 261856 512-byte hdwr sectors (134 mb)
sda: write protect is off
sda: assuming drive cache: write through
sda:<7>usb-storage: queuecommand called
sda1
sd 0:0:0:0: attached scsi removable disk sda
# mount -t vfat /dev/sda1 /mnt# cd /mnt# ls
de2_usermanual.pdf# --- Quote End --- I only changed two place in isp1362-hcd.c <div class='quotetop'>QUOTE </div> --- Quote Start --- static int isp1362_hc_reset(struct usb_hcd *hcd) { int ret = 0; struct isp1362_hcd *isp1362_hcd = hcd_to_isp1362_hcd(hcd); unsigned long t; unsigned long timeout = 20; unsigned long flags; int clkrdy = 0; ret = 1; INFO("%s:\n", __FUNCTION__); if (isp1362_hcd->board && isp1362_hcd->board->reset) { isp1362_hcd->board->reset(hcd->self.controller, 1); msleep(20); if (isp1362_hcd->board->clock) { isp1362_hcd->board->clock(hcd->self.controller, 1); } isp1362_hcd->board->reset(hcd->self.controller, 0); } else { isp1362_sw_reset(isp1362_hcd); } // chip has been reset. First we need to see a clock t = jiffies + msecs_to_jiffies(timeout); while (!clkrdy && time_before_eq(jiffies, t)) { spin_lock_irqsave(&isp1362_hcd->lock, flags); clkrdy = isp1362_read_reg16(isp1362_hcd, HCuPINT) & HCuPINT_CLKRDY; spin_unlock_irqrestore(&isp1362_hcd->lock, flags); if (!clkrdy) { msleep(4); } } spin_lock_irqsave(&isp1362_hcd->lock, flags); isp1362_write_reg16(isp1362_hcd, HCuPINT, HCuPINT_CLKRDY); spin_unlock_irqrestore(&isp1362_hcd->lock, flags); if (clkrdy) { ERR("Clock not ready after %lums\n", timeout); ret = -ENODEV; } return ret; }[/b] --- Quote End --- With best regards! <div align='right'><{post_snapback}> (index.php?act=findpost&pid=14801)</div> [/b] --- Quote End --- Thank you, too. So you just bypass the clock check?