diff --git a/arch/risc-v/src/common/riscv_initialize.c b/arch/risc-v/src/common/riscv_initialize.c index 355fa47bdec..b3dcf4ad7ff 100644 --- a/arch/risc-v/src/common/riscv_initialize.c +++ b/arch/risc-v/src/common/riscv_initialize.c @@ -98,5 +98,12 @@ void up_initialize(void) riscv_netinitialize(); +#ifdef CONFIG_HAVE_WEAKFUNCTIONS + if (riscv_soc_initialize) +#endif + { + riscv_soc_initialize(); + } + board_autoled_on(LED_IRQSENABLED); } diff --git a/arch/risc-v/src/common/riscv_internal.h b/arch/risc-v/src/common/riscv_internal.h index ef10f57e61a..d8a1e969afd 100644 --- a/arch/risc-v/src/common/riscv_internal.h +++ b/arch/risc-v/src/common/riscv_internal.h @@ -315,6 +315,10 @@ void riscv_pminitialize(void); void weak_function riscv_dma_initialize(void); #endif +/* SoC-specific CPU initialization ******************************************/ + +void weak_function riscv_soc_initialize(void); + /* Low level serial output **************************************************/ void riscv_lowputc(char ch);