diff --git a/arch/xtensa/src/common/xtensa.h b/arch/xtensa/src/common/xtensa.h index 4c08f4101ad..8ce47b0416a 100644 --- a/arch/xtensa/src/common/xtensa.h +++ b/arch/xtensa/src/common/xtensa.h @@ -266,6 +266,10 @@ void xtensa_clrpend_irq(int irq); void weak_function xtensa_dma_initialize(void); #endif +/* SoC-specific CPU initialization */ + +void weak_function xtensa_soc_initialize(void); + /* Memory management */ #if CONFIG_MM_REGIONS > 1 diff --git a/arch/xtensa/src/common/xtensa_initialize.c b/arch/xtensa/src/common/xtensa_initialize.c index e354dae7ed8..b59a8ebe124 100644 --- a/arch/xtensa/src/common/xtensa_initialize.c +++ b/arch/xtensa/src/common/xtensa_initialize.c @@ -106,5 +106,12 @@ void up_initialize(void) xtensa_usbinitialize(); +#ifdef CONFIG_HAVE_WEAKFUNCTIONS + if (xtensa_soc_initialize) +#endif + { + xtensa_soc_initialize(); + } + board_autoled_on(LED_IRQSENABLED); }