mirror of
https://xff.cz/git/u-boot/
synced 2025-09-25 20:41:16 +02:00
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:
@@ -78,3 +78,10 @@ void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
|
|||||||
}
|
}
|
||||||
hang();
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__weak int handoff_arch_save(struct spl_handoff *ho)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int write_spl_handoff(void)
|
static int write_spl_handoff(void)
|
||||||
{
|
{
|
||||||
struct spl_handoff *ho;
|
struct spl_handoff *ho;
|
||||||
|
int ret;
|
||||||
|
|
||||||
ho = bloblist_find(BLOBLISTT_SPL_HANDOFF, sizeof(struct spl_handoff));
|
ho = bloblist_find(BLOBLISTT_SPL_HANDOFF, sizeof(struct spl_handoff));
|
||||||
if (!ho)
|
if (!ho)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
handoff_save_dram(ho);
|
handoff_save_dram(ho);
|
||||||
#ifdef CONFIG_SANDBOX
|
ret = handoff_arch_save(ho);
|
||||||
ho->arch.magic = TEST_HANDOFF_MAGIC;
|
if (ret)
|
||||||
#endif
|
return ret;
|
||||||
debug(SPL_TPL_PROMPT "Wrote SPL handoff\n");
|
debug(SPL_TPL_PROMPT "Wrote SPL handoff\n");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -31,6 +31,19 @@ struct spl_handoff {
|
|||||||
void handoff_save_dram(struct spl_handoff *ho);
|
void handoff_save_dram(struct spl_handoff *ho);
|
||||||
void handoff_load_dram_size(struct spl_handoff *ho);
|
void handoff_load_dram_size(struct spl_handoff *ho);
|
||||||
void handoff_load_dram_banks(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
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user