I discovered I didn't need to do the reset when falling down to 1.5g. So here
is a patch that simplifies it.
Signed-off-by: Dan Lykowski<[email protected]>
Index: src/southbridge/amd/sb600/sb600_sata.c
===================================================================
--- src/southbridge/amd/sb600/sb600_sata.c (revision 3891)
+++ src/southbridge/amd/sb600/sb600_sata.c (working copy)
@@ -181,23 +181,14 @@
/* Try to do something about it. */
printk_spew("SATA device detected but not talking. Trying lower speed.\n");
/* Read in Port-N Serial ATA Control Register */
byte = readb(sata_bar5 + 0x12C + 0x80 * i);
-
- /* Set Reset Bit and 1.5g bit */
- byte |= 0x11;
+ byte |= 0x10; /* Set Force 1.5g bit */
writeb(byte, (sata_bar5 + 0x12C + 0x80 * i));
-
+
/* Wait 1ms */
mdelay(1);
- /* Clear Reset Bit */
- byte &= ~0x01;
- writeb(byte, (sata_bar5 + 0x12C + 0x80 * i));
-
- /* Wait 1ms */
- mdelay(1);
-
/* Reread status */
byte = readb(sata_bar5 + 0x128 + 0x80 * i);
printk_spew("SATA port %i status = %x\n", i, byte);
--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot