]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/ZynqMP_hw_platform/psu_pmucfg.c
Add in the CORTEX_A53_64-bit_UltraScale_MPSoC demo application (a demo has been inclu...
[freertos] / FreeRTOS / Demo / CORTEX_A53_64-bit_UltraScale_MPSoC / ZynqMP_hw_platform / psu_pmucfg.c
1 /******************************************************************************\r
2  *\r
3  * (c) Copyright 2014 Xilinx, Inc. All rights reserved.\r
4  *\r
5  * This file contains confidential and proprietary information  of Xilinx, Inc.\r
6  * and is protected under U.S. and  international copyright and other\r
7  * intellectual property  laws.\r
8  *\r
9  * DISCLAIMER\r
10  * This disclaimer is not a license and does not grant any  rights to the\r
11  * materials distributed herewith. Except as  otherwise provided in a valid\r
12  * license issued to you by  Xilinx, and to the maximum extent permitted by\r
13  * applicable law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND  WITH ALL\r
14  * FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES  AND CONDITIONS, EXPRESS,\r
15  * IMPLIED, OR STATUTORY, INCLUDING  BUT NOT LIMITED TO WARRANTIES OF\r
16  * MERCHANTABILITY, NON-  INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE;\r
17  * and\r
18  * (2) Xilinx shall not be liable (whether in contract or tort,  including\r
19  * negligence, or under any other theory of liability) for any loss or damage\r
20  * of any kind or nature  related to, arising under or in connection with these\r
21  * materials, including for any direct, or any indirect,  special, incidental,\r
22  * or consequential loss or damage  (including loss of data, profits,\r
23  * goodwill, or any type of  loss or damage suffered as a result of any\r
24  * action brought  by a third party) even if such damage or loss was\r
25  * reasonably foreseeable or Xilinx had been advised of the  possibility\r
26  * of the same.\r
27  *\r
28  * CRITICAL APPLICATIONS\r
29  * Xilinx products are not designed or intended to be fail-  safe, or for use\r
30  * in any application requiring fail-safe  performance, such as life-support\r
31  * or safety devices or  systems, Class III medical devices, nuclear\r
32  * facilities,  applications related to the deployment of airbags, or any\r
33  * other applications that could lead to death, personal  injury, or severe\r
34  * property or environmental damage  (individually and collectively,\r
35  * "Critical  Applications"). Customer assumes the sole risk and  liability\r
36  * of any use of Xilinx products in Critical  Applications, subject only to\r
37  * applicable laws and  regulations governing limitations on product liability.\r
38  *\r
39  * THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS  PART\r
40  * OF THIS FILE AT ALL TIMES.\r
41  *\r
42  ******************************************************************************/\r
43 /*\r
44   PMU - PCW handoff file\r
45   Auto generated file from PCW-Vivado tools to be consumed in PMU firmware  \r
46 */\r
47 \r
48 #define XPFW_CFG_MASTER_PMU                   0 \r
49 #define XPFW_CFG_MASTER_CSU                   1\r
50 #define XPFW_CFG_MASTER_APU                   2\r
51 #define XPFW_CFG_MASTER_RPU_0                 3\r
52 #define XPFW_CFG_MASTER_RPU_1                 4\r
53 #define XPFW_CFG_MASTER_USB0                  5\r
54 #define XPFW_CFG_MASTER_USB1                  6\r
55 #define XPFW_CFG_MASTER_ENET0                 7\r
56 #define XPFW_CFG_MASTER_ENET1                 8\r
57 #define XPFW_CFG_MASTER_ENET2                 9\r
58 #define XPFW_CFG_MASTER_ENET3                 10\r
59 #define XPFW_CFG_MASTER_DAP                   11\r
60 #define XPFW_CFG_MASTER_ADMA                  12\r
61 #define XPFW_CFG_MASTER_SD0                   13\r
62 #define XPFW_CFG_MASTER_SD1                   14\r
63 #define XPFW_CFG_MASTER_NAND                  15\r
64 #define XPFW_CFG_MASTER_QSPI                  16\r
65 #define XPFW_CFG_MASTER_SATA                  17\r
66 #define XPFW_CFG_MASTER_GPU                   18\r
67 #define XPFW_CFG_MASTER_CORESIGHT             19\r
68 #define XPFW_CFG_MASTER_PCIE                  20 \r
69 #define XPFW_CFG_MASTER_DP                    21 \r
70 #define XPFW_CFG_MASTER_GDMA                  22 \r
71 #define XPFW_CFG_MASTER_AF0                   23 \r
72 #define XPFW_CFG_MASTER_AF1                   24 \r
73 #define XPFW_CFG_MASTER_AF2                   25 \r
74 #define XPFW_CFG_MASTER_AF3                   26 \r
75 #define XPFW_CFG_MASTER_AF4                   27 \r
76 #define XPFW_CFG_MASTER_AF5                   28 \r
77 #define XPFW_CFG_MASTER_AFILPD                29\r
78 #define XPFW_CFG_MASTER_MAX                   30 \r
79 \r
80 #define XPFW_CFG_SLAVE_UART0                  0 \r
81 #define XPFW_CFG_SLAVE_UART1                  1 \r
82 #define XPFW_CFG_SLAVE_I2C0                   2 \r
83 #define XPFW_CFG_SLAVE_I2C1                   3 \r
84 #define XPFW_CFG_SLAVE_SPI0                   4 \r
85 #define XPFW_CFG_SLAVE_SPI1                   5 \r
86 #define XPFW_CFG_SLAVE_CAN0                   6 \r
87 #define XPFW_CFG_SLAVE_CAN1                   7 \r
88 #define XPFW_CFG_SLAVE_GPIO0                  8 \r
89 #define XPFW_CFG_SLAVE_ENET0                  9 \r
90 #define XPFW_CFG_SLAVE_ENET1                  10 \r
91 #define XPFW_CFG_SLAVE_ENET2                  11 \r
92 #define XPFW_CFG_SLAVE_ENET3                  12 \r
93 #define XPFW_CFG_SLAVE_NAND0                  13 \r
94 #define XPFW_CFG_SLAVE_TTC0                   14 \r
95 #define XPFW_CFG_SLAVE_TTC1                   15 \r
96 #define XPFW_CFG_SLAVE_TTC2                   16 \r
97 #define XPFW_CFG_SLAVE_TTC3                   17 \r
98 #define XPFW_CFG_SLAVE_WDT0                   18 \r
99 #define XPFW_CFG_SLAVE_SD0                    19 \r
100 #define XPFW_CFG_SLAVE_SD1                    10 \r
101 #define XPFW_CFG_SLAVE_USB0                   11 \r
102 #define XPFW_CFG_SLAVE_USB1                   12 \r
103 #define XPFW_CFG_SLAVE_IOUSLCR0               13 \r
104 #define XPFW_CFG_SLAVE_CSU0                   14 \r
105 #define XPFW_CFG_SLAVE_LPD_SLCR               15 \r
106 #define XPFW_CFG_SLAVE_LPD_GPV                16 \r
107 #define XPFW_CFG_SLAVE_USB3_0                 17 \r
108 #define XPFW_CFG_SLAVE_USB3_1                 18 \r
109 #define XPFW_CFG_SLAVE_QSPI0                  19 \r
110 #define XPFW_CFG_SLAVE_DDR                    20 \r
111 #define XPFW_CFG_SLAVE_OCM                    21 \r
112 #define XPFW_CFG_SLAVE_PMU_GLREG              22 \r
113 #define XPFW_CFG_SLAVE_MAX                    23 \r
114  \r
115  \r
116 /* MASTER LIST\r
117  Shared resources like DDR will be powered off by the PMUFW, if no active user for such a resource is present. In order to be able to determine whether no user is present, \r
118  PMUFW needs to be aware of all possible users. These include:\r
119  1.  APU  / Independent A53s\r
120  2.  RPU lockstep/independent\r
121  3.  PL Soft-Cores\r
122  So a list of all active Masters in the System should be exported to PMU FW */\r
123  unsigned int XPFW_ConfigActMasters[XPFW_CFG_MASTER_MAX] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; \r
124 \r
125 /* SLAVE LIST\r
126  It is expected that unused resources are statically turned off by the FSBL during boot. Everything else that is used during run-time needs to be known to the\r
127  PMUFW in order to execute PM-related functionality on it. So a list of all active slaves on the system should be exported to the PMU FW */\r
128  unsigned int XPFW_ConfigActSlaves[XPFW_CFG_SLAVE_MAX] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; \r
129 \r
130 /* Ownership Information\r
131  PMU_Master_Slave_Isolation[C_MASTER_PSS_CORTEX_APU][PSS_DDR_0] = 1 */\r
132 unsigned int XPFW_ConfigTable[XPFW_CFG_MASTER_MAX][XPFW_CFG_SLAVE_MAX] = {\r
133                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,   // E.g APU   - > DDR, SD0, ENET0 \r
134                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,   // E.g RPU_0 - > DDR, SD0, ENET0 \r
135                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,   // E.g RPU_1 - > DDR, ENET0 \r
136                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                         \r
137                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                        \r
138                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                       \r
139                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                      \r
140                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                     \r
141                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                    \r
142                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                    \r
143                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                    \r
144                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                    \r
145                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                    \r
146                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                    \r
147                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                    \r
148                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                    \r
149                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                    \r
150                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                    \r
151                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                    \r
152                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                    \r
153                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                    \r
154                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,                    \r
155                                                                              1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1                    \r
156                                                                            };\r
157 \r
158 /* Safety Monitor test case to be done */\r