u-boot-brain/drivers
Bin Meng 4df2b48fbe x86: ahci: Make sure interface is not busy after enabling the port
Each time U-Boot boots on Intel Crown Bay board, the displayed hard
drive information is wrong. It could be either wrong capacity or just
a 'Capacity: not available' message. After enabling the debug switch,
we can see the scsi inquiry command did not execute successfully.
However, doing a 'scsi scan' in the U-Boot shell does not expose
this issue.

SCSI:  Target spinup took 0 ms.
SATA link 1 timeout.
AHCI 0001.0100 32 slots 2 ports 3 Gbps 0x3 impl SATA mode
flags: ncq stag pm led clo only pmp pio slum part ccc apst
scanning bus for devices...
ahci_device_data_io: 0 byte transferred.   <--- scsi inquiry fails
ahci_device_data_io: 512 byte transferred.
ahci_device_data_io: 512 byte transferred.
ahci_device_data_io: 512 byte transferred.
  Device 0: (0:0) Vendor: ATA Prod.:  Rev: ?8
              Type: Hard Disk
	                  Capacity: 912968.3 MB = 891.5 GB (1869759264 x 512)
			  Found 1 device(s).

So uninitialized contents on the stack were passed to dev_print() to
display those wrong information.

The symptom were observed on two hard drives (one is Seagate, the
other one is Western Digital). The fix is to make sure the AHCI
interface is not busy by checking the error and status information
from task file register after enabling the port in ahci_port_start()
before proceeding other operations like scsi_scan().

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2015-01-23 17:24:53 -07:00
..
bios_emulator bios_emulator: Add some VESA interface debugging 2015-01-23 17:24:16 -07:00
block x86: ahci: Make sure interface is not busy after enabling the port 2015-01-23 17:24:53 -07:00
bootcount qe: move immap_qe.h from arch directory into common directory 2014-07-22 16:25:54 -07:00
core dm: device: Add newline to debug() messages 2014-12-11 13:18:43 -07:00
crypto crypto/fsl: Fix RNG instantiation failure. 2014-12-15 09:16:26 -08:00
ddr/fsl driver/ddr/fsl: Fix MRC_CYC calculation for DDR3 2014-12-15 09:15:12 -08:00
demo kbuild: refactor some makefiles 2014-09-24 18:30:29 -04:00
dfu dfu: dfu_get_buf: check the value of env dfu_bufsiz before use 2014-12-18 12:26:06 +01:00
dma dma: keystone_nav: remove spurious qm_cfg verification 2014-11-06 11:04:39 -05:00
fpga fpga: xilinx: Show fpga info if defined 2015-01-21 10:25:43 +01:00
gpio sunxi: gpio: Add support for gpio pins on the AXP209 pmic 2015-01-14 14:56:38 +01:00
hwmon kconfig: add blank Kconfig files 2014-09-24 18:30:28 -04:00
i2c i2c:mxc fix array size of i2c_data 2015-01-08 11:00:45 -05:00
input cros-ec-keyboard: Synchronize DT binding from linux 2015-01-05 17:45:16 -07:00
memory ARM: keystone: aemif: move aemif driver to drivers/memory/ti-aemif.c 2014-06-19 17:53:58 -04:00
misc i2c_eeprom: include <linux/err.h> to fix build error 2015-01-05 17:45:15 -07:00
mmc Merge branch 'master' of http://git.denx.de/u-boot-sunxi 2015-01-23 10:22:29 -05:00
mtd powerpc: ppc4xx: remove PPChameleonEVB, CATcenter boards 2015-01-23 16:53:36 -05:00
net powerpc: mpc5xxx: remove Total5200 board support 2015-01-23 16:53:52 -05:00
pci x86: pci: Don't stop when we get a vendor/device mismatch 2015-01-23 17:24:16 -07:00
pcmcia powerpc: mpc824x: remove MPC824X cpu support 2015-01-05 12:08:55 -05:00
power sunxi: axp221: Add ELDO[1-3] support 2015-01-22 12:34:56 +01:00
pwm pwm, imx6: add support for pwm modul on imx6 2014-07-23 12:25:42 +02:00
qe qe/deep-sleep: modify qe deep-sleep for generic board 2014-12-15 09:16:49 -08:00
rtc mpc8260: remove atc board support 2015-01-05 12:08:55 -05:00
serial x86: Use ePAPR defined properties for x86-uart 2015-01-13 07:24:57 -08:00
soc soc: keystone_serdes: generalize configuration mechanism 2014-10-23 11:27:28 -04:00
sound kconfig: add blank Kconfig files 2014-09-24 18:30:28 -04:00
spi qspi:fsl implement AHB read 2015-01-09 00:03:28 +05:30
thermal thermal: imx_thermal: Do not display calibration data 2014-12-01 10:20:18 +01:00
tpm Replace <compiler.h> with <linux/compiler.h> 2014-12-08 09:35:46 -05:00
twserial drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
usb usb: eth: asix88179: add ability to modify MAC address 2015-01-18 12:31:36 +01:00
video x86: Drop the x86_fb driver 2015-01-23 17:24:53 -07:00
watchdog kconfig: add blank Kconfig files 2014-09-24 18:30:28 -04:00
Kconfig kconfig: add blank Kconfig files 2014-09-24 18:30:28 -04:00
Makefile Merge branch 'master' of git://git.denx.de/u-boot-fsl-qoriq 2014-11-26 11:23:26 -05:00