summaryrefslogtreecommitdiff
path: root/drivers/block/fsl_sata.c
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2008-07-07 09:51:25 +0200
committerStefan Roese <sr@denx.de>2008-07-07 09:51:25 +0200
commit7c6237b3e2f2ee0098897da39b79aff4642b8946 (patch)
treed768b7851bb688f543da0a3ed50c927a2bde2804 /drivers/block/fsl_sata.c
parentdd1c5523d6f44e842e69f2fcb50788c6060eab86 (diff)
parentc956717ab25c962ef49d49064dfc73f4edcba1fb (diff)
downloadu-boot-7c6237b3e2f2ee0098897da39b79aff4642b8946.tar.gz
Merge branch 'master' of /home/stefan/git/u-boot/u-boot
Diffstat (limited to 'drivers/block/fsl_sata.c')
-rw-r--r--drivers/block/fsl_sata.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/block/fsl_sata.c b/drivers/block/fsl_sata.c
index d14f5bc6bf..d441a30ed5 100644
--- a/drivers/block/fsl_sata.c
+++ b/drivers/block/fsl_sata.c
@@ -248,6 +248,10 @@ int init_sata(int dev)
else
printf(" %s ", sata->name);
+ /* Wait PHY RDY signal changed for 500ms */
+ ata_wait_register(&reg->hstatus, HSTATUS_PHY_RDY,
+ HSTATUS_PHY_RDY, 500);
+
/* Check PHYRDY */
val32 = in_le32(&reg->hstatus);
if (val32 & HSTATUS_PHY_RDY) {
@@ -258,6 +262,10 @@ int init_sata(int dev)
return -1;
}
+ /* Wait for signature updated, which is 1st D2H */
+ ata_wait_register(&reg->hstatus, HSTATUS_SIGNATURE,
+ HSTATUS_SIGNATURE, 10000);
+
if (val32 & HSTATUS_SIGNATURE) {
sig = in_le32(&reg->sig);
debug("Signature updated, the sig =%08x\n\r", sig);