xref: /openbmc/u-boot/board/sbc8548/README (revision 57dc53a72460e8e301fa1cc7951b41db8e731485)
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