I don’t know if anyone can/could help in any way, but i believe that a collaboration could benefit Haiku too (which lacks in SATA support, if I’m not wrong).
ReactOS switched to UniATA (an open source Universal ATA driver for Windows NT3.51/NT4/2000/XP) but now, after many tests, some problems popped up.
Here’s the Newsletter #61 chapter about it:
[quote=ReactOS Newsletter 61]
UniATA Teething
Now that SATA drives are nominally supported, people have been running it through its paces. Unfortunately, UniATA does not support the Advanced Host Controller Interface, something that seems to be very common on motherboards these days. This is causing problems for those testers but unfortunately cannot be solved until Aleksey Bragin implements it. There are also a few bugs in its handling of certain SATA controllers without AHCI. In the case of the ATI IXP700 chipset, it was missing a flag and thus trying to use the controller in the wrong mode. Christoph von Wittich has been trying to deal with that, along with another issue. Ironically, UniATA is stumbling on several SATA controllers when they are emulating IDE for legacy purposes. This is also a case of incorrect or missing information and settings in UniATA, wherein it incorrectly identifies controllers and then tries to communicate with them using the wrong mode. Christoph’s progress on both issues is however being slowed by insufficient testers who have the affected hardware.[/quote]
Again, I don’t know if anyone is interested, btw I hope that could help both projects…
Last but not least here’s the UniATA features:
- DMA/UDMA support (up to ATA-133) on known and generic DMA on unknown controllers.
- LBA48 (large drives greater than 128Gb) support.
- SerialATA support (SATA, SATA-2).
- NT3.51 (including i386 version), NT4, 2000, XP, 2003 support (may be 2005 - not tested).
- support of contiguous set of modes UDMA0-UDMA6 (ATA-16/25/33/44/66/100/133).
- Support of numerous IDE controllers and generic ATA/ATAPI.
- no reinstall required when migrating to different IDE controller or motherboard.
- internal command queueing and optimized execution order of read/write requests.
- user-mode device management utility atactl.exe. You can change data transfer mode (PIO/DMA/UDMA) on the fly.
- tuning Read/Write cache, transfer modes and many other things via Registry settings.
- list of bad/unreliable blocks, to prevent driver from treating HDD but return error immediately (Nikolai Vorontsov).