[U-Boot] [PATCH v3 26/62] x86: board_r: Set the global data pointer after relocation

Bin Meng bmeng.cn at gmail.com
Tue Jan 17 03:29:40 CET 2017


On Mon, Jan 16, 2017 at 10:03 PM, Simon Glass <sjg at chromium.org> wrote:
> Since 'gd' is just a normal variable on 64-bit x86, it is relocated by the
> time we get to board_init_r(). The old 'gd' variable is passed in as
> parameter to board_init_r(), presumably for this situation.
>
> Assign it on 64-bit x86 so that gd points to the correct data.
>
> Options to improve this:
> - Make gd a fixed register and remove the board_init_r() parameter
> - Make all archs use this board_init_r() parameter
>
> The second has a TODO in the code. The first has a TODO in a future commit
> ('x86: Support global_data on x86_64')
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> Changes in v3:
> - Add a TODO to board_init_r() regarding the use of the new_gd parameter
>
> Changes in v2: None
>
>  common/board_r.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>

Reviewed-by: Bin Meng <bmeng.cn at gmail.com>


More information about the U-Boot mailing list