/* * Copyright (c) 2018 Endre Karlson * * SPDX-License-Identifier: Apache-2.0 */ /** * @file * @brief System/hardware module for STM32L0 processor */ #include #include #include #include #include #include #include /** * @brief Perform basic hardware initialization at boot. * * This needs to be run from the very beginning. */ void soc_early_init_hook(void) { /* Enable ART accelerator prefetch */ LL_FLASH_EnablePrefetch(); /* Update CMSIS SystemCoreClock variable (HCLK) */ /* At reset, system core clock is set to 2.1 MHz from MSI */ SystemCoreClock = 2097152; /* On STM32L0, there are some hardfault when enabling DBGMCU bit: * Sleep, Stop or Standby. * See https://github.com/zephyrproject-rtos/zephyr/issues/#37119 * For unclear reason, enabling DMA clock fixes this issue * (similarly than it fixes * https://github.com/zephyrproject-rtos/zephyr/issues/#34324 ) */ LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMA1); #ifdef CONFIG_PM /* Enable Power clock */ LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_PWR); #endif }