|   | 
| SPEAr (Structured Processor Enhanced Architecture). | 
|   | 
| SPEAr600 is also known as SPEArPlus and SPEAr300 is also known as SPEArBasic | 
|   | 
| The SPEAr SoC family embeds a customizable logic that can be programmed | 
| one-time by a customer at silicon mask level (i.e. not at runtime!). | 
|   | 
| U-Boot supports four SoCs: SPEAr600, SPEAr3xx | 
|   | 
| All 4 SoCs (SPEAr3xx and SPEAr600) share common peripherals. SPEAr300 and | 
| SPEAr600 do not have EMI. | 
|   | 
| 1. ARM926ejs core based (sp600 has two 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 .. | 
|   | 
| Everything is supported in Linux. | 
| u-boot is currently not supporting all peripeharls (just a few as listed below). | 
| 1. USB Device | 
| 2. NAND controller (FSMC) | 
| 3. Serial Memory Interface | 
| 4. EMI (Parallel NOR interface) | 
| 4. I2C | 
| 5. UART | 
|   | 
| Build options | 
|     make spear320_config | 
|         spear320 build with environment variables placed at default | 
|         location i.e. Serial NOR device | 
|     make spear320_pnor_config | 
|         This option generates a uboot image that supports emi controller | 
|         for CFI compliant parallel NOR flash. Environment variables are | 
|         placed in Parallel NOR device | 
|     make spear320_nand_config | 
|         spear320 build with environment variables placed in NAND device | 
|     make spear320_usbtty_config | 
|         spear320 build with usbtty terminal as default and environment | 
|         placed at default location | 
|     make spear320_usbtty_pnor_config | 
|         spear320 build with usbtty terminal as default and environment | 
|         placed in pnor device | 
|     make spear320_usbtty_nand_config | 
|         Build with usbtty terminal as default and environment placed in | 
|         NAND device | 
|     make spear300_config | 
|     make spear300_nand_config | 
|     make spear300_usbtty_config | 
|     make spear300_usbtty_nand_config | 
|     make spear310_config | 
|     make spear310_pnor_config | 
|     make spear310_nand_config | 
|     make spear310_usbtty_config | 
|     make spear310_usbtty_pnor_config | 
|     make spear310_usbtty_nand_config | 
|     make spear600_config | 
|     make spear600_nand_config | 
|     make spear600_usbtty_config | 
|     make spear600_usbtty_nand_config | 
|   | 
| Mac id storage and retrieval in spear platforms | 
|   | 
| Please read doc/README.enetaddr for the implementation guidelines for mac id | 
| usage. Basically, environment has precedence over board specific storage. The | 
| ethaddr beeing used for the network interface is always taken only from | 
| environment variables. Although, we can check the mac id programmed in i2c | 
| memory by using chip_config command |