1 /******************************************************************************
\r
3 * (c) Copyright 2014 Xilinx, Inc. All rights reserved.
\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
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
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
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
39 * THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART
\r
40 * OF THIS FILE AT ALL TIMES.
\r
42 ******************************************************************************/
\r
44 PMU - PCW handoff file
\r
45 Auto generated file from PCW-Vivado tools to be consumed in PMU firmware
\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
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
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
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
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
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
158 /* Safety Monitor test case to be done */
\r