int ret;
#if CONFIG_IS_ENABLED(HANDOFF) && IS_ENABLED(CONFIG_USE_HOB)
- gd->arch.hob_list = handoff_get();
+ struct spl_handoff *ho = gd->spl_handoff;
+
+ gd->arch.hob_list = ho->arch.hob_list;
#endif
ret = x86_cpu_reinit_f();
#endif
} else {
#if CONFIG_IS_ENABLED(HANDOFF)
- struct spl_handoff *ho = handoff_get();
+ struct spl_handoff *ho = gd->spl_handoff;
if (!ho) {
log_debug("No SPL handoff found\n");
return gd->ram_size;
#if CONFIG_IS_ENABLED(HANDOFF)
- struct spl_handoff *ho = handoff_get();
+ struct spl_handoff *ho = gd->spl_handoff;
log_debug("usable_ram_top = %lx\n", ho->arch.usable_ram_top);
char *const argv[])
{
#if CONFIG_IS_ENABLED(HANDOFF)
- struct spl_handoff *handoff = handoff_get();
-
- if (handoff)
- printf("SPL handoff magic %lx\n", handoff->arch.magic);
+ if (gd->spl_handoff)
+ printf("SPL handoff magic %lx\n", gd->spl_handoff->arch.magic);
else
printf("SPL handoff info not received\n");
return 0;
}
+static int setup_spl_handoff(void)
+{
+#if CONFIG_IS_ENABLED(HANDOFF)
+ gd->spl_handoff = bloblist_find(BLOBLISTT_U_BOOT_SPL_HANDOFF,
+ sizeof(struct spl_handoff));
+ debug("Found SPL hand-off info %p\n", gd->spl_handoff);
+#endif
+
+ return 0;
+}
+
__weak int arch_cpu_init(void)
{
return 0;
initf_bootstage, /* uses its own timer, so does not need DM */
event_init,
bloblist_maybe_init,
+ setup_spl_handoff,
#if defined(CONFIG_CONSOLE_RECORD_INIT_F)
console_record_init,
#endif
* Copyright 2018 Google, Inc
*/
-#include <bloblist.h>
#include <handoff.h>
#include <asm/global_data.h>
bd->bi_dram[i].size = ho->ram_bank[i].size;
}
}
-
-struct spl_handoff *handoff_get(void)
-{
- struct spl_handoff *handoff;
-
- handoff = bloblist_find(BLOBLISTT_U_BOOT_SPL_HANDOFF,
- sizeof(struct spl_handoff));
- debug("Found SPL hand-off info %p\n", handoff);
-
- return handoff;
-}
#include <dm.h>
#include <dt-structs.h>
#include <errno.h>
-#include <handoff.h>
#include <log.h>
#include <malloc.h>
#include <mapmem.h>
init_clocks = true;
#elif CONFIG_IS_ENABLED(HANDOFF)
if (!(gd->flags & GD_FLG_RELOC)) {
- if (!handoff_get())
+ if (!(gd->spl_handoff))
init_clocks = true;
}
#endif
*/
struct bloblist_hdr *bloblist;
#endif
+#if CONFIG_IS_ENABLED(HANDOFF)
+ /**
+ * @spl_handoff: SPL hand-off information
+ */
+ struct spl_handoff *spl_handoff;
+#endif
#if defined(CONFIG_TRANSLATION_OFFSET)
/**
* @translation_offset: optional translation offset
void handoff_load_dram_size(struct spl_handoff *ho);
void handoff_load_dram_banks(struct spl_handoff *ho);
-/**
- * handoff_get() - Get the SPL handoff information
- *
- * Return: Pointer to SPL handoff if received, else NULL
- */
-struct spl_handoff *handoff_get(void);
-
/**
* handoff_arch_save() - Save arch-specific info into the handoff area
*