i3100: Add init sequence

i3100 misses the magic SATA init sequence, which makes all
requests fail. Captured from the vendor BIOS, which writes
those bits on all configurations.

Change-Id: I293b7d9cd681181311ecaced6d7df9b2706c711f
Signed-off-by: Sven Schnelle <svens@stackframe.org>
Reviewed-on: http://review.coreboot.org/600
Tested-by: build bot (Jenkins)
This commit is contained in:
Sven Schnelle 2012-01-31 22:40:50 +01:00
parent 7363ca35f0
commit ab46c15f61
1 changed files with 18 additions and 0 deletions

View File

@ -81,6 +81,24 @@ static void sata_init(struct device *dev)
pci_write_config8(dev, SATA_PCS + 1, 0x0f); pci_write_config8(dev, SATA_PCS + 1, 0x0f);
} }
/* secret init sequence, required */
pci_write_config32(dev, 0x94, 0x00400180);
pci_write_config32(dev, 0xa0, 0x18);
pci_write_config32(dev, 0xa4, 0x224);
pci_write_config32(dev, 0xa0, 0x42);
pci_write_config32(dev, 0xa4, 0x22006d);
pci_write_config32(dev, 0xa0, 0x84);
pci_write_config32(dev, 0xa4, 0x24);
pci_write_config32(dev, 0xa0, 0x7a);
pci_write_config32(dev, 0xa4, 0x220000);
pci_write_config32(dev, 0xa0, 0x9c);
pci_write_config32(dev, 0xa4, 0x24);
pci_write_config32(dev, 0xa0, 0x90);
pci_write_config32(dev, 0xa4, 0x220000);
pci_write_config32(dev, 0xa0, 0xa0);
pci_write_config32(dev, 0xa4, 0x12492aa);
printk(BIOS_DEBUG, "SATA Enabled\n"); printk(BIOS_DEBUG, "SATA Enabled\n");
} }