Here is a linux driver I wrote for SIMTEC IDE podules (these are non-X86 hardware). It is fully functional, and even has some hooks in it for implementing fast back-toback IO (although I never properly finished that since the kernel is a bit patchy on that point (or was, when I wrote this driver).
It should work on all 2.4 series kernels, although I have only ever tested it on a 2.4.16 and 2.4.17 kernel. I have successfully read, and written 5 gigs of data with it, and also burned a couple of CD-R discs.
The driver: ide-simtec.c