[U-Boot] [PATCH 5/9] SPEAr600 SoC support added

Peter Tyser
2009-12-16T18:28:05Z

Hi Arm,

<snip>

> > It'd also be nice to give a description of each board and SOC you add.
> > Eg what's the difference between the 300, 310, 320, 600? What
> > peripherals do they support? What does SPEAr stand for? More commit
> > messages in general wouldn't hurt:)
> >
> SPEAr (Structured Processor Enhanced Architecture).
> You can find some description throughout Internet, for example here:
>
> http://embedded-system.net/spear-basic-customizable-arm-based-soc-stmicroelectronics.html
> (SPEARBasic means SPEAr300.)
>
> As you can see this SoC family embeds a customizable logic that could
> be programmed one-time by a customer at silicon mask level (i.e. not at
> runtime!).
>
> We are now adding the support in u-boot for two SoC: SPEAr600 and SPEAr3xx.
> Pls note that SPEAr300/310/320 differs only for the default customization.
>
> All 4 SoCs share common peripherals.
>
> 1. ARM926ejs core based (sp600 has two AMP cores, the 2nd handled only
> in Linux)
> 2. FastEthernet (sp600 has Gbit version, but same controller - GMAC)
> 3. USB Host
> 4. USB Device
> 5. NAND controller (FSMC)
> 6. Serial NOR ctrl
> 7. I2C
> 8. SPI
> 9. CLCD
> 10. others ..
>
> sp600 is not customized by default.
>
> sp3xx are differently customized...
> sp300 is more oriented to TELECOM/video (it has tdm, i2s, ITU i/f support)
> sp310 for networking (a part GMAC in fixed part, it has 5 MACB ctrls in
> custom)
> sp320 for industrial (SPP ctrl, CAN ctrl, 2 MACBs, ...)
>
> Everything is supported in Linux.
> u-boot is not currently supporting all peripeharls (just a few).

I see. It'd be nice to put some of the above information in the U-Boot
commit logs to give people an idea about what's going on without having
to use google, etc.

I haven't looked at the code differences between the sp3xx boards, but
you might be able to use 1 common board file/header file to support them
all. For example, take a look at the M5475AFE_config rule in
U-Boot's ./Makefile. Some extra code in the Makefile and some #ifdefs
in the sp3xx code might accommodate all 3 boards.

Best,
Peter