First ipumm component to public git.ti.com
[ivimm/ipumm.git] / README
1 /*
2  * Copyright (c) 2011-2015, 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  */
33 = About Distributed Codec Engine - RPMSG =
35 DCE is a library to remotely invoke the hw accellerated codecs on IVA-HD via a
36 syslink/rcm shim layer.  This provides access to the
37 [http://processors.wiki.ti.com/index.php/Category:Codec_Engine Codec Engine]
38 codec interface on the coprocessor (ducati/M3) from the host.
40 It is similar in purpose to remote codec engine, although at the time RCE was
41 not supported on OMAP4430, and DCE was a simple way to get the same result.
42 They should be roughly interchangeable from the user's perspective, with the
43 caveat that the DCE user should use <code>dce_alloc()</code> and
44 <code>dce_free()</code> to allocate/free the control structures that are
45 passed by pointer to CE APIs.
47 DCE was previously used by:
48 * [http://git.mansr.com/?p=omapfbplay omapfbplay]
49 * [http://github.com/robclark/gst-ducati gst-ducati]
51 :Note: look in the README file for the latest version of this document, in
52 particular for the required versions of various dependent components and tools,
53 as these can change over time.
56 = How To Build =
58 These instructions are assuming you are cross-compiling on a linux machine for
59 IPU (M4) coprocessor side and natively building the linux/A9 host side
60 (although the instructions for cross-compiling the host side are roughly the
61 same).
64 == Building IPU image on the Cortex-M4 Side ==
66 === Install TMS470/ARM Compiler ===
68 Install Code Generation Tools (CGT) from Code Composer Studio which
69 provides the compiler tool:
70 * http://processors.wiki.ti.com/index.php/Download_CCS
72 To get the ARM compiler version tool, eg cgtarm-5.2.5, launch CCS,
73 Click "Help" - "Install New Software" - On "Work with"
74 Select "Code Generation Tools Updates ..."
75 NOTE: Unclick the box "show only the latest version of available software"
76 otherwise you will not be able to see the previous version.
77 Click on left arrow to expand "TI compiler updates" and
78 select "ARM Compiler Tools - 5.2.5".
79 Click "Next" follow by another "Next" - "Accept the license agreement" - "Finish".
80 The CCS will ask the user to restart the complete the installation.
82 If ccs6 is installed in /opt/ti/ccsv6, then the compiler will get installed in
83 /opt/ti/ccsv6/tools/compiler
85 * Any issue on CCS, please contact the TI e2e forum:
86 http://e2e.ti.com/support/development_tools/default.aspx
88 === Install XDC tools ===
90 Download XDC tools from:
92 * http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/rtsc
94 Install to ''/opt/ti/xdctools_<version>''
96 === Install BIOS ===
98 Download BIOS (the RTOS) from:
100 * http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/sysbios/index.html
102 Install to ''/opt/ti/bios_<version>''
104 === Install Codec Engine ===
106 Download Codec Engine (CE) from:
108 * http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/ce/
110 The lite version is fine. Install to ''/opt/ti/codec_engine_<version>''
112 === Install Framework Components ===
114 Download Framework Components (FC) from:
116 * http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/fc
118 The lite version without fctools is fine.  Install to ''/opt/ti/framework_components_<version>''
120 === Install XDAIS ===
122 Download XDAIS from:
124 * http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais/index.html
126 Untar to ''/opt/ti/xdais_<version>''
129 === Setup Environment ===
131 The Project Home Directory (ipumm) host a Makefile.
132 the following environment variables need to be exported
133 export BIOSTOOLSROOT=<path where all tools are hosted>
134 export TIVIDEOTOOLSROOT=<path where FC and CE are installed>. This is optional.
135     If nothing is set, then it is assumed to be same as BIOSTOOLSROOT.
136 export IPCSRC=<path where IPC is installed>
137 export TMS470CGTOOLPATH=<path to CGTOOL ARM Compiler is installed>
139 Note: if you are using different version numbers, the paths would have to be
140 adjusted accordingly.
142 === Build IPC ===
143 Download IPC from:
145 * http://downloads.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/ipc/
147 Install to ''$HOME/ipc_<version>''
149  cd $HOME/ipc_version
151 Setup environment variables:
152 export IPC_INSTALL_DIR=<path where IPC is installed>
153 export DEPOT=<path where BIOS and XDC are installed>
154 export XDC_INSTALL_DIR=$DEPOT/xdctools_<version>
155 export BIOS_INSTALL_DIR=$DEPOT/bios_<version>
156 export CGTOOLS_ARM=<path to CGTOOL ARM Compiler is installed>
158 Build ipc:
159 make -ef ipc-bios.mak clean
160 make -ef ipc-bios.mak ti.targets.arm.elf.M4=$CGTOOLS_ARM
162 NOTE: If ''ipc'' is modified, then ''DCE'' needs to be rebuilt.
164 === Build DCE ===
166 For OMAP5:
167 export HWVERSION=ES20
168 make omap5_smp_config : for OMAP5 platform in SMP BIOS mode
170 For DRA7XX:
171 make vayu_smp_config  : for DRA7XX platform in SMP BIOS mode
173 make info: shows all the make information.
174 make unconfig: clean the configuration setting.
175 make tools: shows all the needed tool versions.
176 make: builds the complete project.
177 With ''vayu_smp_config'', binary dra7xx-m4-ipu2.xem4 and dra7-ipu2-fw.xem4 will
178 be generated in current directory.
179 With ''omap5_smp_config'', binary omap5-m4-ipu.xem4 will be generated in current directory.
181 For Linux/Android:
182 Copy dra7-ipu2-fw.xem4 to your filesystem.
183 Eg. GLSDK target filesystem: /lib/firmware/dra7-ipu2-fw.xem4
184 For QNX:
185 Copy dra7xx-m4-ipu2.xem4 to your filesystem at /stage/usr/lib/dra7xx-m4-ipu2.xem4
187 = Useful Links =
189 = TODO =