Skip to contentSkip to conversation

Cardbus issues on TiBook

DISCUSSION Ira Weiny 5 participants 12 messages Sep 6, 2001 – Sep 13, 2001

lore
Share & tools
lore

Ira Weiny

author
#0 lore raw

As some of you may know I am trying to get an IBM microdrive working on my TiBook. I know there is an issue with irq's which I am trying to work out but I have run into another issue I don't understand.

I get the following message in my startup:

kernel: Can't get bus-range for /pci@f2000000/cardbus@1a

I rsync'ed with Ben H's kernel recently and I found that the ioports and memory ranges I had set for cardmgr were not working anymore. So I started changing them. In my efforts to find ranges that worked I found that "cat /proc/ioports" would result in a segfault. From what I can tell it is running off the end of the buffer in vsnprintf?

Before the Cardbus modules are loaded "cat /proc/ioports" works fine.

So my question is, what does the above message mean? It is something which is worked around later, or could it be the root of my problem?

Thanks,
Ira Weiny
[email protected]

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

#1 lore raw
Quoted 3 lines · On Thu, 06 Sep 2001 13:19:36 -0700 Ira Weiny <[email protected]> wrote:

As some of you may know I am trying to get an IBM microdrive working on my TiBook. I know there is an issue with irq's which I am trying to work out but I have run into another issue I don't understand.

Uhmm, I have my microdrive working fine on my TiBook. It maintains a happy little crypto filesystem for quick and easy removability. Ahh, the joys of being paranoid.

Anyway, here's what I did to make it work and my current config:
- 2.4.9 (benh0)
- built all pcmcia stuff from the kernel itself (pcmcia support compiled in, pcmcia ide support as a module)
- updated pcmcia package to rebuild the userspace controls (just wanted to update for no particular reason)

Now, I needed to change some things in two files, however both changes to do were mentioned in the pcmcia package README.
- /etc/pcmcia/config
--+ change every instance of 'ide_cs' to 'ide-cs' (someone changed this in the kernel source when they last monkeyed around with it) or that module will not load correctly
- /etc/pcmcia/config.opts
--+ if you have the 'default' config.opts file, after "# System resources available for PCMCIA devices" there are, I think, 3 lines (I deleted the incorrect ones) that start with 'include port' and 'include memory', comment-out/remove thouse lines and use this:
--------------
include port 0x100-0x4ff, port 0x1000-0x17ff
include memory 0x80000000-0x80ffffff
--------------

You should now be golden. Hope that helps!

__Armando Di Cianno
[email protected]

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

author
#2 lore raw

First off thanks for the reply. However...

Quoted 10 lines · Armando Di Cianno
Quoted 3 lines · On Thu, 06 Sep 2001 13:19:36 -0700 Ira Weiny <[email protected]> wrote:

As some of you may know I am trying to get an IBM microdrive working on my TiBook. I know there is an issue with irq's which I am trying to work out but I have run into another issue I don't understand.

Uhmm, I have my microdrive working fine on my TiBook. It maintains a happy little crypto filesystem for quick and easy removability. Ahh, the joys of being paranoid.

Well I followed your directions. Built the pcmcia stuff into the kernel, ide-cs as a module. Got the latests pcmcia 3.1.29 package and built it. And used your address. This seems to fix the "cat /proc/ioports" issue. But the machine will still lock up and turn off when I insert the card. And XMON reveals I am at the same spot (actual_try_to_identyfy).

So my questions to you are:

1) could I get your .config file for the kernel. Maybe I have some other thing I am missing.

2) Which Microdrive and PCCard adapter are you using. I have the 1Gig and am using the adapter it came with. Maybe there is an isuue with the adapter I have.

Thanks for your reply,
Ira Weiny
[email protected]

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

#3 lore raw
Quoted 8 lines · On Fri, 07 Sep 2001 09:24:52 -0700 Ira Weiny <[email protected]> wrote:

Well I followed your directions. Built the pcmcia stuff into the kernel, ide-cs as a module. Got the latests pcmcia 3.1.29 package and built it. And used your address. This seems to fix the "cat /proc/ioports" issue. But the machine will still lock up and turn off when I insert the card. And XMON reveals I am at the same spot (actual_try_to_identyfy).

