Note that this motherboard will refuse to boot from a SATA drive unless it is plugged into SATA 1.
To use the SATA ports 1 and 2 from the ICH6-M controller it is recommended to set the SATA controller to "Enchanched Mode" in the BIOS, otherwise (using auto/combined) the PATA and SATA controller will be seen as one controller from the kernel, with varies problems (no DMA, no ATAPI etc.). The only reason to use combined mode is during install to make the an older installer recognize the drives.
Support for the SATA ports 3 and 4 from the Sil3132 controller has been added to the libata-dev tree, and is avaliable in the latest -mm patches (and from 2.6.15 in the mainline kernel) in the sil24 driver. To use the Sil3132 RAID controller as a standard SATA controller, add your drive(s) as concatenation RAID. (yes it even works with only one drive). No need to reformat the drives, the drive appears just as on a normal SATA controller.
Thanks for that tip it's useful to know, I managed to solve this a different way by unloading the generic IDE / PCI IDE drivers and enabling SCSI CD Rom support which seemed to work without the DMA issue (the SATA driver enabled DMA on the DVD drive). I think as you say the generic PCI IDE driver is causing a conflict with the SATA driver and prevent either of them from setting DMA mode on or allowing any further adjustments (well certainly if there built into the kernel anyway).
I still have an Issue with my DVD drive, I can't find a method to set the read speed for DVD playback e.g. hdparm -E4 /dev/hda doesnt work and eject -x4 /dev/hda doesnt work either (I've tried with both the SATA and IDE drivers and with different speed settings but no joy). If anyone knows of a way to achieve this I'd be very grateful, if required I can probably generate a patch for an existing program of module assuming that the source code is readily available.
DVD speed and CD speed must be changed via different commands. I believe that this applies to the media rather than the command!
i.e for CD/CDR/CDRW use eject or hdparm for DVD media you need to issue the SET_STREAMING via ioctrl to the drive. I'm not aware of a standard app that does this under linux or anything that can be simply emerged under gentoo. However Thomas Fritzsche [vdr] has written a nice app to do this, doing emerge vdr under gentoo does not seem to build the speedcontrol util btw. Sorry for gentoo specific stuff but thats what i use :)
You can download speedcontrol from http://noto.de/vdr/speedcontrol.c I managed to compile it by issuing gcc -o speedcontrol speedcontrol.c
after you have moved to a suitable bin directory it can be called up via speedcontrol -x1 /dev/dvd (or whatever your dvd drive device is)
and disabled via speedcontrol -x0 /dev/dvd
give it a go, worked great 4 me and makes DVD playback silent!