linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* 405GPr PCI target/host
@ 2004-08-19 18:28 Steven Blakeslee
  2004-08-19 19:42 ` Eugene Surovegin
  2004-08-19 20:37 ` Adrian Cox
  0 siblings, 2 replies; 5+ messages in thread
From: Steven Blakeslee @ 2004-08-19 18:28 UTC (permalink / raw)
  To: 'linuxppc-embedded@lists.linuxppc.org'


I am trying to get an IBM 405GPr processor to work as a target/host on a PCI
bus.  A PCI target can temporarily become a host on the PCI bus. Basically
this means it needs to do everything the host currently does except
assigning PCI memory space, the dedicated host is responsible for this.

I saw a message concerning this on Tue 12/23/2003 4:20 PM, the questions was
for "MPC7447(Dual CPU) + MV64360 based Processor PMC boards"  I only saw one
response to this and it did not seem to be correct.

I was wondering if anyone has done something like this, not necessarily with
a 405, any processor experience will do.  I appreciate any help or advice.

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: 405GPr PCI target/host
  2004-08-19 18:28 405GPr PCI target/host Steven Blakeslee
@ 2004-08-19 19:42 ` Eugene Surovegin
  2004-08-19 20:37 ` Adrian Cox
  1 sibling, 0 replies; 5+ messages in thread
From: Eugene Surovegin @ 2004-08-19 19:42 UTC (permalink / raw)
  To: Steven Blakeslee; +Cc: 'linuxppc-embedded@lists.linuxppc.org'


On Thu, Aug 19, 2004 at 02:28:00PM -0400, Steven Blakeslee wrote:
>
> I am trying to get an IBM 405GPr processor to work as a target/host on a PCI
> bus.  A PCI target can temporarily become a host on the PCI bus. Basically
> this means it needs to do everything the host currently does except
> assigning PCI memory space, the dedicated host is responsible for this.
>
> I saw a message concerning this on Tue 12/23/2003 4:20 PM, the questions was
> for "MPC7447(Dual CPU) + MV64360 based Processor PMC boards"  I only saw one
> response to this and it did not seem to be correct.
>
> I was wondering if anyone has done something like this, not necessarily with
> a 405, any processor experience will do.  I appreciate any help or advice.
>

Yes, it's possible. One of our systems has 440GX and 405GPr connected
through PCI bus. 440GX manages the bus (i.e. it has an arbiter, and
assigns resources). 405GPr even boots from PCI space. 440GX and
405GPr communicate using normal TCP/IP networking through
point-to-point custom driver which uses PCI memory-mapped accesses
(both CPUs have direct access to each other memory).

There are other PCI device connected to this bus (SCSI, crypto chip),
but they are accessed only from 440GX.

Here is a short list of what I did (hope I haven't forgot anything :)

1) 405GPr must use external arbiter

2) In the 405GPr kernel I enabled PCI support but hacked
ppc4xx_setup_arch() to not call ppc4xx_find_bridges()

3) in board_setup_arch() I configure PCI bridge manually (assign all
windows, BARs etc)

--
Eugene

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: 405GPr PCI target/host
  2004-08-19 18:28 405GPr PCI target/host Steven Blakeslee
  2004-08-19 19:42 ` Eugene Surovegin
@ 2004-08-19 20:37 ` Adrian Cox
  2004-08-20  7:37   ` Carl Aage Amundsen
  1 sibling, 1 reply; 5+ messages in thread
From: Adrian Cox @ 2004-08-19 20:37 UTC (permalink / raw)
  To: Steven Blakeslee; +Cc: 'linuxppc-embedded@lists.linuxppc.org'


On Thu, 2004-08-19 at 19:28, Steven Blakeslee wrote:
> I am trying to get an IBM 405GPr processor to work as a target/host on a PCI
> bus.  A PCI target can temporarily become a host on the PCI bus. Basically
> this means it needs to do everything the host currently does except
> assigning PCI memory space, the dedicated host is responsible for this.

> [snip]

> I was wondering if anyone has done something like this, not necessarily with
> a 405, any processor experience will do.  I appreciate any help or advice.

I've written drivers for several systems of this form. Generally people
are trying to do one of the following:
1) Communicate between the PCI root (running Linux, Windows, or anything
else) and embedded Linux on a non-root processor. This requires a custom
driver, but is essentially straightforward. Eugene Surovegin has
described this elsewhere in the thread.
2) Communicate between embedded Linux on a non-root processor and custom
electronics on another non-root device. This also requires a
straightforward custom driver.
3) Use a standard Linux device driver running on a non-root processor to
control a standard PCI device elsewhere on the bus. This is usually
unsolvable without a custom motherboard to provide the required
interrupt routing. Most people give up and use a non-transparent PCI
bridge instead.

Does your requirement fit one of those?

- Adrian Cox
http://www.humboldt.co.uk/


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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: 405GPr PCI target/host
  2004-08-19 20:37 ` Adrian Cox
