From: David Hawkins <dwh@ovro.caltech.edu>
To: linuxppc-embedded@ozlabs.org
Subject: Yosemite/440EP 'issues' as a PCI target
Date: Thu, 09 Feb 2006 15:58:13 -0800 [thread overview]
Message-ID: <43EBD715.4020303@ovro.caltech.edu> (raw)
In-Reply-To: <20060209003459.0ED30352564@atlas.denx.de>
Hi all,
I'm evaluating the 440EP for use as the control processor
on a PCI peripheral. Today I have been looking at what I
can use for processor-to-processor communications over
the PCI bus. The boards will be used in existing
equipment that does not have ethernet in the backplane.
It appears that the 440EP has very limited options for
interrupt-based communications over the PCI bus.
Lets assume the following basic host-to-host protocol
(interrupt-based handshake).
1) PCI system slot machine 'host' has all the IRQs routed
to it. This will be an x86-based machine.
The host interrupts the device when it wants to
send it data, or when it wants to send an acknowledge.
2) PCI device slot; a 440EP based board.
The device interrupts the host when it wants
to send it data, or when it wants to send an
acknowledge.
If the 440EP board wants to interrupt the host, it can
generate an interrupt by writing to the PCI Interrupt
Control/Status Register, PCIC0_ICS, with only 1 bit
available for interrupt generation (i.e., there is
no concept of a mailbox or doorbell register, just a bit)
(see p388 of the v1.18 manual).
Now what if the host wants to interrupt the 440EP.
Errr, there is no register defined for this purpose.
The UIC chapter, p220-222 v1.18 manual indicates
all the interrupt bits. Sure there are a couple of
PCI source interrupts, one for writes to the PCI
configuration-space command register (so can't really
use that), and another for power-management events.
Have I missed something?
I'll have an FPGA/CPLD on the external bus, so I guess
I can implement a mailbox/doorbell register in that
and then have that register trigger an external interrupt
on the 440EP. The 440EP PCI target BARs will then need
to be setup to decode to the EBC decode range.
Sounds like a hack ... (even more of a hack is to
loop back a GPIO onto an EXTINT and setup the target
decode to cover the GPIO registers, and the x86 can
toggle a GPIO directly).
Of course if I have a few unused peripherals I might
be able to cause them to generate an interrupt. But
that gets tricky since in a lot of cases, as device
interrupts are often controlled via DCRs.
I realize that some of the other devices have I2O messaging
units (440GX and 440SP), so are more suited to PCI comms
applications. However, I require the hardware FPU on
the 440EP. From the selector guide, its only the 440EP
and 440EPx that contain the FPU.
Any comments on this?
Dave
next prev parent reply other threads:[~2006-02-10 0:00 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-02 9:35 Yosemite/440EP why are readl()/ioread32() setup to readlittle-endian? Jenkins, Clive
2006-02-02 9:46 ` Eugene Surovegin
2006-02-02 14:37 ` Matt Porter
2006-02-02 17:45 ` Eugene Surovegin
2006-02-02 18:16 ` Matt Porter
2006-02-05 4:41 ` Yosemite/440EP PLB4 vs PLB3 DMA to PCI issue David Hawkins
2006-02-05 10:39 ` Wolfgang Denk
2006-02-05 23:47 ` David Hawkins
2006-02-06 18:31 ` Stefan Roese
2006-02-06 19:09 ` David Hawkins
2006-02-08 15:38 ` Stefan Roese
2006-02-08 18:43 ` David Hawkins
2006-02-09 0:34 ` Wolfgang Denk
2006-02-09 13:25 ` Mark Chambers
2006-02-09 23:58 ` David Hawkins [this message]
2006-02-10 7:47 ` Yosemite/440EP 'issues' as a PCI target Stefan Roese
2006-02-10 17:05 ` David Hawkins
2006-02-10 17:20 ` Andrew Armitage
2006-02-10 17:26 ` David Hawkins
2006-02-10 17:31 ` Wolfgang Denk
2006-02-10 17:38 ` David Hawkins
2006-02-10 17:58 ` David Hawkins
2006-02-11 6:03 ` David Hawkins
2006-02-11 8:21 ` Stefan Roese
2006-02-11 18:15 ` David Hawkins
2006-02-11 13:03 ` Wolfgang Denk
2006-02-10 17:59 ` Stefan Roese
2006-02-10 18:11 ` David Hawkins
2006-02-11 8:06 ` Stefan Roese
2006-02-11 18:06 ` David Hawkins
2006-02-11 19:00 ` David Hawkins
[not found] ` <43ECCCA2.1070007@sandburst.com>
[not found] ` <43ECCE7A.4090507@ovro.caltech.edu>
[not found] ` <43ECD19E.8010604@sandburst.com>
2006-02-10 19:13 ` David Hawkins
[not found] ` <001701c62e6c$09c48ea0$6401a8c0@CHUCK2>
2006-02-10 18:19 ` David Hawkins
2006-02-11 6:06 ` David Hawkins
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43EBD715.4020303@ovro.caltech.edu \
--to=dwh@ovro.caltech.edu \
--cc=linuxppc-embedded@ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.