[Asterisk-Users] Intel 537EP chipset, revisited

Lee Howard faxguy at howardsilvan.com
Thu Jun 10 22:07:17 MST 2004


Hello everyone.

I hope that this isn't a sore topic, but I've spent a week now reading 
through everything I could dig up from the archives on this topic, and 
I'm not yet satisfied with any conclusions presented there.  I've also 
spent a few days hacking on the Asterisk code, trying to understand how 
things work better, and I'm still not ready to give up.  I well-realize 
that for the amount of time I'm investing I could have much more 
"productively" bought and used known-functional hardware from Digium, 
but please understand that at the moment my interest in Asterisk is 
more for my educational benefit than it is to get a functional PBX 
running.  I'm interested in investing the time into understanding how 
Asterisk works, particularly on the hardware and customization levels.  
So please entertain me on this, if you will...

After some time determining Asterisk's level of support (or lack of 
support) for voice modems and support by (or lack of support by) voice 
modems for full-duplex applications, I then followed the instructions 
on:

http://www.voip-info.org/wiki-Asterisk+Hardware

.. and I found myself a few Intel 537 modems.  The Wiki doesn't 
distinguish between the various models of the 537 series, and not 
knowing any better, I wound up with the 537EPU (FA82537EP + Si3017) 
versions.

Now, had I done more research on the 537EP+Asterisk solution, in 
particular, if I had read this thread:

http://lists.digium.com/pipermail/asterisk-users/2004-April/044421.html

... then I wouldn't be writing here now because I would have realized 
sooner that the native generic compatibility of the wcfxo driver is 
really only with the MD3200 (Cirrus Logic/Ambient) chipset, which is 
found on the 537PG and 537PU versions and not on the 537EPs.  Okay, so 
no big deal, I can get different modems.  But remember, this is an 
educational endeavor for me, and I have to ask myself, "Why isn't the 
wcfxo driver compatible with the 573EP?"

I ask myself this question because the code change to wcfxo.c to 
support the generic versions was a mere tweak to catch the PCI device 
ids properly.  See:

http://www.broadbandreports.com/forum/remark,8931677~mode=flat~days=9999~start=20

And furthermore, Intel uses the same driver for all of the 537 
chipsets, so I would think that the FA82537EP chip would be compatible 
with the MD3200 chip.

http://www.intel.com/design/modems/products/537ep.htm

So, as an educational endeavor I changed wcfxo.c to also catch the PCI 
device ids of my cards:

static struct pci_device_id wcfxo_pci_tbl[] = {
         { 0xe159, 0x0001, 0x8085, PCI_ANY_ID, 0, 0, (unsigned long) 
&wcx101p },
         { 0xe159, 0x0001, 0x8086, PCI_ANY_ID, 0, 0, (unsigned long) 
&generic },
         { 0x8086, 0x1080, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (unsigned 
long) &generic },
         { 0x1057, 0x5608, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (unsigned 
long) &wcx100p },
         { 0 } };

That was done in accordance to this:

[root at gollum zaptel]# lspci -vv -n -d 8086:1080
00:0a.0 Class 0703: 8086:1080 (rev 04)
	Subsystem: 8086:1000
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- 
ParErr- Stepping+ SERR- FastB2B-
	Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- 
DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 64 (250ns min, 15500ns max), cache line size 08
	Interrupt: pin A routed to IRQ 10
	Region 0: Memory at e8201000 (32-bit, non-prefetchable) 
[size=4K]
	Region 1: I/O ports at d800 [size=256]
	Capabilities: [80] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA 
PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

But I end up with this:

[root at gollum zaptel]# insmod wcfxo
Using /lib/modules/2.4.20/misc/wcfxo.o
/lib/modules/2.4.20/misc/wcfxo.o: init_module: No such device
Hint: insmod errors can be caused by incorrect module parameters, 
including invalid IO or IRQ parameters.
       You may find more information in syslog or the output from dmesg

This happens because pci_module_init() returns a non-zero value, so the 
module returns -ENODEV (no such device).

Did I not modify wcfxo_pci_tbl properly for the card to at least be 
detected by pci_module_init() ?  If not, what did I miss?  I didn't 
necessarily expect the driver to work, maybe it would even crash the 
machine, but I was at least hoping that I could get the module loaded.

Before I move on to find some MD3200-chipsetted modems I'd like to know 
at least whether or not the two chipsets (FA82537EP and MD3200) are 
incompatible, this wasn't stated by any of the previous posts on this 
topic... just that the module "wouldn't work", and that part is fairly 
obvious given that the proper device ids aren't even in the original 
wcfxo.c source.  I'm looking for a "deeper" answer than that.

Any help is appreciated.

Thanks.

Lee.



More information about the asterisk-users mailing list