vortex86sx: we use sisfb which gives 2D acceleration
[vuplus_openembedded] / packages / dsplink / dsplink.inc
1 DESCRIPTION = "DSP Link for TI ARM/DSP processors"
2
3 DEPENDS = "virtual/kernel perl-native"
4
5 inherit module
6
7 S = "${WORKDIR}/dsplink_1_60/dsplink"
8
9 # Needed for buildscripts
10 export DSPLINK="${S}"
11
12 require ti-paths.inc
13
14 do_configure () {
15         # Clean up stale binaries
16         find ${S} -name "*.ko" -exec rm {} \; || true
17         find ${S} -name "*.o" -exec rm {} \; || true
18
19         # Run perl script to create appropriate makefiles (v1.60 and up)
20         (
21         cd ${DSPLINK}
22         perl config/bin/dsplinkcfg.pl --platform=${DSPLINKPLATFORM} --nodsp=1 --dspcfg_0=${DSPCFG} --dspos_0=DSPBIOS5XX  --gppos=${GPPOS} --comps=ponslrm
23         )
24 }
25
26 PARALLEL_MAKE = ""
27
28 do_compile () {
29         unset DISPLAY
30         sed -i -e s:armv7a:armv7-a:g ${DSPLINK}/make/Linux/omap3530_2.6.mk
31
32         # export various settings to override the defaults in the makefiles     
33         export DSP_BASE_CGTOOLS=${TITOOLSDIR}/${TICGTOOLSDIR}
34         export DSP_BASE_BIOS=${TITOOLSDIR}/${TIBIOSDIR}
35         export DSP_BASE_RTDX=${TITOOLSDIR}/${TIBIOSDIR}/packages/ti/rtdx
36         export GPPTOOL_DIR=${CROSS_DIR}
37         export LINUXKERNEL_INSTALL_DIR=${STAGING_KERNEL_DIR}
38         export LINK_INSTALL_DIR=${DSPLINK}
39         export VARIANT=${DSPLINKSOC}
40         export PLATFORM=${DSPLINKPLATFORM}
41         export BASE_TOOLCHAIN=${CROSS_DIR}
42         export BASE_CGTOOLS=${BASE_TOOLCHAIN}/bin
43         # 'OSINC_PLATFORM' is used in both the dsp and gpp sides...     
44         export OSINC_PLATFORM1=${CROSS_DIR}/lib/gcc/${TARGET_SYS}/$(${TARGET_PREFIX}gcc -dumpversion)/include
45         export OSINC_TARGET=${BASE_TOOLCHAIN}/target/usr/include
46
47         # 'ARCHIVER' is being used in the dsp side of the build as well as gpp
48         export ARCHIVER_AR=${TARGET_PREFIX}ar
49         export BASE_SABIOS=${DSP_BASE_BIOS}
50         
51         if [ ! -d ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE ] ; then 
52                 install -d ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE
53         fi
54
55 #dsplinkk.ko bits
56         cp ${WORKDIR}/Makefile-dsplink-gpp ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/Makefile
57         cd ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/
58
59         unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
60         export KDIR=${STAGING_KERNEL_DIR}
61
62         make -e driver
63         make -e library
64         make -e samples
65
66         make -e -f ${WORKDIR}/Makefile-dsplink-dsp
67         cp -a * ${DSPLINK}/gpp/export/BIN/Linux/${DSPLINKPLATFORM}/RELEASE
68
69 #lpm bits
70         if [ -e ${S}/cetools/packages/ti/bios/power/ ] ; then
71                 
72                 # Build the DSP power manager kernel module
73                 cd ${S}/cetools/packages/ti/bios/power/modules/${DSPPOWERSOC}/lpm
74
75                 # Still need to move this into the patch file
76                 if [ $(echo ${KERNEL_VERSION} | cut -c5,6) -gt 26 ] ; then
77                         sed -i -e s:asm/semaphore:linux/semaphore: lpm_driver.c
78                 fi
79
80                 #what is this for?
81                 rm -f *o
82                 
83                 # lpm also needs KERNEL_INSTALL_DIR and MVTOOL_PREFIX which come from ti-paths.inc
84                 export DSPLINK_REPO=${DSPLINK}/..
85                 # should move the clean step into the clean stage..
86                 #oe_runmake clean
87                 oe_runmake
88         fi
89
90 #cmemk bits
91         if [ -e ${S}/cetools/packages/ti/sdo/linuxutils/cmem ] ; then
92                 echo "MVTOOL_PREFIX=${TARGET_PREFIX}" > ${S}/Rules.make
93                 echo "UCTOOL_PREFIX=${TARGET_PREFIX}" >> ${S}/Rules.make
94                 echo "LINUXKERNEL_INSTALL_DIR=${STAGING_KERNEL_DIR}"  >> ${S}/Rules.make
95                 #export DSPLINK=${STAGING_DIR}/${MULTIMACH_TARGET_SYS}/dsplink
96
97                 # Build the cmem kernel module
98                 # We unset CFLAGS because kernel modules need different ones, this is basically a verbatim copy of kernel.bbclass and module-base.bbclass       
99                 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS  
100
101                 cd ${S}/cetools/packages/ti/sdo/linuxutils/cmem
102                 oe_runmake clean
103                 oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR}   \
104                 KERNEL_SRC=${STAGING_KERNEL_DIR}    \
105                 KERNEL_VERSION=${KERNEL_VERSION}    \
106                 CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
107                 AR="${KERNEL_AR}"
108         fi
109 }
110
111 do_install () {
112         install -d ${D}/${bindir}
113         install ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/*gpp ${D}/${bindir} || true
114
115         install -d ${D}/${datadir}/dsplink
116         for i in $(find ${DSPLINK}/dsp/BUILD/ -name "*.out") ; do
117                 install ${i}  ${D}/${datadir}/dsplink
118         done    
119
120         install -d ${D}/${libdir}
121         install -m 0755 ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/dsplink.lib  ${D}/${libdir}
122
123         install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp
124         cp ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/dsplinkk.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/ 
125         cp ${S}/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp || true
126         cp ${S}/cetools/packages/ti/bios/power/${DSPPOWERSOC}/lpm/*.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp || true
127         cp ${S}/cetools/packages/ti/bios/power/modules/${DSPPOWERSOC}/lpm/*.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp || true
128 }
129
130
131 # Codec Engine and friends need a complete tree, so stage it all
132 do_stage() {
133         install -d ${STAGING_DIR}/${MULTIMACH_TARGET_SYS}/dsplink
134         cp -pPrf ${S}/* ${STAGING_DIR}/${MULTIMACH_TARGET_SYS}/dsplink/ 
135 }
136
137 pkg_postinst_dsplink-module () {
138         if [ -n "$D" ]; then
139                 exit 1
140         fi
141         depmod -a
142         update-modules || true
143 }
144
145 pkg_postrm_dsplink-module () {
146         update-modules || true
147 }
148
149 PACKAGES =+ "dsplink-apps dsplink-module ti-lpm-module ti-cmemk-module"
150 FILES_dsplink-module  = "${sysconfdir} /lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/dsplinkk.ko"
151 FILES_dsplink-apps = "${bindir}/* ${datadir}/dsplink/* ${libdir}/dsplink.lib"
152
153 FILES_ti-lpm-module = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/*lpm*ko"
154
155 pkg_postinst_ti-lpm-module () {
156         if [ -n "$D" ]; then
157                 exit 1
158         fi
159         depmod -a
160         update-modules || true
161 }
162
163 pkg_postrm_ti-lpm-module () {
164         update-modules || true
165 }
166
167 FILES_ti-cmemk-module = "${sysconfdir} /lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/cmemk.ko"
168
169 pkg_postinst_ti-cmemk-module () {
170         if [ -n "$D" ]; then        
171                 exit 1
172         fi
173         depmod -a
174         update-modules || true
175 }
176
177 pkg_postrm_ti-cmemk-module () {
178         update-modules || true
179 }
180
181
182
183 INHIBIT_PACKAGE_STRIP = "1"
184
185 PACKAGE_ARCH = "${MACHINE_ARCH}" 
186