So my questions to you are:

Firstoff, sorry to anyone on the list dislikes attachments on mailinglists, but others may find it useful as well. (it's only 4.9k gzip'd...)

Quoted 2 lines

1) could I get your .config file for the kernel. Maybe I have some other thing I am missing.

Sure, enjoy. :-)

Quoted 3 lines

2) Which Microdrive and PCCard adapter are you using. I have the 1Gig and am using the adapter it came with. Maybe there is an isuue with the adapter I have.

IBM Microdrive (340MB):
- Model: DMDM-10340

PCCard Adaptor (Came with the Microdrive)
- P/N: 31L9315

Also, I do always call my /etc/rc.d script for stopping pcmcia services before I remove the card, but a simple eject command sent to cardmgr should hopefully do it.

When the card is inserted, and services are started, this is what gets reported by dmesg:
Linux Kernel Card Services 3.1.22
options: [pci] [cardbus] [pm]
Yenta IRQ list 0000, PCI irq58
Socket status: 30000810
cs: memory probe 0x80000000-0x80ffffff: excluding 0x80000000-0x800fffff
hde: IBM-DMDM-10340, ATA DISK drive
ide2 at 0x100-0x107,0x10e on irq 58
hde: 700560 sectors (359 MB) w/96KiB Cache, CHS=695/16/63
hde: hde1
ide_cs: hde: Vcc = 3.3, Vpp = 0.0

Note that Linux Kernel Card Services _can_ work with a different version of the userspace controls, but some version pairs _may not_ function together. At least, this is what is stated in the PCMCIA package readme. :-)

Also, these are the modules found in memory when the card is happily set up:

Module                  Size  Used by
ide-cs                  3856   1
ds                      8752   1  [ide-cs]
yenta_socket           11088   1
pcmcia_core            43264   0  [ide-cs ds yenta_socket]

I hope all this helps you out. If any other information is needed, please let me know.

__Armando Di Cianno
[email protected]

#4 lore raw

PCMCIA issues

In reply to Armando Di Cianno

Do PCMCIA cards work with the current linuxppc_2_4 or linuxppc_2_4_devel trees?

I have a PowerBook 2400, a Tulip based 10/100 CardBus ethernet card, and a 3Com 3c589 10Base-T PCMCIA card. Using a recently updated linuxppc_2_4 tree, kernel version string 2.4.10-pre8. The Tulip card works fine (*), but the 3c589 does not:

Sep 13 01:08:38 localhost cardmgr[259]: socket 1: Anonymous Memory
Sep 13 01:08:38 localhost kernel: cs: unable to map card memory!
Sep 13 01:08:38 localhost kernel: cs: unable to map card memory!
Sep 13 01:08:39 localhost cardmgr[259]: executing: 'modprobe memory_cs'
Sep 13 01:08:39 localhost cardmgr[259]: + modprobe: Can't locate
module memory_cs
Sep 13 01:08:39 localhost cardmgr[259]: modprobe exited with status 255
Sep 13 01:08:39 localhost cardmgr[259]: module
/lib/modules/2.4.10-pre8/pcmcia/memory_cs.o not available
Sep 13 01:08:40 localhost cardmgr[259]: get dev info on socket 1

failed: Resource temporarily unavailable

For some reason the card is detected as a generic memory card rather than an Ethernet card.

Yes, I did edit /etc/pcmcia/config.opts to set up the resources the way they should be for PowerBooks.

I have had this 3c589 card working in the past, so I know it's possible. I'm guessing this is related to the in-kernel PCMCIA/CardBus drivers not being totally mature yet.

(*) Those familiar with the 2400 may be wondering how a CardBus tulip card can possibly work, given that the 2400 doesn't support CardBus. Well, it turns out the 2400 has a CardBus capable PCMCIA controller, the TI 1130. The hardware hack necessary to allow insertion of CardBus cards without locking the machine or other unpleasant side effects turns out to be surprisingly simple. You just have to reduce the time constant of a RC circuit attached to one of the card present / type detect signals!

