1*4882a593Smuzhiyun 2*4882a593SmuzhiyunSPEAr (Structured Processor Enhanced Architecture). 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunSPEAr600 is also known as SPEArPlus and SPEAr300 is also known as SPEArBasic 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunThe SPEAr SoC family embeds a customizable logic that can be programmed 7*4882a593Smuzhiyunone-time by a customer at silicon mask level (i.e. not at runtime!). 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunU-Boot supports four SoCs: SPEAr600, SPEAr3xx 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunAll 4 SoCs (SPEAr3xx and SPEAr600) share common peripherals. SPEAr300 and 12*4882a593SmuzhiyunSPEAr600 do not have EMI. 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun1. ARM926ejs core based (sp600 has two cores, the 2nd handled only in Linux) 15*4882a593Smuzhiyun2. FastEthernet (sp600 has Gbit version, but same controller - GMAC) 16*4882a593Smuzhiyun3. USB Host 17*4882a593Smuzhiyun4. USB Device 18*4882a593Smuzhiyun5. NAND controller (FSMC) 19*4882a593Smuzhiyun6. Serial NOR ctrl 20*4882a593Smuzhiyun7. I2C 21*4882a593Smuzhiyun8. SPI 22*4882a593Smuzhiyun9. CLCD 23*4882a593Smuzhiyun10. others .. 24*4882a593Smuzhiyun 25*4882a593SmuzhiyunEverything is supported in Linux. 26*4882a593Smuzhiyunu-boot is currently not supporting all peripeharls (just a few as listed below). 27*4882a593Smuzhiyun1. USB Device 28*4882a593Smuzhiyun2. NAND controller (FSMC) 29*4882a593Smuzhiyun3. Serial Memory Interface 30*4882a593Smuzhiyun4. EMI (Parallel NOR interface) 31*4882a593Smuzhiyun4. I2C 32*4882a593Smuzhiyun5. UART 33*4882a593Smuzhiyun 34*4882a593SmuzhiyunBuild options 35*4882a593Smuzhiyun make spear320_config 36*4882a593Smuzhiyun spear320 build with environment variables placed at default 37*4882a593Smuzhiyun location i.e. Serial NOR device 38*4882a593Smuzhiyun make spear320_pnor_config 39*4882a593Smuzhiyun This option generates a uboot image that supports emi controller 40*4882a593Smuzhiyun for CFI compliant parallel NOR flash. Environment variables are 41*4882a593Smuzhiyun placed in Parallel NOR device 42*4882a593Smuzhiyun make spear320_nand_config 43*4882a593Smuzhiyun spear320 build with environment variables placed in NAND device 44*4882a593Smuzhiyun make spear320_usbtty_config 45*4882a593Smuzhiyun spear320 build with usbtty terminal as default and environment 46*4882a593Smuzhiyun placed at default location 47*4882a593Smuzhiyun make spear320_usbtty_pnor_config 48*4882a593Smuzhiyun spear320 build with usbtty terminal as default and environment 49*4882a593Smuzhiyun placed in pnor device 50*4882a593Smuzhiyun make spear320_usbtty_nand_config 51*4882a593Smuzhiyun Build with usbtty terminal as default and environment placed in 52*4882a593Smuzhiyun NAND device 53*4882a593Smuzhiyun make spear300_config 54*4882a593Smuzhiyun make spear300_nand_config 55*4882a593Smuzhiyun make spear300_usbtty_config 56*4882a593Smuzhiyun make spear300_usbtty_nand_config 57*4882a593Smuzhiyun make spear310_config 58*4882a593Smuzhiyun make spear310_pnor_config 59*4882a593Smuzhiyun make spear310_nand_config 60*4882a593Smuzhiyun make spear310_usbtty_config 61*4882a593Smuzhiyun make spear310_usbtty_pnor_config 62*4882a593Smuzhiyun make spear310_usbtty_nand_config 63*4882a593Smuzhiyun make spear600_config 64*4882a593Smuzhiyun make spear600_nand_config 65*4882a593Smuzhiyun make spear600_usbtty_config 66*4882a593Smuzhiyun make spear600_usbtty_nand_config 67*4882a593Smuzhiyun 68*4882a593SmuzhiyunMac id storage and retrieval in spear platforms 69*4882a593Smuzhiyun 70*4882a593SmuzhiyunPlease read doc/README.enetaddr for the implementation guidelines for mac id 71*4882a593Smuzhiyunusage. Basically, environment has precedence over board specific storage. The 72*4882a593Smuzhiyunethaddr beeing used for the network interface is always taken only from 73*4882a593Smuzhiyunenvironment variables. Although, we can check the mac id programmed in i2c 74*4882a593Smuzhiyunmemory by using chip_config command 75