pcmcia modem not working on powerbook

Bug #14652 reported by sam tygier
6
Affects Status Importance Assigned to Milestone
linux-source-2.6.15 (Ubuntu)
Fix Released
Medium
Ben Collins

Bug Description

I am having problems with a pcmcia(or possibly cardbus, if there is a
difference) modem card. Its a 3Com Megahertz 56K Cellular Modem PC Card with
XJACK Connector, Model 3CXM556, FCC Reg 4X2USA-25318-M5-E. I am trying to use it
on a 1ghz Apple G4 Al Powerbook 768mb ram running a fairy upto date haory.

When i insert it, it beeps. cardctl can see it

sam@titania:~$ cardctl ident
Socket 0:
product info: "3Com", "3CXM/3CCM556", "Megahertz 56K Cell/Telephony Modem"
manfid: 0x0101, 0x0034
function: 2 (serial)

It was not listed in /etc/pcmcia/config, so i added this

card "Megahertz 56K Cell/Telephony Modem"
manfid 0x0101, 0x0034
bind "serial_cs"

but it still does not seem to be assined a device name. wvdial and the gnome
network tool can't find it.

I think a clue to the problem is in dmesg, a kernel oops

cs: memory probe 0x80000000-0x80ffffff: excluding 0x80000000-0x800fffff
Oops: kernel access of bad area, sig: 11 [#1]
NIP: C0117980 LR: C011AD0C SP: EBED9430 REGS: ebed9380 TRAP: 0300 Not
taintedMSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: 00000014, DSISR: 40000000
TASK = e590d910[5358] 'cardmgr' THREAD: ebed8000
Last syscall: 54
GPR00: 00000000 EBED9430 E590D910 C0258588 C02FA008 00000000 EBED94F8 EDE554FC
GPR08: F237A000 00000000 C02FA008 00000000 42008484 100228F8 00000003 7FFFFB68
GPR16: 10020000 10020000 00000000 10010000 10020000 EC4E8E00 00000000 F2208D9C
GPR24: 00000000 EBED9520 00000000 EDE55540 C0258588 00000000 C02FA008 C02FA008
NIP [c0117980] uart_remove_one_port+0x38/0xdc
LR [c011ad0c] serial8250_register_port+0x6c/0x128
Call trace:
[c011ad0c] serial8250_register_port+0x6c/0x128
[f2206488] setup_serial+0x74/0x130 [serial_cs]
[f22068a4] simple_config+0x270/0x37c [serial_cs]
[f2206f70] serial_config+0x230/0x2ec [serial_cs]
[f2207094] serial_event+0x68/0xfc [serial_cs]
[f23fb29c] pcmcia_register_client+0x26c/0x2dc [pcmcia_core]
[f22062d0] serial_attach+0xf8/0x180 [serial_cs]
[f26af8a8] bind_request+0x12c/0x228 [pcmcia]
[f26b05e8] ds_ioctl+0x53c/0x67c [pcmcia]
[c0075f80] sys_ioctl+0xdc/0x2f4
[c0004330] ret_from_syscall+0x0/0x4c

I think those strings of hex on the first line relate to

sam@titania:~$ cat /etc/pcmcia/config.opts

#snipped comments
include port 0x100-0x4ff
include port 0x1000-0x17ff
include memory 0x80000000-0x80ffffff

i geuss the include memory needs changing, to something, but i dont know what
and whether this is different from on x86.

Revision history for this message
Matt Zimmerman (mdz) wrote :

It would be interesting to know if it works on i386; the fact that there is no
entry in config for this device suggests that perhaps serial_cs does not support
it. Are you sure that it presents a PCMCIA serial device interface?

Revision history for this message
sam tygier (samtygier) wrote :

yes i tried it today on a celeron laptop. worked fine. it connected to
/dev/ttyS2 (or prehaps ttyS1) and had /dev/modem pointed to it. wvdialconf found
it and i was able to connect and browse the web.

Revision history for this message
Simon Hart (ubuntu-sphart) wrote :

I have the same problem, but with different hardware. I have used the card
on this machine some time ago - probably a 2.4 kernel on Debian.

At the time of the oops the screen brightness increases.

Oops: kernel access of bad area, sig: 11 [#1]
NIP: C0110234 LR: C01135CC SP: C5AFF690 REGS: c5aff5e0 TRAP: 0300 Not tainted
MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: 00000014, DSISR: 40000000
TASK = c54cc5e0[4964] 'cardmgr' THREAD: c5afe000
Last syscall: 54
GPR00: 00000000 C5AFF690 C54CC5E0 C0252370 C02EF4A8 00000000 C5AFF758 C75CF9A0
GPR08: D22D2000 00000000 C02EF4A8 00000000 44008484 100228F8 00000003 7FFFF608
GPR16: 10020000 10020000 00000000 10010000 10020000 C6370C00 00000000 D214FA30
GPR24: 00000000 C5AFF780 00000000 CA03CAF4 C0252370 00000000 C02EF4A8 C02EF4A8
NIP [c0110234] uart_remove_one_port+0x38/0xdc
LR [c01135cc] serial8250_register_port+0x6c/0x128
Call trace: [d2152c8c] pcmcia_register_client+0x254/0x39c [pcmcia]
 [d214d2a8] serial_attach+0xd0/0x114 [serial_cs]
 [d2152918] bind_request+0x1c4/0x2e4 [pcmcia]
 [d2153b38] ds_ioctl+0x568/0x6a4 [pcmcia]
 [c0074044] do_ioctl+0x68/0x8c
 [c0074294] vfs_ioctl+0x88/0x2a8
 [c00744f8] sys_ioctl+0x44/0x78
 [c0004290] ret_from_syscall+0x0/0x4c

Unbadged card
$ cardctl ident
Socket 0:
  product info: "PCMCIA", "56K V.90 Fax Modem (RK)", "FM560RK", "A"
  manfid: 0x0013, 0x0000
  function: 2 (serial)

motherboard : PowerBook3,3 MacRISC2 MacRISC Power Macintosh
detected as : 72 (PowerBook Titanium II)

kernel 2.6.11-1-powerpc (Ubuntu package)

config.opts (as per Ubuntu package)
include port 0x100-0x4ff
include port 0x1000-0x17ff
include memory 0x80000000-0x80ffffff

Revision history for this message
sam tygier (samtygier) wrote :

i posted a message on the pcmcia-cs mailing list

they suggested i might try recent -mm kernel. "It contains memory and io
autoconfiguration for PCMCIA bridges (especially on powerbooks)"

i have not tried this, as i am on dialup, and a bit scared of compiling a kernel.

Revision history for this message
Ben Collins (ben-collins) wrote :

Can you try with latest breezy, or Colony 5 cd?

Revision history for this message
sam tygier (samtygier) wrote :

ok, i had a go with the breezy preview, no change really. i could get colony 5
next week, if there are new changes.

ubuntu@ubuntu:~$ uname -a
Linux ubuntu 2.6.12-8-powerpc #1 Tue Aug 30 23:03:49 BST 2005 ppc GNU/Linux

dmesg on card insert

[ 494.078775] cs: memory probe 0x80000000-0x80ffffff: excluding
0x80000000-0x800fffff
[ 494.343683] Oops: kernel access of bad area, sig: 11 [#1]
[ 494.343702] NIP: C012C2FC LR: C012F78C SP: E22D9980 REGS: e22d98d0 TRAP: 0300
   Not tainted
[ 494.343713] MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
[ 494.343720] DAR: 00000014, DSISR: 40000000
[ 494.343727] TASK = ee97a660[22636] 'cardmgr' THREAD: e22d8000
[ 494.343733] Last syscall: 54
[ 494.343737] GPR00: 00000000 E22D9980 EE97A660 C02685A8 C030630C 00000000
E22D9A48 EF71561C
[ 494.343754] GPR08: 00000000 E22D8000 00000000 00000000 42008442 1002290C
10010000 F2145748
[ 494.343770] GPR16: F2380000 E22D9D00 F214581C DBBB7400 DBBB7418 00000000
F214581C 00000000
[ 494.343787] GPR24: 00000000 DAD6A614 EE943C00 C0270000 C02685A8 00000000
C0270000 C030630C
[ 494.343805] NIP [c012c2fc] uart_remove_one_port+0x38/0xf0
[ 494.343826] LR [c012f78c] serial8250_register_port+0x138/0x1ec
[ 494.343838] Call trace:
[ 494.343844] [c012f78c] serial8250_register_port+0x138/0x1ec
[ 494.343855] [f2143300] setup_serial+0x7c/0x13c [serial_cs]
[ 494.343873] [f2143f08] serial_event+0xa40/0xb10 [serial_cs]
[ 494.343885] [f237b048] pcmcia_register_client+0x2fc/0x33c [pcmcia]
[ 494.343917] [f2143234] serial_attach+0xc0/0x110 [serial_cs]
[ 494.343929] [f237a494] pcmcia_device_probe+0xbc/0x128 [pcmcia]
[ 494.343948] [c013513c] driver_probe_device+0x4c/0xa8
[ 494.343959] [c0135208] device_attach+0x70/0xf8
[ 494.343969] [c01359a0] bus_rescan_devices_helper+0x3c/0x68
[ 494.343979] [c0134e38] __bus_for_each_dev+0x58/0xb0
[ 494.343989] [c0135a2c] bus_rescan_devices+0x60/0xbc
[ 494.343998] [f237c398] ds_ioctl+0x984/0xaa4 [pcmcia]
[ 494.344016] [c007b5e0] do_ioctl+0x68/0x9c
[ 494.344031] [c007b6cc] vfs_ioctl+0xb8/0x400
[ 494.344040] [c007ba54] sys_ioctl+0x40/0x74

if i run cardctl info or cardctl ident they both hang.

wvdialconf cannot find a modem.

Revision history for this message
Simon Hart (ubuntu-sphart) wrote :

With 2.6.13.4 (ie new pcmcia setup) on breezy with pcmciautils (using udev rules
and no startup=false) inserting the serial card does not cause a crash, and is
correctly identified.
[However, serial_cs still isn't loaded as it depends on 8250 and that refuses to
load, probably because pmac_zilog (non-module) has already taken needed resources.]

Revision history for this message
Ben Collins (ben-collins) wrote :

This bug has been flagged because it is old and possibly inactive. It may or may
not be fixed in the latest release (Breezy Badger 5.10). It is being marked as
"NEEDSINFO". In two weeks time, if the bug is not updated back to "NEW" and
validated against Breezy, it will be closed.

This is needed in order to help manage the current bug list for the kernel. We
would like to fix all bugs, but need users to test and help with debugging.

If this change was in error for this bug, please respond and make the
appropriate change (or email <email address hidden> if you cannot make the
change).

Thanks for your help.

Revision history for this message
Chuck Short (zulcss) wrote :

This is probably already fixed for dapper.

Revision history for this message
sam tygier (samtygier) wrote :

bug persists in breezy and dapper flight 1.

Revision history for this message
Ben Collins (ben-collins) wrote :

Try dapper flight 2, or upgrade to 2.6.15-7 kernel from dapper.

Revision history for this message
Ben Collins (ben-collins) wrote :

Found the bug with this one. Seems that 8250 module initialization is purposely
skipped for PMAC, so when it goes to register the 8250 uart for the modem, it
runs into uninitialized data structures and just bombs out. I'm going to remove
that skip in the next upload. I suspect that it's been there longer than the new
serial_core code which needs to be run now.

Revision history for this message
Ben Collins (ben-collins) wrote :

Fixed in 2.6.15-8.10

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.