Re: PATCH: fixup incomplete ident blocks on ITE raid volumes

Alan Cox
2004-08-16T16:05:08Z

/sOn Llu, 2004-08-16 at 16:28, Alan Cox wrote:
> On Mon, Aug 16, 2004 at 05:16:35PM +0200, Bartlomiej Zolnierkiewicz wrote:
> > This should be part of ITE driver patch and be compiled only when ITE driver
> > is going to be used or even better - there should be new callback for that.
>
> Nice theory but doesn't work that way. The ITE drive will do this even if
> you don't have the ITE driver compiled in because it'll be seen as the
> mainboard legacy controller (or generic) in some systems.

By way of more explanation here. The ITE chip does some interesting
things. Its got two modes. The first is a generic nodescript and
slightly irritatingly designed IDE device. The second runs stuff via an
onboard microcontroller which can do stuff like fire transactions up on
both busses and then do the DMA to both at once.

The firmware when you have raid volumes fakes up identity blocks (badly)
and the device is IDE class and capable of being your main IDE
controller. In that situation even the generic PIO driver will
see the RAID volumes and get confused by the ident blocks.

There is a second problem too resulting from this. Not only might the
IT8212 module not be loaded, but even if it is we probe the generic IDE
devices with the generic PIO and then attach the PCI driver on top of
it. That one can be dealt with by using a little bit of care but the
fact generic IDE sees them I think means it has to be in the generic ide
probe code. A later patch removes the geometry stuff as I fixed that
properly in ide-disk so it isn't needed now.

Alan