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