[U-Boot] NS16550 Register structure
Wolfgang Denk
wd at denx.de
Tue Jan 5 08:35:06 CET 2010
Dear "Pedanekar, Hemant",
In message <2A3DCF3DA181AD40BDE86A3150B27B6B03094B2982 at dbde02.ent.ti.com> you wrote:
>
> I have observed that in the recent commit (file include/ns16550.h), the ns16550 UART register structure declaration is changed so that irrespective of the CONFIG_SYS_NS16550_REG_SIZE setting the register access will be done at byte level.
This seems to be working on all systems so far, which is not so much
of a surprise as the registers are 8 bit wide only.
> This crates problem when UART space access is required to be word-aligned. I am particularly referring to DaVinci DM6467, where STRB over UART register space is not supported and requires 32-bit access (L/STR).
Please make sure to use exact terms. Alignment is one thing, and bus
width is another one. Alignment can be easily adjusted using the
prepad_* or postpad_* settings.
> If I go ahead and add a specific handling in ns16550.h file (structure register members as "long"), I would end up making code similar to the one earlier to last commit. Is there a better way to handle such case?
No such changes should be needed, as far as I understand the code.
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 theory, there is no difference between theory and practice. In
practice, however, there is.
More information about the U-Boot
mailing list