[Bug 2020] Provide support for the PPC 440

bugzilla-daemon at rtems.org bugzilla-daemon at rtems.org
Wed Feb 22 18:32:02 UTC 2012


https://www.rtems.org/bugzilla/show_bug.cgi?id=2020

--- Comment #14 from Ric Claus <claus at SLAC.Stanford.edu> 2012-02-22 12:32:02 CST ---
(In reply to comment #13)
> (In reply to comment #12)
> > The problem is that in the BSP area so much is without documentation.  No need
> > to say sorry if you cause some trouble.
> > 
> > (In reply to comment #10)
> > > (In reply to comment #8)
> > > > (In reply to comment #5)
> > > > > This is not acceptable (multi-lib violation):
> > > > > 
> > > > > diff --git a/cpukit/score/cpu/powerpc/rtems/asm.h
> > > > > b/cpukit/score/cpu/powerpc/rtems/asm.h
> > > > > index d54c060..e6b90ec 100644
> > > > > --- a/cpukit/score/cpu/powerpc/rtems/asm.h
> > > > > +++ b/cpukit/score/cpu/powerpc/rtems/asm.h
> > > > > @@ -204,6 +204,83 @@
> > > > >  #define br5     0x085   /* DCR: memory bank register 5             */
> > > > >  #define br6     0x086   /* DCR: memory bank register 6             */
> > > > >  #define br7     0x087   /* DCR: memory bank register 7             */
> > > > > +
> > > > > +#elif defined(ppc440)
> > > > 
> > > > This file already had special register definitions for other PowerPC CPU
> > > > models. Do you have somewhere else to move them to?  
> > > 
> > > Me?  I just tried to follow the existing pattern...
> > 
> > Existing patterns in RTEMS are sometimes best to avoid.  In this particular
> > case the main issue is that you introduce a new pre-processor dependency in the
> > cpukit.  The aim of the cpukit is to only depend on a particular GCC multi-lib
> > provided by the tool chain.  The multi-libs provide the libc.a, libm.a, etc. in
> > a particular instruction set (e.g. classic PowerPC, Book E PowerPC, with SPE,
> > etc.).  Please have a look at
> > "cpukit/score/cpu/powerpc/rtems/powerpc/registers.h".  This file can be used in
> > assembler and C files.
> 
> Would you be happy if the code from here until right before the "endif ASM"
> were moved to registers.h?
> 
> -#if defined(ppc403) || defined(ppc405)
> -/* the following SPR/DCR registers exist only in IBM 400 series */
> 
> If I moved that, where do you want it in registers.h?
> 
> FWIW the style of register name constants is not the same and it could easily
> be argued that one should unify the style of names while merging.
> 
> I can take care of this (not sure when) but need a solution path.
> 
> > > > This is only used as an assembly support file. This isn't a problem for this
> > > > particular PR. This isn't directly a problem but using these inside cpukit
> > > > probably would.
> > > > 
> > > > > Why introduce ppc_booke_category_table?  I think you can use
> > > > > e500_category_table instead.
> > > > 
> > > > This one I don't know how to solve. Sebastian/Ric ..
> > > 
> > > Sorry, I don't know either.  If e500_... is to be used then I suggest that it
> > > has an inappropriate name.
> > 
> > Yes, but this has historic reasons.  The e500 is a PowerPC core from Freescale
> > implementing the Book E instruction set.
> 
> Sebastian.. what do you think the solution should be?
> 
> + Are you saying ppc_booke_category_table is the same as
> ppc_e500_category_table and the ppc440 should return the e500 one and we delete
> the booke copy?
> + Should ppc_booke_category_table be renamed ppc_ppc440_category_table?
> 
> Naming is hard but if ppc440 can use the same table as e500, that's the first
> step. Second is finding a better name.
> 
> Ric.. the important question to you is.. can you run what is merged? Is it a
> complete and correct merge?

I understand, Joel, but at the moment (especially today) I have a lot on my
plate, so please give me some time.  I'll get to it as soon as I can, and I
don't right now when that will be.

-- 
Configure bugmail: https://www.rtems.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the bugs mailing list