Cardbus issues on TiBook
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/
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/
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/
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/
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/
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
sprintfdo_resource_listdo_resource_listget_resource_listioports_read_procproc_file_readsys_read
Thanks again,
Ira Weiny
[email protected]
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
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/
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: hde1ide_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]
System map in XMON (was: Cardbus issues on TiBook)
In reply to Benjamin HerrenschmidtQuoted 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-onlyBut 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/
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/
PCMCIA issues
In reply to Armando Di CiannoDo 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/
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/