Modem PC Card on Compaq nx6110: No serial port created

Alex Kavanagh alex at tinwood.homelinux.org
Sat Apr 8 12:38:09 EDT 2006


Hi

I've just joined the list.  However, scanning through the recent
archives, I've noticed that I have exactly the same problem as you do.
Please see below:


At Sat, 08 Apr 2006 16:51:02 +0200,
Pascal MALAISE wrote:
> 
> I have just tested the pcmcia modem card on my IBM Thinkpad 770 (with
> Ubuntu Breezy and kernek 2.6.16.1, like on my Compaq nx6110), and it
> works. There is the trace from cs and a ttyS is created:
> 
> pccard: PCMCIA card inserted into slot 1
> cs: memory probe 0xa0000000-0xa0ffffff: clean.
> pcmcia: registering new device pcmcia1.0
> 1.0: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
> pccard: card ejected from slot 1
> 
> So the problem appears to be with pcmcia modem cards on the Compaq
> nx6110. Can it be because there is no serial port at all on this laptop?
> Or is there a specific PCI/ISA bridging?

Yes, I think it is.  I have a HP DV1448 laptop and my 3G Novatel
Merlin U630 gets scanned in okay but the serial port fails to arrive.
We both have TI PCIxx21 Cardbus PCI bridges on our laptops and I'm
convinced this is the problem.  I tried the same card on the same OS
(Ubuntu 5.10 - 2.6.12 kernel) on a HP 3000 based laptop and the card
worked perfectly.  Thus I am convinced it is the PCIxx21 chipset that
is the culprit.

I've done the pci=assign-busses, override-bios=1 and neither helped.
I even upgraded to 2.6.16.1 and that hasn't helped either.

Any idea what I can try next? There are no error messages either.
Just setserial indicating that no uart has been found:

/dev/ttyS0, Line 0, UART: unknown, Port: 0x03f8, IRQ: 20
        Baud_base: 115200, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test


I don't know how this stuff works, but I'm guessing that the processor
can't actually gain access to the ports that the cardbus/card is
using.  i.e. cardctl config says:

Socket 0:
  Vcc 5.0V  Vpp1 0.0V  Vpp2 0.0V
  interface type is "memory and I/O"
  irq 20 [exclusive] [level]
  speaker output is enabled
  function 0:
    config base 0x0400
      option 0x47 status 0x08
    io 0x03f8-0x03ff [8bit]

I'm guessing that when the serial_cs module tries to read ports 0x03f8
to 0x3ff it doesn't find the 16550A uart that shows up on other OS's
and never gets to an error message in the kernel.

So, before I switch on debugging in the PCMCIA subsystem does this
ring any bells with anyone?  I don't have another PCMCIA card to try
but I'm guessing that no PCMCIA card will work at the moment.

Do I definitely need to upgrade to 2.6.16.1?  I only ask because I
have to get quite a lot patched to get it working with Ubuntu 5.10
(EVMS + mouse problems + IPW2200 problems).

Thanks for any help you can offer.

Cheers
Alex.

Relevant info (I hope!):

Kernel 2.6.12 (but same thing happens on 2.6.16.1 except for IRQ
assignment  - 3 on 2.6.16.1 and 20 on 2.6.12)

PS relevant lines from dmesg:


[4294669.669000] ACPI: PCI Interrupt 0000:00:1e.3[B] -> GSI 20 (level, low) -> IRQ 20
[4294669.669000] ACPI: PCI interrupt for device 0000:00:1e.3 disabled


[4294706.953000] ACPI: PCI Interrupt 0000:06:09.0[A] -> GSI 20 (level, low) -> IRQ 20
[4294706.953000] Yenta: CardBus bridge found at 0000:06:09.0 [103c:3080]
[4294706.953000] Yenta: Enabling burst memory read transactions
[4294706.953000] Yenta: Using CSCINT to route CSC interrupts to PCI
[4294706.953000] Yenta: Routing CardBus interrupts to PCI
[4294706.953000] Yenta TI: socket 0000:06:09.0, mfunc 0x01a01b22, devctl 0x64
[4294707.174000] Yenta: ISA IRQ mask 0x0cf8, PCI irq 20
[4294707.174000] Socket status: 30000006


[4332816.030000] cs: IO port probe 0x100-0x4ff: excluding 0x4d0-0x4d7
[4332816.032000] cs: IO port probe 0xc00-0xcf7: clean.
[4332816.033000] cs: IO port probe 0xa000-0xafff: clean.
[4332816.041000] cs: IO port probe 0xa00-0xaff: clean.

(e.g. read through 0x3f8-0x3ff and saw nothing??? or is that no what
this means???  Also, IRQ 20 seems to be perhaps used twice?)

/var/log/syslog:

