1 #
2 # =====================================================================
3 # Copyright (C) 2012 Texas Instruments Incorporated
4 #
5 # All rights reserved. Property of Texas Instruments Incorporated.
6 # Restricted rights to use, duplicate or disclose this code are
7 # granted through contract.
8 #
9 # The program may not be used without the written permission
10 # of Texas Instruments Incorporated or against the terms and conditions
11 # stipulated in the agreement under which this program has been
12 # supplied.
13 # =====================================================================
14 #
16 # Repo
17 BIOSTOOLSROOT ?= /opt/ti
18 REPO := $(BIOSTOOLSROOT)
20 # Different tool versions can easily be programmed by defining below variables
21 # in your environment.
22 XDCVERSION ?= xdctools_3_25_02_70
23 BIOSVERSION ?= bios_6_35_02_45
24 IPCVERSION ?= ipc_3_10_00_08
25 CEVERSION ?= codec_engine_3_24_00_08
26 #FCVERSION ?= framework_components_3_24_00_09
27 FCVERSION ?= framework_components_3_24_02_14_eng
28 XDAISVERSION ?= xdais_7_24_00_04
29 OSALVERSION ?= osal_1_24_00_09
31 # TI Compiler Settings
32 export CGT_C66X_ELF_INSTALL_DIR ?= /opt/ti/TI_CGT_TI_C66X_7.2.3
34 # Define where the sources are
35 DSPDCEMMSRC = $(shell pwd)
36 TIVIDEOTOOLSROOT ?= $(BIOSTOOLSROOT)
38 # Generate the full package paths for tools
39 BIOSPROD = $(REPO)/$(BIOSVERSION)
40 CEPROD = $(TIVIDEOTOOLSROOT)/$(CEVERSION)
41 FCPROD = $(TIVIDEOTOOLSROOT)/$(FCVERSION)
42 XDAISPROD = $(REPO)/$(XDAISVERSION)
43 OSALPROD = $(REPO)/$(OSALVERSION)
45 # XDC settings
46 export XDCBUILDCFG = $(DSPDCEMMSRC)/build/config.bld
48 XDCDIST_TREE = $(REPO)/$(XDCVERSION)
49 export XDCROOT = $(XDCDIST_TREE)
51 export XDCPATH = $(BIOSPROD)/packages;$(IPCSRC)/packages;$(CEPROD)/packages;$(FCPROD)/packages;$(XDAISPROD)/packages;$(OSALPROD)/packages;$(DSPDCEMMSRC)/extrel/ti/dsp_codecs/packages;$(DSPDCEMMSRC)/src;
53 # Custom settings for build
54 JOBS ?= 1
55 # Set profile, always set as release version. Alternate option is "debug"
56 PROFILE ?= release
57 # Set debug/trace level from 0 to 4
58 TRACELEVEL ?= 0
59 # Offloads core to sysm3 code
60 OFFLOAD ?= 1
61 # Set to Non-SMP by default
62 FORSMP ?= 0
63 # Set Instrumentation to be allowed (ENABLE to enable it)
64 SETINST ?= ENABLE
65 # Set HW revision type- OMAP5:ES20, VAYU:ES10
66 HWVERSION ?= ES10
68 all: dspbin
70 # Include platform build configuration
71 config:
72 ifeq (bldcfg.mk,$(wildcard bldcfg.mk))
73 include bldcfg.mk
74 else
75 @echo "No config selected. Please configure the build first and then try to build."
76 @echo "For more info, use 'make help'"
77 @exit 1
78 endif
80 unconfig:
81 @echo "Removed existing configuration"
82 @rm -f bldcfg.mk
84 vayu_config: unconfig
85 @echo "Creating new config\c"
86 @echo DSP_CONFIG = vayu_config > bldcfg.mk
87 @echo ".\c"
88 @echo MYXDCARGS=\"profile=$(PROFILE) trace_level=$(TRACELEVEL) hw_type=VAYU hw_version=$(HWVERSION) BIOS_type=non-SMP\" >> bldcfg.mk
89 @echo ".\c"
90 @echo CHIP = VAYU >> bldcfg.mk
91 @echo ".\c"
92 @echo FORSMP = 0 >> bldcfg.mk
93 @echo ".\c"
94 @echo DSPBINNAME = "dra7xx-c66x-dsp.xe66" >> bldcfg.mk
95 @echo INTBINNAME = "dsp.xe66" >> bldcfg.mk
96 @echo ".\c"
97 @echo "done"
99 omap5_config: unconfig
100 @echo "Creating new config\c"
101 @echo DSP_CONFIG = omap5_smp_config > bldcfg.mk
102 @echo ".\c"
103 @echo MYXDCARGS=\"profile=$(PROFILE) trace_level=$(TRACELEVEL) hw_type=OMAP5 hw_version=$(HWVERSION) BIOS_type=non-SMP\" >> bldcfg.mk
104 @echo ".\c"
105 @echo CHIP = OMAP5 >> bldcfg.mk
106 @echo ".\c"
107 @echo FORSMP = 0 >> bldcfg.mk
108 @echo ".\c"
109 @echo DSPBINNAME = "omap5-dsp.xe66x" >> bldcfg.mk
110 @echo INTBINNAME = "dsp.xe66x" >> bldcfg.mk
111 @echo ".\c"
112 @echo "done"
114 clean: config
115 export XDCARGS=$(MYXDCARGS); \
116 $(XDCROOT)/xdc --jobs=$(JOBS) clean -PD $(DSPDCEMMSRC)/platform/ti/dce/baseimage/.
118 build: config
119 ifeq ($(IPCSRC),)
120 @echo "ERROR: IPCSRC not set. Exiting..."
121 @echo "For more info, use 'make help'"
122 @exit 1
123 else ifeq ($(CGT_C66X_ELF_INSTALL_DIR),)
124 @echo "ERROR: CGT_C66X_ELF_INSTALL_DIR not set. Exiting..."
125 @echo "For more info, use 'make help'"
126 @exit 1
127 endif
128 export XDCARGS=$(MYXDCARGS); \
129 $(XDCROOT)/xdc --jobs=$(JOBS) -PD $(DSPDCEMMSRC)/platform/ti/dce/baseimage/.
131 dspbin: build
132 ifeq ($(FORSMP),0)
133 $(CGT_C66X_ELF_INSTALL_DIR)/bin/strip6x $(DSPDCEMMSRC)/platform/ti/dce/baseimage/out/dsp/$(PROFILE)/$(INTBINNAME) -o=$(DSPBINNAME)
134 else
135 @echo "***********Not yet implemented************"
136 endif
138 info: tools sources custom
139 tools:
140 @echo "REPO := $(REPO)"
141 @echo "XDC := $(XDCDIST_TREE)"
142 @echo "BIOS := $(BIOSPROD)"
143 @echo "OSAL := $(OSALPROD)"
144 @echo "FC := $(FCPROD)"
145 @echo "CE := $(CEPROD)"
146 @echo "XDAIS := $(XDAISPROD)"
147 @echo "CGT_C66X_ELF_INSTALL_DIR := $(CGT_C66X_ELF_INSTALL_DIR)"
148 @echo " "
150 sources:
151 @echo "IPC := $(IPCSRC)"
152 @echo " "
154 @echo "DSPDCEMMSRC := $(DSPDCEMMSRC)"
155 @echo "DSPDCEMMSRC info: $(shell git --git-dir=$(DSPDCEMMSRC)/.git --work-tree=$(DSPDCEMMSRC)/ log --pretty=format:'%ad %h %d' --oneline --date=short -1 )"
156 @echo "DUCATIMMSRC describe: $(shell git --git-dir=$(DSPDCEMMSRC)/.git --work-tree=$(DSPDCEMMSRC)/ describe --dirty)"
157 @echo " "
159 custom:
160 @echo "JOBS := $(JOBS)"
161 @echo "PROFILE := $(PROFILE)"
162 @echo "TRACELEVEL := $(TRACELEVEL)"
163 @echo "OFFLOAD := $(OFFLOAD)"
164 @echo "FORSMP := $(FORSMP)"
165 @echo "SETINST := $(SETINST)"
166 @echo "HWVERSION := $(HWVERSION)"
167 @echo " "
168 @echo "Ducati configuration used: $(DSP_CONFIG)"
169 @echo "Ducati binary name: $(DSPBINNAME)"
170 @echo " "
172 help:
173 @echo " "
174 @echo "Please export the following variables: "
175 @echo " 1. BIOSTOOLSROOT - Directory where all the BIOS tools are installed."
176 @echo " If not mentioned, picks up the default, /opt/ti"
177 @echo " 2. CGT_C66X_ELF_INSTALL_DIR - DSP Code Generation Tools installation path"
178 @echo " If not mentioned, tries the default install location, /opt/ti/TI_CGT_TI_ARM_5.0.1"
179 @echo " 3. IPCSRC - Absolute path of the $(IPCVERSION)"
180 @echo " 4. [Optional] - Any of the following variables can be defined to customize your build."
181 @echo " JOBS - To specify the number of parallel build jobs (default is 1)"
182 @echo " PROFILE - 'release' or 'debug' profile for the libraries and binaries (default is release)"
183 @echo " TRACELEVEL - From 0 to 4. Higher the value, more the traces. 0 implies no traces (default is 0)"
184 @echo " OFFLOAD - Enable offloading support (default is 1, set to 0 to disable)"
185 @echo " 5. [Optional] - Any of the following variables can be defined to change the default tool versions."
186 @echo " XDCVERSION = $(XDCDIST_TREE)"
187 @echo " BIOSVERSION = $(BIOSPROD)"
188 @echo " IPCVERSION = $(IPCSRC)"
189 @echo " CEVERSION = $(CEPROD)"
190 @echo " FCVERSION = $(FCPROD)"
191 @echo " XDAISVERSION = $(XDAISPROD)"
192 @echo " OSALVERSION = $(OSALPROD)"
193 @echo " CGT_C66X_ELF_INSTALL_DIR = $(CGT_C66X_ELF_INSTALL_DIR)"
194 @echo " "
195 @echo "Use the appropriate make targets from the following: "
196 @echo " Configure Platform: "
197 @echo " OMAP5 (SMP) - export HWVERSION=ES20 && make omap5_smp_config"
198 @echo " VAYU/J6 (SMP) - export HWVERSION=ES10 && make vayu_smp_config"
199 @echo " Build: - make"
200 @echo " Clean: - make clean"
201 @echo " Generate Binary: "
202 @echo " Firmware - make dspbin"
203 @echo " Information: "
204 @echo " Tools - make tools"
205 @echo " Sources - make sources"
206 @echo " Custom - make custom"
207 @echo " all 3 - make info"
208 @echo " Others: "
209 @echo " Check config - make config"
210 @echo " Clean config - make unconfig"
211 @echo " "