[Asterisk-bsd] NetBSD & zaptel

Michael Taylor michael at omniscient.com.au
Fri Aug 5 00:19:06 CDT 2005


hi,

i am trying to get my Digium TDM400P (with 2x FXS and 2x FXO) to work on 
my new NetBSD machine.

have managed to get the zaptel-netbsd-20050404.tar.bz2 sources to 
compile in both lkm and kernel mode.

my problem is that all calls to wcfxs_getreg() seem to return 0 and the 
FXO&FXS cards are not detected...
i.e. i get
   ProSLIC on module 0, product 0, version 0
   Module 0: Not installed

anyone had any luck getting this card to work on NetBSD?

got any ideas where to look? i can do the coding, but have run out of 
ideas to debug the thing and have not found anything differing with the 
linux drivers....

just a little background on what i have tried so far

1) the card works on an old Pentium III running Debian 3.0

2) the card works on the New machine (same one i am trying NetBSD on) 
running Debian 3.1 (linux 2.6.8, zaptel-1.0.9)

3) in NetBSD the card is recognised (see attached dmesg.txt)

4) wfxs_getcreg() calls seem to work (see attached getcreg.txt) and 
match with debug output i have made on the Linux machine.

so... it is in the __write_8bits() and __read_8bits() that things are 
not working as expected....

one last thing, my system is...
$ uname -a
NetBSD gawain.omniscient.local 2.0_STABLE NetBSD 2.0_STABLE (ZAPTEL) #3: 
Fri Aug  5 15:00:12 EST 2005 
met at gawain.omniscient.local:/usr/src/sys/arch/i386/compile/ZAPTEL i386

hope to hear from you

michael taylor.
-------------- next part --------------
debug output on NetBSD
~~~~~~~~~~~~~~~~~~~~~~
in wcfxs_hardware_init
just before loop through detecting cards

-----debug code-------------
	tsleep(sc, PZERO, "wcfxs_hardware_init", (hz / 2) + 1);

	printf("WC_CNTL=0x%02x\n", WCFXS_READ1(WC_CNTL));
	printf("WC_OPER=0x%02x\n", WCFXS_READ1(WC_OPER));
	printf("WC_AUXC=0x%02x\n", WCFXS_READ1(WC_AUXC));
	printf("WC_AUXD=0x%02x\n", WCFXS_READ1(WC_AUXD));
	printf("WC_MASK0=0x%02x\n", WCFXS_READ1(WC_MASK0));
	printf("WC_MASK1=0x%02x\n", WCFXS_READ1(WC_MASK1));
	printf("WC_INTSTAT=0x%02x\n", WCFXS_READ1(WC_INTSTAT));
	printf("WC_AUXR=0x%02x\n", WCFXS_READ1(WC_AUXR));
	printf("WC_CS=0x%02x\n", __wcfxs_getcreg(sc, WC_CS));
	printf("WC_SYNC=0x%02x\n", __wcfxs_getcreg(sc, WC_SYNC));
	printf("WC_VER=0x%02x\n", __wcfxs_getcreg(sc, WC_VER));

	for (x = 0; x < sc->sc_cards; x++) {
-----debug code-------------

-----debug outout-------------
WC_CNTL=0x31
WC_OPER=0x00
WC_AUXC=0xdf
WC_AUXD=0x1c
WC_MASK0=0x00
WC_MASK1=0x00
WC_INTSTAT=0x00
WC_AUXR=0x1c
WC_CS=0xfe
WC_SYNC=0x01
WC_VER=0x71
-----debug outout-------------

the only difference with the Linux (Pentium III, Debian 3.0) is the following entry
WC_AUXR=0x1d
-------------- next part --------------
...
FXS device: vendor=e159 product=1 subvendor=b100
wcfxs0 at pci3 dev 10 function 0: Wildcard TDM400P REV E/F
zaptel0 at wcfxs0: Zapata Telephony Interface
zaptel0: registered on major 196
zt_sysctl_init: added sysctl node 1035
zt_sysctl_init: added sysctl node 1036
zt_sysctl_init: added sysctl node 1037
zt_sysctl_init: added sysctl node 1038
zt_sysctl_init: added sysctl node 1039
zt_sysctl_init: added sysctl node 1040
zt_sysctl_init: added sysctl node 1041
wcfxs0: interrupting at irq 5
Setting FXS hook state to 0 (00)
Setting FXS hook state to 0 (00)
Setting FXS hook state to 0 (00)
Setting FXS hook state to 0 (00)
Registered Span 1 ('WCTDM/0') with 4 channels
Span ('WCTDM/0') is new master
Freshmaker version: 71
Freshmaker passed register test
ProSLIC on module 0, product 0, version 0
Module 0: Not installed
ProSLIC on module 1, product 0, version 0
Module 1: Not installed
ProSLIC on module 2, product 0, version 0
Module 2: Not installed
ProSLIC on module 3, product 0, version 0
Module 3: Not installed
...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: michael.vcf
Type: text/x-vcard
Size: 302 bytes
Desc: not available
Url : http://lists.digium.com/pipermail/asterisk-bsd/attachments/20050805/27d743ec/michael.vcf


More information about the Asterisk-BSD mailing list