This commit is contained in:
@@ -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)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -6,6 +6,9 @@
|
||||
|
||||
#include <dm.h>
|
||||
#include <log.h>
|
||||
#include <asm/csr.h>
|
||||
|
||||
#define CSR_U74_FEATURE_DISABLE 0x7c1
|
||||
|
||||
int spl_soc_init(void)
|
||||
{
|
||||
@@ -21,3 +24,15 @@ int spl_soc_init(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void harts_early_init(void)
|
||||
{
|
||||
/*
|
||||
* Feature Disable CSR
|
||||
*
|
||||
* Clear feature disable CSR to '0' to turn on all features for
|
||||
* each core. This operation must be in M-mode.
|
||||
*/
|
||||
if (CONFIG_IS_ENABLED(RISCV_MMODE))
|
||||
csr_write(CSR_U74_FEATURE_DISABLE, 0);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user