[U-Boot-Users] Re: PATCH: bi_iic_fast[] initialization

Wolfgang Denk wd at denx.de
Wed Apr 7 17:13:41 CEST 2004

In message <30399. at www.orkun.us> you wrote:
> > I think you should  rework  this  patch.  At  the  moment,  you  call
> > getenv() in board_init_f() - but board_init_f() is still running from
> > flash,  which  means  that we don't have a full C runtime environment
> > (uninitialized BSS, no writable data, limited stack space) so the use
> > of getenv() is not allowd in that function. You  may  use  getenv_r()
> > instead.
> I can convert it to use getenv_r() or I think it would be better to move
> that section dealing with initialization of bi_iic_fast[] flags to
> board_init_r(). bi_iic_fast[] is not used by u-boot itself. It is passed
> to Linux.

Then move it to board_init_r(), please.

> Personally, the most appropriate place to initialize such things would be
> right before u-boot boots the OS. The immediate changes to the environment
> would also be captured without forcing an environment save and reset as
> well.

Be careful, though. Not everybody uses the same path to boot a kernel.

> 1) Fix in board_init_f() using getenv_r()
> 2) Fix by moving to board_init_r()

Go for 2.

> 3) Create a new function (say board_init_preboot) and move that section
> into it. Hook board_init_preboot() to the existing boot functions (boot,
> bootm etc. somehow)

No, please not yet another xxx_init_pre_before_early_reallybefore_preinit

Best regards,

Wolfgang Denk

Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
He had quite a powerful intellect, but it  was  as  powerful  like  a
locomotive,  and  ran on rails and was therefore almost impossible to
steer.                          - Terry Pratchett, _Lords and Ladies_

More information about the U-Boot mailing list