[U-Boot-Users] arm SoC code in U-Boot.

Ulf Samuelsson ulf at atmel.com
Tue Mar 6 23:45:10 CET 2007

>> > Do we really need the "freescale" subdirectory here? Maybe
>> > cpu/arm_imx would be a shorter and more descriptive name?
> ...
>> I think it is a matter of taste.
> Agreed.
>> Some people would like to have consistency
>> making it easy to find where things are located.
> To me making it easy to find where things are located includes not to
> add unnecessary directory levels.
> When adding "cpu/freescale/" I see no clear line what  should  go  in
> there  and  what  not.  Whould  we  then  move  all  the  cpu/mpc???/
> directories into cpu/freescale/  ?  And  then  probably  create  (for
> consistency)  a  "cpu/amcc/"  directory and mode cpu/ppc4xx into that
> one? What do we get in addition to another directory level? IMO  that
> would not improve anything, and you still don't see where shared code
> is located.

I think you can still keep the cpu/ppc4xx directory but if you
find that cpu/ppcYYY has shared code with the cpu/ppc4xx
and you would like to have a common driver, then
you put it in "cpu/amcc/ppc.

For freescale you would put shared code in
cpu/freescale/imx and cpu/freescale/ppc
and maybe cpu/freescale/coldfire

>> If you look at what is driving duplication, then you find
>> that the peripherals are either developed inside a semiconductor
>> company, or they are licensed from an IP provider.
>> It makes a lot of sense therefore to dedicate directories
>> to the providers of IP:
>> ARM is a provider, but so are also Freescale, Atmel and others.
> Well, where did license Freescale the IMX core from?  I  don't  think
> that  we  should  focus on vendor names here, but instead on content.
> And the content is "ARM IMX"  related  code.  Assuming  that  is  CPU
> specific  enough  to  go  under "cpu/", I feel we should either add a
> "cpu/imx" directory or - a little more descriptive  -  "cpu/arm_imx/"
> as suggested above. Even "cpu/arm/imx/" seems more natural to me than
> "cpu/freescale/imx/".

I might be wrong, but  think the issue is that
Freescale has some common peripherals which are used
both on ARM926EJS and ARM920T chips.

If the peripherals are licensed from ARM, then I think that the peripheral
might be in use in other ARM chipa I.E. non-imx chips as well and "cpu/arm" 
be OK, but not "cpu/arm/imx"
If the peripherals are developed by Freescale, then if they
happen to use the peripheral on a non-ARM chip then
the cpu/arm/imx is no good and cpu/arm_imx is also no good.
"cpu/freescale" is then much better for generic stuff
and "cpu/freescale/imx" for things shared only among imx chips.

cpu/arm could
be a directory, but then it is

> Best regards,
> Wolfgang Denk

Best Regards
Ulf Samuelsson                ulf at atmel.com
Atmel Nordic AB
Mail:  Box 2033, 174 02 Sundbyberg, Sweden
Visit:  Kavallerivägen 24, 174 58 Sundbyberg, Sweden
Phone +46 (8) 441 54 22     Fax +46 (8) 441 54 29
GSM    +46 (706) 22 44 57

Technical support when I am not available:
AT89 C51 Applications Group: mailto:micro.hotline at nto.atmel.com
AT90 AVR Applications Group: mailto:avr at atmel.com
AT91 ARM Applications Group: mailto:at91support at atmel.com
FPSLIC Application Group: mailto:fpslic at atmel.com Best AVR
link: www.avrfreaks.net 

More information about the U-Boot mailing list