    
                  Soft Modem Informaton

The earlier generations of modems had digital signal processing (DSP) chips in which
most of the total modem effort proceeded.  The "soft modem" is a generic name for modems which lack a DSP.  Rather, the CPU does almost all the signal processing,
directed by software code. There are a few soft modems which are fully identified by the primary PCI ID of the modem card, such as the Agere Systems 11c1:048(a,b,c,d) series.

The larger family is more troublesome, in identification of supporting software. 
They are comprised of a Primary modem controller which can host a variety of Subsystems. 
Only the Joint Combination of Primary and Subsystem PCI IDs specifies the modem "codec" which determines the supporting software needed.  Unfortunately, this codec 
is not in general transparent with freeware Linux tools.

The scanModem script contains four components for codec identification:
1) a driver independent test, only usefull for some of the earliest soft modems;
2) a test run by slmodem drivers, effective with several but not all modem controllers; 
3) comparison with PCI IDs historically gathered;
4) In case 1-3 are not adequate, there are the following instructions for running ATI queries under Microsoft windows.

Chipset information may be obtained under Microsoft Windows through:
 1) Start > Settings > Control Panel > Classical View (for WinXP) > Modem  , or alternatively,
   Start > Settings > Control Panel > Classical View (for WinXP) > System > Devices > Modem
   Do the modem diagnostics test, if available, looking for manufacturer chipset,
   It is within information output in lines:  ATI - specifications
      Try to identify the modem setup file, with name perhaps MODEM.INF
 2) Open a COMM console, and send ATI commands to the modem (ATI, ATI1, ATI2, etc)
   which may elicit chipset and driver information. Here is an example
       ATI3 - Agere SoftModem Version 2.1.22
       ATI5 - 2.1.22, AMR Intel MB, AC97 ID:SIL REV:0x27
   successfully identifying an Agere SoftModem chipset, both by name and through
   the:softmodem SIL ID:              AC97 ID:SIL REV:0x27
   
During bootup and subsequently, diagnostic messages are written to a dmesg buffer.
If the SmartLink slmodem driver "slamr" is installed, a test loading is done.
scanModem does an additional diagnostic.  Boot up messages are written into 
A readiyt of this test slamr driver insertion is  read by scanModem with:
  dmseg | grep slamr
with output like:
  slamr: SmartLink AMRMO modem.
  slamr: probe 8096:24c6 ICH4 card...
  slamr: mc97 codec is SIL27
  slamr: slamr0 is ICH4 card.
within which SIL27 is the translation of ID:SIL REV:0x27
These identify an Agere Systems soft modem Subsystem. 
 
Below is the accumulated codec information as of this update 2005_April_19
    SML is an abbreviation for SmartLink Inc.,  with official driver resources at
       http://www.smlink.com/main/index1.php?ln=en&main_id=40  and recent patches at:
       http://linmodems.technion.ac.il/packages/smartlink/

 --codec_ident--- ChipMadeBy ------  driver sources ------------------------
 0x22  or SIL22   SML               SML or http://linmodems.technion.ac.il/packages/smartlink/
 0x23  or SIL23   Silicon Integrated Systems (SiS), use SML drivers
 0x26  or SIL26     " 
 0x24  or SIL24   Broadcom, use   SML drivers
  	  BCM64   Broadcom, use   SML in ALSA mode,  but only under the Intel ICH modem controllers.
 0x27  or SIL27   AgereSystems(AS)  SML are needed under 2.6.n kernels,
           but for  2.4.n, there are also AS drivers through  http://www-3.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-52698
 0x21  or SIL21   PCTel  for 2.4.n kernels, pctel-2.7.9 at http://linmodems.technion.ac.il/pctel-linux or SML for 2.4.n and 2.6.n
          INT65   Intel 537EA	http://linmodems.technion.ac.il/packages/Intel/537/ or SML
 0x25     SIL25   Intel 537AA		"  or SML
             
  CXT(21,22,23,29)   Conexant -   	http://www.linuxant.com
 --------------------------------------------------------------------------------

For most soft modems, Silicon Labs. produces the core soft modem chip.
It is assigned a SIL id as its functionality is refined further by final chipset
manufacturers including AgereSystems, Intel, PCTel, SmartLink and many MinorBrands.
Conexant produces its own Subsystem with codecs CXTnm (n,m being 0-9) 
 
 If a novel identifier is displayed, please report to discuss@linmodems.org
 
 "mc97 codec is ff"  is a codec id of 0xffffffff, indicating either
 1) defective hardware
 2) some problem in the automatic diagnostic.
 Please just do a manual test in these case with:
 	dmesg | grep slamr
and include the output in your report to Discuss@linmodems.org
 
 SML slmodem-2.9.9 can serve several non-SmartLink Subsystem chips, but not for all modem controllers.  See the chart below for details.
              
