[coreboot] How long will take to add coreboot support for my motherboard? Please, expert roughly estimation needed.

Peter Stuge peter at stuge.se
Tue May 17 19:22:39 CEST 2011


Vikram Narayanan wrote:
> > It took me less then 8 hours to make my first port, and I'm not even a C
> > programmer, mine was a best case senario as there was a sibling board
> > already ported. I have also ported some where just the component where
> > supported, that didn't take to long either, probably 7-10 hours.
> >
> > Working on a board where only legacy code and docs are available I have
> > probably spend around 12 hours to get to ram init.
> >
> > I think the key to sussess is to have an easy way to reflash the bios when
> > your image failes.
> 
> Seems quite inspirational to the people who wanted to port for new
> boards.
> @ Stefan: Can you please share your opinions on this?

The time required of course depends on many factors. In general
terms, these are:

1. Ability to understand or learn C and programming languages in
   general, and hardware structure.
2. Hardware differences.
3. How much similar code there already exists in coreboot.
4. How readable the code is that does exist in coreboot and is
   relevant for the project.

In concrete terms, they are:

1. Programming and electronics experience, and abstract thinking
2. How similar your mainboard is to another already supported
   mainboard.
3. If *any* similar mainboard is already supported by coreboot.
   By similar I mean exact same relevant components; cpu north south
   superio.
4. Quality of coreboot code for cpu north south superio.

These are just the factors to consider *when all components are
supported already*. In ideal circumstances a board port needs to take
only one hour. In reality, circumstances are never ideal and the time
needed per board grows exponentially or even steeper still with the
number of less than ideal points to consider.

Worst case is so far 8-12 man-months for a coreboot expert.


//Peter




More information about the coreboot mailing list