Wolfgang Denk wrote:
> Dear Scott,
> 
> In message <4a0333fc.6090...@freescale.com> you wrote:
>> Wolfgang Denk wrote:
>>> Finally, and this is what I really compalin about, is that there is no
>>> big structure which includes all the blocks that make up the CPU into
>>> one big structure (as it's done for example for PowerPC systems in the
>>> include/asm-ppc/*immap* files) - you still use code like
>> Those immap structs are a huge pain to maintain (or to verify the 
>> correctness of), loaded with ifdeffery and magic numbers describing 
>> reserved spans.  We should not be emulating them.
> 
> Well, #define'ing long lists of register offsets  is  not  easier  to
> maintain  or  verify, 

IMHO it is; you can just compare to the manual rather than have offsets 
be screwed up if something is missing, out of order, or the wrong size. 
  That's countered by the typechecking and ease of use of structs, though.

> and  you  don't  have  any typechecking by the
> compiler.

It doesn't have to be all one or the other.  Use structs to describe 
individual blocks (provided they're not too sparsely populated), but 
define block addresses rather than huge structs consisting of sub-blocks 
and empty space.  And let the details be flexible at the 
author/maintainer's discretion, rather than a rigid rule.

>> We used to have them in Linux, and got rid of them.
> 
> Hm... Seems I have missed this change... What's things like
> 
>       struct qe_immap __iomem *qe_immr
> or
>       cpm2_map_t __iomem *cpm2_immr
> or
>       immap_t __iomem *mpc8xx_immr
> 
> then?

Legacy stuff that hasn't been fully cleaned up.  There used to be immap 
structs for 83xx and 85xx back in arch/ppc IIRC.

> Or what replaced the "immr" structs?

The device tree, mainly.  But #defines can work for u-boot.

-Scott
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to