Subject: Re: splitting pciide
To: Manuel Bouyer <bouyer@antioche.eu.org>
From: Matt Thomas <matt@3am-software.com>
List: tech-kern
Date: 09/19/2003 15:01:51
On Friday, September 19, 2003, at 02:53 PM, Manuel Bouyer wrote:

> Hi,
> I've been thinking about a way to exclude chip-specific code from 
> pciide,
> to be able to build smaller custom kernels (for example, the piix code
> is probably useless for all but i386). pciide.c is already large (text 
> is
> 47744 on sparc64), and can only grow.
> I can see 2 solutions:
> 1) use kernel options and #ifdef.
> 2) split pciide in several smaller drivers.
>
> 1) is ugly, so if we want to do this it'll probably be 2)
>
> For this, pciide will have to be splitted in a common set of functions,
> and different chips-specific drivers (piixide, viaide, siside, etc ...)
> There will also a generic pciide driver, as a catch-all driver.

I think approach is best.

> As some controllers can't work with a generic pciide driver (e.g.
> the software raid adapters which identifies themselves as raid, or
> the cypress which has a special way of doing compat mode), the
> GENERIC and INSTALL 386 kernels will still need to have all the drivers
> (we can't use this to reduce the size of the i386 install media), but
> it can be helpfull for non-i386 PCI architectures.
>
> Comments ?

I'd say go for it.

> If we do this, I'd like to do it in the same time window as the atabus
> change I proposed in another mail, to have only one major change to the
> kernel config files.

Make sure you look at Charles Hannum's recent IDE commits. :)
-- 
Matt Thomas                     email: matt@3am-software.com
3am Software Foundry              www: http://3am-software.com/bio/matt/
Cupertino, CA              disclaimer: I avow all knowledge of this 
message.