<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
<font size="-1"><font face="Helvetica, Arial, sans-serif">Hi there,<br>
<br>
the intel southbridge drivers are a mess. <br>
<br>
I suggest to do the following:<br>
<br>
cd coreboot/src/southbridge<br>
svn mv i82801ca i82801cx<br>
svn mv i82801dbm i82801dx<br>
svn mv i82801er i82801ex<br>
</font></font><font size="-1"><font face="Helvetica, Arial, sans-serif">svn
copy i82801xx i82801bx</font></font><br>
<font size="-1"><font face="Helvetica, Arial, sans-serif">svn mv
i82801xx i82801ax<br>
<br>
(plus, fixing up the filenames in these directories and the romstage.c
and Kconfig files of the mainboards using those drivers)<br>
<br>
And then cleaning up all the code undermining the driver infrastructure
in the 82801xx driver, so we can drop the spaghetti code that checks
for PCI devices in actual init functions all over the place.<br>
<br>
Why? Because it is simply unmaintainable. The unified driver is not
unified, it's rather incomplete enough so nobody noticed. The ICH4 and
ICH4M are very similar. So are the ICH5 and ICH5M and ICH5R. It's a
good idea to have a "unified" driver per chipset generation. But not
across several generations of chipsets. <br>
 <br>
In order to fix graphics output for the i830/ich4 combination I'd like
to add an SMM handler and MBI interface to the ICH4 specific version of
the code. But there's not much gain in trying to check ICH0 datasheets
to see if what was never intended to be done on that chipset is
possible. And if I go and add guards for PCI IDs in the code, I'll
rather clean up the code to get it do the PCI ID matching that coreboot
intended for such cases instead of spaghettiing them into runtime
checks.<br>
<br>
I don't think that a shared driver like this is worth the ugliness that
comes with it. It's fair to say that if you don't know if you have an
ICH0 or ICH4, you can't do a coreboot port, because you will fail in so
many other places before and after that.  <br>
<br>
So folks, if you agree that we should clean up coreboot and make it
easier for people, send me an Acked-by: for the above idea.<br>
<br>
Signed-off-by: Stefan Reinauer <a class="moz-txt-link-rfc2396E" href="mailto:stepan@coresystems.de"><stepan@coresystems.de></a><br>
<br>
<br>
<br>
</font></font>
</body>
</html>