[U-Boot] [PATCH] Add support for Faraday RTC IP FTRTC

Detlev Zundel dzu at denx.de
Thu Apr 2 15:07:58 CEST 2009


Hi Chuang,

> I am a newbie and I have not realized all the rules, so I 
> have some questions.
>
> On Tue Mar 31 12:24:03 CEST 2009, you wrote:
>> > +static unsigned int	rtc	= CONFIG_SYS_RTC_BASE;
>> 
>> Please use a proper C structure to describe the RTC; do not use base
>> address plus offsets.
>
> Do you mean U-Boot prefers to use structure to describe 
> registers? 

Yes, we prefer to have this, as we then also let the compiler do for
example type checking.

> What if there were large gaps between registers?

Use dummy variables.

> For example, in our ethernet IP FTMAC100,  there is nothing
> in 0x34 - 0x84, 0xa0 - 0xc0. Should I use structure to
> describe it?

Yes please, use for example u32 dummy1[20] for the first gap and u32
dummy2[8] for the second.

> I thought that placing a lot of paddings in a structure is ulgy. 
> How do you think? Is there a guideline about this?

We are our own guideline ;)  

No, seriously, we try to use structures wherever possible as a means to
get more information to the compiler.  It also helps preventing stupid
errors like having one incorrect offset in a list of 40 defines which
are *very* hard to catch.

> Also in drivers/rtc/pl031.c, the RTC_WRITE_REG and 
> RTC_READ_REG use base + offset.
>
>> outl() is not portable across architectures?
>> inl() is not portable across architectures?
>
> Sorry I don't understand.
>
> There are outl() and inl() in most architectures except blackfin, 
> i386 and sparc. And the outl() and the inl() I use are arm ones.
>
> Which macros should I use?

We should really use macros specifying the expected-byteorder,
i.e. in_be32, or out_le32, and so on.  Using these macros, we can write
drivers even being agnostic on the cpu byte ordering if the device stays
the same.  (Ok, ok, outl also infers a byte-ordering, but we like more
expliciteness).


>> > +	debug("rtc_get(): record register: %x\n", inl(rtc + FTRTC_OFFSET_RECORD));
>>
>> Line too long.
>
> Sorry, this is my fault. I will fix them.

Thanks!
  Detlev

-- 
I just found out that the brain is like a computer.
If that's true, then there really aren't any stupid people.
Just people running Windows.
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de


More information about the U-Boot mailing list