1*4882a593SmuzhiyunIntro: 2*4882a593Smuzhiyun====== 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunThe SBC8548 is a stand alone single board computer with a 1GHz 5*4882a593SmuzhiyunMPC8548 CPU, 8MB boot flash, 64MB user flash and, 256MB DDR2 400MHz 6*4882a593Smuzhiyunmemory. It also has 128MB SDRAM 100MHz LBC memory, with both a PCI-e, 7*4882a593Smuzhiyunand a PCI-X slot, dual mini-DB9 for UART, and dual RJ-45 for eTSEC 8*4882a593Smuzhiyunethernet connections. 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunU-Boot Configuration: 11*4882a593Smuzhiyun===================== 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunThe following possible U-Boot configuration targets are available: 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun 1) sbc8548_config 16*4882a593Smuzhiyun 2) sbc8548_PCI_33_config 17*4882a593Smuzhiyun 3) sbc8548_PCI_66_config 18*4882a593Smuzhiyun 4) sbc8548_PCI_33_PCIE_config 19*4882a593Smuzhiyun 5) sbc8548_PCI_66_PCIE_config 20*4882a593Smuzhiyun 21*4882a593SmuzhiyunGenerally speaking, most people should choose to use #5. Details 22*4882a593Smuzhiyunof each choice are listed below. 23*4882a593Smuzhiyun 24*4882a593SmuzhiyunChoice #1 does not enable CONFIG_PCI, and assumes that the PCI slot 25*4882a593Smuzhiyunwill be left empty (M66EN high), and so the board will operate with 26*4882a593Smuzhiyuna base clock of 66MHz. Note that you need both PCI enabled in U-Boot 27*4882a593Smuzhiyunand linux in order to have functional PCI under linux. 28*4882a593Smuzhiyun 29*4882a593SmuzhiyunThe second enables PCI support and builds for a 33MHz clock rate. Note 30*4882a593Smuzhiyunthat if a 33MHz 32bit card is inserted in the slot, then the whole board 31*4882a593Smuzhiyunwill clock down to a 33MHz base clock instead of the default 66MHz. This 32*4882a593Smuzhiyunwill change the baud clocks and mess up your serial console output if you 33*4882a593Smuzhiyunwere previously running at 66MHz. If you want to use a 33MHz PCI card, 34*4882a593Smuzhiyunthen you should build a U-Boot with a _PCI_33_ config and store this 35*4882a593Smuzhiyunto flash prior to powering down the board and inserting the 33MHz PCI 36*4882a593Smuzhiyuncard. [The above discussion assumes that the SW2[1-4] has not been changed 37*4882a593Smuzhiyunto reflect a different CCB:SYSCLK ratio] 38*4882a593Smuzhiyun 39*4882a593SmuzhiyunThe third option builds PCI support in, and leaves the clocking at the 40*4882a593Smuzhiyundefault 66MHz. Options four and five are just repeats of option two 41*4882a593Smuzhiyunand three, but with PCI-e support enabled as well. 42*4882a593Smuzhiyun 43*4882a593SmuzhiyunPCI output listing with an intel e1000 PCI-x and a Syskonnect SK-9Exx 44*4882a593Smuzhiyunis shown below for sbc8548_PCI_66_PCIE_config. (Note that PCI-e with 45*4882a593Smuzhiyuna 33MHz PCI configuration is currently untested.) 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun => pci 0 48*4882a593Smuzhiyun Scanning PCI devices on bus 0 49*4882a593Smuzhiyun BusDevFun VendorId DeviceId Device Class Sub-Class 50*4882a593Smuzhiyun _____________________________________________________________ 51*4882a593Smuzhiyun 00.00.00 0x1057 0x0012 Processor 0x20 52*4882a593Smuzhiyun 00.01.00 0x8086 0x1026 Network controller 0x00 53*4882a593Smuzhiyun => pci 1 54*4882a593Smuzhiyun Scanning PCI devices on bus 1 55*4882a593Smuzhiyun BusDevFun VendorId DeviceId Device Class Sub-Class 56*4882a593Smuzhiyun _____________________________________________________________ 57*4882a593Smuzhiyun 01.00.00 0x1957 0x0012 Processor 0x20 58*4882a593Smuzhiyun => pci 2 59*4882a593Smuzhiyun Scanning PCI devices on bus 2 60*4882a593Smuzhiyun BusDevFun VendorId DeviceId Device Class Sub-Class 61*4882a593Smuzhiyun _____________________________________________________________ 62*4882a593Smuzhiyun 02.00.00 0x1148 0x9e00 Network controller 0x00 63*4882a593Smuzhiyun => 64*4882a593Smuzhiyun 65*4882a593SmuzhiyunMemory Size and using SPD: 66*4882a593Smuzhiyun========================== 67*4882a593Smuzhiyun 68*4882a593SmuzhiyunThe default configuration uses hard coded memory configuration settings 69*4882a593Smuzhiyunfor 256MB of DDR2 @400MHz. It does not by default use the DDR2 SPD 70*4882a593SmuzhiyunEEPROM data to read what memory is installed. 71*4882a593Smuzhiyun 72*4882a593SmuzhiyunThere is a hardware errata, which causes the older local bus SDRAM 73*4882a593SmuzhiyunSPD EEPROM to land at the same address as the DDR2 SPD EEPROM, so 74*4882a593Smuzhiyunthat the SPD data can not be read reliably. You can test if your 75*4882a593Smuzhiyunboard has the errata fix by running "i2c probe". If you see 0x53 76*4882a593Smuzhiyunas a valid device, it has been fixed. If you only see 0x50, 0x51 77*4882a593Smuzhiyunthen your board does not have the fix. 78*4882a593Smuzhiyun 79*4882a593SmuzhiyunYou can also visually inspect the board to see if this hardware 80*4882a593Smuzhiyunfix has been applied: 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun 1) Remove R314 (RES-R0174-033, 1K, 0603). R314 is located on 83*4882a593Smuzhiyun the back of the PCB behind the DDR SDRAM SODIMM connector. 84*4882a593Smuzhiyun 2) Solder RES-R0174-033 (1K, 0603) resistor from R314 pin 2 pad 85*4882a593Smuzhiyun to R313 pin 2. Pin 2 for each resistor is the end of the 86*4882a593Smuzhiyun resistor closest to the CPU. 87*4882a593Smuzhiyun 88*4882a593SmuzhiyunBoards without the mod will have R314 and R313 in parallel, like "||". 89*4882a593SmuzhiyunAfter the mod, they will be touching and form an "L" shape. 90*4882a593Smuzhiyun 91*4882a593SmuzhiyunIf you want to upgrade to larger RAM size, you can simply enable 92*4882a593Smuzhiyun #define CONFIG_SPD_EEPROM 93*4882a593Smuzhiyun #define CONFIG_DDR_SPD 94*4882a593Smuzhiyunin include/configs/sbc8548.h file. (The lines are already there 95*4882a593Smuzhiyunbut listed as #undef). 96*4882a593Smuzhiyun 97*4882a593SmuzhiyunIf you did the i2c test, and your board does not have the errata 98*4882a593Smuzhiyunfix, then you will have to physically remove the LBC 128MB DIMM 99*4882a593Smuzhiyunfrom the board's socket to resolve the above i2c address overlap 100*4882a593Smuzhiyunissue and allow SPD autodetection of RAM to work. 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun 103*4882a593SmuzhiyunUpdating U-Boot with U-Boot: 104*4882a593Smuzhiyun============================ 105*4882a593Smuzhiyun 106*4882a593SmuzhiyunNote that versions of U-Boot up to and including 2009.08 had U-Boot stored 107*4882a593Smuzhiyunat 0xfff8_0000 -> 0xffff_ffff (512k). Currently it is being stored from 108*4882a593Smuzhiyun0xfffa_0000 -> 0xffff_ffff (384k). If you use an old macro/script to 109*4882a593Smuzhiyunupdate U-Boot with U-Boot and it uses the old address, you will render 110*4882a593Smuzhiyunyour board inoperable, and you will require JTAG recovery. 111*4882a593Smuzhiyun 112*4882a593SmuzhiyunThe following steps list how to update with the current address: 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun tftp u-boot.bin 115*4882a593Smuzhiyun md 200000 10 116*4882a593Smuzhiyun protect off all 117*4882a593Smuzhiyun erase fffa0000 ffffffff 118*4882a593Smuzhiyun cp.b 200000 fffa0000 60000 119*4882a593Smuzhiyun md fffa0000 10 120*4882a593Smuzhiyun protect on all 121*4882a593Smuzhiyun 122*4882a593SmuzhiyunThe "md" steps in the above are just a precautionary step that allow 123*4882a593Smuzhiyunyou to confirm the U-Boot version that was downloaded, and then confirm 124*4882a593Smuzhiyunthat it was copied to flash. 125*4882a593Smuzhiyun 126*4882a593SmuzhiyunThe above assumes that you are using the default board settings which 127*4882a593Smuzhiyunhave U-Boot in the 8MB flash, tied to /CS0. 128*4882a593Smuzhiyun 129*4882a593SmuzhiyunIf you are running the default 8MB /CS0 settings but want to store an 130*4882a593Smuzhiyunimage in the SODIMM that is built with CONFIG_SYS_ALT_BOOT enabled, 131*4882a593Smuzhiyun(as a backup, etc) then the steps will become: 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun tftp u-boot.bin 134*4882a593Smuzhiyun md 200000 10 135*4882a593Smuzhiyun protect off all 136*4882a593Smuzhiyun era eff00000 efffffff 137*4882a593Smuzhiyun cp.b 200000 eff00000 100000 138*4882a593Smuzhiyun md eff00000 10 139*4882a593Smuzhiyun protect on all 140*4882a593Smuzhiyun 141*4882a593SmuzhiyunFinally, if you are running the alternate 64MB /CS0 settings and want 142*4882a593Smuzhiyunto update the in-use U-Boot image, then (again with CONFIG_SYS_ALT_BOOT 143*4882a593Smuzhiyunenabled) the steps will become: 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun tftp u-boot.bin 146*4882a593Smuzhiyun md 200000 10 147*4882a593Smuzhiyun protect off all 148*4882a593Smuzhiyun era fff00000 ffffffff 149*4882a593Smuzhiyun cp.b 200000 fff00000 100000 150*4882a593Smuzhiyun md fff00000 10 151*4882a593Smuzhiyun protect on all 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun 154*4882a593SmuzhiyunHardware Reference: 155*4882a593Smuzhiyun=================== 156*4882a593Smuzhiyun 157*4882a593SmuzhiyunThe following contains some summary information on hardware settings 158*4882a593Smuzhiyunthat are relevant to U-Boot, based on the board manual. For the 159*4882a593Smuzhiyunmost up to date and complete details of the board, please request the 160*4882a593Smuzhiyunreference manual ERG-00327-001.pdf from www.windriver.com 161*4882a593Smuzhiyun 162*4882a593SmuzhiyunBoot flash: 163*4882a593Smuzhiyun intel V28F640Jx, 8192x8 (one device) at 0xff80_0000 164*4882a593Smuzhiyun 165*4882a593SmuzhiyunSodimm flash: 166*4882a593Smuzhiyun intel V28F128Jx, 16384x8 (4 devices) at 0xfb80_0000 167*4882a593Smuzhiyun Note that this address reflects the default setting for 168*4882a593Smuzhiyun the JTAG debugging tools, but since the alignment is 169*4882a593Smuzhiyun rather inconvenient, U-Boot puts it at 0xec00_0000. 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun 172*4882a593Smuzhiyun Jumpers: 173*4882a593Smuzhiyun 174*4882a593SmuzhiyunJumper Name ON OFF 175*4882a593Smuzhiyun---------------------------------------------------------------- 176*4882a593SmuzhiyunJP12 CS0/CS6 swap see note[*] see note[*] 177*4882a593Smuzhiyun 178*4882a593SmuzhiyunJP13 SODIMM flash write OK writes disabled 179*4882a593Smuzhiyun write prot. 180*4882a593Smuzhiyun 181*4882a593SmuzhiyunJP14 HRESET/TRST joined isolated 182*4882a593Smuzhiyun 183*4882a593SmuzhiyunJP15 PWR ON when AC pwr use S1 for on/off 184*4882a593Smuzhiyun 185*4882a593SmuzhiyunJP16 Demo LEDs lit not lit 186*4882a593Smuzhiyun 187*4882a593SmuzhiyunJP19 PCI mode PCI PCI-X 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun[*]JP12, when jumpered parallel to the SODIMM, puts the boot flash 191*4882a593Smuzhiyunonto /CS0 and the SODIMM flash on /CS6 (default). When JP12 192*4882a593Smuzhiyunis jumpered parallel to the LBC-SDRAM, then /CS0 is for the 193*4882a593SmuzhiyunSODIMM flash and /CS6 is for the boot flash. Note that in this 194*4882a593Smuzhiyunalternate setting, you also need to switch SW2.8 to ON. 195*4882a593SmuzhiyunSee the setting CONFIG_SYS_ALT_BOOT if you want to use this setting 196*4882a593Smuzhiyunand boot U-Boot from the 64MB SODIMM 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun Switches: 200*4882a593Smuzhiyun 201*4882a593SmuzhiyunThe defaults are marked with a * 202*4882a593Smuzhiyun 203*4882a593SmuzhiyunName Desc. ON OFF 204*4882a593Smuzhiyun------------------------------------------------------------------ 205*4882a593SmuzhiyunS1 Pwr toggle n/a n/a 206*4882a593Smuzhiyun 207*4882a593SmuzhiyunSW2.1 CFG_SYS_PLL0 1 0* 208*4882a593SmuzhiyunSW2.2 CFG_SYS_PLL1 1* 0 209*4882a593SmuzhiyunSW2.3 CFG_SYS_PLL2 1* 0 210*4882a593SmuzhiyunSW2.4 CFG_SYS_PLL3 1 0* 211*4882a593SmuzhiyunSW2.5 CFG_CORE_PLL0 1* 0 212*4882a593SmuzhiyunSW2.6 CFG_CORE_PLL1 1 0* 213*4882a593SmuzhiyunSW2.7 CFG_CORE_PLL2 1* 0 214*4882a593SmuzhiyunSW2.8 CFG_ROM_LOC1 1 0* 215*4882a593Smuzhiyun 216*4882a593SmuzhiyunSW3.1 CFG_HOST_AGT0 1* 0 217*4882a593SmuzhiyunSW3.2 CFG_HOST_AGT1 1* 0 218*4882a593SmuzhiyunSW3.3 CFG_HOST_AGT2 1* 0 219*4882a593SmuzhiyunSW3.4 CFG_IO_PORTS0 1* 0 220*4882a593SmuzhiyunSW3.5 CFG_IO_PORTS0 1 0* 221*4882a593SmuzhiyunSW3.6 CFG_IO_PORTS0 1 0* 222*4882a593Smuzhiyun 223*4882a593SmuzhiyunSerDes CLK(MHz) SW5.1 SW5.2 224*4882a593Smuzhiyun---------------------------------------------- 225*4882a593Smuzhiyun25 0 0 226*4882a593Smuzhiyun100* 1 0 227*4882a593Smuzhiyun125 0 1 228*4882a593Smuzhiyun200 1 1 229*4882a593Smuzhiyun 230*4882a593SmuzhiyunSerDes CLK spread SW5.3 SW5.4 231*4882a593Smuzhiyun---------------------------------------------- 232*4882a593Smuzhiyun+/- 0.25% 0 0 233*4882a593Smuzhiyun-0.50% 1 0 234*4882a593Smuzhiyun-0.75% 0 1 235*4882a593SmuzhiyunNo Spread* 1 1 236*4882a593Smuzhiyun 237*4882a593SmuzhiyunSW4 settings are readable from the EPLD and are currently not used for 238*4882a593Smuzhiyunany hardware settings (i.e. user configuration switches). 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun LEDs: 241*4882a593Smuzhiyun 242*4882a593SmuzhiyunName Desc. ON OFF 243*4882a593Smuzhiyun------------------------------------------------------------------ 244*4882a593SmuzhiyunD13 PCI/PCI-X PCI-X PCI 245*4882a593SmuzhiyunD14 3.3V PWR 3.3V no power 246*4882a593SmuzhiyunD15 SYSCLK 66MHz 33MHz 247*4882a593Smuzhiyun 248*4882a593Smuzhiyun 249*4882a593Smuzhiyun Default Memory Map: 250*4882a593Smuzhiyun 251*4882a593Smuzhiyunstart end CS<n> width Desc. 252*4882a593Smuzhiyun---------------------------------------------------------------------- 253*4882a593Smuzhiyun0000_0000 0fff_ffff MCS0,1 64 DDR2 (256MB) 254*4882a593Smuzhiyunf000_0000 f7ff_ffff CS3,4 32 LB SDRAM (128MB) 255*4882a593Smuzhiyunf800_0000 f8b0_1fff CS5 - EPLD 256*4882a593Smuzhiyunfb80_0000 ff7f_ffff CS6 32 SODIMM flash (64MB) [*] 257*4882a593Smuzhiyunff80_0000 ffff_ffff CS0 8 Boot flash (8MB) 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun[*] fb80 represents the default programmed by WR JTAG register files, 260*4882a593Smuzhiyun but U-Boot places the flash at either ec00 or fc00 based on JP12. 261*4882a593Smuzhiyun 262*4882a593SmuzhiyunThe EPLD on CS5 demuxes the following devices at the following offsets: 263*4882a593Smuzhiyun 264*4882a593Smuzhiyunoffset size width device 265*4882a593Smuzhiyun-------------------------------------------------------- 266*4882a593Smuzhiyun0 1fff 8 7 segment display LED 267*4882a593Smuzhiyun10_0000 1fff 4 user switches 268*4882a593Smuzhiyun30_0000 1fff 4 HW Rev. register 269*4882a593Smuzhiyunb0_0000 1fff 8 8kB EEPROM 270