Commit d4c671cc authored by Simon Glass's avatar Simon Glass
Browse files

dm: Add a new CPU init function which can use driver model



Since driver model is set up after arch_cpu_init(), that function cannot
use drivers. Add a new arch_cpu_init_dm() function which is called
immediately after driver model is ready, and can reference devices.

This can be used to probe essential devices for the CPU.
Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
Reviewed-by: default avatarBin Meng <bmeng.cn@gmail.com>
parent 31f57c28
......@@ -815,6 +815,11 @@ __weak int reserve_arch(void)
return 0;
}
__weak int arch_cpu_init_dm(void)
{
return 0;
}
static init_fnc_t init_sequence_f[] = {
#ifdef CONFIG_SANDBOX
setup_ram_buf,
......@@ -835,6 +840,7 @@ static init_fnc_t init_sequence_f[] = {
fdtdec_check_fdt,
#endif
initf_dm,
arch_cpu_init_dm,
#if defined(CONFIG_BOARD_EARLY_INIT_F)
board_early_init_f,
#endif
......
......@@ -252,6 +252,17 @@ static inline int print_cpuinfo(void)
int update_flash_size(int flash_size);
int arch_early_init_r(void);
/**
* arch_cpu_init_dm() - init CPU after driver model is available
*
* This is called immediately after driver model is available before
* relocation. This is similar to arch_cpu_init() but is able to reference
* devices
*
* @return 0 if OK, -ve on error
*/
int arch_cpu_init_dm(void);
/**
* Reserve all necessary stacks
*
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment