Eric, You raise a good point. We would have to determine if the drives support the dma mode we want. I have done a little experimentation and found that it is probably best to let the kernel handle the dma setup. After all, having LinuxBIOS do the minimal initialization is the goal of LinuxBIOS. John
Eric W. Biederman wrote:
John Allen jallen@integraltech.com writes:
I don't think we should wait until the kernel loads. For instance, I sometimes load the kernel from the hard drive with BOOT_IDE. The drive and controller should be in dma mode beofre this. Mainboard setup sounds good..
Put it in the southbridge code, and only call it from mainboard_setup if you can.
I don't have a large problem with IDE setup in LinuxBIOS but for the most part I think it is wasted effort, and quite possibly wasted time during boot up. DMA setup is not as easy as just turning on DMA. You have to probe the IDE channel, and verify the drive/drives supports the kind of DMA you wan to do. And even in PIO mode you get 3MB/s.
Also look at the etherboot IDE code. It was initially derived from what is in LinuxBIOS but I think it is a little cleaner. At the very least I haven't run across a drive it has spin up issues with.
For the most part if you can get/write a Linux driver for this kind of things and it is satisfactory I don't see a problem.
Eric