[LinuxBIOS] LInuxBIOSv3 - Reset and CAR code

ron minnich rminnich at gmail.com
Sun May 20 07:08:02 CEST 2007


Juergen, what you are asking us to do is to revert to an old code
model that did not work well, that caused great trouble as the gnu
toolchain changed, and that people found confusing to read.

I agree with what Stefan has said. Furthermore, the stage0_i586.S file
is fairly short, and almost no one should ever need to read it. That
code should change very little. Most of it has been unchanged for 7
years.  I find it most useful to have all the ugly assembly code in
one file. And, even as simple as this file is, we had great trouble
getting the GNU toolchain to build it properly. We hit several gld
bugs, some of which have been "known bugs" for four years or more. We
should not need a linker script for that simple file, but we do, in
part due to these gld bugs. You can find our discussions on this
dating back to Dec 2006 or so.

In V2, we have lots and lots of .S files, some with only one or two
instructions and a segment name. These were stitched together via cpp
and the linker. The system is incredibly flexible and can be
configured in all sorts of ways. In practice, none of that flexibility
is needed or used. I am sure that the design of this system followed
some notion of good software engineering. It was also, for many
people, completely incomprehensible.

The technique we are using for the *ONE* .S file in LinuxBIOS V3 is
called "copy and convert". It works well in an industrial strength
product, namely, the Plan 9 operating system, which is running in a
router near you. As you find a new CPU, which needs a slightly
different CAR design, you take the file, which has not changed in 7
years, and replace the CAR algorithm with your own, and create a new
file name. It takes about 5 minutes. There are going to be very few
files. I just went through this for the Geode LX and it took no time
at all.

I appreciate your comments but I disagree completely with your ideas.
Our experience has been that what you are proposing is a step in the
wrong direction.

Sorry! :-)

thanks

ron




More information about the coreboot mailing list