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.
Thanks
Guennadi
___
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/