Same applies for SB600.
authorRudolf Marek <r.marek@assembler.cz>
Sun, 10 Oct 2010 20:43:00 +0000 (20:43 +0000)
committerRudolf Marek <r.marek@assembler.cz>
Sun, 10 Oct 2010 20:43:00 +0000 (20:43 +0000)
Following patch enables UDMA on ALL IDE devices. The current code enables it only for primary master, which causes my DVD drive to fail under windows install
and even after hard reset in linux (DMA seems lockup).

The fix should not have any influence for Linux because the IDE driver will
correctly reprogram this bit.

Signed-off-by: Rudolf Marek <r.marek@assembler.cz>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5933 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

src/southbridge/amd/sb600/sb600_ide.c

index 363cd3f28c818008ff73ca780992e8b0ebd1dd05..e38e83fdd7c2221f50278fc8839c3189ca1adc8f 100644 (file)
@@ -35,10 +35,9 @@ static void ide_init(struct device *dev)
        dword &= ~(1 << 16);
        pci_write_config32(dev, 0x70, dword);
 
-       /* Ultra DMA mode */
-       /* enable UDMA */
+       /* Enable UDMA on all devices, it will become UDMA0 (default PIO is PIO0) */
        byte = pci_read_config8(dev, 0x54);
-       byte |= 1 << 0;
+       byte |= 0xf;
        pci_write_config8(dev, 0x54, byte);
 
        /* Enable I/O Access&& Bus Master */