mirror of
https://github.com/smaeul/u-boot.git
synced 2025-11-18 01:40:58 +00:00
x86: Allow logging to be used in SPL reliably
When global_data is relocated, log_head moves in memory, meaning that the items in that list point to the wrong place. Disable logging when making the change, then reenable it afterwards, so that logging works normally. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
fa5e203092
commit
e7595aa350
@ -144,9 +144,22 @@ static int x86_spl_init(void)
|
||||
*/
|
||||
gd->new_gd = (struct global_data *)ptr;
|
||||
memcpy(gd->new_gd, gd, sizeof(*gd));
|
||||
|
||||
/*
|
||||
* Make sure logging is disabled when we switch, since the log system
|
||||
* list head will move
|
||||
*/
|
||||
gd->new_gd->flags &= ~GD_FLG_LOG_READY;
|
||||
arch_setup_gd(gd->new_gd);
|
||||
gd->start_addr_sp = (ulong)ptr;
|
||||
|
||||
/* start up logging again, with the new list-head location */
|
||||
ret = log_init();
|
||||
if (ret) {
|
||||
log_debug("Log setup failed (err=%d)\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (_LOG_DEBUG) {
|
||||
ret = mtrr_list(mtrr_get_var_count(), MP_SELECT_BSP);
|
||||
if (ret)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user