u-boot-brain/drivers/block
Gabe Black 19d1d41e84 ahci: Make the AHCI code find the capacity of disks > 128 GB properly
In the structure returned by the ATA identify device command, there are two
fields which describe the device capacity. One is a 32 bit data type which
reports the number of sectors as a 28 bit LBA, and the other is a 64 bit data
type which is for a 48 bit LBA. If the device doesn't support 48 bit LBAs,
the small value is the only value with the correct size. If it supports more,
if the number of sectors is small enough to fit into 28 bits, both fields
reflect the correct value. If it's too large, the smaller field has 28 bits of
1s, 0xfffffff, and the other field has the correct value.

The AHCI driver is implemented by attaching to the generic SCSI code and
translating on the fly between SCSI binary data structures and AHCI data
structures. It responds to requests to execute specific SCSI commands by
executing the equivalent AHCI commands and then crafting a response which
matches what a SCSI disk would send.

The AHCI driver now considers both fields and chooses the correct one when
implementing both the SCSI READ CAPACITY (10) and READ CAPACITY (16) commands.

Signed-off-by: Gabe Black <gabeblack@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
2012-11-02 15:20:41 -07:00
..
ahci.c ahci: Make the AHCI code find the capacity of disks > 128 GB properly 2012-11-02 15:20:41 -07:00
ata_piix.c sata.h: Make all sata/ata drivers include <sata.h> 2012-10-15 11:54:03 -07:00
ata_piix.h sata.h: Make all sata/ata drivers include <sata.h> 2012-10-15 11:54:03 -07:00
dwc_ahsata.c sata.h: Make all sata/ata drivers include <sata.h> 2012-10-15 11:54:03 -07:00
dwc_ahsata.h sata.h: Make all sata/ata drivers include <sata.h> 2012-10-15 11:54:03 -07:00
fsl_sata.c sata.h: Make all sata/ata drivers include <sata.h> 2012-10-15 11:54:03 -07:00
fsl_sata.h powerpc/85xx: always implement the work-around for Erratum SATA_A001 2011-11-29 08:48:06 -06:00
ftide020.c ftide020: fix incorrect information display format 2011-11-18 17:26:14 +08:00
ftide020.h ftide020: add faraday ide ahb controller 2011-05-12 23:41:44 +02:00
libata.c silence misc printf formatting compiler warnings 2008-07-10 22:12:09 +02:00
Makefile Block: Remove MG DISK support 2012-06-21 20:53:09 +02:00
mvsata_ide.c mvsata: fix ide_preinit for missing disks 2011-12-06 23:59:30 +01:00
mxc_ata.c ATA: Squash warnings in mxc_ata. 2011-09-30 22:01:06 +02:00
pata_bfin.c sata.h: Make all sata/ata drivers include <sata.h> 2012-10-15 11:54:03 -07:00
pata_bfin.h sata.h: Make all sata/ata drivers include <sata.h> 2012-10-15 11:54:03 -07:00
sata_dwc.c sata.h: Make all sata/ata drivers include <sata.h> 2012-10-15 11:54:03 -07:00
sata_dwc.h Canyonlands SATA harddisk driver 2009-07-19 11:24:09 +02:00
sata_sil3114.c sata.h: Make all sata/ata drivers include <sata.h> 2012-10-15 11:54:03 -07:00
sata_sil3114.h Convert ISO-8859 files to UTF-8 2011-08-04 23:34:02 +02:00
sata_sil.c sata.h: Make all sata/ata drivers include <sata.h> 2012-10-15 11:54:03 -07:00
sata_sil.h sata.h: Make all sata/ata drivers include <sata.h> 2012-10-15 11:54:03 -07:00
sil680.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
sym53c8xx.c drivers/block/sym53c8xx.c: Fix GCC 4.6 build warning 2011-11-16 21:01:49 +01:00
systemace.c block: systemace: Simplify base and width initialization 2012-09-11 09:24:16 +02:00