[Buildroot] [PATCH 06/17] TI's Davinci Multimedia Application Interface (DMAI) for TI ARM/DSP processors

Pierre-Luc Simard pierreluc.simard at admetric.ca
Fri Sep 17 17:59:51 UTC 2010


---
 package/ti/Config.in                  |    1 +
 package/ti/ti-dmai/Config.in          |   14 ++++
 package/ti/ti-dmai/ti-dmai-Wall.patch |  129 +++++++++++++++++++++++++++++++++
 package/ti/ti-dmai/ti-dmai.mk         |  108 +++++++++++++++++++++++++++
 4 files changed, 252 insertions(+), 0 deletions(-)
 create mode 100644 package/ti/ti-dmai/Config.in
 create mode 100644 package/ti/ti-dmai/ti-dmai-Wall.patch
 create mode 100644 package/ti/ti-dmai/ti-dmai.mk

diff --git a/package/ti/Config.in b/package/ti/Config.in
index b6179cb..e8b6197 100644
--- a/package/ti/Config.in
+++ b/package/ti/Config.in
@@ -44,5 +44,6 @@ comment "Staging tools"
 source "package/ti/ti-biosutils/Config.in"
 source "package/ti/ti-cgt6x/Config.in"
 source "package/ti/ti-codec-engine/Config.in"
+source "package/ti/ti-dmai/Config.in"
 
 endif
