diff options
Diffstat (limited to 'package/ltq-tapidemo')
-rw-r--r-- | package/ltq-tapidemo/Config.in | 47 | ||||
-rw-r--r-- | package/ltq-tapidemo/Makefile | 82 | ||||
-rw-r--r-- | package/ltq-tapidemo/files/bringup_tapidemo | 89 | ||||
-rw-r--r-- | package/ltq-tapidemo/patches/100-ifxmips.patch | 61 | ||||
-rw-r--r-- | package/ltq-tapidemo/patches/110-filename.patch | 141 |
5 files changed, 420 insertions, 0 deletions
diff --git a/package/ltq-tapidemo/Config.in b/package/ltq-tapidemo/Config.in new file mode 100644 index 000000000..a799eddd0 --- /dev/null +++ b/package/ltq-tapidemo/Config.in @@ -0,0 +1,47 @@ +choice + prompt "board selection" + depends on PACKAGE_ltq-tapidemo + default VOICE_CPE_TAPIDEMO_BOARD_EASY50712_V3 if TARGET_lantiq_danube + default VOICE_CPE_TAPIDEMO_BOARD_EASY508xx if TARGET_lantiq_ar9 + default VOICE_CPE_TAPIDEMO_BOARD_EASY80910 if TARGET_lantiq_vr9 + help + Select the target platform. + + config VOICE_CPE_TAPIDEMO_BOARD_EASY50712 + bool "Danube reference board" + + config VOICE_CPE_TAPIDEMO_BOARD_EASY50712_V3 + bool "Danube reference board V3" + + config VOICE_CPE_TAPIDEMO_BOARD_EASY508xx + bool "AR9/GR9 reference board" + + config VOICE_CPE_TAPIDEMO_BOARD_EASY80910 + bool "VR9 reference board" +endchoice + +config VOICE_CPE_TAPIDEMO_QOS + bool "enable QOS support" + depends on PACKAGE_ltq-tapidemo + select PACKAGE_kmod-ltq-kpi2udp + default y + help + Option to enable the KPI2UDP RTP packet acceleration path + (highly recommended for VoIP). + +config VOICE_CPE_TAPIDEMO_FAX_T.38_FW + bool "enable T.38 fax relay" + depends on (TARGET_lantiq_ar9 || TARGET_lantiq_vr9) && PACKAGE_ltq-tapidemo + default n + help + enable T.38 fax relay demo. + +config VOICE_CPE_TAPIDEMO_FW_FILE + string "override default firmware file" + depends on PACKAGE_ltq-tapidemo + default "falcon_voip_fw.bin" if TARGET_lantiq_falcon + +config VOICE_CPE_TAPIDEMO_BBD_FILE + string "override default coefficient file" + depends on PACKAGE_ltq-tapidemo + default "falcon_bbd.bin" if TARGET_lantiq_falcon diff --git a/package/ltq-tapidemo/Makefile b/package/ltq-tapidemo/Makefile new file mode 100644 index 000000000..f4ac64601 --- /dev/null +++ b/package/ltq-tapidemo/Makefile @@ -0,0 +1,82 @@ +# +# Copyright (C) 2008-2010 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=tapidemo +PKG_VERSION:=5.1.0.53 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources +PKG_MD5SUM:=c970becc46b2935fb9e18f795d4e8469 + +PKG_FIXUP:=autoreconf + +include $(INCLUDE_DIR)/ltqtapi.mk +include $(INCLUDE_DIR)/package.mk + +define Package/ltq-tapidemo + SUBMENU:=Telephony + SECTION:=net + CATEGORY:=Network + TITLE:=TAPIdemo application for Lantiq boards + URL:=http://www.lantiq.com/ + DEPENDS:=$(LTQ_TAPI_DEPENDS) +libpthread + MAINTAINER:=John Crispin <blogic@openwrt.org> + MENU:=1 +endef + +define Package/ltq-tapidemo/description + Voice Access mini-PBX Demo Application +endef + +define Package/ltq-tapidemo/config + source "$(SOURCE)/Config.in" +endef + +TARGET_LDFLAGS+=-lpthread + +CONFIGURE_ARGS += \ + ARCH=$(LINUX_KARCH) \ + --enable-linux-26 \ + --enable-kernelincl="$(LINUX_DIR)/include" \ + --with-drvincl="$(STAGING_DIR)/usr/include" \ + --with-ifxos-incl=$(STAGING_DIR)/usr/include/ifxos \ + --with-ifxos-lib=$(STAGING_DIR)/usr/lib \ + $(call autoconf_bool,CONFIG_VOICE_CPE_TAPI_QOS,qos) \ + $(call autoconf_bool,CONFIG_VOICE_CPE_TAPIDEMO_FAX_T,fax-t38) \ + --enable-trace \ + --enable-fs + +ifeq ($(CONFIG_VOICE_CPE_TAPIDEMO_BOARD_EASY50712),y) + CONFIGURE_ARGS += --enable-boardname=EASY50712 +endif +ifeq ($(CONFIG_VOICE_CPE_TAPIDEMO_BOARD_EASY50712_V3),y) + CONFIGURE_ARGS += --enable-boardname=EASY50712_V3 +endif +ifeq ($(CONFIG_VOICE_CPE_TAPIDEMO_BOARD_EASY508xx),y) + CONFIGURE_ARGS += --enable-boardname=EASY508XX +endif +ifeq ($(CONFIG_VOICE_CPE_TAPIDEMO_BOARD_EASY80910),y) + CONFIGURE_ARGS += --enable-boardname=EASY508XX +endif +ifneq ($(CONFIG_VOICE_CPE_TAPIDEMO_FW_FILE),) + CONFIGURE_ARGS += --with-fw-file="$(strip $(subst ",, $(CONFIG_VOICE_CPE_TAPIDEMO_FW_FILE)))" +endif +ifneq ($(CONFIG_VOICE_CPE_TAPIDEMO_BBD_FILE), "") +CONFIGURE_ARGS += --with-bbd-file="$(strip $(subst ",, $(CONFIG_VOICE_CPE_TAPIDEMO_BBD_FILE)))" +endif + +define Package/ltq-tapidemo/install + $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/tapidemo $(1)/usr/sbin + $(INSTALL_BIN) ./files/bringup_tapidemo $(1)/etc/init.d/tapidemo +endef + +$(eval $(call BuildPackage,ltq-tapidemo)) diff --git a/package/ltq-tapidemo/files/bringup_tapidemo b/package/ltq-tapidemo/files/bringup_tapidemo new file mode 100644 index 000000000..6eb13d25f --- /dev/null +++ b/package/ltq-tapidemo/files/bringup_tapidemo @@ -0,0 +1,89 @@ +#!/bin/sh /etc/rc.common +# (C) 2008 openwrt.org + +START=96 + +[ ! -f /dev/vmmc10 ] && { + mknod /dev/vmmc10 c 122 10 + mknod /dev/vmmc11 c 122 11 + mknod /dev/vmmc12 c 122 12 + mknod /dev/vmmc13 c 122 13 + mknod /dev/vmmc14 c 122 14 + mknod /dev/vmmc15 c 122 15 + mknod /dev/vmmc16 c 122 16 + mknod /dev/vmmc17 c 122 17 + mknod /dev/vmmc18 c 122 18 +} + +TD_EXTRA_FLAGS_FXO= +TD_EXTRA_FLAGS_KPI2UDP= +TD_DOWNLOAD_PATH=/lib/firmware/ +DEV_NODE_TERIDIAN=ter10 + + # Show help +help() +{ + echo "Usage:" + echo " - $0 WAN-IF-NAME - start TAPIDEMO without FXO support" + echo " - $0 WAN-IF-NAME fxo - start TAPIDEMO with FXO support." + echo " - $0 stop - stop TAPIDEMO" +} + +# Check if device node for Teridian exists +checkFxoSupport() +{ + if [ ! -e /dev/$DEV_NODE_TERIDIAN ];then + echo "FXO support is disabled. Can not find required driver's device node." + else + TD_EXTRA_FLAGS_FXO="-x" + fi +} + +# Check if module drv_kpi2udp is loaded +checkKpi2UdpSupport() +{ + tmp=`cat /proc/modules | grep 'drv_kpi2udp '` + if [ "$tmp" != "" ]; then + TD_EXTRA_FLAGS_KPI2UDP="-q" + fi +} + +start() +{ + TD_WANIF=$1 + + TD_WANIF_IP=`ifconfig $TD_WANIF | grep 'inet addr:' | cut -f2 -d: | cut -f1 -d' '` + if [ "$TD_WANIF_IP" = "" ]; then + echo "Error, getting IP address for network device $TD_WANIF failed." + exit 1 + fi + + if [ "$2" = "" ];then + # FXO support is disabled. + continue + elif [ "$2" = "fxo" ];then + checkFxoSupport + else + echo "Error, unknown second parameter." + help + exit 1 + fi + + checkKpi2UdpSupport + + if [ -r /etc/rc.conf ]; then + . /etc/rc.conf + fi + + TD_DEBUG_LEVEL=$tapiDebugLevel + if [ "$TD_DEBUG_LEVEL" = "" ]; then + TD_DEBUG_LEVEL=3 + fi + + /usr/sbin/tapidemo -d $TD_DEBUG_LEVEL $TD_EXTRA_FLAGS_FXO $TD_EXTRA_FLAGS_KPI2UDP -i $TD_WANIF_IP -l $TD_DOWNLOAD_PATH & +} + +stop() +{ + killall tapidemo > /dev/null 2> /dev/null +} diff --git a/package/ltq-tapidemo/patches/100-ifxmips.patch b/package/ltq-tapidemo/patches/100-ifxmips.patch new file mode 100644 index 000000000..3dde8304f --- /dev/null +++ b/package/ltq-tapidemo/patches/100-ifxmips.patch @@ -0,0 +1,61 @@ +--- a/src/board_easy50712.c ++++ b/src/board_easy50712.c +@@ -32,7 +32,9 @@ + #ifdef OLD_BSP + #include "asm/danube/port.h" + #else +- #include "asm/ifx/ifx_gpio.h" ++#ifdef FXO ++# include "asm/ifx/ifx_gpio.h" ++#endif + #endif + + /* ============================= */ +--- a/src/board_easy508xx.c ++++ b/src/board_easy508xx.c +@@ -32,8 +32,6 @@ + #endif /* FXO */ + #include "pcm.h" + +-#include "asm/ifx/ifx_gpio.h" +- + #ifdef TD_DECT + #include "td_dect.h" + #endif /* TD_DECT */ +--- a/src/common.c ++++ b/src/common.c +@@ -7117,7 +7117,7 @@ IFX_return_t Common_GPIO_ClosePort(IFX_c + IFX_return_t Common_GPIO_ReservePin(IFX_int32_t nFd, IFX_int32_t nPort, + IFX_int32_t nPin, IFX_int32_t nModule) + { +-#ifndef OLD_BSP ++#if !defined(OLD_BSP) && defined(IFX_GPIO_IOC_PIN_RESERVE) + TD_PARAMETER_CHECK((NO_GPIO_FD >= nFd), nFd, IFX_ERROR); + + IFX_return_t nRet; +@@ -7155,7 +7155,7 @@ IFX_return_t Common_GPIO_ReservePin(IFX_ + IFX_return_t Common_GPIO_FreePin(IFX_int32_t nFd, IFX_int32_t nPort, + IFX_int32_t nPin, IFX_int32_t nModule) + { +-#ifndef OLD_BSP ++#if !defined(OLD_BSP) && defined(IFX_GPIO_IOC_PIN_RESERVE) + TD_PARAMETER_CHECK((NO_GPIO_FD >= nFd), nFd, IFX_ERROR); + + IFX_return_t nRet; +--- a/src/common.h ++++ b/src/common.h +@@ -79,12 +79,12 @@ + #ifdef OLD_BSP + #include "asm/danube/port.h" + #else +- #include "asm/ifx/ifx_gpio.h" ++ /*#include "asm/ifx/ifx_gpio.h"*/ + #endif + #endif + + #if (defined(AR9) || defined(VR9)) +- #include "asm/ifx/ifx_gpio.h" ++ /*#include "asm/ifx/ifx_gpio.h"*/ + #endif + + #ifdef TD_DECT diff --git a/package/ltq-tapidemo/patches/110-filename.patch b/package/ltq-tapidemo/patches/110-filename.patch new file mode 100644 index 000000000..73c2e977b --- /dev/null +++ b/package/ltq-tapidemo/patches/110-filename.patch @@ -0,0 +1,141 @@ +--- a/configure.in ++++ b/configure.in +@@ -1665,6 +1665,30 @@ AC_ARG_WITH(cflags, + ] + ) + ++dnl overwrite default FW file name ++AC_ARG_WITH(fw-file, ++ AS_HELP_STRING( ++ [--with-fw-file=val], ++ [overwrite default FW file name] ++ ), ++ [ ++ AC_MSG_RESULT([using firmware file $withval]) ++ AC_DEFINE_UNQUOTED([TD_FW_FILE], ["$withval"], [using firmware file]) ++ ] ++) ++ ++dnl overwrite default BBD file name ++AC_ARG_WITH(bbd-file, ++ AS_HELP_STRING( ++ [--with-bbd-file=val], ++ [overwrite default BBD file name] ++ ), ++ [ ++ AC_MSG_RESULT([using BBD file $withval]) ++ AC_DEFINE_UNQUOTED([TD_BBD_FILE], ["$withval"], [using BBD file]) ++ ] ++) ++ + AC_CONFIG_FILES([Makefile]) + AC_CONFIG_FILES([src/Makefile]) + +--- a/src/device_vmmc.c ++++ b/src/device_vmmc.c +@@ -49,40 +49,55 @@ + + + #ifdef USE_FILESYSTEM ++#ifdef TD_BBD_FILE ++ IFX_char_t* sBBD_CRAM_File_VMMC = TD_BBD_FILE; ++ IFX_char_t* sBBD_CRAM_File_VMMC_Old = TD_BBD_FILE; ++#else ++ /** File holding coefficients. */ ++#ifdef DANUBE ++ /** Prepare file names for DANUBE */ ++ IFX_char_t* sBBD_CRAM_File_VMMC = "danube_bbd.bin"; ++ IFX_char_t* sBBD_CRAM_File_VMMC_Old = "danube_bbd_fxs.bin"; ++#elif AR9 ++ IFX_char_t* sBBD_CRAM_File_VMMC = "ar9_bbd.bin"; ++ IFX_char_t* sBBD_CRAM_File_VMMC_Old = "ar9_bbd_fxs.bin"; ++#elif VINAX ++ IFX_char_t* sBBD_CRAM_File_VMMC = "bbd.bin"; ++ IFX_char_t* sBBD_CRAM_File_VMMC_Old = ""; ++#elif VR9 ++ IFX_char_t* sBBD_CRAM_File_VMMC = "vr9_bbd.bin"; ++ IFX_char_t* sBBD_CRAM_File_VMMC_Old = "vr9_bbd_fxs.bin"; ++#else ++#endif ++#endif /* TD_BBD_FILE */ ++#ifdef TD_FW_FILE ++ IFX_char_t* sPRAMFile_VMMC = TD_FW_FILE; ++ IFX_char_t* sPRAMFile_VMMC_Old = TD_FW_FILE; ++ IFX_char_t* sDRAMFile_VMMC = ""; ++#else + #ifdef DANUBE + /** Prepare file names for DANUBE */ + IFX_char_t* sPRAMFile_VMMC = "voice_danube_firmware.bin"; + IFX_char_t* sPRAMFile_VMMC_Old = "danube_firmware.bin"; + IFX_char_t* sDRAMFile_VMMC = ""; +- /** File holding coefficients. */ +- IFX_char_t* sBBD_CRAM_File_VMMC = "danube_bbd.bin"; +- IFX_char_t* sBBD_CRAM_File_VMMC_Old = "danube_bbd_fxs.bin"; + #elif AR9 + /** Prepare file names for AR9 */ + IFX_char_t* sPRAMFile_VMMC = "voice_ar9_firmware.bin"; + IFX_char_t* sPRAMFile_VMMC_Old = "ar9_firmware.bin"; + IFX_char_t* sDRAMFile_VMMC = ""; +- /** File holding coefficients. */ +- IFX_char_t* sBBD_CRAM_File_VMMC = "ar9_bbd.bin"; +- IFX_char_t* sBBD_CRAM_File_VMMC_Old = "ar9_bbd_fxs.bin"; + #elif VINAX + /** Prepare file names for VINAX */ + IFX_char_t* sPRAMFile_VMMC = "voice_vinax_firmware.bin"; + IFX_char_t* sPRAMFile_VMMC_Old = "firmware.bin"; + IFX_char_t* sDRAMFile_VMMC = ""; +- /** File holding coefficients. */ +- IFX_char_t* sBBD_CRAM_File_VMMC = "bbd.bin"; +- IFX_char_t* sBBD_CRAM_File_VMMC_Old = ""; + #elif VR9 + /** Prepare file names for VR9 */ + IFX_char_t* sPRAMFile_VMMC = "voice_vr9_firmware.bin"; + IFX_char_t* sPRAMFile_VMMC_Old = "vr9_firmware.bin"; + IFX_char_t* sDRAMFile_VMMC = ""; +- /** File holding coefficients. */ +- IFX_char_t* sBBD_CRAM_File_VMMC = "vr9_bbd.bin"; +- IFX_char_t* sBBD_CRAM_File_VMMC_Old = "vr9_bbd_fxs.bin"; + #else + #endif ++#endif /* TD_FW_FILE */ + #endif /* USE_FILESYSTEM */ + + /** Device names */ +--- a/src/common.c ++++ b/src/common.c +@@ -509,6 +509,10 @@ IFX_return_t Common_CheckDownloadPath(IF + if (IFX_TRUE != Common_FindBBD_CRAM(pCpuDevice, psPath, psFile)) + { + ret = IFX_ERROR; ++ if(bPrintTrace) ++ TRACE(TAPIDEMO, DBG_LEVEL_LOW, ++ ("Download path %s does not contain the required file %s.\n", ++ psPath, psFile)); + } + + if ((IFX_SUCCESS == ret) && +@@ -521,6 +525,10 @@ IFX_return_t Common_CheckDownloadPath(IF + { + ret = Common_CheckFileExists(psFile); + } ++ if(bPrintTrace && ret != IFX_SUCCESS) ++ TRACE(TAPIDEMO, DBG_LEVEL_LOW, ++ ("Download path %s does not contain the required file %s.\n", ++ psPath, psFile)); + } + #ifndef TAPI_VERSION4 + if (IFX_SUCCESS == ret) +@@ -532,13 +540,6 @@ IFX_return_t Common_CheckDownloadPath(IF + } + #endif + +- if (IFX_ERROR == ret) +- { +- if(bPrintTrace) +- TRACE(TAPIDEMO, DBG_LEVEL_LOW, +- ("Download path %s does not contain the required files.\n", +- psPath)); +- } + + return ret; + } /* Common_CheckDownloadPath */ |