PCI target implementation on AMCC PPC CPUs

sdeven.lee sdeven.lee at 163.com
Fri Sep 7 12:52:40 EST 2007


Leonid,您好!

	Sorry, I was wrong, not AMCC PCI6466, but PLX PCI6466 non-transparent bridge.

	I use the non-transparent bridge just for some special purpose. In this case, the host CPU can't  access the memory via the bridge. I know PPC440GP can run in agent mode just like your application. But it needs special connection of the pins.  

======= 2007-09-07 10:13:32 您在来信中写道:=======

>Hi:
>
>You want to say  PPC440GP cannot be PCI slave without this non-transparent bridge because as David said its "interrupt pin register hardwired to zero" or there other reasons? 
>I'm trying to use PPC440ep(or epx) and from its datasheet I don't see anything about this zero hardwiring. Does it mean "vanilla" PPC440ep will work?
>
>And what did you use for PCI Host?
>
>Also, is your code available somwhere?
>
>Thanks,
>
>Leonid.
>-----Original Message-----
>From: sdeven.lee [mailto:sdeven.lee at 163.com] 
>Sent: Thursday, September 06, 2007 7:04 PM
>To: David Hawkins
>Cc: Leonid; linuxppc-embedded
>Subject: Re: Re: PCI target implementation on AMCC PPC CPUs
>
>David Hawkins,您好!
>
>	I have been finished an application using AMCC PPC440GP as PCI target(slave) in the last 2 month.I use a non-transparent bridge(AMCC PCI6466) to make the device a target(slave) like david has said.
>
>======= 2007-09-07 04:26:01 您在来信中写道:=======
>
>>Hi Leonid,
>>
>>In case they are not in the document:
>>
>>There are several fundamental problems with the AMCC 440EP acting as a 
>>PCI target/slave;
>>
>>1. As a PCI target, there is only one way to generate
>>    an interrupt to a host; you basically toggle the
>>    interrupt pin. This makes it tricky to develop a
>>    host-to-slave communications protocol, eg. its
>>    hard to use the single interrupt to indicate various
>>    interrupt states, eg. target-to-host buffer has
>>    data versus host-to-target buffer has been emptied.
>>    Ideally AMCC should have implemented mailboxes and/or
>>    doorbell registers like any other sane PCI target
>>    device (eg. some the Freescale processors, or any of
>>    the PLX technologies chips).
>>
>>2. Look in the data sheet and see if you can figure out
>>    how the host processor can generate an interrupt to
>>    the PowerPC core ... oops, you can't. That kind of
>>    makes it difficult to work with doesn't it.
>>
>>    A work around would be to have the host write to the
>>    GPIO register and wire a GPIO pin back to an external
>>    interrupt pin. Then you would not be able to use any
>>    other GPIO pin in that GPIO register since there is
>>    no way to arbitrate host access versus PowerPC core
>>    access.
>>
>>This was the other reason I ditched the AMCC part in favor of the 
>>Freescale part.
>>
>>If you are looking at other parts, make sure you look in the PCI 
>>configuration space of the processor reference manual. Many processors 
>>have the interrupt pin register hardwired to zero, i.e., they can not 
>>be used as target devices, only hosts. In that case you'd have to add 
>>an intel 21555 non-transparent bridge to make the device a target.
>>
>>Cheers,
>>Dave
>>
>>_______________________________________________
>>Linuxppc-embedded mailing list
>>Linuxppc-embedded at ozlabs.org
>>https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
>= = = = = = = = = = = = = = = = = = = =
>			
>
>        致
>礼!
> 
>				 
>        sdeven.lee
>        sdeven.lee at 163.com
>          2007-09-07

= = = = = = = = = = = = = = = = = = = =
			

        致
礼!
 
				 
        sdeven.lee
        sdeven.lee at 163.com
          2007-09-07



More information about the Linuxppc-embedded mailing list