Hello,

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.

This brings some attention to IDE code, to what PIO/(U)DMA should we setup? Is there a sane way to assume that all IDE devices are capable of PIO0 and UDMA0?

Maybe Seabios should do some basic setup because it can talk to discs...

Signed-off-by: Rudolf Marek <[email protected]>

Thanks,
Rudolf
Index: sb700_ide.c
===================================================================
--- sb700_ide.c	(revision 5917)
+++ sb700_ide.c	(working copy)
@@ -39,10 +39,9 @@
 	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 */
-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to