Apr  8 17:13:24 localhost cardmgr[15635]: socket 0: Merlin U630 UMTS Modem
Apr  8 17:13:24 localhost NetworkManager: <debug info>^I[1144512804.204009]  (): New device added (hal udi is '/org/freedesktop/Hal/devices/pcmcia__1__1').
Apr  8 17:13:24 localhost NetworkManager: <debug info>^I[1144512804.213651]  (): New device added (hal udi is '/org/freedesktop/Hal/devices/pcmcia__1__1_0').
Apr  8 17:13:24 localhost cardmgr[15635]: executing: 'modprobe serial_cs'
Apr  8 17:13:24 localhost cardmgr[15635]: executing: './serial start ttyS0'
Apr  8 17:13:24 localhost NetworkManager: <debug info>^I[1144512804.396362]  (): New device added (hal udi is '/org/freedesktop/Hal/devices/pcmcia__1__1_serial_platform_0').
Apr

/etc/pcmcia/novatel.conf (as an addition to identify the card to the
system):

card "Merlin U630 UMTS Modem"
  manfid 0x00a4, 0x0276
  bind "serial_cs" to 0


lspci -vv:

0000:06:09.0 CardBus bridge: Texas Instruments: Unknown device 8031
        Subsystem: Hewlett-Packard Company: Unknown device 3080
        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: 168, Cache Line Size: 0x20 (128 bytes)
        Interrupt: pin A routed to IRQ 20
        Region 0: Memory at 40080000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=06, secondary=07, subordinate=0a, sec-latency=176
        Memory window 0: 40400000-407ff000 (prefetchable)
        Memory window 1: 40800000-40bff000
        I/O window 0: 00004000-000040ff
        I/O window 1: 00004400-000044ff
        BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt- PostWrite+
        16-bit legacy interface ports at 0001

Subordinate bus routing with pci=assign-busses:

lspci -v | grep sub
        Bus: primary=00, secondary=06, subordinate=06, sec-latency=216
        Bus: primary=06, secondary=07, subordinate=0a, sec-latency=176

(I'm not sure how to read this - i.e. can the CPU get to bus 09 where
the bridge lives?)

lshw:

           *-pcmcia
                description: CardBus bridge
                product: Texas Instruments PCIxx21/x515 Cardbus Controller
                vendor: Texas Instruments
                physical id: 9
                bus info: pci at 06:09.0
                version: 00
                width: 32 bits
                clock: 33MHz
                capabilities: pcmcia bus_master cap_list
                configuration: driver=yenta_cardbus
                resources: iomemory:40080000-40080fff irq:20
              *-serial
                   description: Merlin UMTS Modem
                   product: U630
                   vendor: Novatel Wireless
                   physical id: 0
                   slot: Socket 0
                   resources: irq:20

It looks like irq: 20 is shared with the modem:  is this a problem?

        *-communication UNCLAIMED
             description: Modem
             product: 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller
             vendor: Intel Corporation
             physical id: 1e.3
             bus info: pci at 00:1e.3
             version: 03
             width: 32 bits
             clock: 33MHz
             capabilities: generic cap_list
             resources: ioport:2400-24ff ioport:2000-207f irq:20


dump_cis:


Socket 0:
  dev_info
    NULL 0ns, 512b
  attr_dev_info
    NULL 0ns, 512b
  mfc {
    manfid 0x00a4, 0x0276
    vers_1 6.1, "Novatel Wireless", "Merlin UMTS Modem", "U630", ""
    funcid serial_port [post]
    serial_interface
      uart 16550 [space/mark/odd/even] [5/6/7/8] [1/1.5/2]
    config base 0x0400 mask 0x0263 last_index 0x05
    cftable_entry 0x07 [default]
      [audio]
      Vcc Vnom 5V Istatic 15mA Ipeak 850mA Idown 25mA
      io 0x03f8-0x03ff [lines=3] [8bit] [range]
      irq mask 0xffff [pulse]
    cftable_entry 0x0f
      [audio]
      io 0x02f8-0x02ff [lines=3] [8bit] [range]
      irq mask 0xffff [pulse]
    cftable_entry 0x17
      [audio]
      io 0x03e8-0x03ef [lines=3] [8bit] [range]
      irq mask 0xffff [pulse]
    cftable_entry 0x1f
      [audio]
      io 0x02e8-0x02ef [lines=3] [8bit] [range]
      irq mask 0xffff [pulse]
    cftable_entry 0x27
      [audio]
      io 0x0000-0x0007 [lines=3] [8bit]
      irq mask 0xffff [pulse]
  }, {
    funcid serial_port [post]
    serial_interface
      uart 16550 [space/mark/odd/even] [5/6/7/8] [1/1.5/2]
    config base 0x0420 mask 0x0263 last_index 0x0a
    cftable_entry 0x07 [default]
      [audio]
      Vcc Vnom 5V Istatic 15mA Ipeak 850mA Idown 25mA
      io 0x02f8-0x02ff [lines=3] [8bit] [range]
      irq mask 0xffff [pulse]
    cftable_entry 0x0f
      [audio]
      io 0x03f8-0x03ff [lines=3] [8bit] [range]
      irq mask 0xffff [pulse]
    cftable_entry 0x17
      [audio]
      io 0x02e8-0x02ef [lines=3] [8bit] [range]
      irq mask 0xffff [pulse]
    cftable_entry 0x1f
      [audio]
      io 0x03e8-0x03ef [lines=3] [8bit] [range]
      irq mask 0xffff [pulse]
    cftable_entry 0x27
      [audio]
      io 0x0000-0x0007 [lines=3] [8bit]
      irq mask 0xffff [pulse]
  }

