summaryrefslogtreecommitdiff
path: root/drivers/block
AgeCommit message (Collapse)Author
2016-05-24block: dwc_ahsata: support i.MX6DQPlusPeng Fan
i.MX6DQPlus support sata interface, so not return failure when CPU is i.MX6DQPlus. In this patch, also use simpler runtime cpu dections macros to replace is_cpu_type. Signed-off-by: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]> Cc: Simon Glass <[email protected]> Cc: Tang Yuantian <[email protected]> Cc: Shaohui Xie <[email protected]> Cc: Bin Meng <[email protected]>
2016-05-17dm: blk: Add functions to select a hardware partitionSimon Glass
The block device uclass does not currently support selecting a particular hardware partition but this is needed for MMC. Add it so that the blk API can support MMC properly. Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: blk: Free the block device name when unboundSimon Glass
Mark the device name as allocated so that it will be freed correctly when the device is unbound. Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: blk: Fix allocation of block-device numberingSimon Glass
Due to code ordering the block devices are not numbered sequentially. Fix this. Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: systemace: Add driver-mode block-device supportSimon Glass
Add support for CONFIG_BLK to the systemace driver. Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: systemace: Reorder function to avoid forward declarataionsSimon Glass
Move the systemace_get_dev() function below systemace_read() so that we can avoid a forward declaration. Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: blk: Add a easier way to create a named block deviceSimon Glass
Add a function that automatically builds the device name given the parent and a supplied string. Most callers will want to do this, so putting this functionality in one place makes more sense. Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: blk: Allow blk_create_device() to allocate the device numberSimon Glass
Allow a devnum parameter of -1 to indicate that the device number should be alocated automatically. The next highest available device number for that interface type is used. Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: sandbox: Drop the host_get_dev() functionSimon Glass
This function is implemented by the legacy block functions now. Drop it. Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: blk: Drop the systemace.h headerSimon Glass
This has nothing of consequence. Remove it and its only inclusion site. Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: systemace: Drop the get_dev() functionSimon Glass
This function is implemented by the legacy block functions now. Drop it. Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: mmc: Add an implementation of the 'devnum' functionsSimon Glass
Now that the MMC code accesses devices by number, we can implement this same interface for driver model, allowing MMC to support using driver model for block devices. Add the required functions to the uclass. Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: sandbox: Add a legacy host block interfaceSimon Glass
Add a legacy block interface for sandbox host. Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: systemace: Add a legacy block interfaceSimon Glass
Add a legacy block interface for systemace. Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: blk: Add a legacy block interfaceSimon Glass
There is quite a bit of duplicated common code related to block devices in the IDE and SCSI implementations. Create some helper functions that can be used to reduce the duplication. These rely on a linker list of interface-type drivers Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: scsi: Rename CONFIG_CMD_SCSI to CONFIG_SCSISimon Glass
This option currently enables both the command and the SCSI functionality. Rename the existing option to CONFIG_SCSI since most of the code relates to the feature. Signed-off-by: Simon Glass <[email protected]>
2016-05-17sandbox: Add dummy SATA functionsSimon Glass
Add some functions needed by the SATA code. This allows it to be compiled for sandbox, thus increasing build coverage. Signed-off-by: Simon Glass <[email protected]>
2016-05-17sandbox: Add dummy SCSI functionsSimon Glass
Add some functions needed by the SCSI code. This allows it to be compiled for sandbox, thus increasing build coverage. Signed-off-by: Simon Glass <[email protected]>
2016-05-17dm: Rename disk uclass to ahciSimon Glass
This started as 'ahci' and was renamed to 'disk' during code review. But it seems that this is too generic. Now that we have a 'blk' uclass, we can use that as the generic piece, and revert to ahci for this. Signed-off-by: Simon Glass <[email protected]>
2016-05-17Revert "dm: sandbox: Drop the pre-DM host implementation"Simon Glass
Bring this support back so that sandbox can be compiled with CONFIG_BLK. This allows sandbox to have greater build coverage during the block-device transition. This can be removed again later. This reverts commit 33cf727b1634dbd9cd68a6ebc444a88f053822d7. Signed-off-by: Simon Glass <[email protected]>
2016-04-18ahci: flush dcache before issuing commandTang Yuantian
Ensure data the following sata command used is flushed out of dcache and written to physical memory or timeout error may happen. Signed-off-by: Tang Yuantian <[email protected]>
2016-04-04block: Add support for Ceva sataMichal Simek
Initial Ceva Sata init code. Signed-off-by: Michal Simek <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-04-01drivers: block: add block device cacheEric Nelson
Add a block device cache to speed up repeated reads of block devices by various filesystems. This small amount of cache can dramatically speed up filesystem operations by skipping repeated reads of common areas of a block device (typically directory structures). This has shown to have some benefit on FAT filesystem operations of loading a kernel and RAM disk, but more dramatic benefits on ext4 filesystems when the kernel and/or RAM disk are spread across multiple extent header structures as described in commit fc0fc50. The cache is implemented through a minimal list (block_cache) maintained in most-recently-used order and count of the current number of entries (cache_count). It uses a maximum block count setting to prevent copies of large block reads and an upper bound on the number of cached areas. The maximum number of entries in the cache defaults to 32 and the maximum number of blocks per cache entry has a default of 2, which has shown to produce the best results on testing of ext4 and FAT filesystems. The 'blkcache' command (enabled through CONFIG_CMD_BLOCK_CACHE) allows changing these values and can be used to tune for a particular filesystem layout. Signed-off-by: Eric Nelson <[email protected]>
2016-03-22Fix spelling of "transferred".Vagrant Cascadian
Signed-off-by: Vagrant Cascadian <[email protected]> Acked-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-03-17dm: sandbox: Drop the pre-DM host implementationSimon Glass
Driver model is used for host device block devices now, so we don't need the old code. Remove it. Signed-off-by: Simon Glass <[email protected]> Tested-by: Stephen Warren <[email protected]>
2016-03-14dm: sandbox: Add driver-model block-device support for sandboxSimon Glass
Update the host driver to support driver model for block devices. A future commit will remove the old code, but for now it is useful to be able to use it both with and without CONFIG_BLK. Signed-off-by: Simon Glass <[email protected]> Tested-by: Stephen Warren <[email protected]>
2016-03-14dm: sandbox: Prepare block driver for driver-model conversionSimon Glass
Make a few minor changes to make it easier to add driver-model support. Signed-off-by: Simon Glass <[email protected]> Tested-by: Stephen Warren <[email protected]>
2016-03-14dm: blk: Add a block-device uclassSimon Glass
Add a uclass for block devices. These provide block-oriented data access, supporting reading, writing and erasing of whole blocks. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]> Tested-by: Stephen Warren <[email protected]>
2016-03-14dm: block: Rename device number member dev to devnumSimon Glass
This is a device number, and we want to use 'dev' to mean a driver model device. Rename the member. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]> Tested-by: Stephen Warren <[email protected]>
2016-03-14dm: part: Rename some partition functionsSimon Glass
Rename three partition functions so that they start with part_. This makes it clear what they relate to. Signed-off-by: Simon Glass <[email protected]> Tested-by: Stephen Warren <[email protected]>
2016-03-14dm: Drop the block_dev_desc_t typedefSimon Glass
Use 'struct' instead of a typdef. Also since 'struct block_dev_desc' is long and causes 80-column violations, rename it to struct blk_desc. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]> Tested-by: Stephen Warren <[email protected]>
2016-02-06Use correct spelling of "U-Boot"Bin Meng
Correct spelling of "U-Boot" shall be used in all written text (documentation, comments in source files etc.). Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Minkyu Kang <[email protected]>
2016-01-24ahci: Add a disk-controller uclassSimon Glass
Add a uclass ID for a disk controller. This can be used by AHCI/SATA or other controller types. There are no operations and no interface so far, but it is possible to probe a SATA device. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2016-01-14Fix GCC format-security errors and convert sprintfs.Ben Whitten
With format-security errors turned on, GCC picks up the use of sprintf with a format parameter not being a string literal. Simple uses of sprintf are also converted to use strcpy. Signed-off-by: Ben Whitten <[email protected]> Acked-by: Wolfgang Denk <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-01-14Merge git://www.denx.de/git/u-boot-marvellTom Rini
Conflicts: arch/arm/Kconfig Signed-off-by: Tom Rini <[email protected]>
2016-01-14arm: mvebu: Move SoC selection (A38X vs AXP) into KconfigStefan Roese
Until now, the SoC selection for the ARCH_MVEBU platforms has been done in the config header. Using CONFIG_ARMADA_XP in a non-clear way. As it needed to get selected for AXP and A38x based boards. This patch now changes this to move the SoC selection to Kconfig. And also uses CONFIG_ARCH_MVEBU as a common define for both AXP and A38x. This makes things a bit clearer - especially for new board additions. Additionally the defines CONFIG_SYS_MVEBU_DDR_AXP and CONFIG_SYS_MVEBU_DDR_A38X are replaced with the already available CONFIG_ARMADA_38X and CONFIG_ARMADA_XP. And CONFIG_DDR3 is removed, as its not referenced anywhere. Signed-off-by: Stefan Roese <[email protected]> Cc: Luka Perkov <[email protected]>
2016-01-14sata: Add SATA driver with DMA support for Marvell Kirkwood and Armada XPTor Krill
This patch adds a new SATA driver for the Marvell Kirkwood and Armada 370 / XP SoC's. This driver supports the SATA controller of some Mavell SoC's. Here a (most likely incomplete) list of the supported SoC's: - Kirkwood - Armada 370 - Armada XP This driver implementation is an alternative to the already available driver via the "ide" commands interface (drivers/block/mvsata_ide.c). But this driver only supports PIO mode and as this new driver also supports transfer via DMA, its much faster. Please note, that the newer SoC's (e.g. Armada 38x) are not supported by this driver. As they have an AHCI compatible SATA controller integrated. The original version of this driver was sent by Tor Krill to the U-Boot list a few years ago. Here the link: http://lists.denx.de/pipermail/u-boot/2010-June/073147.html Changes by Stefan: - Coding-style cleanup - Support for Armada XP added - MBUS window setup added - D-cache flush and invalidation added - works with dcache enabled on Armada XP - Removed mdelay() from ata_wait_register() and add timer based timeout detection to speed up the transfer Signed-off-by: Tor Krill <[email protected]> Signed-off-by: Stefan Roese <[email protected]> Cc: Luka Perkov <[email protected]> Cc: Tom Rini <[email protected]>
2016-01-13block: pass block dev not num to read/write/erase()Stephen Warren
This will allow the implementation to make use of data in the block_dev structure beyond the base device number. This will be useful so that eMMC block devices can encompass the HW partition ID rather than treating this out-of-band. Equally, the existence of the priv field is crying out for this patch to exist. Signed-off-by: Stephen Warren <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-01-12dm: ahci: Convert to use new DM PCI APISimon Glass
Convert this driver to use the new driver model PCI API. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2015-12-05Fix typo: firstly -> first.Vagrant Cascadian
Signed-off-by: Vagrant Cascadian <[email protected]> Acked-by: Marek Vasut <[email protected]>
2015-12-05Fix typo: commmand -> command.Vagrant Cascadian
Signed-off-by: Vagrant Cascadian <[email protected]> Reviewed-by: Joe Hershberger <[email protected]>
2015-11-19Move console definitions into a new console.h fileSimon Glass
The console includes a global variable and several functions that are only used by a small subset of U-Boot files. Before adding more functions, move the definitions into their own header file. Signed-off-by: Simon Glass <[email protected]>
2015-11-12block: ahci: Remove dead codeFabio Estevam
CONFIG_AHCI_SETFEATURES_XFER is not selected by any user, so delete the dead code. Signed-off-by: Fabio Estevam <[email protected]> Reviewed-by: Bin Meng <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2015-09-11Move ALLOC_CACHE_ALIGN_BUFFER() to the new memalign.h headerSimon Glass
Now that we have a new header file for cache-aligned allocation, we should move the stack-based allocation macro there also. Signed-off-by: Simon Glass <[email protected]>
2015-07-23arm: mvebu: add Armada XP SATA supportAnton Schubert
This patch initializes the SATA address windows on Armada XP and allows it to work with the existing mvsata_ide driver. It also adds the necessary configuration for the db-mv784mp-gp board. Signed-off-by: Anton Schubert <[email protected]> Tested-by: Stefan Roese <[email protected]> Cc: Luka Perkov <[email protected]>
2015-07-14drivers: block: Remove the ata_piix driverBin Meng
This driver was originally added to support the native IDE mode for Intel chipset, however it has some bugs like not supporting ATAPI devices, endianness issue, or even broken build when CONFIG_LAB48. Given no board is using this driver as of today, rather than fixing all these issues we just remove it from the source tree. Signed-off-by: Bin Meng <[email protected]> Acked-by: Simon Glass <[email protected]>
2015-07-10Merge git://git.denx.de/u-boot-marvellTom Rini
2015-07-10block: ahci: Don't enable port interruptsStefan Roese
This patch changes the initialization of the AHCI controller to not enable the default interrupts (DEF_PORT_IRQ). As interrupts are not used in U-Boot in general, this should not break the common AHCI driver operation. This change is needed to support the Marvell Armada 38x AHCI controller. With interrupts enabled, this results in timeouts in ahci_device_data_io(). Not enabling these interrupts fixes this problem and the common AHCI driver works fine. Signed-off-by: Stefan Roese <[email protected]> Reviewed-by: Simon Glass <[email protected]> Cc: Tom Rini <[email protected]> Cc: Hans de Goede <[email protected]> Cc: Luka Perkov <[email protected]>
2015-07-09ahci: Fix compiling warnings under 64bit platformsTang Yuantian
When compling under 64bit platforms, there are lots of warnings, like: drivers/block/ahci.c:114:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] u8 *port_mmio = (u8 *)probe_ent->port[port].port_mmio; ^ drivers/block/ahci.c: In function ?.hci_host_init?. drivers/block/ahci.c:218:49: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] probe_ent->port[i].port_mmio = ahci_port_base((u32) mmio, i); ...... Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Shaohui Xie <[email protected]> Signed-off-by: Tang Yuantian <[email protected]>
2015-06-12ahci: extend data io wait to 10sMark Langsdorf
The AHCI driver currently waits 5s before timing out when sending a data command to a drive. Some drives take upwards of 8s to respond to the initial data command while they're spinning up. Increase the data io timeout to 10s so that those drives can be found on initial scsi scan. Signed-off-by: Mark Langsdorf <[email protected]> Signed-off-by: Andre Przywara <[email protected]>