/* * Copyright (c) 2024 Renesas Electronics Corporation * * SPDX-License-Identifier: Apache-2.0 */ /** * @file * @brief System/hardware module for Renesas RA6M5 family processor */ #include #include #include #include #include #include #include LOG_MODULE_REGISTER(soc, CONFIG_SOC_LOG_LEVEL); #include "bsp_cfg.h" #include uint32_t SystemCoreClock BSP_SECTION_EARLY_INIT; volatile uint32_t g_protect_pfswe_counter BSP_SECTION_EARLY_INIT; /** * @brief Perform basic hardware initialization at boot. * * This needs to be run from the very beginning. */ void soc_early_init_hook(void) { uint32_t key; key = irq_lock(); extern volatile uint16_t g_protect_counters[]; for (uint32_t i = 0; i < 4; i++) { g_protect_counters[i] = 0; } #if FSP_PRIV_TZ_USE_SECURE_REGS /* Disable protection using PRCR register. */ R_BSP_RegisterProtectDisable(BSP_REG_PROTECT_SAR); /* Initialize peripherals to secure mode for flat projects */ R_PSCU->PSARB = 0; R_PSCU->PSARC = 0; R_PSCU->PSARD = 0; R_PSCU->PSARE = 0; R_CPSCU->ICUSARG = 0; R_CPSCU->ICUSARH = 0; R_CPSCU->ICUSARI = 0; /* Enable protection using PRCR register. */ R_BSP_RegisterProtectEnable(BSP_REG_PROTECT_SAR); #endif SystemCoreClock = BSP_MOCO_HZ; g_protect_pfswe_counter = 0; irq_unlock(key); }