Lite5200 and PCI1520
Zeitler, Nathan
nzeitler at osii.com
Tue Dec 14 04:50:20 EST 2004
Greetings all,
I would greatly appreciate some advice regarding getting Linux to read
and write to CompactFlash devices behind a PCI1520 PCI bridge on a
custom Lite5200 board. I am admittedly new to this process within
embedded devices and could use some direction. We're using a recent
2.4.25 kernel from Denx, as well as UBOOT 1.1.1 and ELDK2.1.
My status:
UBOOT detects the PCI Bridge just fine. I'm able to read and write to
the registers within the PCI1520 using the BDI2000 as well as UBOOT's
pci command. I've therefore set up the bridge to use its output to run
the power chip instead of reading an EEPROM for its settings. I've also
set up the multifunction pins to be "parallel PCI only", as they are
connected to hardware "IRQ1" and "IRQ2" of the MPC5200. I've tried
several different values for the Interrupt Line register, but am mostly
flying blind in this respect. I've enabled most every PCMCIA option in
the Linux kernel I could find, enabled PnP and Cardbus support, but not
i82365 compatible bridge support as it seemed to scan for ISA resources
that weren't there (I understand the yenta driver doesn't want nor need
this anyway?).
My problem:
I can't access anything plugged into the sockets! PCI1520 registers
detect a card is inserted, but I can't read and write to flash cards
from Linux. I checked out PCMCIA Card Services from CVS, compiled and
ran cardmgr and it gives a seg-fault, but indicates it is watching the
sockets (debug output seems to confirm this). I can read the status and
config using cardctl, but reading the identification or info causes
another seg fault. I suspect I may be running into a combination of
interrupt and driver issues, but I need a knowledgeable opinion on this.
I'm most confused by the line between ISA and PCI IRQs, and how or why
CF uses these. I've appended some interesting messages from Linux's
boot sequence. Thanks in advance.
Linux Kernel Card Services 3.1.22
options: [pci] [cardbus]
yenta 00:18.0: no resource of type 100 available, trying to continue...
yenta 00:18.0: no resource of type 100 available, trying to continue...
yenta 00:18.1: no resource of type 100 available, trying to continue...
yenta 00:18.1: no resource of type 100 available, trying to continue...
/* type 100 == IO_RESOURCE, recoding yenta.c to bind them
to a 0x5000nnnn address range stopped the error,
but seemed to fix nothing */
...
Yenta ISA IRQ mask 0x0000, PCI irq 255
Socket status: 30000810
Yenta ISA IRQ mask 0x0000, PCI irq 255
Socket status: 30000006
/* 255 seems to be the default value,
But what should it be instead? */
Nathan Zeitler
Systems Engineer
Open Systems International, Inc.
3600 Holly Lane North, Suite 40
Minneapolis, MN 55447-1286
Phone: (763) 551-0559
Fax: (763)551-0750
Email: nzeitler at osii.com
More information about the Linuxppc-embedded
mailing list