1 /*******************************************************************************
2  * (c) Copyright 2012-2013 Microsemi SoC Products Group. All rights reserved.
3  *
4  *  SmartFusion2 CMSIS system initialization.
5  *
6  * SVN $Revision: 5280 $
7  * SVN $Date: 2013-03-22 20:51:50 +0000 (Fri, 22 Mar 2013) $
8  */
9 
10 #ifndef SYSTEM_M2SXXX_H
11 #define SYSTEM_M2SXXX_H
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
17 /* Standard CMSIS global variables. */
18 extern uint32_t SystemCoreClock;    /*!< System Clock Frequency (Core Clock) */
19 
20 /* SmartFusion2 specific clocks. */
21 extern uint32_t g_FrequencyPCLK0;   /*!< Clock frequency of APB bus 0. */
22 extern uint32_t g_FrequencyPCLK1;   /*!< Clock frequency of APB bus 1. */
23 extern uint32_t g_FrequencyPCLK2;   /*!< Clock frequency of APB bus 2. */
24 extern uint32_t g_FrequencyFIC0;    /*!< Clock frequecny of FPGA fabric interface controller 1. */
25 extern uint32_t g_FrequencyFIC1;    /*!< Clock frequecny of FPGA fabric inteface controller 2. */
26 extern uint32_t g_FrequencyFIC64;   /*!< Clock frequecny of 64-bit FPGA fabric interface controller. */
27 
28 
29 /***************************************************************************//**
30  * The SystemInit() is a standard CMSIS function called during system startup.
31  * It is meant to perform low level hardware setup such as configuring DDR and
32  * SERDES controllers.
33  */
34 void SystemInit(void);
35 
36 /***************************************************************************//**
37  * The SystemCoreClockUpdate() is a standard CMSIS function which can be called
38  * by the application in order to ensure that the SystemCoreClock global
39  * variable contains the up to date Cortex-M3 core frequency. Calling this
40  * function also updates the global variables containing the frequencies of the
41  * APB busses connecting the peripherals.
42  */
43 void SystemCoreClockUpdate(void);
44 
45 #ifdef __cplusplus
46 }
47 #endif
48 
49 #endif
50