
17 Jan
2017
17 Jan
'17
3:29 a.m.
On Mon, Jan 16, 2017 at 10:03 PM, Simon Glass sjg@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@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@gmail.com