Skip to content
Snippets Groups Projects
Commit edd9ad81 authored by Green Wan's avatar Green Wan Committed by Leo Yu-Chi Liang
Browse files

riscv: cpu: Add callback to init each core


Add a callback harts_early_init() to start.S to allow different riscv
hart perform setup code for each hart as early as possible. Since all
the harts enter the callback, they must be able to run the same
setup.

Signed-off-by: default avatarGreen Wan <green.wan@sifive.com>
Reviewed-by: Rick Chen's avatarRick Chen <rick@andestech.com>
Reviewed-by: Bin Meng's avatarBin Meng <bmeng.cn@gmail.com>
parent 8ddaf943
No related branches found
No related tags found
No related merge requests found
......@@ -140,3 +140,14 @@ int arch_early_init_r(void)
{
return riscv_cpu_probe();
}
/**
* harts_early_init() - A callback function called by start.S to configure
* feature settings of each hart.
*
* In a multi-core system, memory access shall be careful here, it shall
* take care of race conditions.
*/
__weak void harts_early_init(void)
{
}
......@@ -117,6 +117,10 @@ call_board_init_f_0:
mv sp, a0
#endif
/* Configure proprietary settings and customized CSRs of harts */
call_harts_early_init:
jal harts_early_init
#ifndef CONFIG_XIP
/*
* Pick hart to initialize global data and run U-Boot. The other harts
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment