mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-18 21:21:37 +00:00
x86: fsp: Save usable RAM and hob_list in the handoff area
The useable RAM is calculated when the RAM is inited. Save this value so that it can be easily used in U-Boot proper. Also save a pointer to the hob list so that it is accessible (before relocation only) in U-Boot proper. This avoids having to scan it in SPL, for everything U-Boot proper might need later. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> [bmeng: guard handoff_arch_save() with IS_ENABLED(CONFIG_USE_HOB)] Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
12c81b2f41
commit
c3863eadbc
3 changed files with 24 additions and 0 deletions
|
@ -6,6 +6,7 @@
|
|||
#include <common.h>
|
||||
#include <dm.h>
|
||||
#include <errno.h>
|
||||
#include <handoff.h>
|
||||
#include <asm/cpu_common.h>
|
||||
#include <asm/intel_regs.h>
|
||||
#include <asm/lapic.h>
|
||||
|
@ -21,6 +22,11 @@ int arch_cpu_init(void)
|
|||
{
|
||||
int ret;
|
||||
|
||||
#if CONFIG_IS_ENABLED(HANDOFF) && IS_ENABLED(CONFIG_USE_HOB)
|
||||
struct spl_handoff *ho = gd->spl_handoff;
|
||||
|
||||
gd->arch.hob_list = ho->arch.hob_list;
|
||||
#endif
|
||||
ret = x86_cpu_reinit_f();
|
||||
|
||||
return ret;
|
||||
|
|
|
@ -9,7 +9,15 @@
|
|||
#ifndef __x86_asm_handoff_h
|
||||
#define __x86_asm_handoff_h
|
||||
|
||||
/**
|
||||
* struct arch_spl_handoff - architecture-specific handoff info
|
||||
*
|
||||
* @usable_ram_top: Value returned by board_get_usable_ram_top() in SPL
|
||||
* @hob_list: Start of FSP hand-off blocks (HOBs)
|
||||
*/
|
||||
struct arch_spl_handoff {
|
||||
ulong usable_ram_top;
|
||||
void *hob_list;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -88,3 +88,13 @@ unsigned int install_e820_map(unsigned int max_entries,
|
|||
|
||||
return num_entries;
|
||||
}
|
||||
|
||||
#if CONFIG_IS_ENABLED(HANDOFF) && IS_ENABLED(CONFIG_USE_HOB)
|
||||
int handoff_arch_save(struct spl_handoff *ho)
|
||||
{
|
||||
ho->arch.usable_ram_top = fsp_get_usable_lowmem_top(gd->arch.hob_list);
|
||||
ho->arch.hob_list = gd->arch.hob_list;
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue