[Asterisk-bsd] wcfxs does not probe my TDM11B

Jeff Rizzo riz+asterisk at boogers.sf.ca.us
Thu Feb 17 12:13:37 CST 2005


This sounds like an issue I ran across with one of my boards when 
porting the wcfxs driver to NetBSD.  Based on what I saw, I think some 
of the TDM boards have a problem where they don't return a consistent 
PCI subvendor ID.  You can force the wcfxs driver to match it by editing 
wcfxs.c and adding a line to the wcfxs_ident with a subvendor ID of -1  
(I've attached a patch below).  The reason this isn't on by default is 
because it makes the wcfxs driver wrongly match some wcfxo boards.

Here's the patch - you should be able to apply it by hand if it doesn't 
apply cleanly.

+j

Staffan Ulfberg wrote:

>Hello,
>
>I've been playing around with Asterisk on my FreeBSD 4.11 machine for
>about a week, and installed a TDM11B card from Digium yesterday.
>When loading the kernel modules, however, the card is not recognized:
>
>multivac# /usr/local/etc/rc.d/zaptel.sh.sample start
>multivac# dmesg
>[...]
>Zapata Telephony Interface Registered on major 196
>multivac# kldstat
>Id Refs Address    Size     Name
> 1    5 0xc0100000 23b110   kernel
> 2    1 0xc1735000 15000    linux.ko
> 5    1 0xc1979000 2d000    zaptel.ko
> 6    1 0xc1966000 5000     wcfxo.ko
> 7    1 0xc19a6000 9000     wcfxs.ko
>multivac# pciconf -l | grep none
>none0 at pci0:7:4: class=0x060000 card=0x00000000 chip=0x30571106 rev=0x40 hdr=0x00
>none1 at pci0:12:0:        class=0x030000 card=0x7c02174b chip=0x51591002 rev=0x00 hdr=0x00
>none2 at pci0:13:0:        class=0x028000 card=0x0001b100 chip=0x0001e159 rev=0x00 hdr=0x00
>none3 at pci0:14:2:        class=0x0c0320 card=0x12340925 chip=0x31041106 rev=0x51 hdr=0x00
>
>I've read about others that had problems with the wcfxo modules on
>FreeBSD, but decided to wait dealing with that for the moment.
>
>I tried compiling the latest svn version of zaptel-bsd.  After fixing
>a trivial compile problem (an "int lim" being defined in C++ style in
>the middle of a function), these modules also load, but do not work
>any better (actually, they work worse, if possible, since with the
>latest svn version "cat /dev/zap/ctl" reports "device not configured".
>The port version reports "Invalid argument".
>
>I played around a bit more with the port version, and added some
>printfs.  It appears that wcfxs_probe() is never actually called at
>all.  The module is loaded, however, and it seems that
>wcfxs_sysctl_init() is called:
>
>multivac# sysctl -a | grep wcfxs
>zaptel.wcfxs.debug: 0
>
>Any ideas about what can be wrong?  Would upgrading to FreeBSD 5 help?
>(I would really hope I do not need to right now...)
>
>Staffan
>_______________________________________________
>Asterisk-BSD mailing list
>Asterisk-BSD at lists.digium.com
>http://lists.digium.com/mailman/listinfo/asterisk-bsd
>  
>

-------------- next part --------------
*** wcfxs.c.orig	Thu Feb 17 10:00:46 2005
--- wcfxs.c	Thu Feb 17 10:01:20 2005
***************
*** 1929,1940 ****
--- 1929,1941 ----
  static struct wcfxs_ident wcfxs_ident_table[] = {
  	/* {vendor, device, subverndor, card info }, */
  	{ 0xe159, 0x0001, 0xa159,	&wcfxs },
  	{ 0xe159, 0x0001, 0xe159,	&wcfxs },
  	{ 0xe159, 0x0001, 0xb100,	&wcfxse },
  	{ 0xe159, 0x0001, 0xa9fd,	&wcfxsh },
+ 	{ 0xe159, 0x0001, -1,		&wcfxsh },
  	{ 0, 0, 0, 0},
  };
  
  static void wcfxs_dma_map_addr(void *, bus_dma_segment_t *, int, int);
  static void
  wcfxs_dma_map_addr(arg, segs, nseg, error)


More information about the Asterisk-BSD mailing list