PCI_IDs   Name	                   Possible support by:
-------   -----------------------  -------------------------
8086:1080 ac97 controller 				i . 
8086:2416 82801AA ICHAA >  		+ A a  p c .
8086:2426 82801AB ICHAB > 		+ A a .
8086:7186 >				        c .
8086:7196 82440 Banister  >     	+ A a   c .
8086:2446 82801BA ICH2  > 		+ A a p c .
8086:2486 82801CA/CAM AC97 ICH3 > 	+ A a p c i .
8086:24c6 82801DB ICH4 > 		+ A a   c i b .
8086:24d6 82801EB ICH5 > 		+ A     c i .
8086:266d 82801EB ICH6> 	        +	c .
8086:xxxx types above are from Intel   

1039:7013  SIS 630 >               	+ a p c i .
1039:7018  SIS 960 >               	+       i .
10de:01c1  Nvidia Corp >          +       i .
10de:00d9  Nvidia Corp >		A      c   .
1106:3068  VIA >			+ a p c i .
1022:7446  AMD AC_LINK >		+ .
10b9:5450  ALI 5450 >                     
10b9:5451  ALI 5451 >                     
10b9:5453  ALI 5453 AC-Link Controller >      p c .
1025:5453  ALI 5453 AC-Link Controller >        c .
10b9:5457  ALI 5457 AC-Link Controller > +    p c i .
1025:5457  ALI 5457 AC-Link Controller >        c .                   .
e159:0001  TigerJet >			          i .
1002:434d  ATI >			T  a    c i .
1543:3052  SI3052 >                               i .
10ec:8197  RealTek >                     + .
  --------------------------------------------------------
  8086:xxxc types are Intel modem controllers
The following letters indicate compatibility for the modem controller,
BUT do NOT gaurantee support by the software. 
Support MUST be ascertained by identifing the soft modem codec.

  +   SmartLink (SML) - http://www.smlink.com,  the slmodem-2.9.9 series
  A   SML slmodem-2.9.9-alsa software supporting the ALSA intel8x0m-modem driver
      Soft modems with the Broadcom codec BCM64 should thus be served. 
  T   SML slmodem-2.9.9-alsa software supporting the ALSA snd-atiixp-modem driver
With the above SML software, port creation is controlled by a daemon, slmodemd,
rather than being a static feature of the /dev/ files.
  p   PCtel support at http://pctelcompdb.sourceforge.net/
  c   Conexant/Rockwell - http://www.linuxant.com
  i   Intel - http://www.intel.com
  b   Broadcom, under 2.4.n kernels, with ALSA code under 2.6.n
  for details on A and T slmodem implementations, see Modem/ALSA.txt
 ======================================================================

To achieve codec readouts for SmartLink (SML) compatible modem controllers listed above,
proceed as follows:
1) Acquire/configure kernel-headers as described in Modem/DriverCompiling.txt
2) install the latest Smartlink slmodem-2.9.n driver resource. Follow directions therein to make and install the drivers. This will need a console login:
  su - root
change to the slmodem folder
  make clean
  make
  make install
proceeding to the desired test:
  modprobe slamr
  dmesg | grep slamr
sometimes a reboot may be necessary for the readout to be effective.

The 1) driver independent test, some details
During bootup, kernel diagnostics on the System are stored for later display by:
   dmesg
This information may include a SIL_id of modems under AC97/MC97 Controllers,
depending upon the type of bridging of the modem card to the motherboard.
The scanModem script processes dmesg output to capture AC97 modem information,
parses it into a SIL_id if possible, and then displays of modem chipset information.
Guidance to sources of modem supporting software may thus be obtained.

The transfer of the AC97 information to the dmesg buffer requires that modules supporting
both the digital audio card and the ac97_codec be loaded during bootup:
   modprobe ac97_codec
   modprobe audio_drivers  (such as i810_audio)
This can be checked after bootup with:
   lsmod

This script can also be used by entering a test block with nomenclature:
        /mnt/win_d2/Linux/scanModem SILtest
with SILtest a text file in This Folder
containing a section of a dmesg output or /var/log/messages like:

  i810: Intel ICH 82801AA found at IO 0xdc00 and 0xd800, IRQ 11
  i810_audio: Audio Controller supports 2 channels.
  ac97_codec: AC97 Audio codec, id: 0x4144:0x5340 (Analog Devices AD1881)
  i810_audio: AC97 codec 0 Unable to map surround DAC's (or DAC's not present), total channels = 2
  ac97_codec: AC97 Modem codec, id: 0x5349:0x4c22 (Silicon Laboratory Si3036)

which does include a line beginning with:   ac97_codec: AC97 Modem codec, id:
 