@ 2004-08-20  7:37   ` Carl Aage Amundsen
  2004-08-20  8:04     ` Eugene Surovegin
  0 siblings, 1 reply; 5+ messages in thread
From: Carl Aage Amundsen @ 2004-08-20  7:37 UTC (permalink / raw)
  To: Adrian Cox, Eugene Surovegin
  Cc: Steven Blakeslee, 'linuxppc-embedded@lists.linuxppc.org'


Adrian, Eugene

You both mentioned using a custom point-to-point driver that enables
CPUs on the same PCI bus system to communicate together using TCP/IP. Is
such a driver publicly available ?

I have worked with similar drivers in VxWorks (SMnet and Busnet) where
they are a _must_, but now we are in the process of bringing up Linux on
our embedded products. I think such a driver should be part of the
standard Linux kernel in order to support a definite need in the
embedded community.

Thanks and regards,
Carl Aage Amundsen



Adrian Cox wrote:

>On Thu, 2004-08-19 at 19:28, Steven Blakeslee wrote:
>
>
>>I am trying to get an IBM 405GPr processor to work as a target/host on a PCI
>>bus.  A PCI target can temporarily become a host on the PCI bus. Basically
>>this means it needs to do everything the host currently does except
>>assigning PCI memory space, the dedicated host is responsible for this.
>>
>>
>
>
>
>>[snip]
>>
>>
>
>
>
>>I was wondering if anyone has done something like this, not necessarily with
>>a 405, any processor experience will do.  I appreciate any help or advice.
>>
>>
>
>I've written drivers for several systems of this form. Generally people
>are trying to do one of the following:
>1) Communicate between the PCI root (running Linux, Windows, or anything
>else) and embedded Linux on a non-root processor. This requires a custom
>driver, but is essentially straightforward. Eugene Surovegin has
>described this elsewhere in the thread.
>2) Communicate between embedded Linux on a non-root processor and custom
>electronics on another non-root device. This also requires a
>straightforward custom driver.
>3) Use a standard Linux device driver running on a non-root processor to
>control a standard PCI device elsewhere on the bus. This is usually
>unsolvable without a custom motherboard to provide the required
>interrupt routing. Most people give up and use a non-transparent PCI
>bridge instead.
>
>Does your requirement fit one of those?
>
>- Adrian Cox
>http://www.humboldt.co.uk/
>
>
>
>
>
>
>


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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: 405GPr PCI target/host
  2004-08-20  7:37   ` Carl Aage Amundsen
@ 2004-08-20  8:04     ` Eugene Surovegin
  0 siblings, 0 replies; 5+ messages in thread
From: Eugene Surovegin @ 2004-08-20  8:04 UTC (permalink / raw)
  To: Carl Aage Amundsen
  Cc: Adrian Cox, Steven Blakeslee,
	'linuxppc-embedded@lists.linuxppc.org'


On Fri, Aug 20, 2004 at 09:37:16AM +0200, Carl Aage Amundsen wrote:
> You both mentioned using a custom point-to-point driver that enables
> CPUs on the same PCI bus system to communicate together using TCP/IP. Is
> such a driver publicly available ?

Well, I doubt it would be of interest to anybody except our customers,
who actually have the hardware it was written for.

FWIW, MontaVista has something similar in their product, IIRC it's
called hhnet and even that driver is for a specific PCI bridge and DMA
engine.

> > I have worked with similar drivers in VxWorks (SMnet and Busnet) where
> they are a _must_, but now we are in the process of bringing up Linux on
> our embedded products. I think such a driver should be part of the
> standard Linux kernel in order to support a definite need in the
> embedded community.

Driver I wrote is highly specific to our custom hardware. This is
really nothing special about it. If you ever wrote or saw a driver for
modern ethernet controllers (e.g. all that stuff with buffer
descriptors) you can easily write this one. It's actually system
specific stuff which is not obvious (PCI bridge setup, IRQ wiring,
DMA etc) and unfortunately this stuff cannot be easily shared. I
suspect that any attempt to make it generic enough will result in
bloated monster nobody will want to use :).

--
Eugene

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2004-08-20  8:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-19 18:28 405GPr PCI target/host Steven Blakeslee
2004-08-19 19:42 ` Eugene Surovegin
2004-08-19 20:37 ` Adrian Cox
2004-08-20  7:37   ` Carl Aage Amundsen
2004-08-20  8:04     ` Eugene Surovegin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).