[processor-sdk/performance-audio-sr.git] / ipc_3_43_00_00_eng / docs / relnotes_archive / ipc_1_22_00_19_release_notes.html
1 <!-- --COPYRIGHT--,BSD
2 * Copyright (c) $(CPYYEAR), Texas Instruments Incorporated
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * * Neither the name of Texas Instruments Incorporated nor the names of
17 * its contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 * --/COPYRIGHT-- -->
32 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
33 <html>
34 <head>
35 <title>IPC 1.22.00.19 Release Notes</title>
36 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
37 <!-- For now, we use the doxygen style sheet -->
38 <link href="release_notes_template_files/css.htm" type="text/css" rel="stylesheet">
39 </head>
40 <body>
41 <table width="100%">
42 <tbody>
43 <tr>
44 <td bgcolor="black" width="1">
45 <a href="http://www.ti.com/"><img style=
46 "border: 0px solid ; width: 222px; height: 54px;" alt=
47 "Texas Instruments" src="docs/tilogo.gif"></a>
48 </td>
49 <td bgcolor="red">
50 <img style="width: 314px; height: 26px;" alt=
51 "Technology for Innovators(tm)" src="docs/titagline.gif">
52 </td>
53 </tr>
54 </tbody>
55 </table>
56 <h1 style="text-align: left;"> IPC 1.22.00.19
57 GA Release Notes </h1>
58 This release note is divided into the following sections:<br>
59 <br>
60 <a href="#General_Info">Introduction</a>, <a href=
61 "#Documentation">Documentation</a>, <a href="#Whats_New">What's New</a>,
62 <a href="#Compatibility">Upgrade & Compatibility Information</a>,
63 <a href="#Host_Support">Host Support</a>, <a href=
64 "#Dependencies">Dependencies</a>, <a href="#Device_Support">Device
65 Support</a>, <a href="#Validation">Validation Info</a>, <a href=
66 "#Known_Issues">Known Issues</a>, <a href="#Examples">Examples</a>,
67 <a href="#Version">Version Information</a>, <a href="#Support">Technical
68 Support</a>.
69 <hr>
70 <h2>
71 <a name="General_Info" id="General_Info">Introduction</a>
72 </h2>
73 <p>IPC 1.22.00.19 is an GA release of IPC</p>
74 <p>
75 Interprocess communication mechanisms including message passing, streams,
76 and linked lists, which work transparently in both uniprocessor and
77 muiltiprocessor configurations.
78 </p>
79 <p>
80 The IPC product is comprised of the following main packages
81 </p>
82 <ul>
83 <li>
84 <span style="font-weight: bold;">ti.ipc</span>: Contains common
85 interface files (e.g. MessageQ, ListMP, HeapMemMP, Notify, etc.)
86 </li>
87 <li>
88 <span style="font-weight: bold;">ti.sdo.io</span>: Contains I/O
89 modules (e.g. Stream, IDriver interface, etc.)
90 </li>
91 <li>
92 <span style="font-weight: bold;">ti.sdo.utils</span>: Contains helper modules (e.g.
93 MultiProc, List and NameServer)
94 </li>
95 <li>
96 <span style="font-weight: bold;">ti.sdo.ipc.heaps</span>: Contains shared-memory
97 Heaps
98 </li>
99 <li>
100 <span style="font-weight: bold;">ti.sdo.</span><span style=
101 "font-weight: bold;">ipc</span>: Contains multicore modules (e.g.
102 MessageQ, Notify, ListMP, etc.)
103 </li>
104 </ul>These packages are provided as source code and prebuilt libraries.<br>
105 <hr>
106 <h2>
107 <a name="Documentation" id="Documentation">Documentation</a>
108 </h2>
109 <p>
110 The following documentation is available:
111 </p>
112 <table border=1px>
113 <tr>
114 <td><a href="docs/IPC_Install_Guide.pdf">User Install Guide</a></td>
115 <td></td>
116 </tr>
117 <tr>
118 <td><a href="docs/IPC_Users_Guide.pdf">User Guide (SPRUGO6C)</a></td>
119 <td></td>
120 </tr>
121 <tr>
122 <td><a href="docs/doxygen/html/index.html">Doxygen API guide</a></td>
123 <td>Documents runtime-APIs, type definitions, error codes and constants</td>
124 </tr>
125 <tr>
126 <td><a href="docs/cdoc/index.html">Cdoc API guide</a></td>
127 <td>Documents config-time (RTSC) APIs, Asserts and Errors; Indexed
128 and searchable within CCS/Eclipse</td>
129 </tr>
130 </table>
131 <p>Manifest and License:</p>
132 <p><a href="ipc_1_22_00_19_manifest.html">IPC Software Manifest and License</a></p>
133 <p>
134 Release notes from previous releases are also available in the <a href=
135 "docs/relnotes_archive">relnotes_archive</a> directory.
136 </p>
137 <hr>
138 <h2>
139 <a name="Whats_New" id="Whats_New">What's new</a>
140 </h2>
141 <p>IPC 1.22.00 offers the following new features:</p>
142 <ul>
143 <li>Cortex A8 Support for TI81XX family of devices</li>
144 <li>Support for the C66XX family of multicore DSPs</li>
145 <li>Optimized Notify driver and MessageQ transports are now available</li>
146 <li>GateMP supports reserving hardware locks for use outside of IPC</li>
147 <li>GateMP delegates now usable on a stand-alone basis</li>
148 <li>Performance enhancements since IPC 1.21</li>
149 </ul>
150 <p><b>Changes since IPC 1.21.02:</b></p>
151 <table border=1px>
152 <tr><td>SDOCM00073561</td><td>SharedRegion_getPtr should assert that corresponding shared region is valid</td></tr>
153 <tr><td>SDOCM00073872</td><td>SharedRegion_setEntry vulnerable to stale memory</td></tr>
154 <tr><td>SDOCM00074022</td><td>Notify_sendEvent() for local events needs to use 'strippedEventId' instead of 'eventId'</td></tr>
155 <tr><td>SDOCM00066117</td><td>ListMP: Optimize cache calls for C64P</td></tr>
156 <tr><td>SDOCM00073970</td><td>Added Ipc_isAttached</td></tr>
157 <tr><td>SDOCM00074384</td><td>Add MultiProc.getDeviceProcNames</td></tr>
158 <tr><td>SDOCM00074214</td><td>IPC gate delegates should be usable on a stand-alone basis</td></tr>
159 <tr><td>SDOCM00074387</td><td>MultiProc.xdc need MultiProc_dummy function to force correct behavior of whole_program link</td></tr>
160 <tr><td>SDOCM00073702</td><td>GateMP should offer ability to reserve hardware resources</td></tr>
161 <tr><td>SDOCM00073655</td><td>Update IPC release notes to say "(Indexed and Searchable within CCS/Eclipse Help)" next to API/cdoc</td></tr>
162 <tr><td>SDOCM00074596</td><td>C647x Interrupt module should clear all pending interrupts at Module_startup time</td></tr>
163 <tr><td>SDOCM00074448</td><td>add support for ti816x part and evmti816x platform in IPC 1.22</td></tr>
164 <tr><td>SDOCM00074091</td><td>provide simple transport that doesn't use ListMP (use Notify and wait for other side before sending next)</td></tr>
165 <tr><td>SDOCM00074666</td><td>Ipc should support xyx_sharedMemReq() return value of 0 (some drivers might not need any SM)</td></tr>
166 <tr><td>SDOCM00072205</td><td>Review MessageQ_delete documentation/behavior </td></tr>
167 <tr><td>SDOCM00074193</td><td>MessageQ doxygen needs better description for return status (some are good, others need clarification)</td></tr>
168 <tr><td>SDOCM00074189</td><td>SharedRegion_getHeap() documentation needs to describe heap handle</td></tr>
169 <tr><td>SDOCM00074129</td><td>TransportShm_put() should check SR_getId(msg) and return error if msg not in an SR</td></tr>
170 <tr><td>SDOCM00074221</td><td>Ipc_detach() return codes unclear </td></tr>
171 <tr><td>SDOCM00074820</td><td>HeapMemMP.c passes in incorrect parameters to Cache_wbInv</td></tr>
172 <tr><td>SDOCM00074858</td><td>TI816X, DM8148 platforms should default L2 cache to 256K</td></tr>
173 <tr><td>SDOCM00074895</td><td>NotifyDriverShm_unregisterEvent: eventRegChart can be rendered invalid if unregistering an event</td></tr>
174 <tr><td>SDOCM00074034</td><td>provide optimized Notify driver (minimize cache calls and list re-search)</td></tr>
175 <tr><td>SDOCM00075100</td><td>IPC doxygen docs are missing the #include statements</td></tr>
176 <tr><td>SDOCM00069595</td><td>ROV fix for static msgs and also added version in msgView</td></tr>
177 <tr><td>SDOCM00075426</td><td>Cache_inv of eventEntry should be done in NotifyDriverShm_sendEvent only if waitClear = 'TRUE'</td></tr>
178 <tr><td>SDOCM00075676</td><td>HeapMemMP_free() should Assert that the address passed to it is aligned properly.</td></tr>
179 <tr><td>SDOCM00075746</td><td>Remove Cache.maxLineModeBufSize workaround in dm816x/InterruptDucati.xs </td></tr>
180 <tr><td>SDOCM00075679</td><td>HeapBufMP_free() should do more validity checks on buffer passed to it</td></tr>
181 <tr><td>SDOCM00075967</td><td>Need to update IPC 1.22 User_Install.pdf</td></tr>
182 <tr><td>SDOCM00076107</td><td>Add support for 6670, 72, 74 and 6678 devices</td></tr>
183 <tr><td>SDOCM00076223</td><td>GateHWSem module should support up to 64 HW semaphores</td></tr>
184 <tr><td>SDOCM00076109</td><td>IPC heaps should raise allocation errors along with Memory_alloc</td></tr>
185 <tr><td>SDOCM00076336</td><td>Circular buffer drivers need to be thread safe in the "put" function</td></tr>
186 <tr><td>SDOCM00072061</td><td>Ipc_start()/attach()/detach() API fixes</td></tr>
187 <tr><td>SDOCM00073714</td><td>Ipc.userFxn should be an array</td></tr>
188 <tr><td>SDOCM00075103</td><td>Ipc_attach() document needs consumer perspective</td></tr>
189 <tr><td>SDOC000M76377</td><td>Generator/ChanParams check for NULL</td></tr>
190 <tr><td>SDOCM00076570</td><td>Ipc_start() needs a retry error code</td></tr>
191 <tr><td>SDOCM00076458</td><td>Need to unlock KICK registers in BootCfg MMR so writes to IPC registers work</td></tr>
192 <tr><td>SDOCM00075288</td><td>IPC users guide needs updating for IPC 1.22</td></tr>
193 <tr><td>SDOCM00076565</td><td>NameServer_postInit incorrectly manipulates 'obj->names'</td></tr>
194 </table>
195 <P>Misc changes</P>
196 <UL>
197 <LI>MessageQ.numHeaps has been changed to '8' from '1'</LI>
198 </UL>
199 <p>
200 For information on enhancements and defect fixes in earlier releases,
201 please refer to the release notes from previous releases that are
202 available in the <a href="docs/relnotes_archive">relnotes_archive</a>
203 directory.
204 </p>
205 <hr>
206 <h2>
207 <a name="Compatibility" id="Compatibility">Upgrade and Compatibility
208 Information</a>
209 </h2>
210 <p>
211 <span style="font-weight: bold;">Interface/API changes:</span>
212 <p>
213 Most of the APIs in IPC 1.22.00 are compatible with IPC 1.20/1.21. However,
214 code using IPC 1.20/1.21 will have to be recompiled for use with IPC 1.22.00.
215 You must recompile -- relink will not work.
216 </p>
217 <p>
218 ti.sdo.ipc.* and ti.sdo.utils.* APIs in the IPC 1.2X.XX.XX
219 releases are not compatible with those in the IPC 1.00.0X.XX (GA) release.
220 These APIs have been updated to be consistent with the Linux APIs to share
221 common header files in ti/ipc/. However, APIs in the ti.sdo.io package
222 have not changed since the 1.00 GA release.
223 </p>
224 </p>
225 <p>
226 <span style="font-weight: bold;">DM8168 MultiProc name changes</span>
227 <p>The valid MultiProc names for DM8168 were changed in IPC 1.21.02 to match the official names. They are now as follows:
228 <ul><li>VIDEO-M3</li><li>VPSS-M3</li><li>DSP</li><li>HOST</li></ul>
229 If legacy/incorrect names are used in the MultiProc configuration, a RTSC
230 build error will be displayed. However, runtime usage of any legacy or incorrect
231 MultiProc names cannot be caught until runtime.
232 </p>
233 <span style="font-weight: bold;">DM8168 Example platform changes</span>
234 <p>'ti.sdo.ipc.examples.platforms.simDM8168.xxx' sample platforms in IPC have been renamed to 'ti.sdo.ipc.examples.platforms.<b>evmTI816X</b>.xxx'.
235 Applications should use 'evmTI816X' instead of 'simDM8168' if the applications are using the example platforms packaged with IPC. Existing
236 platforms generated using the platform wizard are not affected by this change.
237 </p>
238 <span style="font-weight: bold;">ti.sdo.ipc.family.dm8168 package name change</span>
239 <p>The ti.sdo.ipc.family.dm8168 package has been renamed to ti.sdo.ipc.family.ti81xx. Application that use the NotifySetup
240 or InterruptXXX modules contained within must use the new package name in order to build with this version of IPC</p>
241 </p>
242 <hr>
243 <h2>
244 <a name="Host_Support" id="Host_Support">Host Support</a>
245 </h2>
246 <p>
247 This release supports the following hosts:
248 </p>
249 <p>
250 Windows XP SP2/SP3
251 </p>
252 <p>
253 Windows Vista
254 </p>
255 <p>
256 Linux (Redhat 4 and 5)
257 </p>
258 <p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;">
259 </p>
260 <hr>
261 <h2>
262 <a name="Dependencies" id="Dependencies">Dependencies</a>
263 </h2>
264 <p>
265 This release requires the following other software components and tools
266 versions to successfully function:
267 </p>
268 <ul>
269 <li>CCS 4.2.0.08024 (or later)
270 </li>
271 <li>SYS/BIOS 6.31.00.18 (or later)
272 </li>
273 <li>XDCTools 3.20.05.76 (or later)<br>
274 </li>
275 </ul>
276 <hr>
277 <h2><a name="Device_Support" id="Device_Support">Device Support</a></h2>
278 <ul>
279 <li><a href="http://focus.ti.com/docs/prod/folders/print/tms320c6472.html">TMS320C6472</a></li>
280 <li><a href="http://focus.ti.com/docs/prod/folders/print/tms320c6474.html">TMS320C6474</a></li>
281 <li><a href="http://focus.ti.com/docs/prod/folders/print/tms320c6670.html">TMS320C6670</a></li>
282 <li><a href="http://focus.ti.com/docs/prod/folders/print/tms320c6678.html">TMS320C6678</a></li>
283 <li><a href="http://focus.ti.com/apps/docs/gencontent.tsp?contentId=52385&appId=1">TMS320DA830</a></li>
284 <li><a href="http://focus.ti.com/apps/docs/gencontent.tsp?contentId=52385&appId=1">OMAPL137</a></li>
285 <li><a href="http://focus.ti.com/docs/prod/folders/print/tms320dm6446.html">TMS320CDM6446</a></li>
286 <li><a href="http://focus.ti.com/docs/prod/folders/print/omap-l138.html">OMAPL138</a></li>
287 <li><a href="http://focus.ti.com/docs/prod/folders/print/omap3530.html">OMAP3530</a></li>
288 <li><a href="http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&navigationId=12843&contentId=53243">OMAP4430</a></li>
289 <li><a href="http://www.ti.com/ww/en/dsp/davinci-netra/index.shtml?DCMP=vs_dm8168_03182010&HQS=Other+OT+dm8168">TMS320DM8168</a></li>
290 <li>TMS320DM8148</li>
291 </ul>
292 <hr>
293 <h2>
294 <a name="Validation" id="Validation">Validation Information</a>
295 </h2>This release was validated using the following components:
296 <ul>
297 <li>CCS 4.2.0.08024
298 </li>
299 <li>SYS/BIOS 6.31.00.18
300 </li>
301 <li>XDCTools 3.20.05.76<br>
302 </li>
303 </ul>
304 <hr>
305 <h2><a name="Known_Issues" id="Known_Issues">Known Issues</a></h2>
306 <table border=1px>
307 <tr><td>SDOCM00068256</td><td>The linker will product a warning about "placing code in a data section"
308 when building c6x applications using the whole_program[_debug] build profile for some devices.
309 It is safe to ignore this warning.</td></tr>
310 </table>
311 <br>
312 <hr>
313 <h2>
314 <a name="Examples" id="Examples">Examples</a>
315 </h2>The IPC product ships with several examples. The following is an
316 explaination of each one. Refer to the <a href=
317 "docs/User_install.pdf"></a><a href="docs/User_install.pdf">User
318 Install Guide</a> for details on building.<br>
319 <big><span style="font-weight: bold;">io\examples</span></big><br>
320 <div style="margin-left: 40px;">
321 - <span style="font-weight: bold;">stream</span>: This example shows the
322 use of ti.sysbios.io.Stream module to demonstrate IO streaming using a
323 driver.<br>
324 <br>
325 </div>
326 <big><span style="font-weight: bold;">ipc\examples\singlecore</span></big><br>
327 <div style="margin-left: 40px;">
328 - <span style="font-weight: bold;">notify_loopback</span>: This example
329 demonstrates the Notify module on a single core using loopback
330 functionality.<br>
331 - <span style="font-weight: bold;">message</span>: This example
332 demonstrates the MessageQ module on a single core.<br>
333 <br>
334 </div><big style=
335 "font-weight: bold;">ipc\examples\multicore<br></big>Please refer to the
336 readme.txt in the multicore platform specific directories for details on
337 how to run.<big style="font-weight: bold;"><br></big>
338 <div style="margin-left: 40px;">
339 - <span style="font-weight: bold;">message</span>: This example shows
340 how to use MessageQ on a multiprocessor system.<br>
341 - <span style="font-weight: bold;">notify</span>: This example shows how
342 to use IPC notifications on a multiprocessor system.<br>
343 </div>
344 <h2>
345 <a name="Version" id="Version">Version Information</a>
346 </h2>
347 <p>
348 All releases have 4 digits (<b>M.mm.pp.bb</b>). This includes GA and
349 pre-releases (engineering, EA, beta, etc.). Pre-releases are denoted with
350 a suffix (e.g. 1.21.00.01_eng).
351 </p>
352 <p>
353 This product's version follows a version format, <b>M.mm.pp.bb</b>, where
354 <b>M</b> is a single digit Major number, <b>mm</b> is 2 digit minor
355 number, <b>pp</b> is a 2 digit patch number, and <b>b</b> is an
356 unrestricted set of digits used as an incrementing build counter.
357 </p>
358 <p>
359 To support multiple side-by-side installations of the product, the
360 product version is encoded in the top level directory, ex.
361 <b>ipc_1_21_00_01</b>.
362 </p>
363 <p>
364 Subsequent releases of patch upgrades will be identified by the patch
365 number, ex. IPC 1.21.00.01 with directory <b>ipc_1_21_00_01</b>.
366 Typically, these patches only include critical bug fixes.
367 </p>
368 <p>
369 Please note that version numbers and compatibility keys are NOT the same.
370 For an explanation of compatibility keys, please refer to the 'Upgrade
371 and Compatibility Information' section.
372 </p>
373 <hr>
374 <h2>
375 <a name="Support" id="Support">Technical Support</a>
376 </h2>
377 <p>
378 For technical support, use the community forum
379 <a href="http://e2e.ti.com/">TI E2E Community</a>, or email
380 softwaresupport@ti.com.
381 </p>
382 <hr>
383 <p>Last updated: November 19, 2010</p>
384 </body>
385 </html>
386 </body>
387 </html>