Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#368 issues communicating with pcmcia card

card_specific
open
nobody
5
2005-01-11
2005-01-11
Vish
No

Issue:
I have a extension cage connected to a Dell Power Edge
750 server. The extension cage has 8 PCMCIA slots
which can take wireless data cards. I am currently
testing with one single data card. When I insert the
card, the card is recognized and it is assigned ttyS3. I
am having issues communicating with the card using
minicom. When I run the test_modem script I get
syswrite():Input/Output error.

All information is published as detailed in "How to submit
useful problem reports"

Your help is greatly appreciated.

Thanks
Vish

Discussion

  • Vish
    Vish
    2005-01-11

    This file has all information as detailed in "How to submit useful problem reports"

     
  • David Hinds
    David Hinds
    2005-01-11

    Logged In: YES
    user_id=7760

    In general, with serial port devices, problems configuring
    or communicating with the card show up as soon as the serial
    driver is loaded. I don't think I've ever seen a
    driver-level problem where the serial driver was still able
    to successfully detect a 16550 UART.

    A quick google search did not turn up any evidence that
    anyone has ever used this card with Linux. That's usually a
    bad sign. I couldn't even find anyone posting a question
    about the card. I know that some people have had trouble
    with other cellular data cards under Linux, maybe because
    these cards require special initialization sequences.

    I suppose it is still possible that there's something odd
    about your hardware setup that is causing trouble. I would
    first try to test the card on a "known good" setup where
    you're able to use other 16-bit PCMCIA cards successfully.
    If the behavior is the same, then you would have to try to
    get ahold of some technical documentation on the card, and
    figure out how to initialize it.

    -- Dave

     
  • Vish
    Vish
    2005-01-13

    Logged In: YES
    user_id=1187019

    Hi,

    Like I said before I am using an extension pcmcia cage which
    connects to the actual dell machine. The problem I am facing
    right now is that the extension cage is using a memory
    address in the fdxxxx range but my kernel is excluding that
    memory when doing a probe.

    I am not sure how I can get my kernel to include that range. I
    tried to include that range in my /etc/pcmcia/config.opts but
    the kernel still excludes during probing.

    Any help is greatly appreciated.

    My lspci -v for the cage (IRQ 22) shows this:
    05:04.0 CardBus bridge: ENE Technology Inc CB1410 Cardbus
    Controller
    Flags: bus master, medium devsel, latency 168, IRQ 22
    Memory at fdf00000 (32-bit, non-prefetchable)
    [size=4K]
    Bus: primary=05, secondary=07, subordinate=0a, sec-
    latency=176
    Memory window 0: fdf20000-fdf3f000 (prefetchable)
    Memory window 1: fdf40000-fdf5f000
    I/O window 0: 00000000-00000003
    I/O window 1: 00000000-00000003
    16-bit legacy interface ports at 0001

    and the kernel log reports this
    Jan 13 11:53:28 d50-a030091c kernel: cs: memory probe
    0xfdf00000-0xfdffffff: excluding 0xfdf00000-0xfdf0ffff
    0xfdf20000-0xfdf5ffff

    Thanks
    Vish

     
  • David Hinds
    David Hinds
    2005-01-14

    Logged In: YES
    user_id=7760

    The memory probe has nothing to do with your problem. Part
    of the range you specified was excluded, but the rest of the
    range passed the probe. For a serial port device, the
    memory window is only used for card identification, and that
    succeeded! Also IO to the card is working fine, because the
    serial driver successfully detected a 16550 UART.

    Please re-read my previous suggestions. You are using an
    unusual system setup (the extension cage) with an unusual
    card (the cellular data card). To pin down where the
    problem might be, you'll have to either test the cage with a
    16-bit PCMCIA card known to work under Linux, or test the
    card on a system that is known to work with other 16-bit
    PCMCIA cards.

    -- Dave

     
  • Vish
    Vish
    2005-01-14

    Logged In: YES
    user_id=1187019

    Dave,
    Thanks for your prompt response. I did get an opportunity to
    try the card on a PCMCIA card directly on my dell server. It
    got recognized as /dev/ttyS2 and I was able to communicate
    with the card over minicom without needing to do any
    initialization.

    When I use the extension box, the card gets assigned IRQ22
    but when I look in /proc/interrupts I don't see any interrupts
    sent to that IRQ. I tried to connect to the card using minicom
    before so I expected to see interrupts. What do you think
    about this?

    I suspect that there is a problem between the logical and
    physical device. The IO port that gets assigned is 0x02e8. Is
    there a specific memory range that corresponds to this port?
    Sorry about the multiple questions. Any suggestions are
    greatly appreciated.

    Thanks
    Vish

     
  • Vish
    Vish
    2005-01-14

    Logged In: YES
    user_id=1187019

    Hi Dave and all,

    I am back. I analyzed my /var/log/messages (attached) in
    detail today and I saw that kernel was printing ttyS3:LSR
    Safety Check Engaged. I understand from reading the
    serial:HOWTO that this is caused when the kernel cannot find
    a serial device associated with the IO port associated with
    ttyS3.

    My questions are:

    1) How do I find where my serial device i(ttyS3) is? What IO
    Port?
    2) The other dell server is able to associate ttyS2 with the
    card, no issues. Why is the machine with the extension cage
    have issues?

    3) I looked at /proc/pci and IRQ 22 was associated the E2E
    cardbridge controller. This was the case for both my dell
    servers. The card which is working also uses IRQ22.

    4) Is there a way I can look at the hardware register LSR? to
    see what my actuall io port is? Some people asked me to look
    at /proc/pci for my IRQ but that does not show any IO Ports.

    Thanks for your help. Appreciate it.

    Vish

     
  • David Hinds
    David Hinds
    2005-01-14

    Logged In: YES
    user_id=7760

    Ok, I think I know what's going wrong.

    The IO port range assigned to the card is the one reported
    in your system log, or in 'cardctl config', i.e. 0x2e8-0x2ef.

    The PCI-to-PCI bridge for PCI bus 5 has a memory window
    defined, but no IO port window. It is not forwarding any IO
    transactions to the CardBus bridge (and PCMCIA card) on the
    other side of the PCI bridge. I was misled by the apparent
    identification of a 16550 UART, which normally only happens
    when the serial driver can communicate with the port
    successfully.

    This is a BIOS quirk; apparently it did not recognize that
    the CardBus bridge device also requires IO resources. I
    think a current 2.6 kernel may deal with this problem
    automatically, and reconfigure the bridge. But 2.4 kernels
    can't.

    When you plug the card directly into the server, and not in
    the cage, it probably ends up on a different PCI bus that is
    already configured to deliver IO transactions.

    -- Dave

     
  • Vish
    Vish
    2005-01-25

    Logged In: YES
    user_id=1187019

    Hi David,
    I am sort of confused. I looked at the lspci -v output and I
    see that the cardbus bridge has memory and IO allocated.
    Why do you say they were not? Apologize if I have
    overlooked something. Please let me know.

    Thanks
    Vish

    05:04.0 CardBus bridge: ENE Technology Inc CB1410 Cardbus
    Controller
    Flags: bus master, medium devsel, latency 168, IRQ 22
    Memory at fdf00000 (32-bit, non-prefetchable)
    [size=4K]
    Bus: primary=05, secondary=07, subordinate=0a, sec-
    latency=176
    Memory window 0: fdf20000-fdf3f000 (prefetchable)
    Memory window 1: fdf40000-fdf5f000
    I/O window 0: 00000000-00000003
    I/O window 1: 00000000-00000003
    16-bit legacy interface ports at 0001

     
  • David Hinds
    David Hinds
    2005-01-26

    Logged In: YES
    user_id=7760

    > I/O window 0: 00000000-00000003
    > I/O window 1: 00000000-00000003

    An IO window starting at address 0 means "disabled", but
    this is not the underlying problem; the drivers can handle
    reconfiguring the CardBus bridge as needed. The real
    problem is here:

    04:04.0 PCI bridge: Pericom Semiconductor: Unknown device
    8150 (rev 02) (prog-if 00 [Normal decode])
    Flags: bus master, medium devsel, latency 32
    Bus: primary=04, secondary=05, subordinate=06, sec-latency=32
    Memory behind bridge: fdf00000-fdffffff
    Capabilities: [dc] Power Management version 1
    Capabilities: [b0] Slot ID: 0 slots, First-, chassis 00

    There is no IO window defined for this PCI bridge. The
    CardBus bridge is on the "far side" of this bridge, and
    hence will not receive any IO transactions.

    -- Dave