[U-Boot] [PATCH] OMAP3EVM: net_chip uses CS5 not CS6

Scott Wood scottwood at freescale.com
Thu May 7 22:56:41 CEST 2009


Wolfgang Denk wrote:
> Dear Scott,
> 
> In message <4A0333FC.6090900 at 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


More information about the U-Boot mailing list