summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRudolf Marek <r.marek@assembler.cz>2010-10-10 20:43:00 +0000
committerRudolf Marek <r.marek@assembler.cz>2010-10-10 20:43:00 +0000
commit470e1821c3fd37b92ab5200ad4d0d17c06efe0a6 (patch)
tree8e4e6d5b913463857f7d6ebcad1e8ea5f1c5f262
parente522164ae15fab2e96309bc439ff431c6910f021 (diff)
downloadcoreboot-470e1821c3fd37b92ab5200ad4d0d17c06efe0a6.tar.xz
Same applies for SB600.
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
-rw-r--r--src/southbridge/amd/sb600/sb600_ide.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/southbridge/amd/sb600/sb600_ide.c b/src/southbridge/amd/sb600/sb600_ide.c
index 363cd3f28c..e38e83fdd7 100644
--- a/src/southbridge/amd/sb600/sb600_ide.c
+++ b/src/southbridge/amd/sb600/sb600_ide.c
@@ -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 */