1 /**
2 * @file resmgr_cfg.c
3 *
4 * @brief
5 * Resource Manager Configuration for entire system.
6 *
7 * \par
8 * NOTE:
9 * (C) Copyright 2012 Texas Instruments, Inc.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 *
15 * Redistributions of source code must retain the above copyright
16 * notice, this list of conditions and the following disclaimer.
17 *
18 * Redistributions in binary form must reproduce the above copyright
19 * notice, this list of conditions and the following disclaimer in the
20 * documentation and/or other materials provided with the
21 * distribution.
22 *
23 * Neither the name of Texas Instruments Incorporated nor the names of
24 * its contributors may be used to endorse or promote products derived
25 * from this software without specific prior written permission.
26 *
27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
32 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
33 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
35 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 *
39 */
41 #include <ti/drv/aif2/aif2.h>
43 #define DATA_TYPE_DL AIF2FL_LINK_DATA_TYPE_NORMAL
44 #define DATA_TYPE_UL AIF2FL_LINK_DATA_TYPE_RSA
45 #define DATA_WIDTH_16 AIF2FL_DATA_WIDTH_16_BIT
46 #define DATA_WIDTH_15 AIF2FL_DATA_WIDTH_15_BIT
47 #define DATA_WIDTH_8 AIF2FL_DATA_WIDTH_8_BIT
48 #define DATA_WIDTH_7 AIF2FL_DATA_WIDTH_7_BIT
49 #define DIO_0 AIF2FL_DIO_ENGINE_0
52 /* All configuration requests are placed in the configuration memory section. */
54 /**
55 * @brief
56 * Sample System Configuration requested.
57 *
58 * @details
59 * This is a sample platform configuration request for all 4 cores.
60 */
61 AIF_CfgObj gAifCfgLocalObj =
62 {
64 "LTE_20MHZ_RF_SINGLE_TONE", // test name
65 AIF2FL_LINK_PROTOCOL_CPRI,
66 AIF_LTE_FDD_MODE,
67 AIF2FL_CPPI,
68 {
69 /* CORE 0 (TI initialization): Requested Configuration. */
70 {
71 AIF_LTE_FDD_MODE,
72 // link0 link1 link2 link3 link4 link5
73 {0, 0, 0, 1, 0, 0 }, // link enable
74 {4, 4, 4, 4, 4, 4 }, // link rate
75 {0, 0, 0, 1, 0, 0 }, // num AxC per core
76 {0, 0, 0, 0, 0, 0 }, // first AxC Index
77 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // outboundDataType
78 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // outboundDataWidth
79 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // inboundDataType
80 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // inboundDataWidth
81 {DIO_0, DIO_0, DIO_0, DIO_0, DIO_0, DIO_0}, // not applicable for LTE test
82 {LTE, LTE, LTE, LTE, LTE, LTE}, // Only for Dual Mode
83 0, // CW enable
84 310, // peAxCOffset
85 0, // pdAxCOffset
86 AIF2FL_DB_FIFO_DEPTH_QW8, // egressBufDepth
87 AIF2FL_DB_FIFO_DEPTH_QW8, // ingressBufDepth
88 },
89 /* CORE 1 (TI initialization): Requested Configuration. */
90 {
91 AIF_LTE_FDD_MODE,
92 // link0 link1 link2 link3 link4 link5
93 {0, 0, 0, 1, 0, 0 }, // link enable
94 {4, 4, 4, 4, 4, 4 }, // link rate
95 {0, 0, 0, 1, 0, 0 }, // num AxC per core
96 {0, 0, 0, 1, 0, 0 }, // first AxC Index
97 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // outboundDataType
98 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // outboundDataWidth
99 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // inboundDataType
100 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // inboundDataWidth
101 {DIO_0, DIO_0, DIO_0, DIO_0, DIO_0, DIO_0}, // not applicable for LTE test
102 {LTE, LTE, LTE, LTE, LTE, LTE}, // Only for Dual Mode
103 0, // CW enable
104 310, // peAxCOffset
105 0, // pdAxCOffset
106 AIF2FL_DB_FIFO_DEPTH_QW8, // egressBufDepth
107 AIF2FL_DB_FIFO_DEPTH_QW8, // ingressBufDepth
108 },
109 /* CORE 2 (TI initialization): Requested Configuration. */
110 {
111 AIF_LTE_FDD_MODE,
112 // link0 link1 link2 link3 link4 link5
113 {0, 0, 0, 1, 0, 0 }, // link enable
114 {4, 4, 4, 4, 4, 4 }, // link rate
115 {0, 0, 0, 1, 0, 0 }, // num AxC per core
116 {0, 0, 0, 2, 0, 0 }, // first AxC Index
117 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // outboundDataType
118 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // outboundDataWidth
119 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // inboundDataType
120 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // inboundDataWidth
121 {DIO_0, DIO_0, DIO_0, DIO_0, DIO_0, DIO_0}, // not applicable for LTE test
122 {LTE, LTE, LTE, LTE, LTE, LTE}, // Only for Dual Mode
123 0, // CW enable
124 310, // peAxCOffset
125 0, // pdAxCOffset
126 AIF2FL_DB_FIFO_DEPTH_QW8, // egressBufDepth
127 AIF2FL_DB_FIFO_DEPTH_QW8, // ingressBufDepth
128 },
129 /* CORE 3 (TI initialization): Requested Configuration. */
130 {
131 AIF_LTE_FDD_MODE,
132 // link0 link1 link2 link3 link4 link5
133 {0, 0, 0, 1, 0, 0 }, // link enable
134 {4, 4, 4, 4, 4, 4 }, // link rate
135 {0, 0, 0, 1, 0, 0 }, // num AxC per core
136 {0, 0, 0, 3, 0, 0 }, // first AxC Index
137 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // outboundDataType
138 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // outboundDataWidth
139 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // inboundDataType
140 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // inboundDataWidth
141 {DIO_0, DIO_0, DIO_0, DIO_0, DIO_0, DIO_0}, // not applicable for LTE test
142 {LTE, LTE, LTE, LTE, LTE, LTE}, // Only for Dual Mode
143 0, // CW enable
144 310, // peAxCOffset
145 0, // pdAxCOffset
146 AIF2FL_DB_FIFO_DEPTH_QW8, // egressBufDepth
147 AIF2FL_DB_FIFO_DEPTH_QW8, // ingressBufDepth
148 }
149 #if defined(DEVICE_K2K) || defined(DEVICE_K2H)
150 ,
151 /* CORE 4 (TI initialization): Requested Configuration. */
152 {
153 AIF_LTE_FDD_MODE,
154 // link0 link1 link2 link3 link4 link5
155 {0, 0, 0, 1, 0, 0 }, // link enable
156 {4, 4, 4, 4, 4, 4 }, // link rate
157 {0, 0, 0, 1, 0, 0 }, // num AxC per core
158 {0, 0, 0, 4, 0, 0 }, // first AxC Index
159 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // outboundDataType
160 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // outboundDataWidth
161 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // inboundDataType
162 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // inboundDataWidth
163 {DIO_0, DIO_0, DIO_0, DIO_0, DIO_0, DIO_0}, // not applicable for LTE test
164 {LTE, LTE, LTE, LTE, LTE, LTE}, // Only for Dual Mode
165 0, // CW enable
166 310, // peAxCOffset
167 0, // pdAxCOffset
168 AIF2FL_DB_FIFO_DEPTH_QW8, // egressBufDepth
169 AIF2FL_DB_FIFO_DEPTH_QW8, // ingressBufDepth
170 },
171 /* CORE 5 (TI initialization): Requested Configuration. */
172 {
173 AIF_LTE_FDD_MODE,
174 // link0 link1 link2 link3 link4 link5
175 {0, 0, 0, 1, 0, 0 }, // link enable
176 {4, 4, 4, 4, 4, 4 }, // link rate
177 {0, 0, 0, 1, 0, 0 }, // num AxC per core
178 {0, 0, 0, 5, 0, 0 }, // first AxC Index
179 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // outboundDataType
180 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // outboundDataWidth
181 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // inboundDataType
182 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // inboundDataWidth
183 {DIO_0, DIO_0, DIO_0, DIO_0, DIO_0, DIO_0}, // not applicable for LTE test
184 {LTE, LTE, LTE, LTE, LTE, LTE}, // Only for Dual Mode
185 0, // CW enable
186 310, // peAxCOffset
187 0, // pdAxCOffset
188 AIF2FL_DB_FIFO_DEPTH_QW8, // egressBufDepth
189 AIF2FL_DB_FIFO_DEPTH_QW8, // ingressBufDepth
190 },
191 /* CORE 6 (TI initialization): Requested Configuration. */
192 {
193 AIF_LTE_FDD_MODE,
194 // link0 link1 link2 link3 link4 link5
195 {0, 0, 0, 1, 0, 0 }, // link enable
196 {4, 4, 4, 4, 4, 4 }, // link rate
197 {0, 0, 0, 1, 0, 0 }, // num AxC per core
198 {0, 0, 0, 6, 0, 0 }, // first AxC Index
199 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // outboundDataType
200 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // outboundDataWidth
201 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // inboundDataType
202 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // inboundDataWidth
203 {DIO_0, DIO_0, DIO_0, DIO_0, DIO_0, DIO_0}, // not applicable for LTE test
204 {LTE, LTE, LTE, LTE, LTE, LTE}, // Only for Dual Mode
205 0, // CW enable
206 310, // peAxCOffset
207 0, // pdAxCOffset
208 AIF2FL_DB_FIFO_DEPTH_QW8, // egressBufDepth
209 AIF2FL_DB_FIFO_DEPTH_QW8, // ingressBufDepth
210 },
211 /* CORE 7 (TI initialization): Requested Configuration. */
212 {
213 AIF_LTE_FDD_MODE,
214 // link0 link1 link2 link3 link4 link5
215 {0, 0, 0, 1, 0, 0 }, // link enable
216 {4, 4, 4, 4, 4, 4 }, // link rate
217 {0, 0, 0, 1, 0, 0 }, // num AxC per core
218 {0, 0, 0, 7, 0, 0 }, // first AxC Index
219 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // outboundDataType
220 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // outboundDataWidth
221 {DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL, DATA_TYPE_DL }, // inboundDataType
222 {DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_15, DATA_WIDTH_16, DATA_WIDTH_15}, // inboundDataWidth
223 {DIO_0, DIO_0, DIO_0, DIO_0, DIO_0, DIO_0}, // not applicable for LTE test
224 {LTE, LTE, LTE, LTE, LTE, LTE}, // Only for Dual Mode
225 0, // CW enable
226 310, // peAxCOffset
227 0, // pdAxCOffset
228 AIF2FL_DB_FIFO_DEPTH_QW8, // egressBufDepth
229 AIF2FL_DB_FIFO_DEPTH_QW8, // ingressBufDepth
230 }
231 #endif
232 }
233 };
235 /* Resource Manager configuration. Initialized on SoC Init core (Core0) with the previous local object. Used here to check
236 * resource allocation status for this core */
237 #pragma DATA_SECTION(gAifCfgObj, ".cfgAifSection");
238 AIF_CfgObj gAifCfgObj;
240 /////////////////////////////////