WOW, I get to help! As mentioned if you aren't using INITRD then you need to make sure you compile the GENERIC IDE stuff under DRIVERS into the kernel instead of as modules. There is one particular one that causes the problem, it skips my mind at the moment, but it is best to just compile all the Genereic Chipset stuff into the kernel instead of as modules like they are now. That should fix your problem.
Good Luck!