mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-16 17:43:02 +00:00
Move the SoC outside of the architecture tree and put them at the same level as boards and architectures allowing both SoCs and boards to be maintained outside the tree. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
57 lines
1003 B
C
57 lines
1003 B
C
/*
|
|
* Copyright (c) 2018 Yurii Hamann
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/**
|
|
* @file
|
|
* @brief System/hardware module for STM32F7 processor
|
|
*/
|
|
|
|
#include <kernel.h>
|
|
#include <device.h>
|
|
#include <init.h>
|
|
#include <soc.h>
|
|
#include <arch/cpu.h>
|
|
#include <cortex_m/exc.h>
|
|
|
|
/**
|
|
* @brief Perform basic hardware initialization at boot.
|
|
*
|
|
* This needs to be run from the very beginning.
|
|
* So the init priority has to be 0 (zero).
|
|
*
|
|
* @return 0
|
|
*/
|
|
static int st_stm32f7_init(struct device *arg)
|
|
{
|
|
u32_t key;
|
|
|
|
ARG_UNUSED(arg);
|
|
|
|
key = irq_lock();
|
|
|
|
SCB_EnableICache();
|
|
if (!(SCB->CCR & SCB_CCR_DC_Msk)) {
|
|
SCB_EnableDCache();
|
|
}
|
|
|
|
_ClearFaults();
|
|
|
|
/* Install default handler that simply resets the CPU
|
|
* if configured in the kernel, NOP otherwise
|
|
*/
|
|
NMI_INIT();
|
|
|
|
irq_unlock(key);
|
|
|
|
/* Update CMSIS SystemCoreClock variable (HCLK) */
|
|
/* At reset, system core clock is set to 16 MHz from HSI */
|
|
SystemCoreClock = 16000000;
|
|
|
|
return 0;
|
|
}
|
|
|
|
SYS_INIT(st_stm32f7_init, PRE_KERNEL_1, 0);
|