]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53/src/platform.c
1f49bf62d7dd967e1e7bab28b2b0b4198fdbdaa7
[freertos] / FreeRTOS / Demo / CORTEX_A53_64-bit_UltraScale_MPSoC / RTOSDemo_A53 / src / platform.c
1 /******************************************************************************
2 *
3 * Copyright (C) 2010 - 2014 Xilinx, Inc.  All rights reserved.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a copy
6 * of this software and associated documentation files (the "Software"), to deal
7 * in the Software without restriction, including without limitation the rights
8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 * copies of the Software, and to permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
14 *
15 * Use of the Software is limited solely to applications:
16 * (a) running on a Xilinx device, or
17 * (b) that interact with a Xilinx device through a bus or interconnect.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 * XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
24 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25 * SOFTWARE.
26 *
27 * Except as contained in this notice, the name of the Xilinx shall not be used
28 * in advertising or otherwise to promote the sale, use or other dealings in
29 * this Software without prior written authorization from Xilinx.
30 *
31 ******************************************************************************/
32
33 #include "xparameters.h"
34 #include "xil_cache.h"
35
36 #include "platform_config.h"
37
38 /*
39  * Uncomment the following line if ps7 init source files are added in the
40  * source directory for compiling example outside of SDK.
41  */
42 /*#include "ps7_init.h"*/
43
44 #ifdef STDOUT_IS_16550
45  #include "xuartns550_l.h"
46
47  #define UART_BAUD 9600
48 #endif
49
50 void
51 enable_caches()
52 {
53 #ifdef __PPC__
54     Xil_ICacheEnableRegion(CACHEABLE_REGION_MASK);
55     Xil_DCacheEnableRegion(CACHEABLE_REGION_MASK);
56 #elif __MICROBLAZE__
57 #ifdef XPAR_MICROBLAZE_USE_ICACHE
58     Xil_ICacheEnable();
59 #endif
60 #ifdef XPAR_MICROBLAZE_USE_DCACHE
61     Xil_DCacheEnable();
62 #endif
63 #endif
64 }
65
66 void
67 disable_caches()
68 {
69     Xil_DCacheDisable();
70     Xil_ICacheDisable();
71 }
72
73 void
74 init_uart()
75 {
76 #ifdef STDOUT_IS_16550
77     XUartNs550_SetBaud(STDOUT_BASEADDR, XPAR_XUARTNS550_CLOCK_HZ, UART_BAUD);
78     XUartNs550_SetLineControlReg(STDOUT_BASEADDR, XUN_LCR_8_DATA_BITS);
79 #endif
80 #ifdef STDOUT_IS_PS7_UART
81     /* Bootrom/BSP configures PS7 UART to 115200 bps */
82 #endif
83 }
84
85 void
86 init_platform()
87 {
88     /*
89      * If you want to run this example outside of SDK,
90      * uncomment the following line and also #include "ps7_init.h" at the top.
91      * Make sure that the ps7_init.c and ps7_init.h files are included
92      * along with this example source files for compilation.
93      */
94     /* ps7_init();*/
95     enable_caches();
96     init_uart();
97 }
98
99 void
100 cleanup_platform()
101 {
102     disable_caches();
103 }