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 agoHi, 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 </div> --- 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# [/b] --- 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!