[U-Boot] [PATCH 00/16] RFC: Board init using driver model

york sun york.sun at nxp.com
Wed Mar 22 16:00:51 UTC 2017


On 03/19/2017 11:59 AM, Simon Glass wrote:
> At present we have a lot of ad-hoc init functions related to boards, for
> example board_early_init_f(), board_misc_init_f() and dram_init().
>
> There are used in different ways by different boards as useful hooks to
> do the required init and sequence it correctly. Some functions are always
> enabled but have a __weak default. Some are controlled by the existence
> of a CONFIG.
>
> There are two main init sequences: board_init_f() (f for running from
> read-only flash) which runs before relocation and board_init_r() (r for
> relocated) which runs afterwards.
>
> One problem with the current sequence is that it has a lot of
> arch-specific #ifdefs around various functions. There are also #ifdefs
> for various features. There has been quite a bit of discussion about how
> to tidy this up and at least one RFC series[1].
>
> Now that we have driver model we can use this to deal with the init
> sequences. This approach has several advantages:
>
> - We have a path to remove the #ifdefs
> - It is easy for multiple parts of the code to implement the same hook
> - We can track what is called and what is not
> - We don't need weak functions
> - We can eventually adjust the sequence to improve naming or to add new
> init phases
> - It provides a model for how we might deal with ft_board_setup() and
> friends
>
> This series starts the process of replacing the pre-relocation init
> sequence with a driver-model solution.

I like the idea to be able to use DM earlier.

York



More information about the U-Boot mailing list