[U-Boot] [PATCH] arm926ejs: add NXP LPC32x0 cpu series support
Wolfgang Denk
wd at denx.de
Sun Oct 16 22:23:34 CEST 2011
Dear Vladimir Zapolskiy,
In message <4E9B1B16.4030407 at mleia.com> you wrote:
>
> > Do you need interrupts to get udelay() working?
> >
> Good point, potentially udelay() can be implemented reading values from
> Timer Counter register. I'll refine this part.
s/can/must/
> >> +#define SBF(s, v) (((unsigned long)(v))<< (s))
> >> +#define BIT(b) SBF(b, 0x01)
> >
> > Those names are not really self-explanatory.
> BIT is a one-bit field, and SBF stands for shifted bit field.
>
> These macro are quite commonly used in the Linux kernel, so I had a hope
> that it could be appropriate to have them in U-boot.
Sorry, but we don't accept such macros.
> > Besides, I don't think a macro is justified for just shifting values --
> > I prefer the shift to be explicit, or even to be precomputed.
> >
> In my humble opinion two functions of macro definitions are to save code
> space in bytes and to improve code readability, and both of them there
> are fulfilled.
No.
The code size actually remains the same. We're talking about the size
of the compiled code, aren't we?
Regarding readibility: This is, at least to some extend, a matter of
taste. In our opinion these macros are bad, last but not least
because they hide what the code is doing, and because they are
inherently unportable.
> For driver developers or additional functionality writers there are
> provided human-readable macro, and these two macro are merely defined
> for supplementary purposes. Maybe I'd be happy to find them defined in
> include/common.h one day, but for a moment I would like to define and
> expoit them in the code, which I'm going to maintain.
No chance. Please understand that such macros simply don't work well
across architectures.
> > Isn't this a 16550? If so, you should ise the existing 16550 driver.
> >
> According to the SoC specification LPC32xx has 4 standard UARTs, which
> are compatible with INS16Cx50 and in the Linux kernel it is mentioned
> that these UARTs are compatible with standard 8250/16550.
>
> From my side I've already prepared a simple LPC32xx serial driver
> realization, but I'll review it from the perspective of your hint and
> probably some parts related to UART can be removed in the next patch
> version.
Actually the whole custom driver should be removed then.
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
In the pitiful, multipage, connection-boxed form to which the flow-
chart has today been elaborated, it has proved to be useless as a
design tool -- programmers draw flowcharts after, not before, writing
the programs they describe. - Fred Brooks, Jr.
More information about the U-Boot
mailing list