pccard weirdness with 4.6-PRE and Toshiba Satellite 1550CDS

"Emil Mikulic" <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Message-ID <005001c1fa89$6f4e71c0$0100a8c0@coren>
My laptop is a standard Toshiba Satellite 1550CDS.

I ran 4.4-RELEASE on it without any problems.  I CVSup'd to
4-STABLE (giving me 4.6-PRERELEASE) on May 13 2002 and
now I'm getting a lot of problems with my PCMCIA network card,
a Xircom RealPort(tm) Ethernet 10/100 RE-100 (according to
the underside of the card)

The PC Card controller mode is set to "CardBus/16-bit"
in the laptop's BIOS (v7.10)

On boot:
    pccard: card inserted, slot 0

When I run pccardd:
    <delay of 3-5 sec>
    pccardd[108]: Card "Xircom"("CreditCard 10/100")
        [CE3-10/100] [1.00] matched "Xircom" ("CreditCard
        10/100") [(null)] [(null)]
    xe0 at port 0x240-0x24f iomem 0xcc000-0xccfff irq 11
        slot 0 on pccard0
    xe0: Xircom CE3, bonding version 0x45, 100Mbps capable
    xe0: DingoID = 0x444b, RevisionID = 0x1, VendorID = 0
    xe0: Ethernet address 00:10:a4:eb:0a:1b
    pccardd[108]: xe0: Xircom (CreditCard 10/100) inserted.
    pccardd[108]: pccardd started

When I run 'dhclient xe0,' the machine freezes up COMPLETELY.
I can't even switch virtual consoles.  If I physically eject
the card, it starts responding again:

    dhclient: receive_packet failed on xe0: Device not configured
    pccardd[108]: xe0: Xircom (CreditCard 10/100) removed.
    dhclient: receive_packet failed on xe0: Device not configured
    last message repeated 20716 times

If I then physically reinsert the card:

    pccard: card inserted, slot 0
    pccardd[108]: Card "Xircom"("CreditCard 10/100")
        [CE3-10/100] [1.00] matched "Xircom" ("CreditCard
        10/100") [(null)] [(null)]
    xe0 at port 0x240-0x24f iomem 0xcc000-0xccfff irq 11
        slot 0 on pccard0
    xe0: Xircom CE3, bonding version 0x45, 100Mbps capable
    xe0: DingoID = 0x444b, RevisionID = 0x1, VendorID = 0
    xe0: Ethernet address 00:10:a4:eb:0a:1b
    pccardd[108]: xe0: Xircom (CreditCard 10/100) inserted.

I now run dhclient again it succeeds, sets up the interface
and the network card works as expected.

I tried Mr. Losh's hw.pcic.intr_path=1 suggestion, but it
didn't work.  The behaviour was the same except that the
machine didn't unfreeze when I ejected the card, but only
when I shoved it back in.

Something interesting I discovered completely by accident:

Reboot the machine:
    pccard: card inserted, slot 0

Run madplay (the Satellite has an ESS Maestro 2E that works
quite happily with the pcm driver):
    # madplay /home/darkmoon/walked-in-line.mp3
    [MAD Banner and ID3 tag]
    <pause>
    pccard: card removed, slot 0
    pccard: card inserted, slot 0
    <sound starts now>
(I swear I didn't physically touch the card!)

After this, I can quite happily run pccardd:
    pccardd[108]: Card "Xircom"("CreditCard 10/100")
        [CE3-10/100] [1.00] matched "Xircom" ("CreditCard
        10/100") [(null)] [(null)]
    xe0 at port 0x240-0x24f iomem 0xcc000-0xccfff irq 11
        slot 0 on pccard0
    xe0: Xircom CE3, bonding version 0x45, 100Mbps capable
    xe0: DingoID = 0x444b, RevisionID = 0x1, VendorID = 0
    xe0: Ethernet address 00:10:a4:eb:0a:1b
    pccardd[108]: xe0: Xircom (CreditCard 10/100) inserted.
    pccardd[108]: pccardd started

And dhclient with no weird lockup:
    # dhclient xe0
    <pause>
    #

This has worked for me every time. I use it as a work-around:
The top line of my /etc/rc.pccard is a "madplay -t 0.1 [path-to-mp3]"

I spent a dozen reboots stepping through the madplay code
to find what triggers the pccard removed/inserted thing.
I don't know if I'm right but it appears to write sound data
to a file descriptor (which, I'm guessing is pointing at
/dev/dsp or something similar) and, after a few writes, the pccard
thing happens, then after that sound actually starts being
produced from the speakers.

From reading a few other threads in the freebsd-mobile
archive, it appears that I'm not the only person suffering
from the pccard lockup problem.  Is there any way I can
help in getting this fixed?

--- random diagnostic data follows ---

haplo# sysctl -a | fgrep pcic | sort -u
hw.pcic.boot_deactivated: 0
hw.pcic.ignore_function_1: 0
hw.pcic.init_routing: 0
hw.pcic.intr_path: 2
hw.pcic.irq: 0
machdep.pccard.pcic_resume_reset: 1
pccard0: <PC Card bus (classic)> on pcic0
pccard1: <PC Card bus (classic)> on pcic1
pcic0: <Toshiba ToPIC95B PCI-CardBus Bridge> irq 11 at device 19.0 on pci0
pcic0: PCI Memory allocated: 0x44000000
pcic0: Polling mode
pcic1: <Toshiba ToPIC95B PCI-CardBus Bridge> irq 11 at device 19.1 on pci0
pcic1: PCI Memory allocated: 0x44001000
pcic1: Polling mode

(from dmesg)
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pci0: <unknown card> (vendor=0x11c1, dev=0x0441) at 7.0 irq 3
pci0: <S3 ViRGE MX graphics accelerator> at 8.0
pci0: <NEC uPD 9210 USB controller> at 11.0 irq 11
pcm0: <ESS Technology Maestro-2E> port 0xff00-0xffff irq 11 at device 12.0 on pci0
pcic0: <Toshiba ToPIC95B PCI-CardBus Bridge> irq 11 at device 19.0 on pci0
pcic0: PCI Memory allocated: 0x44000000
pccard0: <PC Card bus (classic)> on pcic0
pcic1: <Toshiba ToPIC95B PCI-CardBus Bridge> irq 11 at device 19.1 on pci0
pcic1: PCI Memory allocated: 0x44001000
pccard1: <PC Card bus (classic)> on pcic1
eisa0: <EISA bus> on motherboard
eisa0: unknown card @@@0000 (0x00000000) at slot 1
isa0: <ISA bus> on motherboard
pccard: card inserted, slot 0
ad0: 4126MB <TOSHIBA MK4313MAT> [8944/15/63] at ata0-master BIOSDMA
acd0: CDROM <TOSHIBA CD-ROM XM-7002B> at ata1-master PIO4
Mounting root from ufs:/dev/ad0s1a
----



To Unsubscribe: send mail to [email protected]
with "unsubscribe freebsd-mobile" in the body of the message
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.