Xilinx IP core drivers for RTEMS- diff attached

Keith Robertson kjrobert at alumni.uwaterloo.ca
Tue Dec 12 21:53:03 UTC 2006

gregory.menke at gsfc.nasa.gov wrote:
> I think the way to approach the bsp is to set up a "virtex4_shared" bsp;
> sort of like how the motorola_shared bsp works.  So all Virtex 4
> variants get the same base bsp, presumably with some defines to handle
> idiosyncracies.

I agree.

> I suppose libcpu would need a ppc_405, perhaps also set up with defines
> to handle some of the architectural variations within the 405 product
> line.  At present, ppc_403 contributes some code to gen405 which made
> things confusing sometimes.

I strongly agree.  The ppc_403 has got all sorts of stuff in there 
that's specific to it.

> I'm of two minds with respect to the soft core mac though.  On one hand,
> its probably logical to put it out in libchip where my diffs place it,
> though its unlikely to be used by anything other than a Virtex 4.

I use it on a virtex 2 pro.  I grant that's the same internal processor 
(ppc405), though.

> However I'd like to defer that question to people more experienced with
> the Xilinx product line to answer that for sure.  If its only used by
> Virtex 4, then it would probably make sense to move it back there.  If
> the firmware has small variations between the different Virtex designs,
> then I think it ought to go into libchip and be renamed to something
> like "virtex_softmac".

I originally put it in libchip because the microblaze (xilinx's soft 
core risc processor) is capable of using it.

So there's at least two potential processor users.  Assuming of course, 
someone ports rtems to microblaze.  I was originally interested in such 
a port, but no longer require it.  (The microblaze port looked pretty 
straight forward.  The tools support issues scared me off.)

If we're going to follow this route, may I suggest xilinx_softemac for 
the ethernet driver name.  Microblaze + softemac can be used on the 
spartan as well as the virtex.

To summarise, largely inline with other suggestions, how about:

new libcpu dir: ppc405 (so we can easy follow differences to the 403)
new libbsp dir: virtex_shared
new emac name : xilinx_softemac (possibly/probably in libchip)
new hardemac  : xilinx_hardemac (when it's written.  probably in bsp.  I 
don't know of any xilinx plans to include the hardemac in anything other 
than the virtex).



More information about the users mailing list