diff options
Diffstat (limited to 'recipes-ti/c6accel')
5 files changed, 297 insertions, 0 deletions
diff --git a/recipes-ti/c6accel/ti-c6accel.inc b/recipes-ti/c6accel/ti-c6accel.inc new file mode 100644 index 00000000..f76df938 --- /dev/null +++ b/recipes-ti/c6accel/ti-c6accel.inc | |||
@@ -0,0 +1,94 @@ | |||
1 | DESCRIPTION = "TI C6Accel - DSP Software Libraries on ARM" | ||
2 | HOMEPAGE = "https://gforge01.dal.design.ti.com/gf/project/dsplib4arm/" | ||
3 | |||
4 | SECTION = "devel" | ||
5 | LICENSE = "TI TSPA" | ||
6 | |||
7 | require recipes-ti/includes/ti-paths.inc | ||
8 | require recipes-ti/includes/ti-staging.inc | ||
9 | require recipes-ti/includes/ti-eula-unpack.inc | ||
10 | |||
11 | PLATFORM_omapl138 = "omapl138" | ||
12 | PLATFORM_omap3 = "omap3530" | ||
13 | PLATFORM ?= "<UNDEFINED_PLATFORM>" | ||
14 | |||
15 | COMPATIBLE_MACHINE = "(omapl138|omap3)" | ||
16 | |||
17 | PROVIDES += "ti-c6accel-apps" | ||
18 | |||
19 | # This recipe links statically against kernel dependant stuff, use kernel PR as base and append a local version | ||
20 | PR = "${MACHINE_KERNEL_PR}" | ||
21 | PR_append = "c" | ||
22 | |||
23 | S = "${WORKDIR}/c6accel_${PV}" | ||
24 | |||
25 | # http://software-dl.ti.com/dsps/dsps_public_sw/c6000/web/c6accel/latest/index_FDS.html | ||
26 | SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/c6000/web/c6accel/latest/exports//c6accel_${PV}_Linux-x86_Setup.bin;name=c6accelbin " | ||
27 | |||
28 | BINFILE="c6accel_${PV}_Linux-x86_Setup.bin" | ||
29 | TI_BIN_UNPK_CMDS="Y:workdir" | ||
30 | |||
31 | DEPENDS = "ti-codec-engine ti-xdais ti-dsplink ti-dspbios" | ||
32 | DEPENDS += "ti-edma3lld ti-cgt6x ti-xdctools ti-framework-components" | ||
33 | DEPENDS += "ti-biosutils" | ||
34 | |||
35 | TIARGS = ' \ | ||
36 | PLATFORM="${PLATFORM}" \ | ||
37 | CE_INSTALL_DIR="${CE_INSTALL_DIR}" \ | ||
38 | XDAIS_INSTALL_DIR="${XDAIS_INSTALL_DIR}" \ | ||
39 | LINK_INSTALL_DIR="${LINK_INSTALL_DIR}" \ | ||
40 | CMEM_INSTALL_DIR="${CMEM_INSTALL_DIR}" \ | ||
41 | EDMA3_LLD_INSTALL_DIR="${EDMA3_LLD_INSTALL_DIR}" \ | ||
42 | CODEGEN_INSTALL_DIR="${CODEGEN_INSTALL_DIR}" \ | ||
43 | XDC_INSTALL_DIR="${XDC_INSTALL_DIR}" \ | ||
44 | FC_INSTALL_DIR="${FC_INSTALL_DIR}" \ | ||
45 | BIOS_INSTALL_DIR="${BIOS_INSTALL_DIR}" \ | ||
46 | BIOSUTILS_INSTALL_DIR="${BIOSUTILS_INSTALL_DIR}" \ | ||
47 | LPM_INSTALL_DIR="${LPM_INSTALL_DIR}" \ | ||
48 | SERVER_INSTALL_DIR="${CODEC_INSTALL_DIR}" \ | ||
49 | C6ACCEL_INSTALL_DIR="${S}" \ | ||
50 | CSTOOL_DIR="${TOOLCHAIN_PATH}" \ | ||
51 | CSTOOL_PREFIX="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}" \ | ||
52 | LINUXLIBS_INSTALL_DIR="${STAGING_DIR}/${BASE_PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}" \ | ||
53 | CFLAGS=" ${TARGET_CC_ARCH} ${CFLAGS}" LDFLAGS="${LDFLAGS}" \ | ||
54 | ' | ||
55 | |||
56 | do_configure() { | ||
57 | unset VERBOSE | ||
58 | make ${TIARGS} clean | ||
59 | sed -i -e 's:-L$(LINUXLIBS_INSTALL_DIR)/lib:-L$(LINUXLIBS_INSTALL_DIR)/lib -L$(LINUXLIBS_INSTALL_DIR)/usr/lib ${LDFLAGS}:' ${S}/soc/app/Makefile | ||
60 | |||
61 | # Angstrom 2008 breaks with -Wl,-T, while angstrom 2010 needs it | ||
62 | if [ $(${TARGET_PREFIX}gcc -dumpversion | awk -F. '{print $2}') -gt 3 ] ; then | ||
63 | sed -i -e 's: $(XDC_CFG)/linker.cmd: -Wl,-T,$(XDC_CFG)/linker.cmd:g' ${S}/soc/app/Makefile | ||
64 | fi | ||
65 | } | ||
66 | |||
67 | do_compile() { | ||
68 | unset VERBOSE | ||
69 | make ${TIARGS} all | ||
70 | } | ||
71 | |||
72 | do_install() { | ||
73 | install -d ${D}${C6ACCEL_INSTALL_DIR_RECIPE} | ||
74 | cp -pPrf ${S}/* ${D}${C6ACCEL_INSTALL_DIR_RECIPE} | ||
75 | |||
76 | # update linker.cmd file to point to sysroot | ||
77 | sed -i ${i} -e s=${S}=${C6ACCEL_INSTALL_DIR}=g ${D}${C6ACCEL_INSTALL_DIR_RECIPE}/soc/app/c6accel_app_config/linker.cmd | ||
78 | |||
79 | cd ${S} | ||
80 | make \ | ||
81 | PLATFORM="${PLATFORM}" \ | ||
82 | CMEM_INSTALL_DIR="${CMEM_INSTALL_DIR}" \ | ||
83 | LINK_INSTALL_DIR="${LINK_INSTALL_DIR}" \ | ||
84 | LPM_INSTALL_DIR="${LPM_INSTALL_DIR}" \ | ||
85 | C6ACCEL_INSTALL_DIR="${S}" \ | ||
86 | EXEC_DIR_C6ACCEL="${D}/${installdir}/c6accel-apps" \ | ||
87 | install | ||
88 | } | ||
89 | |||
90 | PACKAGES += "ti-c6accel-apps" | ||
91 | FILES_ti-c6accel-apps = "${installdir}/c6accel-apps/*" | ||
92 | INSANE_SKIP_ti-c6accel-apps = True | ||
93 | RDEPENDS_ti-c6accel-apps += "ti-cmem-module ti-dsplink-module" | ||
94 | |||
diff --git a/recipes-ti/c6accel/ti-c6accel/0001-soc-app-fix-makefile-to-pass-Wl-T-before-the-linkers.patch b/recipes-ti/c6accel/ti-c6accel/0001-soc-app-fix-makefile-to-pass-Wl-T-before-the-linkers.patch new file mode 100644 index 00000000..8e47ae21 --- /dev/null +++ b/recipes-ti/c6accel/ti-c6accel/0001-soc-app-fix-makefile-to-pass-Wl-T-before-the-linkers.patch | |||
@@ -0,0 +1,26 @@ | |||
1 | From 58c50064afdc2fd7093613e0ae3a9192ea189460 Mon Sep 17 00:00:00 2001 | ||
2 | From: Koen Kooi <koen@dominion.thruhere.net> | ||
3 | Date: Wed, 5 Jan 2011 10:10:33 +0100 | ||
4 | Subject: [PATCH] soc/app: fix makefile to pass -Wl,-T, before the linkerscript | ||
5 | |||
6 | Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> | ||
7 | --- | ||
8 | soc/app/Makefile | 2 +- | ||
9 | 1 files changed, 1 insertions(+), 1 deletions(-) | ||
10 | |||
11 | diff --git a/soc/app/Makefile b/soc/app/Makefile | ||
12 | index 0bb7bdc..342e43a 100755 | ||
13 | --- a/soc/app/Makefile | ||
14 | +++ b/soc/app/Makefile | ||
15 | @@ -33,7 +33,7 @@ XDC_CFG = $(TARGET)_config | ||
16 | XDC_CFLAGS = $(XDC_CFG)/compiler.opt | ||
17 | |||
18 | # Output linker file | ||
19 | -XDC_LFILE = $(XDC_CFG)/linker.cmd | ||
20 | +XDC_LFILE = -Wl,-T,$(XDC_CFG)/linker.cmd | ||
21 | |||
22 | # Input configuration file | ||
23 | XDC_CFGFILE = $(PLATFORM)/$(TARGET).cfg | ||
24 | -- | ||
25 | 1.6.6.1 | ||
26 | |||
diff --git a/recipes-ti/c6accel/ti-c6accel/0001-soc-honour-buildsystem-CFLAGS-and-LDFLAGS-when-set.patch b/recipes-ti/c6accel/ti-c6accel/0001-soc-honour-buildsystem-CFLAGS-and-LDFLAGS-when-set.patch new file mode 100644 index 00000000..0480f74a --- /dev/null +++ b/recipes-ti/c6accel/ti-c6accel/0001-soc-honour-buildsystem-CFLAGS-and-LDFLAGS-when-set.patch | |||
@@ -0,0 +1,82 @@ | |||
1 | From 192b19046a67263da44203bf50a5b51d0a655fec Mon Sep 17 00:00:00 2001 | ||
2 | From: Koen Kooi <koen@dominion.thruhere.net> | ||
3 | Date: Fri, 31 Dec 2010 15:26:37 +0100 | ||
4 | Subject: [PATCH] soc: honour buildsystem CFLAGS and LDFLAGS when set | ||
5 | |||
6 | Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> | ||
7 | --- | ||
8 | soc/app/Makefile | 13 ++++--------- | ||
9 | soc/c6accelw/Makefile | 14 ++++---------- | ||
10 | 2 files changed, 8 insertions(+), 19 deletions(-) | ||
11 | |||
12 | diff --git a/soc/app/Makefile b/soc/app/Makefile | ||
13 | index 2647746..bed937e 100755 | ||
14 | --- a/soc/app/Makefile | ||
15 | +++ b/soc/app/Makefile | ||
16 | @@ -53,15 +53,10 @@ CONFIGURO = $(XDC_INSTALL_DIR)/xs xdc.tools.configuro | ||
17 | CONFIG_BLD = ../../config.bld | ||
18 | |||
19 | ifeq ($(BUILD_TYPE), release) | ||
20 | -ifeq ($(ARM_ISA),armv7-a) | ||
21 | - C_FLAGS += -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp | ||
22 | -endif | ||
23 | -ifeq ($(ARM_ISA),armv5t) | ||
24 | - C_FLAGS += -mlittle-endian -march=armv5t -mtune=arm9tdmi -mabi=aapcs-linux -O | ||
25 | -endif | ||
26 | +C_FLAGS += $(CFLAGS) | ||
27 | else | ||
28 | CPP_FLAGS += -DNDEBUG | ||
29 | - C_FLAGS += -Wall -g | ||
30 | + C_FLAGS += $(CFLAGS) -Wall -g | ||
31 | endif | ||
32 | |||
33 | |||
34 | @@ -72,7 +67,7 @@ ifeq ($(PLATFORM),omapl138) | ||
35 | C_FLAGS += -DPLATFORM=138 | ||
36 | endif | ||
37 | |||
38 | -LD_FLAGS += -L$(LINUXLIBS_INSTALL_DIR)/lib -lm -lpthread | ||
39 | +LD_FLAGS += $(LDFLAGS) -L$(LINUXLIBS_INSTALL_DIR)/lib -lm -lpthread | ||
40 | C6ACCEL_LIB += ../c6accelw/lib/c6accelw_$(PLATFORM).a470MV | ||
41 | |||
42 | COMPILE.c = $(VERBOSE) $(CSTOOL_PREFIX)gcc $(CPP_FLAGS) $(C_FLAGS) $(CPP_FLAGS) -c | ||
43 | @@ -102,7 +97,7 @@ $(TARGET): $(OBJFILES) $(C6ACCEL_LIB) $(XDC_LFILE) | ||
44 | |||
45 | $(OBJFILES): %.o: %.c $(HEADERS) $(XDC_CFLAGS) | ||
46 | @echo Compiling $@ from $<.. | ||
47 | - $(COMPILE.c) $(shell cat $(XDC_CFLAGS)) -o $@ $< | ||
48 | + $(COMPILE.c) $(shell cat $(XDC_CFLAGS) | sed 's:-march=armv5t::g') -o $@ $< | ||
49 | |||
50 | $(XDC_LFILE) $(XDC_CFLAGS): $(XDC_CFGFILE) | ||
51 | @echo | ||
52 | diff --git a/soc/c6accelw/Makefile b/soc/c6accelw/Makefile | ||
53 | index cc58acf..298ab3b 100755 | ||
54 | --- a/soc/c6accelw/Makefile | ||
55 | +++ b/soc/c6accelw/Makefile | ||
56 | @@ -21,19 +21,13 @@ BUILD_TYPE=release | ||
57 | CPP_FLAGS += -I../packages -I$(XDC_INSTALL_DIR)/packages -I$(CE_INSTALL_DIR)/packages -I$(XDAIS_INSTALL_DIR)/packages -Dxdc_target_name__=arm/GCArmv5T -Dxdc_target_types__=gnu/targets/std.h | ||
58 | |||
59 | ifeq ($(BUILD_TYPE), release) | ||
60 | -ifeq ($(ARM_ISA),armv7-a) | ||
61 | - C_FLAGS += -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp | ||
62 | - endif | ||
63 | -ifeq ($(ARM_ISA),armv5t) | ||
64 | - C_FLAGS += -mlittle-endian -march=armv5t -mtune=arm9tdmi -mabi=aapcs-linux -O | ||
65 | - endif | ||
66 | - | ||
67 | +C_FLAGS += $(CFLAGS) | ||
68 | else | ||
69 | - CPP_FLAGS += -DNDEBUG | ||
70 | - C_FLAGS += -Wall -g | ||
71 | + CPP_FLAGS += -DNDEBUG | ||
72 | + C_FLAGS += $(CFLAGS) -Wall -g | ||
73 | endif | ||
74 | |||
75 | -LD_FLAGS += -L$(LINUXLIBS_INSTALL_DIR)/lib | ||
76 | +LD_FLAGS += $(LDFLAGS) -L$(LINUXLIBS_INSTALL_DIR)/lib | ||
77 | AR_FLAGS += | ||
78 | |||
79 | COMPILE.c = $(VERBOSE) $(CSTOOL_PREFIX)gcc $(CPP_FLAGS) $(C_FLAGS) -c | ||
80 | -- | ||
81 | 1.6.6.1 | ||
82 | |||
diff --git a/recipes-ti/c6accel/ti-c6accel/fix-loadmodule.patch b/recipes-ti/c6accel/ti-c6accel/fix-loadmodule.patch new file mode 100644 index 00000000..9921f29e --- /dev/null +++ b/recipes-ti/c6accel/ti-c6accel/fix-loadmodule.patch | |||
@@ -0,0 +1,81 @@ | |||
1 | diff -uNr c6accel_1_00_00_04_orig/soc/app/omap3530/loadmodules_omap3530_c6accel.sh c6accel_1_00_00_04/soc/app/omap3530/loadmodules_omap3530_c6accel.sh | ||
2 | --- c6accel_1_00_00_04_orig/soc/app/omap3530/loadmodules_omap3530_c6accel.sh 2010-07-26 16:18:35.000000000 -0500 | ||
3 | +++ c6accel_1_00_00_04/soc/app/omap3530/loadmodules_omap3530_c6accel.sh 2010-09-12 11:50:46.129159981 -0500 | ||
4 | @@ -1,4 +1,4 @@ | ||
5 | -# loadmodules.sh | ||
6 | +#!/bin/sh | ||
7 | # | ||
8 | # Copyright (C) $year Texas Instruments Incorporated - http://www.ti.com/ | ||
9 | # | ||
10 | @@ -11,34 +11,16 @@ | ||
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
12 | # Lesser General Public License for more details. | ||
13 | |||
14 | -# | ||
15 | -# Default Memory Map | ||
16 | -# | ||
17 | -# Start Addr Size Description | ||
18 | -# ------------------------------------------- | ||
19 | -# 0x80000000 88 MB Linux | ||
20 | -# 0x85800000 08 MB CMEM | ||
21 | -# 0x86800000 24 MB DDRALGHEAP | ||
22 | -# 0x87800000 6 MB DDR2 (BIOS, Codecs, Applications) | ||
23 | -# 0x87E00000 1 MB DSPLINK (MEM) | ||
24 | -# 0x87F00000 4 KB DSPLINK (RESET) | ||
25 | -# 0x87F01000 1020 KB unused | ||
26 | -rmmod cmemk.ko | ||
27 | -rmmod lpm_omap3530.ko | ||
28 | -rmmod dsplinkk | ||
29 | -# Allocate 15MB for CMEM | ||
30 | -insmod cmemk.ko phys_start=0x86300000 phys_end=0x87200000 pools=20x4096 | ||
31 | +# remove previously loaded cmem to ensure that it configured to use our pool configuration | ||
32 | +rmmod cmemk 2>/dev/null | ||
33 | |||
34 | -# insert DSP/BIOS Link driver | ||
35 | -# | ||
36 | -insmod dsplinkk.ko | ||
37 | +# Allocate 15MB for CMEM | ||
38 | +modprobe cmemk phys_start=0x86300000 phys_end=0x87200000 pools=20x4096 allowOverlap=1 | ||
39 | +modprobe dsplinkk | ||
40 | +modprobe lpm_omap3530 | ||
41 | |||
42 | # make /dev/dsplink | ||
43 | rm -rf /dev/dsplink | ||
44 | mknod /dev/dsplink c `awk "\\$2==\"dsplink\" {print \\$1}" /proc/devices` 0 | ||
45 | |||
46 | |||
47 | -# insert Local Power Manager driver | ||
48 | -# | ||
49 | -insmod lpm_omap3530.ko | ||
50 | - | ||
51 | diff -uNr c6accel_1_00_00_04_orig/soc/app/omapl138/loadmodules_omapl138_c6accel.sh c6accel_1_00_00_04/soc/app/omapl138/loadmodules_omapl138_c6accel.sh | ||
52 | --- c6accel_1_00_00_04_orig/soc/app/omapl138/loadmodules_omapl138_c6accel.sh 2010-07-27 09:45:37.000000000 -0500 | ||
53 | +++ c6accel_1_00_00_04/soc/app/omapl138/loadmodules_omapl138_c6accel.sh 2010-09-12 11:52:07.193160179 -0500 | ||
54 | @@ -1,4 +1,4 @@ | ||
55 | -# | ||
56 | +#!/bin/sh | ||
57 | # Copyright (c) 2008, Texas Instruments Incorporated | ||
58 | # All rights reserved. | ||
59 | # | ||
60 | @@ -29,15 +29,14 @@ | ||
61 | # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, | ||
62 | # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
63 | # | ||
64 | -rmmod dsplinkk.ko | ||
65 | -rmmod cmemk.ko | ||
66 | + | ||
67 | +# remove previously loaded cmem to ensure that its configured to use our pool configuration. | ||
68 | +rmmod cmemk 2>/dev/null | ||
69 | + | ||
70 | # insert cmemk, tell it to occupy physical 120MB-128MB, create | ||
71 | # 20 4K buffers, 10 128K buffers and two 1MB buffers | ||
72 | -insmod cmemk.ko phys_start=0xC2000000 phys_end=0xC4000000 pools=20x4096 | ||
73 | - | ||
74 | -# insert DSP/BIOS Link driver | ||
75 | -# | ||
76 | -insmod dsplinkk.ko | ||
77 | +modprobe cmemk phys_start=0xC2000000 phys_end=0xC4000000 pools=20x4096 allowOverlap=1 | ||
78 | +modprobe dsplinkk | ||
79 | |||
80 | # make /dev/dsplink | ||
81 | rm -f /dev/dsplink | ||
diff --git a/recipes-ti/c6accel/ti-c6accel_1.01.00.03.bb b/recipes-ti/c6accel/ti-c6accel_1.01.00.03.bb new file mode 100644 index 00000000..bf5f1cf3 --- /dev/null +++ b/recipes-ti/c6accel/ti-c6accel_1.01.00.03.bb | |||
@@ -0,0 +1,14 @@ | |||
1 | require ti-c6accel.inc | ||
2 | |||
3 | SRC_URI[c6accelbin.md5sum] = "0ddf37fd9dad91fa3a914e549da933b9" | ||
4 | SRC_URI[c6accelbin.sha256sum] = "453399a84bf117bd7a91393242c7c005e2829692db5ede18e4be166c61e4354c" | ||
5 | |||
6 | SRC_URI_append = "file://fix-loadmodule.patch \ | ||
7 | file://0001-soc-honour-buildsystem-CFLAGS-and-LDFLAGS-when-set.patch \ | ||
8 | " | ||
9 | |||
10 | PV = "1_01_00_03" | ||
11 | |||
12 | |||
13 | CFLAGS += "-fPIC" | ||
14 | |||