Following patch enables UDMA on ALL IDE devices. The current code enables it only...
authorRudolf Marek <r.marek@assembler.cz>
Sun, 10 Oct 2010 19:54:15 +0000 (19:54 +0000)
committerRudolf Marek <r.marek@assembler.cz>
Sun, 10 Oct 2010 19:54:15 +0000 (19:54 +0000)
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@5931 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

src/southbridge/amd/sb700/sb700_ide.c

index 08e625492b2eba958eca056edda1d0f6ae4f9014..88d634bebbd7153072880608e84e7fb28a10e6ee 100644 (file)
@@ -39,10 +39,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 */