Hi,
here's a patch which unifies all 440BX boards to use the same (board) code base, similar to what the GX1-base patch does (which I sent earlier).
This code supports 4 boards right now, more will follow.
The only v2 440BX board not yet supported is the Bitworks IMS. IMO we can drop it for now, AFAIK Richard is no longer working on it, it's not useful as reference anymore (as this new code works fine now), and AFAIK the v2 version of the IMS never worked anyway. It's also a special-purpose board (not generally available in stores) and in the case we still need it later, the history remains in svn, of course.
Richard is CC'd. Please let us know if you intend to work on the board later, or whether we should drop it from v2 (it'll stay in v1).
Thanks, Uwe.
Uwe Hermann wrote:
Hi,
here's a patch which unifies all 440BX boards to use the same (board) code base, similar to what the GX1-base patch does (which I sent earlier).
This code supports 4 boards right now, more will follow.
The only v2 440BX board not yet supported is the Bitworks IMS. IMO we can drop it for now, AFAIK Richard is no longer working on it, it's not useful as reference anymore (as this new code works fine now), and AFAIK the v2 version of the IMS never worked anyway. It's also a special-purpose board (not generally available in stores) and in the case we still need it later, the history remains in svn, of course.
Richard is CC'd. Please let us know if you intend to work on the board later, or whether we should drop it from v2 (it'll stay in v1).
Thanks, Uwe.
Please put generic 440 code in northbridge/, and not in mainboard/440-base/
Having two northbridge directories for the same northbridge sounds complex.
On Sat, Oct 20, 2007 at 08:44:57PM +0200, Stefan Reinauer wrote:
Please put generic 440 code in northbridge/, and not in mainboard/440-base/
Having two northbridge directories for the same northbridge sounds complex.
Full ack. Northbridge-specific code belongs in src/northbridge/*.
However, this is not northbridge specific code. It's more like "common code which somewhat similar mainboards share". Theoretically this could include even more (non-440BX) boards which are also similar enough, but for now I concentrated on 440BX boards.
If we later add non-440bx boards (e.g. 430TX or i810 or something) to the same framework, we might rename it to xyz-base (but I have no idea what a good name for xyz would be ;-)
Also, I'm a bit undecided if it should be src/mainboard/common/i440bx-base or src/mainboard/i440bx-base (i.e. put the "base" code parts in an extra directory or not). Opinions?
Uwe.
Quoting Uwe Hermann uwe@hermann-uwe.de:
On Sat, Oct 20, 2007 at 08:44:57PM +0200, Stefan Reinauer wrote:
Please put generic 440 code in northbridge/, and not in mainboard/440-base/
Having two northbridge directories for the same northbridge sounds complex.
Full ack. Northbridge-specific code belongs in src/northbridge/*.
However, this is not northbridge specific code. It's more like "common code which somewhat similar mainboards share". Theoretically this could include even more (non-440BX) boards which are also similar enough, but for now I concentrated on 440BX boards.
If we later add non-440bx boards (e.g. 430TX or i810 or something) to the same framework, we might rename it to xyz-base (but I have no idea what a good name for xyz would be ;-)
Also, I'm a bit undecided if it should be src/mainboard/common/i440bx-base or src/mainboard/i440bx-base (i.e. put the "base" code parts in an extra directory or not). Opinions?
Uwe.
Why couldn't there just be a src/northbridge/intel/common/ directory?
Thanks - Joe
On Sat, Oct 20, 2007 at 05:13:45PM -0400, joe@smittys.pointclark.net wrote:
Quoting Uwe Hermann uwe@hermann-uwe.de:
On Sat, Oct 20, 2007 at 08:44:57PM +0200, Stefan Reinauer wrote:
Please put generic 440 code in northbridge/, and not in mainboard/440-base/
Having two northbridge directories for the same northbridge sounds complex.
Full ack. Northbridge-specific code belongs in src/northbridge/*.
However, this is not northbridge specific code. It's more like "common code which somewhat similar mainboards share". Theoretically this could include even more (non-440BX) boards which are also similar enough, but for now I concentrated on 440BX boards.
If we later add non-440bx boards (e.g. 430TX or i810 or something) to the same framework, we might rename it to xyz-base (but I have no idea what a good name for xyz would be ;-)
Also, I'm a bit undecided if it should be src/mainboard/common/i440bx-base or src/mainboard/i440bx-base (i.e. put the "base" code parts in an extra directory or not). Opinions?
Uwe.
Why couldn't there just be a src/northbridge/intel/common/ directory?
Well, maybe there could -- for Intel northbridge-specific stuff. But the code in my patch is not specific for any northbridge. It's common mainboard code.
Actually, on the long run (i.e. v3), if we're good we could go even one step further and have only _one_ mainboard code directory for all boards.
Everything mainboard-specific would then be extactly _one_ file (quite likely the dts, which we already have), which only contains data (no code).
Basically, the file could just say
- Use northbridge xyz - Use southbridge xyz - Use superio xyz - Use Super I/O port 0x4e - Use this PIRQ table (a bunch of numbers in the dts) - Use this CMOS layout (a bunch of lines in dts) - Set option yxz (e.g. enable IDE1, disable floppy, etc)
All of this can be done with a plain text/config file (such as the dts), no need for _any_ code per mainboard.
We're already moving in this very direction with the dts, and it would be really great if we could make v3 boards consist of only one (data) file.
Uwe.
joe@smittys.pointclark.net wrote::
Quoting Uwe Hermann uwe@hermann-uwe.de:
On Sat, Oct 20, 2007 at 08:44:57PM +0200, Stefan Reinauer wrote:
Please put generic 440 code in northbridge/, and not in mainboard/440-base/
Having two northbridge directories for the same northbridge sounds complex.
Full ack. Northbridge-specific code belongs in src/northbridge/*.
However, this is not northbridge specific code. It's more like "common code which somewhat similar mainboards share". Theoretically this could include even more (non-440BX) boards which are also similar enough, but for now I concentrated on 440BX boards.
If we later add non-440bx boards (e.g. 430TX or i810 or something) to the same framework, we might rename it to xyz-base (but I have no idea what a good name for xyz would be ;-)
Also, I'm a bit undecided if it should be src/mainboard/common/i440bx-base or src/mainboard/i440bx-base (i.e. put the "base" code parts in an extra directory or not). Opinions?
Uwe.
Why couldn't there just be a src/northbridge/intel/common/ directory?
Because there really is not much those supported chips have in common, yet. The register names are the same - their values and meaning changes.
I rather prefer 5 small, clean, linear chunks of code with a duplication of 30% each, than a single big, unreadable and unmaintainable chunk that supports all kinds of machines if you set the correct "configuration" variables.
Stefan
Uwe Hermann wrote::
On Sat, Oct 20, 2007 at 08:44:57PM +0200, Stefan Reinauer wrote:
Please put generic 440 code in northbridge/, and not in mainboard/440-base/
Having two northbridge directories for the same northbridge sounds complex.
Full ack. Northbridge-specific code belongs in src/northbridge/*.
However, this is not northbridge specific code. It's more like "common code which somewhat similar mainboards share". Theoretically this could include even more (non-440BX) boards which are also similar enough, but for now I concentrated on 440BX boards.
Optimally there should only be a config file as the only requirement for a mainboard port. But we are not there yet, unfortunately.
These kinds of unifications are false friends IMHO. Packing multiple CONFIG_BOARD_*** thingies in one board config file does not make things easier - at all. It just adds up to the complexity, and at some point, namely the migration to linuxbios v3, makes things a lot harder than they are now.
Catting 3 files into one and having the C preprocessor split them up again is not making things simpler, nor cleaner, nor easier, nor less error prone.
Sorry, but I think this is the wrong way to go -- NACK!
If we later add non-440bx boards (e.g. 430TX or i810 or something) to the same framework, we might rename it to xyz-base (but I have no idea what a good name for xyz would be ;-)
Also, I'm a bit undecided if it should be src/mainboard/common/i440bx-base or src/mainboard/i440bx-base (i.e. put the "base" code parts in an extra directory or not). Opinions?
Uwe.