From: Wolfgang Denk Date: Fri, 28 Aug 2009 14:02:15 +0200 Subject: [U-Boot] [PATCH v2] mpc83xx: update LCRR register handling In-Reply-To: References: <4A93A975.40009@denx.de> <4A93CB96.8000701@denx.de> <20090825103925.dc7ec42c.kim.phillips@freescale.com> <4A94D615.1060504@denx.de> <20090826173628.ddb2bdd4.kim.phillips@freescale.com> <20090827154941.0bd08f5a.kim.phillips@freescale.com> Message-ID: <20090828120215.59EB4833DBD2@gemini.denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Detlev Zundel, In message you wrote: > > > I think we should allow board-configurable writes to the DBYP bit, which > > is documented as "reserved" on some 83xx, on the 83xx parts that /do/ > > implement it. So instead of having a mask, perhaps setting absolute > > values for CONFIG_SYS_LCRR should be replaced with a better scheme that > > allows board configs to just set LCRR bits by field, such as what the > > SCCR setting code does. I.e, deprecate CONFIG_SYS_LCRR and replace with > > individually-specified CONFIG_SYS_LCRR_{CLKDIV,EADC,ECL,BUDCMDC,DBYP} > > values. > > > > This will allow the reserved bits, whether 1 on reset or > > not, to be preserved across all 83xx (and 85xx for that matter). > > Hm, you mean like the SCCR stuff in mpc83xx/cpu_init.c? Please don't. > > This code is plain ugly - and even more, as I have pointed out multiple > times, in not more than 50 lines there are "only" 1024 non-trivially > differing c input possibilities coded. This is what I call bad. Agreed. Kim, the code in mpc83xx/cpu_init.c is *really* ugly. I hereby suggest that this should be cleaned up ASAP. > Thinking about it, why not do a compromise like e.g. the following: Hm... I don't like the need for duplicated "#ifdef" lists, but don;t know of a better way to write it either. > out_be32(&im->clk.sccr, i(n_be32(&im->clk.sccr) & ~sccr_mask) | sccr_value); Or rather: clrsetbits_be32(&im->clk.sccr, sccr_mask, sccr_value); > This not only looks a bit nicer, but also (I hope) compiles the *exact* > same code for all possibilites, only with changing data values. Agreed. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de You got to learn three things. What's real, what's not real, and what's the difference." - Terry Pratchett, _Witches Abroad_