summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRudolf Marek <r.marek@assembler.cz>2010-10-10 19:54:15 +0000
committerRudolf Marek <r.marek@assembler.cz>2010-10-10 19:54:15 +0000
commit14cc9271780b8348f5007b6247290c15367fb45c (patch)
treebcbfc282779e55d0319f26ae4eb90fb99946fb4e
parent2a5101aba49315b6c46aa3dc4c6c07633e453c06 (diff)
downloadcoreboot-14cc9271780b8348f5007b6247290c15367fb45c.tar.xz
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@5931 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--src/southbridge/amd/sb700/sb700_ide.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/southbridge/amd/sb700/sb700_ide.c b/src/southbridge/amd/sb700/sb700_ide.c
index 08e625492b..88d634bebb 100644
--- a/src/southbridge/amd/sb700/sb700_ide.c
+++ b/src/southbridge/amd/sb700/sb700_ide.c
@@ -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 */