blob: 09c8759768c150de94fc563855d8eef960f05d93 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
DESCRIPTION = "DSP Link for TI ARM/DSP processors"
DEPENDS = "virtual/kernel perl-native"
inherit module
do_configure () {
# Clean up stale binaries
find ${S} -name "*.ko" -exec rm {} \; || true
find ${S} -name "*.o" -exec rm {} \; || true
# Run perl script to create appropriate makefiles (v1.60 and up)
(
cd ${DSPLINK}
perl config/bin/dsplinkcfg.pl --platform=${DSPLINKPLATFORM} --nodsp=1 --dspcfg_0=${DSPCFG} --dspos_0=DSPBIOS5XX --gppos=${GPPOS} --comps=ponslrm
)
}
do_compile () {
unset DISPLAY
sed -i -e s:armv7a:armv7-a:g ${DSPLINK}/make/Linux/omap3530_2.6.mk
# export various settings to override the defaults in the makefiles
export DSP_BASE_CGTOOLS=${TITOOLSDIR}/${TICGTOOLSDIR}
export DSP_BASE_BIOS=${TITOOLSDIR}/${TIBIOSDIR}
export DSP_BASE_RTDX=${TITOOLSDIR}/${TIBIOSDIR}/packages/ti/rtdx
export GPPTOOL_DIR=${CROSS_DIR}
export LINUXKERNEL_INSTALL_DIR=${STAGING_KERNEL_DIR}
export LINK_INSTALL_DIR=${DSPLINK}
export VARIANT=${DSPLINKSOC}
export PLATFORM=${DSPLINKPLATFORM}
export BASE_TOOLCHAIN=${CROSS_DIR}
export BASE_CGTOOLS=${BASE_TOOLCHAIN}/bin
# 'OSINC_PLATFORM' is used in both the dsp and gpp sides...
export OSINC_PLATFORM1=${CROSS_DIR}/lib/gcc/${TARGET_SYS}/$(${TARGET_PREFIX}gcc -dumpversion)/include
export OSINC_TARGET=${BASE_TOOLCHAIN}/target/usr/include
# 'ARCHIVER' is being used in the dsp side of the build as well as gpp
export ARCHIVER_AR=${TARGET_PREFIX}ar
export BASE_SABIOS=${DSP_BASE_BIOS}
#dsplinkk.ko bits
if [ ! -d ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE ] ; then
install -d ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE
fi
cp ${WORKDIR}/Makefile-dsplink-gpp ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/Makefile
cd ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
export KDIR=${STAGING_KERNEL_DIR}
make -e driver
make -e library
make -e samples
make -e -f ${WORKDIR}/Makefile-dsplink-dsp
cp -a * ${DSPLINK}/gpp/export/BIN/Linux/${DSPLINKPLATFORM}/RELEASE
}
do_install () {
#driver - kernel module
install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp
cp ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/dsplinkk.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/
#library
install -d ${D}/${libdir}
install -m 0755 ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/dsplink.lib ${D}/${libdir}
#sample apps
install -d ${D}/${datadir}/ti-dsplink
install ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/*gpp ${D}/${datadir}/ti-dsplink || true
for i in $(find ${DSPLINK}/dsp/BUILD/ -name "*.out") ; do
install ${i} ${D}/${datadir}/ti-dsplink
done
}
# Codec Engine and friends need a complete tree, so stage it all
do_stage() {
install -d ${STAGING_DIR}/${MULTIMACH_TARGET_SYS}/${PN}
cp -pPrf ${S}/* ${STAGING_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/
}
PACKAGES =+ "ti-dsplink-module ti-dsplink-apps"
FILES_ti-dsplink-module = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/dsplinkk.ko"
FILES_ti-dsplink-apps = "${datadir}/ti-dsplink/* ${libdir}/dsplink.lib"
pkg_postinst_ti-dsplink-module () {
if [ -n "$D" ]; then
exit 1
fi
depmod -a
update-modules || true
}
pkg_postrm_ti-dsplink-module () {
update-modules || true
}
INHIBIT_PACKAGE_STRIP = "1"
PACKAGE_ARCH = "${MACHINE_ARCH}"
#legacy upgrade helpers
RPROVIDES_ti-dsplink-module += "dsplink-module"
RPROVIDES_ti-dsplink-apps += "dsplink-apps"
#add run-time dependencies - note for kernel module we can only use RRECOMMENDS, since modules might be built into the kernel
RRECOMMENDS_ti-dsplink-apps += "ti-dsplink-module"
|