P.S. Does anybody know the current whereabouts of that old patch which allows the PCMCIA utilities to physically eject a card on PowerBooks with that capability?
--
Tim Seufert

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

#5 lore raw

Re: PCMCIA issues

Quoted 12 lines

Sep 13 01:08:38 localhost cardmgr[259]: socket 1: Anonymous Memory
Sep 13 01:08:38 localhost kernel: cs: unable to map card memory!
Sep 13 01:08:38 localhost kernel: cs: unable to map card memory!
Sep 13 01:08:39 localhost cardmgr[259]: executing: 'modprobe memory_cs'
Sep 13 01:08:39 localhost cardmgr[259]: + modprobe: Can't locate
module memory_cs
Sep 13 01:08:39 localhost cardmgr[259]: modprobe exited with status 255
Sep 13 01:08:39 localhost cardmgr[259]: module
/lib/modules/2.4.10-pre8/pcmcia/memory_cs.o not available
Sep 13 01:08:40 localhost cardmgr[259]: get dev info on socket 1
Quoted 1 line

failed: Resource temporarily unavailable

Not sure for the details as I'm not a PCMCIA expert, but I know paulus fixes some issues with pcmcia resource allocation. His patch haven't make it upstream yet but is in my tree.

Ben.

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

#6 lore raw
In reply to Ira Weiny
Quoted 9 lines

As some of you may know I am trying to get an IBM microdrive working on my TiBook. I know there is an issue with irq's which I am trying to work out but I have run into another issue I don't understand.

I get the following message in my startup:

kernel: Can't get bus-range for /pci@f2000000/cardbus@1a

This one existed since the new PCI code in PPC 2.3.x. It's mostly harmless ;) Basically, it says that OF didn't setup a ranges property for the cardbus bridge, but Linux will assign it some bus numbers anyway.

Quoted 5 lines

I rsync'ed with Ben H's kernel recently and I found that the ioports and memory ranges I had set for cardmgr were not working anymore. So I started changing them. In my efforts to find ranges that worked I found that "cat /proc/ioports" would result in a segfault. From what I can tell it is running off the end of the buffer in vsnprintf?

Well, my recent kernels do add things to /proc/iomem (but not ioports), as I basically request IO ranges for all OF devices.

This shouldn't affect /proc/ioport nor cardbus, but well, you might have found a real bug/

Quoted 4 lines

Before the Cardbus modules are loaded "cat /proc/ioports" works fine.

So my question is, what does the above message mean? It is something which is worked around later, or could it be the root of my problem?

Some more infos about the panic would be useful. Enable xmon and tell me what it sayd about the PC & LR of the crash, and the backtrace (obtained with the "t" command). If you use a recent yaboot and kernel, you may even add sysmap=<of_path_to_System.map> in yaboot.conf to get the System.map loaded along with the kernel. This will allow xmon to display function names as well as addresses in the backtrace.

Quoted 5 lines

Thanks,
Ira Weiny
[email protected]

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

author
#7 lore raw
Quoted 10 lines · Benjamin Herrenschmidt
Quoted 2 lines

So my question is, what does the above message mean? It is something which is worked around later, or could it be the root of my problem?

Some more infos about the panic would be useful. Enable xmon and tell me what it sayd about the PC & LR of the crash, and the backtrace (obtained with the "t" command). If you use a recent yaboot and kernel, you may even add sysmap=<of_path_to_System.map> in yaboot.conf to get the System.map loaded along with the kernel. This will allow xmon to display function names as well as addresses in the backtrace.

I saved the following XMON dump... (already had it enabled and it dumped me there when the crash occured.) I have translated it for you. But I don't have the PC or LR. I will have to recreate the failure later tonight after I get off of work.

Also I used this line "sysmap=/boot/System.map-fw" to load the system map but then I realized you said OpenFirmware path. How do I calculate the openfirmware path to the system map? And would this be dynamic when I recompile if I just put the file in the filesystem or would I have to reload it with ybin? Thanks again for all your help.

Here is the stack trace from "cat /proc/ioports":

