xref: /rk3399_rockchip-uboot/board/sbc8548/README (revision 702e6014f15b307f144fa03ecaf83a8446c6802a)
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