diff --git a/package/ti/ti-dmai/Config.in b/package/ti/ti-dmai/Config.in
new file mode 100644
index 0000000..3986ce6
--- /dev/null
+++ b/package/ti/ti-dmai/Config.in
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_TI_DMAI
+	bool "Davinci Multimedia Application Interface (DMAI)"
+	depends on BR2_PACKAGE_TI_PLATFORM_omap3
+	select BR2_PACKAGE_ALSA_LIB
+	select BR2_PACKAGE_TI_FRAMEWORK_COMPONENTS
+	select BR2_PACKAGE_TI_CODEC_ENGINE
+	select BR2_PACKAGE_TI_XDCTOOLS
+	select BR2_PACKAGE_TI_DSPBIOS
+	select BR2_PACKAGE_TI_CGT6X
+	select BR2_PACKAGE_TI_CODECS_OMAP3
+	select BR2_PACKAGE_TI_LINUXUTILS
+	help
+      Davinci Multimedia Application Interface (DMAI) for TI ARM/DSP processors
+      https://gforge.ti.com/gf/project/dmai/
diff --git a/package/ti/ti-dmai/ti-dmai-Wall.patch b/package/ti/ti-dmai/ti-dmai-Wall.patch
new file mode 100644
index 0000000..90a2d46
--- /dev/null
+++ b/package/ti/ti-dmai/ti-dmai-Wall.patch
@@ -0,0 +1,129 @@
+diff -rupN a/dmai/packages/ti/sdo/dmai/ce/I2p.c b/dmai/packages/ti/sdo/dmai/ce/I2p.c
+--- a/dmai/packages/ti/sdo/dmai/ce/I2p.c	2010-08-23 06:26:15.000000000 -0700
++++ b/dmai/packages/ti/sdo/dmai/ce/I2p.c	2010-08-23 13:26:06.000000000 -0700
+@@ -82,6 +82,8 @@ Int I2p_process(I2p_Handle hI2p, Buffer_
+     assert(Buffer_getSize(hInBuf));
+     assert(Buffer_getSize(hOutBuf));
+ 
++    universalOutArgs.extendedError        = NULL;
++
+     inputArgs.universalInArgs             = universalInArgs;
+     outputArgs.universalOutArgs           = universalOutArgs;
+     inputArgs.universalInArgs.size        = sizeof(inputArgs);
+diff -rupN a/dmai/packages/ti/sdo/dmai/linux/Display.c b/dmai/packages/ti/sdo/dmai/linux/Display.c
+--- a/dmai/packages/ti/sdo/dmai/linux/Display.c	2010-08-23 06:26:17.000000000 -0700
++++ b/dmai/packages/ti/sdo/dmai/linux/Display.c	2010-08-23 13:29:41.000000000 -0700
+@@ -288,6 +288,7 @@ static Int sysfsSetup_device (FsOptions 
+                                                                 const Char *fileName)
+ {
+     int     index=0;
++    int     _sys =0;
+ 
+     while ((command != displayCommand[index].command) && 
+             (displayCommand[index].command != FsOptions_COMMANDS_END)){
+@@ -300,45 +301,45 @@ static Int sysfsSetup_device (FsOptions 
+     }
+ 
+     if (displayCommand[index].command == FsOptions_FBSET_DVI) {
+-        system("echo \"\" > /sys/devices/platform/omapdss/manager0/display");
+-        system("fbset -fb /dev/fb0 -xres 720 -yres 480 -vxres 720 -vyres 480");
++        _sys = system("echo \"\" > /sys/devices/platform/omapdss/manager0/display");
++        _sys = system("fbset -fb /dev/fb0 -xres 720 -yres 480 -vxres 720 -vyres 480");
+     }
+     else if (displayCommand[index].command == FsOptions_FBSET_LCD){
+-        system("echo \"\" > /sys/devices/platform/omapdss/manager0/display");
+-        system("fbset -fb /dev/fb0 -xres 480 -yres 640 -vxres 480 -vyres 640");
++        _sys = system("echo \"\" > /sys/devices/platform/omapdss/manager0/display");
++        _sys = system("fbset -fb /dev/fb0 -xres 480 -yres 640 -vxres 480 -vyres 640");
+     }
+     else if (displayCommand[index].command == FsOptions_FBSET_TV){
+-        system("echo 0 > /sys/devices/platform/omapdss/overlay0/enabled");
+-        system("echo 0 > /sys/devices/platform/omapdss/display0/enabled");
+-        system("echo 0 > /sys/devices/platform/omapdss/display1/enabled");
+-        system("echo 0 > /sys/devices/platform/omapdss/display2/enabled");
+-        system("echo \"\" > /sys/devices/platform/omapdss/manager0/display");
+-        system("echo \"\" > /sys/devices/platform/omapdss/overlay0/manager");
+-        system("echo \"\" > /sys/devices/platform/omapdss/overlay1/manager");
+-        system("echo \"\" > /sys/devices/platform/omapdss/overlay2/manager");
+-        system("fbset -fb /dev/fb0 -xres 720 -yres 480 -vxres 720 -vyres 480 -depth 16");
++        _sys = system("echo 0 > /sys/devices/platform/omapdss/overlay0/enabled");
++        _sys = system("echo 0 > /sys/devices/platform/omapdss/display0/enabled");
++        _sys = system("echo 0 > /sys/devices/platform/omapdss/display1/enabled");
++        _sys = system("echo 0 > /sys/devices/platform/omapdss/display2/enabled");
++        _sys = system("echo \"\" > /sys/devices/platform/omapdss/manager0/display");
++        _sys = system("echo \"\" > /sys/devices/platform/omapdss/overlay0/manager");
++        _sys = system("echo \"\" > /sys/devices/platform/omapdss/overlay1/manager");
++        _sys = system("echo \"\" > /sys/devices/platform/omapdss/overlay2/manager");
++        _sys = system("fbset -fb /dev/fb0 -xres 720 -yres 480 -vxres 720 -vyres 480 -depth 16");
+     }
+     else if (displayCommand[index].command == FsOptions_FBSET_TV_LCD){
+-        system("echo 0 > /sys/devices/platform/omapdss/overlay0/enabled");
+-        system("echo 0 > /sys/devices/platform/omapdss/display0/enabled");
+-        system("echo 0 > /sys/devices/platform/omapdss/display1/enabled");
+-        system("echo 0 > /sys/devices/platform/omapdss/display2/enabled");
+-        system("echo \"\" > /sys/devices/platform/omapdss/manager0/display");
+-        system("echo \"\" > /sys/devices/platform/omapdss/overlay0/manager");
+-        system("echo \"\" > /sys/devices/platform/omapdss/overlay1/manager");
+-        system("echo \"\" > /sys/devices/platform/omapdss/overlay2/manager");
+-        system("fbset -fb /dev/fb0 -xres 480 -yres 640 -vxres 480 -vyres 640 ");
++        _sys = system("echo 0 > /sys/devices/platform/omapdss/overlay0/enabled");
++        _sys = system("echo 0 > /sys/devices/platform/omapdss/display0/enabled");
++        _sys = system("echo 0 > /sys/devices/platform/omapdss/display1/enabled");
++        _sys = system("echo 0 > /sys/devices/platform/omapdss/display2/enabled");
++        _sys = system("echo \"\" > /sys/devices/platform/omapdss/manager0/display");
++        _sys = system("echo \"\" > /sys/devices/platform/omapdss/overlay0/manager");
++        _sys = system("echo \"\" > /sys/devices/platform/omapdss/overlay1/manager");
++        _sys = system("echo \"\" > /sys/devices/platform/omapdss/overlay2/manager");
++        _sys = system("fbset -fb /dev/fb0 -xres 480 -yres 640 -vxres 480 -vyres 640 ");
+     }
+     else if (displayCommand[index].command == FsOptions_FBSET_TV_DVI){
+-        system("echo 0 > /sys/devices/platform/omapdss/overlay0/enabled");
+-        system("echo 0 > /sys/devices/platform/omapdss/display0/enabled");
+-        system("echo 0 > /sys/devices/platform/omapdss/display1/enabled");
+-        system("echo 0 > /sys/devices/platform/omapdss/display2/enabled");
+-        system("echo \"\" > /sys/devices/platform/omapdss/manager0/display");
+-        system("echo \"\" > /sys/devices/platform/omapdss/overlay0/manager");
+-        system("echo \"\" > /sys/devices/platform/omapdss/overlay1/manager");
+-        system("echo \"\" > /sys/devices/platform/omapdss/overlay2/manager");
+-        system("fbset -fb /dev/fb0 -xres 720 -yres 480 -vxres 720 -vyres 480");
++        _sys = system("echo 0 > /sys/devices/platform/omapdss/overlay0/enabled");
++        _sys = system("echo 0 > /sys/devices/platform/omapdss/display0/enabled");
++        _sys = system("echo 0 > /sys/devices/platform/omapdss/display1/enabled");
++        _sys = system("echo 0 > /sys/devices/platform/omapdss/display2/enabled");
++        _sys = system("echo \"\" > /sys/devices/platform/omapdss/manager0/display");
++        _sys = system("echo \"\" > /sys/devices/platform/omapdss/overlay0/manager");
++        _sys = system("echo \"\" > /sys/devices/platform/omapdss/overlay1/manager");
++        _sys = system("echo \"\" > /sys/devices/platform/omapdss/overlay2/manager");
++        _sys = system("fbset -fb /dev/fb0 -xres 720 -yres 480 -vxres 720 -vyres 480");
+     }
+     /* Write command in sysfs file */
+     else if ( _Dmai_writeSysFs(fileName, displayCommand[index].value) < 0) {
+@@ -448,6 +449,7 @@ Int _Display_sysfsChange(Display_Output 
+ {
+ #ifdef Dmai_Device_omap3530
+     FsOptionsSequence *sequence = NULL;
++    int _sys                    = 0;
+     Display_Output  currentDisplayOutput;
+ 
+     /* List of Sequences using the FileSystem entries to switch displays */        
+@@ -581,7 +583,7 @@ Int _Display_sysfsChange(Display_Output 
+             *rotation = 0;
+         }
+         if (currentDisplayOutput == Display_Output_SVIDEO){
+-            system("fbset -fb /dev/fb0 -depth 16");
++            _sys = system("fbset -fb /dev/fb0 -depth 16");
+         }
+         *displayOutput = currentDisplayOutput; 
+     }
+diff -rupN a/dmai/packages/ti/sdo/dmai/linux/Display_fbdev.c b/dmai/packages/ti/sdo/dmai/linux/Display_fbdev.c
+--- a/dmai/packages/ti/sdo/dmai/linux/Display_fbdev.c	2010-08-23 06:26:17.000000000 -0700
++++ b/dmai/packages/ti/sdo/dmai/linux/Display_fbdev.c	2010-08-23 13:27:28.000000000 -0700
+@@ -134,7 +134,7 @@ Display_Handle Display_fbdev_create(BufT
+     Int                      displaySize;
+     Int                      bufIdx;
+     Int8                    *virtPtr;
+-    Int32                    physPtr;
++    Int32                    physPtr       = 0;
+     Int                      height, width;
+     Display_Handle           hDisplay;
+     Buffer_Handle            hBuf;
diff --git a/package/ti/ti-dmai/ti-dmai.mk b/package/ti/ti-dmai/ti-dmai.mk
new file mode 100644
index 0000000..409ca2b
--- /dev/null
+++ b/package/ti/ti-dmai/ti-dmai.mk
@@ -0,0 +1,108 @@
+################################################################################
+#
+# ti-dmai
+#
+################################################################################
+TI_DMAI_VERSION:=2.05.00.14
+TI_DMAI_FILE_VERSION:=2_05_00_14
+TI_DMAI_SOURCE:=ti-dmai-$(TI_DMAI_VERSION).tar.gz
+TI_DMAI_SOURCE_DIR:=davinci_multimedia_application_interface
+TI_DMAI_SITE:=https://gforge.ti.com/svn/dmai/tags
+TI_DMAI_SITE_TAG:=TAG_$(TI_DMAI_FILE_VERSION)
+
+TI_DMAI_DEPENDENCIES=alsa-lib ti-framework-components ti-codec-engine ti-xdctools 
+
+TI_DMAI_DIR:=$(BUILD_DIR)/ti-dmai-$(TI_DMAI_VERSION)
+
+TI_DMAI_INSTALL_STAGING = YES
+
+TI_DMAI_INSTALL_TARGET_DIR:=$(STAGING_DIR)/usr/lib/ti-dmai
+TI_DMAI_INSTALL_STAGING_DIR:=$(STAGING_DIR)/ti/dmai-$(TI_DMAI_VERSION)
+
+TI_DMAI_PLATFORM=UNDEFINED
+ifeq ($(BR2_PACKAGE_TI_PLATFORM_omap3),y)
+	TI_DMAI_PLATFORM=o3530_al
+	TI_DMAI_DEPENDENCIES+=ti-codecs-omap3
+	TI_DMAI_CODEC_INSTALL_DIR=$(TI_CODECS_OMAP3_INSTALL_STAGING_DIR)
+endif
+ifeq ($(BR2_PACKAGE_TI_PLATFORM_dm6446),y)
+	TI_DMAI_PLATFORM=dm6446_al
+endif
+ifeq ($(BR2_PACKAGE_TI_PLATFORM_dm6467),y)
+	TI_DMAI_PLATFORM=dm6467_al
+endif
+ifeq ($(BR2_PACKAGE_TI_PLATFORM_dm355),y)
+	TI_DMAI_PLATFORM=dm355_al
+endif
+ifeq ($(BR2_PACKAGE_TI_PLATFORM_dm365),y)
+	TI_DMAI_PLATFORM=dm365_al
+	TI_DMAI_DEPENDENCIES+=ti-dvsdk-dm365
+endif
+ifeq ($(BR2_PACKAGE_TI_PLATFORM_omapl137),y)
+	TI_DMAI_PLATFORM=omapl137_al
+endif
+ifeq ($(BR2_PACKAGE_TI_PLATFORM_omapl138),y)
+	TI_DMAI_PLATFORM=omapl138_al
+endif
+
+
+TI_DMAI_MAKE_ENV = \
+	PARALLEL_MAKE="" \
+	USER_XDC_PATH=$(TI_CODEC_ENGINE_INSTALL_STAGING_DIR)/examples \
+	XDC_INSTALL_DIR=$(TI_XDCTOOLS_INSTALL_DIR) \
+	CE_INSTALL_DIR=$(TI_CODEC_ENGINE_INSTALL_STAGING_DIR) \
+	CODEC_INSTALL_DIR=$(TI_DMAI_CODEC_INSTALL_DIR) \
+	FC_INSTALL_DIR=$(TI_FRAMEWORK_COMPONENTS_INSTALL_DIR) \
+	LINUXKERNEL_INSTALL_DIR=$(BUILD_DIR)/linux-$(LINUX26_VERSION) \
+	CODEGEN_INSTALL_DIR=$(TI_CGT6X_INSTALL_DIR) \
+	BIOS_INSTALL_DIR=$(TI_DSPBIOS_INSTALL_DIR) \
+	LINUXLIBS_INSTALL_DIR=$(STAGING_DIR)/usr \
+	CROSS_COMPILE=$(TARGET_CROSS) \
+	VERBOSE="true" \
+	XDAIS_INSTALL_DIR=$(TI_XDAIS_INSTALL_DIR) \
+	LINK_INSTALL_DIR=$(TI_DSPLINK_INSTALL_STAGING_DIR) \
+	CMEM_INSTALL_DIR=$(TI_LINUXUTILS_INSTALL_STAGING_DIR) \
+	LPM_INSTALL_DIR=$(TI_LOCAL_POWER_MANAGER_INSTALL_STAGING_DIR) \
+	MVTOOL_PREFIX=$(TARGET_CROSS) \
+	PLATFORM=$(TI_DMAI_PLATFORM) \
+	LD_FLAGS="$(TARGET_LDFLAGS)" \
+	C_FLAGS="$(TARGET_CFLAGS) -fPIC"
+
+$(DL_DIR)/$(TI_DMAI_SOURCE):
+	(cd $(DL_DIR);\
+		svn --non-interactive --username anonymous --password "" checkout $(TI_DMAI_SITE)/$(TI_DMAI_SITE_TAG) \
+	)
+	find $(DL_DIR)/$(TI_DMAI_SITE_TAG) -type d -name ".svn" | xargs rm -rf
+	(cd $(DL_DIR)/$(TI_DMAI_SITE_TAG);\
+		sleep 10; \
+		tar -czf $(DL_DIR)/$(TI_DMAI_SOURCE) $(TI_DMAI_SOURCE_DIR)\
+	)
+	rm -rf $(DL_DIR)/$(TI_DMAI_SITE_TAG)
+
+define TI_DMAI_CONFIGURE_CMDS
+	$(MAKE) -C $(TI_DMAI_DIR) $(TI_DMAI_MAKE_ENV) clean
+endef
+
+define TI_DMAI_BUILD_CMDS
+	$(MAKE) -C $(TI_DMAI_DIR)/dmai $(TI_DMAI_MAKE_ENV) all
+endef
+
+define TI_DMAI_INSTALL_STAGING_CMDS
+	mkdir -p $(TI_DMAI_INSTALL_STAGING_DIR)
+	cp -r $(TI_DMAI_DIR)/* $(TI_DMAI_INSTALL_STAGING_DIR)
+	chmod -R +w $(TI_DMAI_INSTALL_STAGING_DIR)	
+endef
+
+define TI_DMAI_INSTALL_TARGET_CMDS
+	$(INSTALL) -d $(TI_DMAI_INSTALL_TARGET_DIR)/apps 
+	$(MAKE) -C $(TI_DMAI_DIR)/dmai $(TI_DMAI_MAKE_ENV) EXEC_DIR=$(TI_DMAI_INSTALL_TARGET_DIR) install 
+endef
+
+define TI_DMAI_UNINSTALL_STAGING_CMDS
+	rm -rf $(TI_DMAI_INSTALL_DIR)
+endef
+
+ti-dmai-source: $(DL_DIR)/$(TI_DMAI_SOURCE)
+
+
+$(eval $(call GENTARGETS,package/ti,ti-dmai))
\ No newline at end of file
-- 
1.7.0.4



More information about the buildroot mailing list