xref: /OK3568_Linux_fs/u-boot/board/sbc8548/README (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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