vsnprintf
vsprintf
sprintf
do_resource_list
do_resource_list
get_resource_list
ioports_read_proc
proc_file_read
sys_read

Thanks again,
Ira Weiny
[email protected]

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

#8 lore raw
Quoted 6 lines

Also I used this line "sysmap=/boot/System.map-fw" to load the system map but then I realized you said OpenFirmware path. How do I calculate the openfirmware path to the system map? And would this be dynamic when I recompile if I just put the file in the filesystem or would I have to reload it with ybin? Thanks again for all your help.

Put the System.map net to the kernel, and copy/paste the kernel path ;)

Ben/

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

author
#9 lore raw

System map in XMON (was: Cardbus issues on TiBook)

Quoted 10 lines · Benjamin Herrenschmidt
Quoted 6 lines

Also I used this line "sysmap=/boot/System.map-fw" to load the system map but then I realized you said OpenFirmware path. How do I calculate the openfirmware path to the system map? And would this be dynamic when I recompile if I just put the file in the filesystem or would I have to reload it with ybin? Thanks again for all your help.

Put the System.map net to the kernel, and copy/paste the kernel path ;)

Ben/

I hate to be stupid but:

I tried this as well:

sysmap=/boot

My kernel is in /boot and the System.map was a softlink but I have tried it not being a softlink:

/boot]# ls

System.map                first.b                vmlinux-fw
System.map-2.2.18-4hpmac  kernel.h               vmlinux-fw.2001-07-15
System.map-2.4.4-pre1-2   kernel.h-2.2.18        vmlinux-fw.2001-08-10
System.map-fw.2001-07-15  second.b               vmlinux-fw.2001-08-18
System.map-fw.2001-08-10  vmlinux                vmlinuz-2.2.18-4hpmac
System.map-fw.2001-08-18  vmlinux-2.2.18-4hpmac  yaboot
System.map.new            vmlinux-2.4.4-pre1-2

/boot]#

Are there permissions or something I have to change? I have also tried using the sysmap directive with the image= section like this:

image=/boot/vmlinux-fw

	sysmap=/boot
        label=linux-fw
        root=/dev/hda9
        append="video=aty128fb hdc=scsi"
        read-only

But that did not work. Do I need a particular version of yaboot/ybin? I have:
/etc]# /usr/local/sbin/ybin -V
ybin 1.0
...

I don't get it, sorry,
Ira Weiny
[email protected]

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

#10 lore raw

Re: System map in XMON (was: Cardbus issues on TiBook)

Quoted 5 lines

image=/boot/vmlinux-fw
sysmap=/boot

Try that

image=/boot/vmlinux-fw
sysmap=/boot/System.map

You'll need at least version 1.2.3 of yaboot.

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

#11 lore raw
In reply to Ira Weiny
Quoted 15 lines · Ira Weiny

As some of you may know I am trying to get an IBM microdrive working on my TiBook. I know there is an issue with irq's which I am trying to work out but I have run into another issue I don't understand.

I get the following message in my startup:

kernel: Can't get bus-range for /pci@f2000000/cardbus@1a

I rsync'ed with Ben H's kernel recently and I found that the ioports and memory ranges I had set for cardmgr were not working anymore. So I started changing them. In my efforts to find ranges that worked I found that "cat /proc/ioports" would result in a segfault. From what I can tell it is running off the end of the buffer in vsnprintf?

Quoted 10 lines

Before the Cardbus modules are loaded "cat /proc/ioports" works fine.

So my question is, what does the above message mean? It is something which is worked around later, or could it be the root of my problem?

Thanks,
Ira Weiny
[email protected]

I use the following in /etc/pcmcia/config.opts

include port 0x0fff-0x1fff
include memory 0x90000000-0x90ffffff

AFAIR it worked with my microdrive, but I don't have it to test right now.

Marcus

--
---------------------------------------------------------------------
Dr. Marcus Metzler
[email protected] http://www.metzlerbros.de
[email protected] http://www.convergence.de

Convergence Integrated Media GmbH
Rosenthaler Str. 51
D-10178 Berlin
---------------------------------------------------------------------

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/