Showing posts with label ali. Show all posts
Showing posts with label ali. Show all posts

Thursday, April 16, 2009

Working around buggy ALi IDE on ultrasparc hardware

The Linux ALi IDE driver (at least 2.6.23) does not have a proper workaround for a hardware bug that makes DMA transfers sometimes produce garbage. The simple workaround to get these sparc up and running has been to boot with the "ide=nodma" kernel parameter. That is fine, but performance will really suck.
Anyway, I run my personal production mail, proxy, tunnel, build server on a Netra-AX and it has the buggy ALi IDE chipset. My first workaround was to just have the basic root system on a small IDE disk on the primary channel and all data disks on a SATA controller. This was alright for a while but on some heavy compilations and swapping made the system crawl. I had made the stupid mistake to put my swap on the no-dma disk, plus loading binaries and libraries from the nodma disk was slow. But what to do then ? The PROM will only boot from the internal IDE and I didn't like to move the system to another disk. Digging in my hardware stash I found a nice IDE-to-CF converter that can be plugged directly into the motherboard, plus a 32Mb CF card, just enough for a kernel or two. And the CF card is PIO only so the kernel handles it alright. So now I boot the system from the CF card and have the disk plugged into the external PCI IDE card.