The ARMADA-XP core supports the Gen2 speed.

Signed-off-by: Steffen Trumtrar <[email protected]>
---
 drivers/ata/sata_mv.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index b8d21525a7..dd326428f4 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -40,6 +40,9 @@ static void ata_ioports_init(struct ata_ioports *io,
 #define EDMA_EN                                (1 << 0)        /* enable EDMA 
*/
 #define EDMA_DS                                (1 << 1)        /* disable 
EDMA; self-negated */
 #define REG_EDMA_COMMAND__EATARST      0x00000004
+#define REG_EDMA_IORDY_TMOUT(n)                ((n) * 0x2000 + 0x2034)
+#define REG_SATA_IFCFG(n)              ((n) * 0x2000 + 0x2050)
+#define REG_SATA_IFCFG_GEN2EN          (1 << 7)
 
 #define REG_ATA_BASE                   0x2100
 #define REG_SSTATUS(n)                 ((n) * 0x2000 + 0x2300)
@@ -124,6 +127,13 @@ static int mv_sata_probe(struct device_d *dev)
                return ret;
        }
 
+       /* increase IORdy signal timeout */
+       writel(0x800, base + REG_EDMA_IORDY_TMOUT(0));
+       /* set GEN2i Speed */
+       tmp = readl(base + REG_SATA_IFCFG(0));
+       tmp |= REG_SATA_IFCFG_GEN2EN;
+       writel(tmp, base + REG_SATA_IFCFG(0));
+
        mv_soc_65n_phy_errata(base);
 
        writel(REG_EDMA_COMMAND__EATARST, base + REG_EDMA_COMMAND(0));
-- 
2.30.2


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to