[U-Boot] [PATCH 3/6] sbc8548: use I/O accessors

Wolfgang Denk wd at denx.de
Mon Sep 21 10:48:35 CEST 2009


Dear Graeme Russ,

In message <d66caabb0909201837g28da0ed5k6069e96775cfb358 at mail.gmail.com> you wrote:
>
> > -       ecm->eedr = 0xffffffff;         /* clear ecm errors */
> > -       ecm->eeer = 0xffffffff;         /* enable ecm errors */
> > +       out_be32(&ecm->eedr, 0xffffffff);       /* clear ecm errors */
> > +       out_be32(&ecm->eeer, 0xffffffff);       /* enable ecm errors */
> >        return 0;
> 
> Correct me if I'm wrong, but I thought the general rule was the other
> way (i.e. the way it alreay was). See for example:

You are wrong. We must use I/O accessors.

> http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=ed7a1b681de1e31d18d5b92e2767ae8df3241687

Ouch. This patch is clearly bloken. Sorry it escaped my attention.

Using a C structure to describe the hardware is a good thing, but we
still must use I/O accessors to access the registers.

This needs to be fixed in your code.

> This prevents, for example, accidentally writing words and longs to byte
> sized registers.

Right. The I/O accessors still allow for strict type checking.

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
"What is wanted is not the will to believe, but the will to find out,
which is the exact opposite." - Bertrand Russell, _Sceptical_Essays_,
1928


More information about the U-Boot mailing list