./dump_pirq
Interrupt routing table found at address 0xfdf20:
  Version 1.0, size 0x00c0
  Interrupt router is device 00:1f.0
  PCI exclusive interrupt mask: 0x0000 []
  Compatible router: vendor 0x8086 device 0x122e

Device 00:1d.0 (slot 0):
  INTA: link 0x6b, irq mask 0x0008 [3]
  INTB: link 0x63, irq mask 0x0008 [3]
  INTC: link 0x62, irq mask 0x0010 [4]
  INTD: link 0x60, irq mask 0x0400 [10]

Device 00:1e.0 (slot 0):
  INTA: link 0x61, irq mask 0x0020 [5]
  INTB: link 0x61, irq mask 0x0020 [5]

Device 00:1f.0 (slot 0):
  INTA: link 0x62, irq mask 0x0010 [4]
  INTB: link 0x63, irq mask 0x0008 [3]
  INTD: link 0x60, irq mask 0x0400 [10]

Device 01:00.0 (slot 6):
  INTA: link 0x60, irq mask 0x0400 [10]
  INTB: link 0x61, irq mask 0x0020 [5]
  INTC: link 0x62, irq mask 0x0010 [4]
  INTD: link 0x63, irq mask 0x0008 [3]

Device 06:00.0 (slot 0):
  INTA: link 0x60, irq mask 0x0400 [10]

Device 06:06.0 (slot 0):
  INTA: link 0x62, irq mask 0x0010 [4]
  INTB: link 0x63, irq mask 0x0008 [3]

Device 06:09.0 (slot 0):
  INTA: link 0x68, irq mask 0x0800 [11]
  INTB: link 0x69, irq mask 0x0008 [3]
  INTC: link 0x6a, irq mask 0x0010 [4]

Device 00:00.0 (slot 0):
  INTA: link 0x60, irq mask 0x0400 [10]
  INTB: link 0x61, irq mask 0x0020 [5]
  INTC: link 0x62, irq mask 0x0010 [4]
  INTD: link 0x63, irq mask 0x0008 [3]

Device 00:02.0 (slot 0):
  INTA: link 0x60, irq mask 0x0400 [10]
  INTB: link 0x61, irq mask 0x0020 [5]

Device 00:01.0 (slot 0):
  INTA: link 0x60, irq mask 0x0400 [10]
  INTB: link 0x61, irq mask 0x0020 [5]

Interrupt router at 00:1f.0: Intel 82371FB PIIX PCI-to-ISA bridge
  PIRQ1 (link 0x60): irq 10
  PIRQ2 (link 0x61): irq 5
  PIRQ3 (link 0x62): irq 4
  PIRQ4 (link 0x63): irq 3
  Serial IRQ: [enabled] [quiet] [frame=21] [pulse=4]
  Level mask: 0x0c38 [3,4,5,10,11]

./dump_cisreg
Socket 0 function 0:
  Config register base = 0x0400, mask = 0x0263
  Configuration option register = 0x47
    [level_req] [func_ena] [addr_decode] [ireq_ena] [index = 00]
  Card configuration and status register = 0x08
    [audio]
  IO base = 0x03f8
  IO size = 7

Socket 0 function 1:
  Config register base = 0x0420, mask = 0x0263
  read config register: Input/output error


From stab:

Current socket status (from /var/run/stab):
  Socket 0: Merlin U630 UMTS Modem
  0     serial  serial_cs       0       ttyS0   4       64



> 
> Thank's in advance for you help and/or ideas of tests.
> 
> -- 
> Pascal MALAISE
> (priv) mailto:malaise at magic.fr
> (prof) mailto:pascal.malaise at thalesatm.com
> 
> 
> 
> _______________________________________________
> Linux PCMCIA reimplementation list
> http://lists.infradead.org/mailman/listinfo/linux-pcmcia



More information about the linux-pcmcia mailing list