From: Rob Herring <rob.herr...@calxeda.com> Some Intel SSDs can send a COMINIT after the initial COMRESET. This causes the link to go down and we need to re-initialize the link.
Signed-off-by: Rob Herring <rob.herr...@calxeda.com> --- drivers/block/ahci.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/block/ahci.c b/drivers/block/ahci.c index 79710ef..5ffdf95 100644 --- a/drivers/block/ahci.c +++ b/drivers/block/ahci.c @@ -260,8 +260,19 @@ static int ahci_host_init(struct ahci_probe_ent *probe_ent) if (!(tmp & (ATA_STAT_BUSY | ATA_STAT_DRQ))) break; udelay(1000); + tmp = readl(port_mmio + PORT_SCR_STAT) & 0xf; + if (tmp == 0x1) + break; j++; } + + tmp = readl(port_mmio + PORT_SCR_STAT) & 0xf; + if (tmp == 0x1) { + debug("SATA link %d down (COMINIT received), retrying...\n", i); + i--; + continue; + } + printf("Target spinup took %d ms.\n", j); if (j == WAIT_MS_SPINUP) debug("timeout.\n"); -- 1.8.1.2 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot