[LinuxBIOS] [RFC] i82801 generic patch

Corey Osgood corey.osgood at gmail.com
Thu Jun 7 00:07:06 CEST 2007


Stefan Reinauer wrote:
> Corey Osgood wrote:
>   
>> The attached patch is a unified version of the current ports of the
>> i82801 series currently in LinuxBIOS. Since most of the ports are nearly
>> identical, I've taken for each file and chosen the cleanest or best
>> version of the code, then checked over the datasheets to *some* of the
>> series, including the aa, ba, ca, and db, to make sure that it would
>> work. I've also made some changes here and there, mostly cleanup and
>> clarification. The only things left to look at are the huge difference
>> between this version's lpc init and the i82801er's, finding a better way
>> to select which chip is present on the board, and gpl headers in all
>> files. Anyways, comments, suggestions, even flames are welcome ;)
>> Testing on other chips can be done at this point as well, this is tested
>> and working on one model, the i82801aa.
>>     
>
> Some ideas that could simplify the code:
> [..]
> +#elif 	I82801_MODEL == I82801ER
> +#define	I82801_PCI	0x244e
> +#define	I82801_LPC	0x24d0
> +#define	I82801_IDE	0x24db
> +#define	I82801_SATA	0x24df
> [..]
>
> You can also add several PCI driver structures in a driver, pointing to
> the same PCI ops.
>
> +static struct pci_driver pci_driver __pci_driver = {
> +	.ops    = &pci_ops,
> +	.vendor = PCI_VENDOR_ID_INTEL,
> +	.device = I82801_PCI,
> +};
>
> So you could add one of these for each supported component. Since each
> pci_driver struct is only 8 bytes, the driver could be made to
> completely autodetect which southbridge chip you are using without the
> need for any #defines.
>   
Cool! I didn't even think about that, I'll rework it.
> The only non-pci_driver use of the _MODEL #define is in
> src/southbridge/intel/i82801xx/i82801xx_smbus.h
> which is for smbus_write_block() which does not seem to be used, yet.
>
>   
enable_smbus uses it as well, but both could be handled by using a
static device instead of probing. As long as the code is used with an
ICH-series, the smbus is always at the same location.
> So my suggestion is to put an unconditional #warning there so that code
> can be fixed if it should not work on a given ICH and is ever used.
>
> Forgot to say:
> Good work! Really nice!
Thanks!

-Corey




More information about the coreboot mailing list