The driver need wait for the device updating signature
to host. if we don't wait for it, the driver can not detect
the device(disk) when the system power up.

Signed-off-by: Dave Liu <[EMAIL PROTECTED]>
---
 drivers/block/fsl_sata.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/drivers/block/fsl_sata.c b/drivers/block/fsl_sata.c
index d14f5bc..d441a30 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);
-- 
1.5.4




-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
U-Boot-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to