On Wed, 26 Aug 2009 08:28:37 +0200
Heiko Schocher <h...@denx.de> wrote:

> Hello Kim,
> 
> Kim Phillips wrote:
> > On Tue, 25 Aug 2009 13:31:34 +0200
> > Heiko Schocher <h...@denx.de> wrote:
> >> +  /* MPC8379E RM 10-34 says after writting this register
> >> +   * the register should be reread and an isync should be
> >> +   * executed.
> >> +   */
> >> +  in_be32(&im->lbus.lcrr);
> >> +  isync();
> > 
> > in_be32 and friends does the isync for you.  In fact, you can probably
> > do it in one fell swoop by using setbits/clrsetbits?
> 
> Argh, of course. But I need the in_be32() for rereading the register
> again, as the RM says.

right on

> >> +++ b/include/mpc83xx.h
> >> @@ -198,6 +198,7 @@
> >>  #define SICRL_URT_CTPR                    0x06000000
> >>  #define SICRL_IRQ_CTPR                    0x00C00000
> >>
> >> +#define LCRR_MASK                 0x0003000f
> > 
> > I thought we discussed this - shouldn't this be 0x7fffffff?
> 
> Hmm.. as I did this mpc832x specific, in my version it is not possible
> to set reserved 0 bits to 1 ... Ah, I reread your mail again, you wrote:
> > I guess I have a shoot-yourself-in-the-foot philosophy - you're free to
> > find out what happens when setting reserved bits to 1 if you so wish.
> > u-boot protects you up to the point where you veer off into using
> > hardcoded values instead of using the predefined CONFIG_SYS_SCCR_*
> > macros.
> 
> I think you mean the LCRR_* defines ...

yes, thank you

> Hmm... so we can say: "feel free to find out what happens, if setting
> reserved 1 bits to 0! and can drop this patch" ...

precisely - I'd rather have this kept in the board config file if at
all possible - that's how other 83xx boards do it atm.

> Hmmm, you can use for the mpc832x for example the LCRR_BUFCMDC_1,
> what is a valid define for mpc83xx, but it is not valid for the
> mpc832x ... so It is not the problem, that a u-boot user use hard-
> coded values, instead this processor don;t support all bits valid
> for other mpc83xx processors.
> 
> So I tend to protect an u-boot user from doing wrong things,
> (setting reserved 0/1 bits to 1/0) if it is easy possible ...

right but:

o LCRR_PDYP, granted dangerous in your case, is obviously a writeable
bit (not read-only), and documented as such in later documentation.  In
fact, there are no non-writeable bits in LCRR.

o the user loses visibility into what is going on if they
decide to drop/add sensitive bits such as LCRR_DBYP in their board's
CONFIG_SYS_LCRR settings, and there's a mask lurking in the background.

o let's be practical here - in a board port, LCRR settings have to be
paid attention to, no matter what hidden behaviours or new bits there
are lying underneath - perhaps the form of 'protection' you seek is in
the form of a comment in the code?

Kim
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to