PCI IDE initialization

From: Guennadi Liakhovetski (g.liakhovetski@ragingbull.com)
Date: Mon Jul 23 2001 - 12:04:02 EST


I asked on kernelnewbies - no reply. So, trying here. I'm not subscribed,
so CC would be greatly appreciated.

Somewhere in the background of my mind I am still trying to solve 'nicely'
the problem with my machine - no kernel since 2.0.39 can turn IDE
bus-mastering (IDE DMA) on it on. I have an ugly hack for 2.4.0, which
works, but it's ugly - it should never be run on other machines.

The problem with the newer kernels is that they fail to calculate IDE
dma_base address correctly. So, in my ugly patch I just hard-coded the
values (for ide0 and ide1) obtained from 2.0.39. And I am still hoping for
a nicer solution. My guess (partly supported by studying the sources) is
that 2.0.39 kernel used some BIOS-provided values, whereas 2.2 and 2.4
kernels use some ad hoc knowledge about various chipsets, and my chipset
somehow, although it's a simple Triton PIIX has it differently...

Anyway, for now I would really appreciate if somebody could shed some
light on the PCI IDE initialization path in 2.0(.39) vs 2.2/2.4, if indeed
2.0 reads the value set by BIOS, whereas 2.2/2.4 clears those values (I
tried reading the same address - clean) somewhere during bus
initialization, where in the code does this happen - if my assumption is
right, if not - what could be happening? I am hoping to read those values
somewhere before the bus initialization, preserve them, and allow them to
be used later if everything else fails.


Dr. Guennadi V. Liakhovetski
Department of Applied Mathematics
University of Sheffield, Sheffield, U.K.
email: g.liakhovetski@sheffield.ac.uk

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

This archive was generated by hypermail 2b29 : Mon Jul 23 2001 - 21:00:17 EST