spl: Add an arch-specific hook for writing to SPL handoff
At present there is an arch-specific area in the SPL handoff area intended for use by arch-specific code, but there is no explicit call to fill in this data. Add a hook for this. Also use the hook to remove the sandbox-specific test code from write_spl_handoff(). Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
a7da3d984d
commit
366291afe6
@ -78,3 +78,10 @@ void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
|
||||
}
|
||||
hang();
|
||||
}
|
||||
|
||||
int handoff_arch_save(struct spl_handoff *ho)
|
||||
{
|
||||
ho->arch.magic = TEST_HANDOFF_MAGIC;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -356,17 +356,23 @@ static int setup_spl_handoff(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
__weak int handoff_arch_save(struct spl_handoff *ho)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int write_spl_handoff(void)
|
||||
{
|
||||
struct spl_handoff *ho;
|
||||
int ret;
|
||||
|
||||
ho = bloblist_find(BLOBLISTT_SPL_HANDOFF, sizeof(struct spl_handoff));
|
||||
if (!ho)
|
||||
return -ENOENT;
|
||||
handoff_save_dram(ho);
|
||||
#ifdef CONFIG_SANDBOX
|
||||
ho->arch.magic = TEST_HANDOFF_MAGIC;
|
||||
#endif
|
||||
ret = handoff_arch_save(ho);
|
||||
if (ret)
|
||||
return ret;
|
||||
debug(SPL_TPL_PROMPT "Wrote SPL handoff\n");
|
||||
|
||||
return 0;
|
||||
|
@ -31,6 +31,19 @@ struct spl_handoff {
|
||||
void handoff_save_dram(struct spl_handoff *ho);
|
||||
void handoff_load_dram_size(struct spl_handoff *ho);
|
||||
void handoff_load_dram_banks(struct spl_handoff *ho);
|
||||
|
||||
/**
|
||||
* handoff_arch_save() - Save arch-specific info into the handoff area
|
||||
*
|
||||
* This is defined to an empty function by default, but arch-specific code can
|
||||
* define it to write to spi_handoff->arch. It is called from
|
||||
* write_spl_handoff().
|
||||
*
|
||||
* @ho: Handoff area to fill in
|
||||
* @return 0 if OK, -ve on error
|
||||
*/
|
||||
int handoff_arch_save(struct spl_handoff *ho);
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user