[U-Boot] [RFC] initcall mechanism introduction
Stefan Roese
sr at denx.de
Wed May 27 10:12:21 CEST 2009
On Wednesday 27 May 2009 09:52:35 Haavard Skinnemoen wrote:
> Wolfgang Denk wrote:
> > > component X is always supposed to come before component Y, that can be
> > > done with different levels of initcalls, or just by arranging the
> > > makefiles appropriately (with a comment warning people not to change
> > > it).
> >
> > The problem is that there is no such fix order. It is board dependent.
>
> In other words, what we have right now is the worst of both worlds:
> - There are shitloads of #ifdefs in the arch code to cope with
> different board requirements.
ACK. Most of this code was added a long time ago. We wouldn't accept this
board specific "hacks" (especially in lib_ppc/board.c) in the common code
right now any more.
> - There are huge differences between each architecture's init
> sequence which makes it hard to write generic code elsewhere, and
> hard to maintain each architecture since the init sequence needs to
> be changed when new boards add new features, and there's no
> "standard" way of doing it so the chances of getting it right to
> begin with are very slim.
>
> Also, the chances of getting this mess cleaned up is very slim since
> you need to touch all architectures in order to change something.
Yes, I noticed this while moving the malloc initialisation to an earlier
stage. It would be really a great improvement if we could consolidate those
lib_arch/board.c implementations somehow.
> IMO, introducing a common init sequence for all architectures would be
> an important step on the way to make this code somewhat maintainable,
> no matter how messy the initial result ends up being. Or perhaps a
> better first step would be to clean up the ppc code since it's what new
> architectures tend to copy, and it's just such an insane mess right now.
ACK. Even though I don't have a clue right now how this could be accomplished
in practise without breaking some of the (old) board ports.
Nevertheless I think that Jean-Christophe's inicall approach is a good idea
which could/should be used here.
Best regards,
Stefan
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================
More information about the U-Boot
mailing list