1702e6014SWolfgang DenkIntro: 2702e6014SWolfgang Denk====== 3702e6014SWolfgang Denk 4702e6014SWolfgang DenkThe SBC8548 is a stand alone single board computer with a 1GHz 5702e6014SWolfgang DenkMPC8548 CPU, 8MB boot flash, 64MB user flash and, 256MB DDR2 400MHz 6702e6014SWolfgang Denkmemory. It also has 128MB SDRAM 100MHz LBC memory, with both a PCI-e, 7702e6014SWolfgang Denkand a PCI-X slot, dual mini-DB9 for UART, and dual RJ-45 for eTSEC 8702e6014SWolfgang Denkethernet connections. 9702e6014SWolfgang Denk 10*a187559eSBin MengU-Boot Configuration: 11702e6014SWolfgang Denk===================== 12702e6014SWolfgang Denk 13*a187559eSBin MengThe following possible U-Boot configuration targets are available: 14702e6014SWolfgang Denk 15702e6014SWolfgang Denk 1) sbc8548_config 16702e6014SWolfgang Denk 2) sbc8548_PCI_33_config 17702e6014SWolfgang Denk 3) sbc8548_PCI_66_config 18702e6014SWolfgang Denk 4) sbc8548_PCI_33_PCIE_config 19702e6014SWolfgang Denk 5) sbc8548_PCI_66_PCIE_config 20702e6014SWolfgang Denk 21702e6014SWolfgang DenkGenerally speaking, most people should choose to use #5. Details 22702e6014SWolfgang Denkof each choice are listed below. 23702e6014SWolfgang Denk 24702e6014SWolfgang DenkChoice #1 does not enable CONFIG_PCI, and assumes that the PCI slot 25702e6014SWolfgang Denkwill be left empty (M66EN high), and so the board will operate with 26*a187559eSBin Menga base clock of 66MHz. Note that you need both PCI enabled in U-Boot 27702e6014SWolfgang Denkand linux in order to have functional PCI under linux. 28702e6014SWolfgang Denk 29702e6014SWolfgang DenkThe second enables PCI support and builds for a 33MHz clock rate. Note 30702e6014SWolfgang Denkthat if a 33MHz 32bit card is inserted in the slot, then the whole board 31702e6014SWolfgang Denkwill clock down to a 33MHz base clock instead of the default 66MHz. This 32702e6014SWolfgang Denkwill change the baud clocks and mess up your serial console output if you 33702e6014SWolfgang Denkwere previously running at 66MHz. If you want to use a 33MHz PCI card, 34702e6014SWolfgang Denkthen you should build a U-Boot with a _PCI_33_ config and store this 35702e6014SWolfgang Denkto flash prior to powering down the board and inserting the 33MHz PCI 36702e6014SWolfgang Denkcard. [The above discussion assumes that the SW2[1-4] has not been changed 37702e6014SWolfgang Denkto reflect a different CCB:SYSCLK ratio] 38702e6014SWolfgang Denk 39702e6014SWolfgang DenkThe third option builds PCI support in, and leaves the clocking at the 40702e6014SWolfgang Denkdefault 66MHz. Options four and five are just repeats of option two 41702e6014SWolfgang Denkand three, but with PCI-e support enabled as well. 42702e6014SWolfgang Denk 43702e6014SWolfgang DenkPCI output listing with an intel e1000 PCI-x and a Syskonnect SK-9Exx 44702e6014SWolfgang Denkis shown below for sbc8548_PCI_66_PCIE_config. (Note that PCI-e with 45702e6014SWolfgang Denka 33MHz PCI configuration is currently untested.) 46702e6014SWolfgang Denk 47702e6014SWolfgang Denk => pci 0 48702e6014SWolfgang Denk Scanning PCI devices on bus 0 49702e6014SWolfgang Denk BusDevFun VendorId DeviceId Device Class Sub-Class 50702e6014SWolfgang Denk _____________________________________________________________ 51702e6014SWolfgang Denk 00.00.00 0x1057 0x0012 Processor 0x20 52702e6014SWolfgang Denk 00.01.00 0x8086 0x1026 Network controller 0x00 53702e6014SWolfgang Denk => pci 1 54702e6014SWolfgang Denk Scanning PCI devices on bus 1 55702e6014SWolfgang Denk BusDevFun VendorId DeviceId Device Class Sub-Class 56702e6014SWolfgang Denk _____________________________________________________________ 57702e6014SWolfgang Denk 01.00.00 0x1957 0x0012 Processor 0x20 58702e6014SWolfgang Denk => pci 2 59702e6014SWolfgang Denk Scanning PCI devices on bus 2 60702e6014SWolfgang Denk BusDevFun VendorId DeviceId Device Class Sub-Class 61702e6014SWolfgang Denk _____________________________________________________________ 62702e6014SWolfgang Denk 02.00.00 0x1148 0x9e00 Network controller 0x00 63702e6014SWolfgang Denk => 64702e6014SWolfgang Denk 65702e6014SWolfgang DenkMemory Size and using SPD: 66702e6014SWolfgang Denk========================== 67702e6014SWolfgang Denk 68702e6014SWolfgang DenkThe default configuration uses hard coded memory configuration settings 69702e6014SWolfgang Denkfor 256MB of DDR2 @400MHz. It does not by default use the DDR2 SPD 70702e6014SWolfgang DenkEEPROM data to read what memory is installed. 71702e6014SWolfgang Denk 72702e6014SWolfgang DenkThere is a hardware errata, which causes the older local bus SDRAM 73702e6014SWolfgang DenkSPD EEPROM to land at the same address as the DDR2 SPD EEPROM, so 74702e6014SWolfgang Denkthat the SPD data can not be read reliably. You can test if your 75702e6014SWolfgang Denkboard has the errata fix by running "i2c probe". If you see 0x53 76702e6014SWolfgang Denkas a valid device, it has been fixed. If you only see 0x50, 0x51 77702e6014SWolfgang Denkthen your board does not have the fix. 78702e6014SWolfgang Denk 79702e6014SWolfgang DenkYou can also visually inspect the board to see if this hardware 80702e6014SWolfgang Denkfix has been applied: 81702e6014SWolfgang Denk 82702e6014SWolfgang Denk 1) Remove R314 (RES-R0174-033, 1K, 0603). R314 is located on 83702e6014SWolfgang Denk the back of the PCB behind the DDR SDRAM SODIMM connector. 84702e6014SWolfgang Denk 2) Solder RES-R0174-033 (1K, 0603) resistor from R314 pin 2 pad 85702e6014SWolfgang Denk to R313 pin 2. Pin 2 for each resistor is the end of the 86702e6014SWolfgang Denk resistor closest to the CPU. 87702e6014SWolfgang Denk 88702e6014SWolfgang DenkBoards without the mod will have R314 and R313 in parallel, like "||". 89702e6014SWolfgang DenkAfter the mod, they will be touching and form an "L" shape. 90702e6014SWolfgang Denk 91702e6014SWolfgang DenkIf you want to upgrade to larger RAM size, you can simply enable 92702e6014SWolfgang Denk #define CONFIG_SPD_EEPROM 93702e6014SWolfgang Denk #define CONFIG_DDR_SPD 94702e6014SWolfgang Denkin include/configs/sbc8548.h file. (The lines are already there 95702e6014SWolfgang Denkbut listed as #undef). 96702e6014SWolfgang Denk 97702e6014SWolfgang DenkIf you did the i2c test, and your board does not have the errata 98702e6014SWolfgang Denkfix, then you will have to physically remove the LBC 128MB DIMM 99702e6014SWolfgang Denkfrom the board's socket to resolve the above i2c address overlap 100702e6014SWolfgang Denkissue and allow SPD autodetection of RAM to work. 101702e6014SWolfgang Denk 102702e6014SWolfgang Denk 103*a187559eSBin MengUpdating U-Boot with U-Boot: 104702e6014SWolfgang Denk============================ 105702e6014SWolfgang Denk 106*a187559eSBin MengNote that versions of U-Boot up to and including 2009.08 had U-Boot stored 107702e6014SWolfgang Denkat 0xfff8_0000 -> 0xffff_ffff (512k). Currently it is being stored from 108702e6014SWolfgang Denk0xfffa_0000 -> 0xffff_ffff (384k). If you use an old macro/script to 109*a187559eSBin Mengupdate U-Boot with U-Boot and it uses the old address, you will render 110702e6014SWolfgang Denkyour board inoperable, and you will require JTAG recovery. 111702e6014SWolfgang Denk 112702e6014SWolfgang DenkThe following steps list how to update with the current address: 113702e6014SWolfgang Denk 114702e6014SWolfgang Denk tftp u-boot.bin 115702e6014SWolfgang Denk md 200000 10 116702e6014SWolfgang Denk protect off all 117702e6014SWolfgang Denk erase fffa0000 ffffffff 118702e6014SWolfgang Denk cp.b 200000 fffa0000 60000 119702e6014SWolfgang Denk md fffa0000 10 120702e6014SWolfgang Denk protect on all 121702e6014SWolfgang Denk 122702e6014SWolfgang DenkThe "md" steps in the above are just a precautionary step that allow 123*a187559eSBin Mengyou to confirm the U-Boot version that was downloaded, and then confirm 124702e6014SWolfgang Denkthat it was copied to flash. 125702e6014SWolfgang Denk 126702e6014SWolfgang DenkThe above assumes that you are using the default board settings which 127*a187559eSBin Menghave U-Boot in the 8MB flash, tied to /CS0. 128702e6014SWolfgang Denk 129702e6014SWolfgang DenkIf you are running the default 8MB /CS0 settings but want to store an 130702e6014SWolfgang Denkimage in the SODIMM that is built with CONFIG_SYS_ALT_BOOT enabled, 131702e6014SWolfgang Denk(as a backup, etc) then the steps will become: 132702e6014SWolfgang Denk 133702e6014SWolfgang Denk tftp u-boot.bin 134702e6014SWolfgang Denk md 200000 10 135702e6014SWolfgang Denk protect off all 136702e6014SWolfgang Denk era eff00000 efffffff 137702e6014SWolfgang Denk cp.b 200000 eff00000 100000 138702e6014SWolfgang Denk md eff00000 10 139702e6014SWolfgang Denk protect on all 140702e6014SWolfgang Denk 141702e6014SWolfgang DenkFinally, if you are running the alternate 64MB /CS0 settings and want 142*a187559eSBin Mengto update the in-use U-Boot image, then (again with CONFIG_SYS_ALT_BOOT 143702e6014SWolfgang Denkenabled) the steps will become: 144702e6014SWolfgang Denk 145702e6014SWolfgang Denk tftp u-boot.bin 146702e6014SWolfgang Denk md 200000 10 147702e6014SWolfgang Denk protect off all 148702e6014SWolfgang Denk era fff00000 ffffffff 149702e6014SWolfgang Denk cp.b 200000 fff00000 100000 150702e6014SWolfgang Denk md fff00000 10 151702e6014SWolfgang Denk protect on all 152702e6014SWolfgang Denk 153702e6014SWolfgang Denk 154702e6014SWolfgang DenkHardware Reference: 155702e6014SWolfgang Denk=================== 156702e6014SWolfgang Denk 157702e6014SWolfgang DenkThe following contains some summary information on hardware settings 158*a187559eSBin Mengthat are relevant to U-Boot, based on the board manual. For the 159702e6014SWolfgang Denkmost up to date and complete details of the board, please request the 160702e6014SWolfgang Denkreference manual ERG-00327-001.pdf from www.windriver.com 161702e6014SWolfgang Denk 162702e6014SWolfgang DenkBoot flash: 163702e6014SWolfgang Denk intel V28F640Jx, 8192x8 (one device) at 0xff80_0000 164702e6014SWolfgang Denk 165702e6014SWolfgang DenkSodimm flash: 166702e6014SWolfgang Denk intel V28F128Jx, 16384x8 (4 devices) at 0xfb80_0000 167702e6014SWolfgang Denk Note that this address reflects the default setting for 168702e6014SWolfgang Denk the JTAG debugging tools, but since the alignment is 169*a187559eSBin Meng rather inconvenient, U-Boot puts it at 0xec00_0000. 170702e6014SWolfgang Denk 171702e6014SWolfgang Denk 172702e6014SWolfgang Denk Jumpers: 173702e6014SWolfgang Denk 174702e6014SWolfgang DenkJumper Name ON OFF 175702e6014SWolfgang Denk---------------------------------------------------------------- 176702e6014SWolfgang DenkJP12 CS0/CS6 swap see note[*] see note[*] 177702e6014SWolfgang Denk 178702e6014SWolfgang DenkJP13 SODIMM flash write OK writes disabled 179702e6014SWolfgang Denk write prot. 180702e6014SWolfgang Denk 181702e6014SWolfgang DenkJP14 HRESET/TRST joined isolated 182702e6014SWolfgang Denk 183702e6014SWolfgang DenkJP15 PWR ON when AC pwr use S1 for on/off 184702e6014SWolfgang Denk 185702e6014SWolfgang DenkJP16 Demo LEDs lit not lit 186702e6014SWolfgang Denk 187702e6014SWolfgang DenkJP19 PCI mode PCI PCI-X 188702e6014SWolfgang Denk 189702e6014SWolfgang Denk 190702e6014SWolfgang Denk[*]JP12, when jumpered parallel to the SODIMM, puts the boot flash 191702e6014SWolfgang Denkonto /CS0 and the SODIMM flash on /CS6 (default). When JP12 192702e6014SWolfgang Denkis jumpered parallel to the LBC-SDRAM, then /CS0 is for the 193702e6014SWolfgang DenkSODIMM flash and /CS6 is for the boot flash. Note that in this 194702e6014SWolfgang Denkalternate setting, you also need to switch SW2.8 to ON. 195702e6014SWolfgang DenkSee the setting CONFIG_SYS_ALT_BOOT if you want to use this setting 196*a187559eSBin Mengand boot U-Boot from the 64MB SODIMM 197702e6014SWolfgang Denk 198702e6014SWolfgang Denk 199702e6014SWolfgang Denk Switches: 200702e6014SWolfgang Denk 201702e6014SWolfgang DenkThe defaults are marked with a * 202702e6014SWolfgang Denk 203702e6014SWolfgang DenkName Desc. ON OFF 204702e6014SWolfgang Denk------------------------------------------------------------------ 205702e6014SWolfgang DenkS1 Pwr toggle n/a n/a 206702e6014SWolfgang Denk 207702e6014SWolfgang DenkSW2.1 CFG_SYS_PLL0 1 0* 208702e6014SWolfgang DenkSW2.2 CFG_SYS_PLL1 1* 0 209702e6014SWolfgang DenkSW2.3 CFG_SYS_PLL2 1* 0 210702e6014SWolfgang DenkSW2.4 CFG_SYS_PLL3 1 0* 211702e6014SWolfgang DenkSW2.5 CFG_CORE_PLL0 1* 0 212702e6014SWolfgang DenkSW2.6 CFG_CORE_PLL1 1 0* 213702e6014SWolfgang DenkSW2.7 CFG_CORE_PLL2 1* 0 214702e6014SWolfgang DenkSW2.8 CFG_ROM_LOC1 1 0* 215702e6014SWolfgang Denk 216702e6014SWolfgang DenkSW3.1 CFG_HOST_AGT0 1* 0 217702e6014SWolfgang DenkSW3.2 CFG_HOST_AGT1 1* 0 218702e6014SWolfgang DenkSW3.3 CFG_HOST_AGT2 1* 0 219702e6014SWolfgang DenkSW3.4 CFG_IO_PORTS0 1* 0 220702e6014SWolfgang DenkSW3.5 CFG_IO_PORTS0 1 0* 221702e6014SWolfgang DenkSW3.6 CFG_IO_PORTS0 1 0* 222702e6014SWolfgang Denk 223702e6014SWolfgang DenkSerDes CLK(MHz) SW5.1 SW5.2 224702e6014SWolfgang Denk---------------------------------------------- 225702e6014SWolfgang Denk25 0 0 226702e6014SWolfgang Denk100* 1 0 227702e6014SWolfgang Denk125 0 1 228702e6014SWolfgang Denk200 1 1 229702e6014SWolfgang Denk 230702e6014SWolfgang DenkSerDes CLK spread SW5.3 SW5.4 231702e6014SWolfgang Denk---------------------------------------------- 232702e6014SWolfgang Denk+/- 0.25% 0 0 233702e6014SWolfgang Denk-0.50% 1 0 234702e6014SWolfgang Denk-0.75% 0 1 235702e6014SWolfgang DenkNo Spread* 1 1 236702e6014SWolfgang Denk 237702e6014SWolfgang DenkSW4 settings are readable from the EPLD and are currently not used for 238702e6014SWolfgang Denkany hardware settings (i.e. user configuration switches). 239702e6014SWolfgang Denk 240702e6014SWolfgang Denk LEDs: 241702e6014SWolfgang Denk 242702e6014SWolfgang DenkName Desc. ON OFF 243702e6014SWolfgang Denk------------------------------------------------------------------ 244702e6014SWolfgang DenkD13 PCI/PCI-X PCI-X PCI 245702e6014SWolfgang DenkD14 3.3V PWR 3.3V no power 246702e6014SWolfgang DenkD15 SYSCLK 66MHz 33MHz 247702e6014SWolfgang Denk 248702e6014SWolfgang Denk 249702e6014SWolfgang Denk Default Memory Map: 250702e6014SWolfgang Denk 251702e6014SWolfgang Denkstart end CS<n> width Desc. 252702e6014SWolfgang Denk---------------------------------------------------------------------- 253702e6014SWolfgang Denk0000_0000 0fff_ffff MCS0,1 64 DDR2 (256MB) 254702e6014SWolfgang Denkf000_0000 f7ff_ffff CS3,4 32 LB SDRAM (128MB) 255702e6014SWolfgang Denkf800_0000 f8b0_1fff CS5 - EPLD 256702e6014SWolfgang Denkfb80_0000 ff7f_ffff CS6 32 SODIMM flash (64MB) [*] 257702e6014SWolfgang Denkff80_0000 ffff_ffff CS0 8 Boot flash (8MB) 258702e6014SWolfgang Denk 259702e6014SWolfgang Denk[*] fb80 represents the default programmed by WR JTAG register files, 260*a187559eSBin Meng but U-Boot places the flash at either ec00 or fc00 based on JP12. 261702e6014SWolfgang Denk 262702e6014SWolfgang DenkThe EPLD on CS5 demuxes the following devices at the following offsets: 263702e6014SWolfgang Denk 264702e6014SWolfgang Denkoffset size width device 265702e6014SWolfgang Denk-------------------------------------------------------- 266702e6014SWolfgang Denk0 1fff 8 7 segment display LED 267702e6014SWolfgang Denk10_0000 1fff 4 user switches 268702e6014SWolfgang Denk30_0000 1fff 4 HW Rev. register 269702e6014SWolfgang Denkb0_0000 1fff 8 8kB EEPROM 270