Conexant HCF 56k PCI modem help

Bruce Evans bde at zeta.org.au
Sun Jan 25 05:10:36 PST 2004


On Sat, 24 Jan 2004, Rick C. Petty wrote:

> For a project, our customer wants to use these 56k PCI modems from
> Creative.  Although not my first choice, I did some research and discovered
> that the modems use a Conexant Systems, Inc. (vendor id 0x14F1) SmartHCF
> 56k chip (device id 0x1059).  It is not a "winmodem"; the HCF family is
> "Controllerless" vs. the HSF "software" chipsets.
> ...
> I started by adding the following entry to the top of src/dev/puc/pucdata.c:
>
> 	{   "HCF 56k Data/Fax/Voice Modem (Worldwide)",
> 	    NULL,
> 	    {	0x14F1, 0x1059, 0x148D, 0x1059 },
> 	    {	0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
> 	    {
> 		{ PUC_PORT_TYPE_UART, 0x10, 0x00, 0, 0 },
> 	    },
> 	},
>
> and the kernel detected the device (puc0) an bootup, but was unable to
> attach because it "could not get resource".  That last line in the struct
> was pure guesswork, based on many other entries.  I tried it with
> PUC_PORT_TYPE_COM and had the same error.  Digging through puc.c I tried
> adding PUC_FLAGS_ALTRES to the flags and it found the device, although
> sometimes would hang on boot [I guessed various numbers for the "bar"
> parameter with varying levels of bootability],  so I tried another
> approach..

It probably needs mainly the correct "bar" and "offset", and
PUC_PORT_TYPE_COM and a nonzero frequency.  The "bar" can be inferred
from verbose boot messages or "pciconf -r selector 0:0x3f" output (look
for nonzero address-like values at offsets 0x10, 0x14, ... up to about
0x24.  The "offset" is harder to determine (map the memory pointed to
by the bars somehow and look at what is in it) but is usually 0 for
the first port.

Bruce


More information about the freebsd-hardware mailing list