[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: powerpc-rtems-4.7-gcc-4.0 patch commited



On Fri, 2005-02-18 at 06:24 -0600, Joel Sherrill  wrote:
> 
> 
> > E.g. the m8260 would be superflous, if it could be removed from cpukit.
> > The code it uses is _identical_ to the 603e, except of 1 define in
> > cpukit.
> 
> OK. Are you referring to this code?
> 
> #if (defined(ppc403) || defined(mpc860) || defined(mpc821) || 
> defined(mpc8260))
>    uint32_t     serial_per_sec;         /* Serial clocks per second */
>    boolean      serial_external_clock;
>    boolean      serial_xon_xoff;
>    boolean      serial_cts_rts;
>    uint32_t     serial_rate;
>    uint32_t     timer_average_overhead; /* Average overhead of timer in 
> ticks */
>    uint32_t     timer_least_valid;      /* Least valid number from timer 
>       */
>    boolean      timer_internal_clock;   /* TRUE, when timer runs with 
> CPU clk */
> #endif
> 
> #if (defined(mpc555) || defined(mpc860) || defined(mpc821) || 
> defined(mpc8260))
>    uint32_t     clock_speed;            /* Speed of CPU in Hz */
> #endif
> 
> These are the HW configuration parameters required by  portions of 
> libcpu which are provided by the BSP.  How about another mechanical fix?
> Two alternatives:
> 
>    + Define this as a structure that is provided by the BSP.
>    + Like other portions of libcpu, assume that the BSP is providing
>      a single global variable like "BSP_clock_speed" and change the
>      code in libcpu to use it.
Cf. what I wrote a couple of minutes ago.

We need data abstraction, not defines.

> However it is done, it is BSP specific information required by libcpu 
> code.  No reason for it to be defined in cpukit.
> 
> That would seem to eliminate the need for mpc555, mpc860, mpc8260, and 
> mpc821.
> 
> 
> >>Note that a #ifdef __mpcXXX in a BSP is *not* a valid reason as the 
> >>respective compiler
> > 
> > Right.
> > 
> > 
> >>The only (legacy) reason I can think of are #ifdef __mpcXXX in cpukit 
> >>and/or libcpu - however,
> >>these should be cleaned up.
> > 
> > Fully agreed. 
> > 
> > Eg. let's implement a common API, shared between old and new exception
> > processing. Lack of this is the cause for at least 3 multilib variants.
> 
> Can you point me to a specific ifdef to nibble on?
At the moment ,the brute force fix would be to remove all these defines
and to add these variables unconditionally.

Ralf