summaryrefslogtreecommitdiff
path: root/common/usb_storage.c
Commit message (Collapse)AuthorAgeLines
* usb: replace wait_ms() with mdelay()Mike Frysinger2012-03-19-8/+8
| | | | | | | | | | | | | | | | | | | | | | | Common code has a mdelay() func, so use that instead of the usb-specific wait_ms() func. This also fixes the build errors: ohci-hcd.c: In function 'submit_common_msg': /usr/local/src/u-boot/blackfin/include/usb.h:202:44: sorry, unimplemented: inlining failed in call to 'wait_ms': function body not available ohci-hcd.c:1519:9: sorry, unimplemented: called from here /usr/local/src/u-boot/blackfin/include/usb.h:202:44: sorry, unimplemented: inlining failed in call to 'wait_ms': function body not available ohci-hcd.c:1816:10: sorry, unimplemented: called from here /usr/local/src/u-boot/blackfin/include/usb.h:202:44: sorry, unimplemented: inlining failed in call to 'wait_ms': function body not available ohci-hcd.c:1827:10: sorry, unimplemented: called from here /usr/local/src/u-boot/blackfin/include/usb.h:202:44: sorry, unimplemented: inlining failed in call to 'wait_ms': function body not available ohci-hcd.c:1844:10: sorry, unimplemented: called from here /usr/local/src/u-boot/blackfin/include/usb.h:202:44: sorry, unimplemented: inlining failed in call to 'wait_ms': function body not available ohci-hcd.c:1563:11: sorry, unimplemented: called from here /usr/local/src/u-boot/blackfin/include/usb.h:202:44: sorry, unimplemented: inlining failed in call to 'wait_ms': function body not available ohci-hcd.c:1583:9: sorry, unimplemented: called from here make[1]: *** [ohci-hcd.o] Error 1 Signed-off-by: Mike Frysinger <vapier@gentoo.org> Acked-by: Marek Vasut <marex@denx.de>
* usb_storage: Fix EHCI "out of buffer pointers" with CD-ROMKyle Moffett2012-01-05-20/+25
| | | | | | | | | | | | | | | | | When performing large bulk reads from a CD or DVD using the U-Boot usb_storage driver, it generates requests of up to 20 blocks at a time. With a standard 512-byte block size, that is 10240 bytes and within the limit of U-Boot's EHCI driver (maximum 5 pages at 4k per page). Unfortunately CD-ROM media has a 2048-byte blocksize, resulting in a maximum transfer size of 40960 bytes, which does not fit. Since the EHCI specification is impossibly obtuse and far beyond my comprehension, I chose to dynamically compute the limit based on the blocksize. Signed-off-by: Kyle Moffett <Kyle.D.Moffett@boeing.com>
* GCC4.6: Squash subsequent warnings in usb_storage.cMarek Vasut2011-10-27-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | usb_storage.c: In function ‘us_one_transfer’: usb_storage.c:377:7: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 2 has type ‘long unsigned int’ [-Wformat] usb_storage.c:389:6: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat] usb_storage.c:394:6: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat] usb_storage.c: In function ‘usb_stor_BBB_reset’: usb_storage.c:442:2: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 3 has type ‘long unsigned int’ [-Wformat] usb_storage.c:448:2: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 3 has type ‘long unsigned int’ [-Wformat] usb_storage.c:454:2: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 3 has type ‘long unsigned int’ [-Wformat] usb_storage.c: In function ‘usb_stor_CB_reset’: usb_storage.c:482:2: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 3 has type ‘long unsigned int’ [-Wformat] usb_storage.c: In function ‘usb_stor_CB_comdat’: usb_storage.c:572:3: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 3 has type ‘long unsigned int’ [-Wformat] usb_storage.c:584:4: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 3 has type ‘long unsigned int’ [-Wformat] usb_storage.c: In function ‘usb_stor_BBB_transport’: usb_storage.c:782:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘long unsigned int’ [-Wformat] usb_storage.c: In function ‘usb_stor_CB_transport’: usb_storage.c:807:2: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 3 has type ‘long unsigned int’ [-Wformat] usb_storage.c:830:3: warning: format ‘%X’ expects argument of type ‘unsigned int’, but argument 2 has type ‘long unsigned int’ [-Wformat] usb_storage.c:857:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat] Signed-off-by: Marek Vasut <marek.vasut@gmail.com> Cc: Wolfgang Denk <wd@denx.de> Cc: Simon Glass <sjg@chromium.org> Cc: Mike Frysinger <vapier@gentoo.org> Cc: Remy Bohmer <linux@bohmer.net>
* GCC4.6: Squash warning in usb_storage.cMarek Vasut2011-10-27-3/+4
| | | | | | | | | | | usb_storage.c: In function ‘usb_stor_CB_reset’: usb_storage.c:466:6: warning: variable ‘result’ set but not used [-Wunused-but-set-variable] Signed-off-by: Marek Vasut <marek.vasut@gmail.com> Cc: Wolfgang Denk <wd@denx.de> Cc: Simon Glass <sjg@chromium.org> Cc: Mike Frysinger <vapier@gentoo.org>
* Revert "GCC4.6: Convert various empty macros to inline functions"Wolfgang Denk2011-10-04-1/+1
| | | | | | | | | | | | This reverts commit 60ce53cf9f408d9ad721f8e7a87d6a564e6d5bac. The commit causes build breakage for a number of boards. This results from the fact that now the arguments of debug() actually get referenced (even if there is hope that the compiler will optimize away the debug() call). The obvious fix to that probem (change the code to always declare the referenced variables and data structures) increases the code size, and was this rejected. So it was decided to revert this commit until a better solution is found.
* GCC4.6: Convert various empty macros to inline functionsMarek Vasut2011-10-01-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Fix the following gcc4.6 problems: cmd_date.c: In function ‘do_date’: cmd_date.c:50:6: warning: variable ‘old_bus’ set but not used [-Wunused-but-set-variable] asix.c: In function ‘asix_init’: asix.c:317:6: warning: variable ‘rx_ctl’ set but not used [-Wunused-but-set-variable] usb.c: In function ‘usb_parse_config’: usb.c:331:17: warning: variable ‘ch’ set but not used [-Wunused-but-set-variable] usb.c: In function ‘usb_hub_port_connect_change’: usb.c:1123:29: warning: variable ‘portchange’ set but not used [-Wunused-but-set-variable] usb.c: In function ‘usb_hub_configure’: usb.c:1183:25: warning: variable ‘hubsts’ set but not used [-Wunused-but-set-variable] usb_storage.c: In function ‘usb_stor_CB_reset’: usb_storage.c:466:6: warning: variable ‘result’ set but not used [-Wunused-but-set-variable] Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
* disk/part.c: Make features optionalMatthew McClintock2011-07-26-1/+2
| | | | | | | | | If we don't want to build support for any partition types we can now add #undef CONFIG_PARTITIONS in a board config file to keep this from being compiled in. Otherwise boards assume this is compiled in by default Signed-off-by: Matthew McClintock <msm@freescale.com>
* Fix misc spelling errors found by lintianLoïc Minier2011-04-12-1/+1
| | | | Signed-off-by: Loïc Minier <loic.minier@linaro.org>
* Remove unnecessary reset in usb_stor_get_infoErik Hansen2011-04-02-25/+0
| | | | | | | | The reset request in usb_stor_get_info is causing issues with some usb sticks. Some of these sticks vendor_id/product_id have been hardcoded to not reset but better is to remove the reset altogether. It is not needed. Signed-off-by: Erik Hansen <erik@makarta.com>
* usb_storage: constify us_direction lookup tableMike Frysinger2010-10-22-1/+1
| | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* usb: Add support for multiple-LUN mass storage devicesLudovic Courtès2010-10-13-4/+35
| | | | | | | | | | | | This patch changes `usb_stor_scan' to scan all the LUNs of each mass storage device. It also fixes the various commands to correctly set the LUN field. Notably, it allows each LUN of GuruPlug's microSD card reader to be accessed. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Acked-by: Prafulla Wadaskar <prafulla@marvell.com>
* usb_storage.c: change progress output in debug() messageWolfgang Denk2010-07-24-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The dots printed by common/usb_storage.c as progress meter corrupt the output for example of "fatls usb" commands like this: => fatls usb 0 . <<==== here 29 file.001 29 file.002 29 file.003 29 file.004 29 file.005 29 file.006 29 file.007 29 file.008 29 file.009 29 file.010 29 file.011 29 file.012 29 file.013 29 file.014 29 file.015 29 file.016 . <<==== here 29 file.017 29 file.018 29 file.019 ... Turn the progress output into a debug message. Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Remy Bohmer <linux@bohmer.net>
* usb_storage.c: initialize device typeWolfgang Denk2010-07-24-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The device type was left uninitialized which caused later tests against DEV_TYPE_UNKNOWN to fail. In the result, "usb part" would attempt to print information about non-existent devices like this: => usb part print_part of 0 Partition Map for USB device 0 -- Partition Type: DOS Partition Start Sector Num Sectors Type 1 0 2031616 f8 print_part of 1 ## Unknown partition table print_part of 2 ## Unknown partition table print_part of 3 ## Unknown partition table print_part of 4 ## Unknown partition table => By initializing the type as DEV_TYPE_UNKNOWN we avoid all the "Unknown partition table" messages. [Note: the "print_part of ?" messages is left over debug code that will be removed in another patch.] Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Remy Bohmer <linux@bohmer.net>
* USB storage probeKim B. Heino2010-04-08-2/+2
| | | | | | | | | | | | | While debugging one ill behaving USB device I found two bugs in USB storage probe. usb_stor_get_info() returns -1 (error), 0 (skip) or 1 (ok). First part of this patch fixes error case. Second part fixes usb_inquiry()'s retry counter handling. Original code had retry = -1 on error case, not retry = 0 as checked in the next line. Signed-off-by: Kim B. Heino <Kim.Heino@bluegiga.com>
* USB storage countKim B. Heino2010-04-08-1/+1
| | | | | | | | | | | | | | | | Here's another USB storage patch. Currently U-Boot handles storage devices #0 - #4 as valid devices, even if there is none connected. This patch fixes usb_stor_get_dev() to check detected device count instead of MAX-define. This is very important for ill behaving devices. usb_dev_desc[] can be partially initialized if device probe fails. After fixing get_dev() it was easy to fix "usb part" etc commands. Previously it outputed "Unknown partition table" five times, now it's "no USB devices available". Signed-off-by: Kim B. Heino <Kim.Heino@bluegiga.com>
* usb: write command for RAW partition.Mahavir Jain2009-12-20-0/+99
| | | | | | | | | | | | | | This patch implements write support to usb device with raw partition. It will be useful for filesystem write support to usb device from u-boot in future. Tested with writing kernel image to raw usb disk & booting with usb read command into ram. [Note: run usb part to get info about start sector & number of sectors on a partition for usb write operation.] Signed-off-by: Mahavir Jain <mjain@marvell.com>
* USB Consolidate descriptor definitionsTom Rix2009-12-20-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The header files usb.h and usbdescriptors.h have the same nameed structure definitions for usb_config_descriptor usb_interface_descriptor usb_endpoint_descriptor usb_device_descriptor usb_string_descriptor These are out right duplicates in usb.h usb_device_descriptor usb_string_descriptor This one has extra unused elements usb_endpoint_descriptor unsigned char bRefresh unsigned char bSynchAddress; These in usb.h have extra elements at the end of the usb 2.0 specified descriptor and are used. usb_config_descriptor usb_interface_descriptor The change is to consolidate the definition of the descriptors to usbdescriptors.h. The dublicates in usb.h are removed. The extra element structure will have their name shorted by removing the '_descriptor' suffix. So usb_config_descriptor -> usb_config usb_interface_descriptor -> usb_interface For these, the common descriptor elements are accessed now by an element 'desc'. As an example - if (iface->bInterfaceClass != USB_CLASS_HUB) + if (iface->desc.bInterfaceClass != USB_CLASS_HUB) This has been compile tested on MAKEALL arm, ppc and mips. Signed-off-by: Tom Rix <Tom.Rix@windriver.com>
* Fix e-mail address of Gary Jennejohn.Detlev Zundel2009-05-15-1/+1
| | | | Signed-off-by: Detlev Zundel <dzu@denx.de>
* USB: Remove LUN number from CDBAbraham, Thomas2009-02-15-5/+0
| | | | | | | The LUN number is not part of the Command Descriptor Block (CDB) for scsi inquiry, request sense, test unit ready, read capacity and read10 commands. This patch removes the LUN number information from the CDB. Signed-off-by: Thomas Abraham <t-abraham@ti.com> Signed-off-by: Remy Bohmer <linux@bohmer.net>
* usb.h: use standard __LITTLE_ENDIAN from Linux headersMike Frysinger2009-01-28-2/+0
| | | | | | | | | Rather than forcing people to define a custom "LITTLEENDIAN", just use the __LITTLE_ENDIAN one from the Linux byteorder headers that every arch is already setting up. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Remy Bohmer <linux@bohmer.net>
* usb_storage: do not reset SanDisk Corporation U3 Cruzer Micro USB thumb driveBryan Wu2009-01-28-0/+7
| | | | | | | | | The SanDisk Corporation U3 Cruzer Micro 1/4GB Flash Drive 000016244373FFB4 does not like to be reset, so check for it. Signed-off-by: Bryan Wu <bryan.wu@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Remy Bohmer <linux@bohmer.net>
* USB storage cleanup patchMichael Trimarchi2009-01-28-316/+394
| | | | | | | Cleanup usb storage Signed-off-by: Michael Trimarchi <trimarchimichael@yahoo.it> Signed-off-by: Remy Bohmer <linux@bohmer.net>
* common: Move conditional compilation to MakefileJean-Christophe PLAGNIOL-VILLARD2008-08-13-7/+0
| | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* Code cleanup: fix old style assignment ambiguities like "=-" etc.Wolfgang Denk2008-07-14-3/+3
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* USB: replace old swap_ with proper endianess conversion macrosChristian Eggers2008-05-22-18/+10
| | | | | Signed-off-by: Christian Eggers <ceggers@gmx.de> Signed-off-by: Markus Klotzbuecher <mk@denx.de>
* Coding Style cleanup; update CHANGELOGWolfgang Denk2008-04-13-1/+1
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* USB, Storage: fix a bug introduced in commitMarkus Klotzbuecher2008-03-26-4/+4
| | | | | | | | f6b44e0e4d18fe507833a0f76d24a9aa72c123f1 that will cause usb_stor_info to only print only information on one storage device, but not for multiple. Signed-off-by: Markus Klotzbuecher <mk@denx.de>
* USB Storage, add meaningful return valueAras Vaichas2008-03-26-3/+6
| | | | | | | This patch changes the "usb storage" command to return success if it finds a USB storage device, otherwise it returns error. Signed-off-by: Markus Klotzbuecher <mk@denx.de>
* Fix compiler warnings for PPC systems. Update CHANGELOG.Wolfgang Denk2007-11-18-1/+1
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* common/: Remove lingering references to CFG_CMD_* symbols.Jon Loeliger2007-07-10-1/+1
| | | | | | | | Fixed some broken instances of "#ifdef CMD_CFG_IDE" too. Those always evaluated TRUE, and thus were always compiled even when IDE really wasn't defined/wanted. Signed-off-by: Jon Loeliger <jdl@freescale.com>
* common/* non-cmd*: Remove obsolete references to CONFIG_COMMANDSJon Loeliger2007-07-08-1/+1
| | | | Signed-off-by: Jon Loeliger <jdl@freescale.com>
* common/ non-cmd: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).Jon Loeliger2007-07-04-1/+1
| | | | | | | | | | | | | | This is a compatibility step that allows both the older form and the new form to co-exist for a while until the older can be removed entirely. All transformations are of the form: Before: #if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) After: #if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT) Signed-off-by: Jon Loeliger <jdl@freescale.com>
* [PATCH 9_9] Use "void *" not "unsigned long *" for block dev read_write ↵Grant Likely2007-02-20-2/+2
| | | | | | | | | buffer pointers Block device read/write is anonymous data; there is no need to use a typed pointer. void * is fine. Also add a hook for block_read functions Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* [PATCH 1_4] Merge common get_dev() routines for block devicesGrant Likely2007-02-20-1/+2
| | | | | | | Each of the filesystem drivers duplicate the get_dev routine. This change merges them into a single function in part.c Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* Coding style cleanupWolfgang Denk2006-10-20-2/+2
|
* Add a fix for a buggy USB device on the FO300 board.Bartlomiej Sieka2006-08-22-0/+25
|
* Fix problems with SanDisk Corporation Cruzer Micro USB memory stick.Bartlomiej Sieka2006-07-13-0/+4
|
* Cleanup for GCC-4.xWolfgang Denk2005-10-13-4/+4
|
* (re)enabled scsi commands do_scsi() and do_scsiboot()Wolfgang Denk2005-08-04-4/+11
| | | | Patch by Denis Peter, 06 Dec 2004
* Coding style cleanupWolfgang Denk2005-08-02-5/+5
|
* Fix low-level OHCI transfers for ARM920t and MPC5xxxWolfgang Denk2005-07-21-45/+74
| | | | | | | | A new, Windows compatible init sequence was also backported from Linux 2.6, but disabled with #undef NEW_INIT_SEQ as it wouldn't change the behaviour of the memopry sticks we tested. Maybe it's not relevant for mass storage devices. For recerence, see file common/usb.c, function usb_new_device(), section #ifdef NEW_INIT_SEQ.
* * Fix minor NAND JFFS2 related issuewdenk2004-05-03-1/+4
| | | | | | | | | * Fixes for SL811 USB controller: - implement workaround for broken memory stick - improve error handling * Increase packet send timeout to 10 ms in cpu/mpc8xx/scc.c to better cope with congested networks.
* * Fix SDRAM timings for LITE5200 / IceCube boardwdenk2004-03-02-2/+6
| | | | | | * Handle Auti-MDIX / connection status for INCA-IP * Fix USB problems when attempting to read 0 bytes
* * Patch by Markus Pietrek, 24 Feb 2004:wdenk2004-02-26-38/+46
| | | | | | | | | | | | | NS9750 DevBoard added * Patch by Pierre AUBERT, 24 Feb 2004 add USB support for MPC5200 * Patch by Steven Scholz, 24 Feb 2004: - fix MII commands to use values from last command * Patch by Torsten Demke, 24 Feb 2004: Add support for the eXalion platform (SPSW-8240, F-30, F-300)
* Add auto-update code for TRAB board using USB memory stickswdenk2003-09-17-1/+1
|
* * Patch by Gary Jennejohn, 11 Sep 2003:wdenk2003-09-11-2/+2
| | | | | | | | | | | - allow for longer timeouts for USB mass storage devices * Patch by Denis Peter, 11 Sep 2003: - fix USB data pointer assignment for bulk only transfer. - prevent to display erased directories in FAT filesystem. * Change output format for NAND flash - make it look like for other memory, too
* * Add support for USB Mass Storage Devices (BBB)wdenk2003-09-10-36/+322
| | | | | | (tested with USB memory sticks only) * Avoid flicker on TRAB's VFD
* * Code cleanup:wdenk2003-06-27-10/+0
| | | | | | | | | - remove trailing white space, trailing empty lines, C++ comments, etc. - split cmd_boot.c (separate cmd_bdinfo.c and cmd_load.c) * Patches by Kenneth Johansson, 25 Jun 2003: - major rework of command structure (work done mostly by Michal Cendrowski and Joakim Kristiansen)
* Initial revisionwdenk2002-08-17-0/+895