]> git.ipfire.org Git - people/ms/u-boot.git/blame - doc/README.mpc85xxads
lib/asm-offsets - make GD_RELOCADDR, GD_RELOC_OFF & GD_START_ADDR_SP available for...
[people/ms/u-boot.git] / doc / README.mpc85xxads
CommitLineData
42d1f039
WD
1Motorola MPC8540ADS and MPC8560ADS board
2
9aea9530
WD
3Created 10/15/03 Xianghua Xiao
4Updated 13-July-2004 Jon Loeliger
42d1f039
WD
5-----------------------------------------
6
4654af27 70. Toolchain
9aea9530
WD
8
9 The Binutils in current ELDK toolchain will not support MPC85xx
03f5c550 10 chip. You need to use binutils-2.14.tar.bz2 (or newer) from
9aea9530
WD
11 http://ftp.gnu.org/gnu/binutils.
12
13 The 8540/8560 ADS code base is known to compile using:
14 gcc (GCC) 3.2.2 20030217 (Yellow Dog Linux 3.0 3.2.2-2a)
15
4654af27 16
42d1f039 171. SWITCH SETTINGS & JUMPERS
48abe7bf 18
9aea9530
WD
191.0 Nomenclature
20
21 For some reason, the HW designers describe the switch settings
22 in terms of 0 and 1, and then map that to physical switches where
23 the label "On" refers to logic 0 and "Off" (unlabeled) is logic 1.
24 Luckily, we're SW types and virtual settings are handled daily.
25
26 The switches for the Rev A board are numbered differently than
27 for the Pilot board. Oh yeah.
28
29 Switch bits are numbered 1 through, like, 4 6 8 or 10, but the
30 bits may contribute to signals that are numbered based at 0,
31 and some of those signals may be high-bit-number-0 too. Heed
32 well the names and labels and do not get confused.
33
34 "Off" == 1
35 "On" == 0
36
37 SW18 is switch 18 as silk-screened onto the board.
c46bf09e 38 SW4[8] is the bit labeled 8 on Switch 4.
9aea9530
WD
39 SW2[1:6] refers to bits labeled 1 through 6 in order on switch 2
40 SW3[7:1] refers to bits labeled 7 through 1 in order on switch 3
41
421.1 For the MPC85xxADS Pilot Board
43
44 First, make sure the board default setting is consistent with the document
42d1f039 45 shipped with your board. Then apply the following changes:
9aea9530 46 SW3[1-6]="all OFF" (boot from 32bit flash, no boot sequence is used)
42d1f039 47 SW10[2-6]="all OFF" (turn on CPM SCC for serial port,works for 8540/8560)
0ac6f8b7 48 SW11[2]='OFF for 8560, ON for 8540' (toggle 8540.8560 mode)
547b4cb2 49 SW11[7]='ON' (rev2), 'OFF' (rev1)
42d1f039
WD
50 SW4[7-8]="OFF OFF" (enable serial ports,I'm using the top serial connector)
51 SW22[1-4]="OFF OFF ON OFF"
52 SW5[1-10[="ON ON OFF OFF OFF OFF OFF OFF OFF OFF"
53 J1 = "Enable Prog" (Make sure your flash is programmable for development)
48abe7bf 54
9aea9530 55 If you want to test PCI functionality with a 33Mhz PCI card, you will
547b4cb2
WD
56 have to change the system clock from the default 66Mhz to 33Mhz by
57 setting SW15[1]="OFF" and SW17[8]="OFF". After that you may also need
58 double your platform clock(SW6) because the system clock is now only
0ac6f8b7
WD
59 half of its original value. For example, if at 66MHz your system
60 clock showed SW6[0:1] = 01, then at 33MHz SW6[0:1] it should be 10.
48abe7bf 61
9aea9530
WD
62 SW17[8] ------+ SW6
63 SW15[1] ----+ | [0:1]
64 V V V V
65 33MHz 1 1 1 0
66 66MHz 0 0 0 1
67
68 Hmmm... That SW6 setting description is incomplete but it works.
69
70
711.3 For the MPC85xxADS Rev A Board
72
73 As shipped, the board should be a 33MHz PCI bus with a CPU Clock
74 rate of 825 +/- fuzz:
75
76 Clocks: CPU: 825 MHz, CCB: 330 MHz, DDR: 165 MHz, LBC: 82 MHz
77
78 For 33MHz PCI, the switch settings should be like this:
79
80 SW18[7:1] = 0100001 = M==33 => 33MHz
81 SW18[8] = 1 => PWD Divider == 16
82 SW16[1:2] = 11 => N == 16 as PWD==1
83
84 Use the magical formula:
85 Fout (MHz) = 16 * M / N = 16 * 33 / 16 = 33 MHz
86
87 SW7[1:4] = 1010 = 10 => 10 x 33 = 330 CCB Sysclk
88 SW7[5:6] = 01 => 5:2 x 330 = 825 Core clock
89
90
91 For 66MHz PCI, the switch settings should be like this:
92
93 SW18[7:1] = 0100001 = M==33 => 33MHz
94 SW18[8] = 0 => PWD Divider == 1
95 SW16[1:2] = 01 => N == 8 as PWD == 0
96
97 Use the magical formula:
98 Fout (MHz) = 16 * M / N = 16 * 33 / 8 = 66 MHz
99
100 SW7[1:4] = 0101 = 5 => 5 x 66 = 330 CCB Sysclk
101 SW7[5:6] = 01 => 5:2 x 330 = 825 Core clock
547b4cb2 102
38433ccc
MM
103 In order to use PCI-X (only in the first PCI slot. The one with
104 the RIO connector), you need to set SW1[4] (config) to 1 (off).
105 Also, configure the board to run PCI at 66 MHz.
42d1f039
WD
106
1072. MEMORY MAP TO WORK WITH LINUX KERNEL
547b4cb2
WD
108
1092.1. For the initial bringup, we adopted a consistent memory scheme
110 between u-boot and linux kernel, you can customize it based on your
111 system requirements:
112
9aea9530
WD
113 0x0000_0000 0x7fff_ffff DDR 2G
114 0x8000_0000 0x9fff_ffff PCI MEM 512M
115 0xc000_0000 0xdfff_ffff Rapid IO 512M
116 0xe000_0000 0xe00f_ffff CCSR 1M
117 0xe200_0000 0xe2ff_ffff PCI IO 16M
118 0xf000_0000 0xf7ff_ffff SDRAM 128M
119 0xf800_0000 0xf80f_ffff BCSR 1M
120 0xff00_0000 0xffff_ffff FLASH (boot bank) 16M
547b4cb2
WD
121
1222.2 We are submitting Linux kernel patches for MPC8540 and MPC8560. You
123 can download them from linuxppc-2.4 public source. Please make sure the
124 kernel's ppcboot.h is consistent with U-Boot's u-boot.h. You can use two
125 default configuration files as your starting points to configure the
126 kernel:
a47a12be
SR
127 arch/powerpc/configs/mpc8540_ads_defconfig
128 arch/powerpc/configs/mpc8560_ads_defconfig
42d1f039
WD
129
1303. DEFINITIONS AND COMPILATION
48abe7bf 131
0ac6f8b7
WD
1323.1 Explanation on NEW definitions in:
133 include/configs/MPC8540ADS.h
134 include/configs/MPC8560ADS.h
135
0c8721a4 136 CONFIG_BOOKE BOOKE(e.g. Motorola MPC85xx, AMCC 440, etc)
9aea9530
WD
137 CONFIG_E500 BOOKE e500 family(Motorola)
138 CONFIG_MPC85xx MPC8540,MPC8560 and their derivatives
139 CONFIG_MPC8540 MPC8540 specific
9aea9530
WD
140 CONFIG_MPC8540ADS MPC8540ADS board specific
141 CONFIG_MPC8560ADS MPC8560ADS board specific
142 CONFIG_TSEC_ENET Use on-chip 10/100/1000 ethernet for networking
143 CONFIG_SPD_EEPROM Use SPD EEPROM for DDR auto configuration, you can
144 also manual config the DDR after undef this
0ac6f8b7 145 definition.
9aea9530 146 CONFIG_DDR_ECC only for ECC DDR module
810c4427
BB
147 CONFIG_SYS_FSL_ERRATUM_DDR_MSYNC_IN DLL fix on some ADS boards needed
148 for more stability.
d9b94f28 149 CONFIG_HAS_FEC If an FEC is on chip, set to 1, else 0.
0ac6f8b7
WD
150
151Other than the above definitions, the rest in the config files are
152straightforward.
153
42d1f039 154
42d1f039 1553.2 Compilation
42d1f039 156
0ac6f8b7
WD
157 Assuming you're using BASH shell:
158
159 export CROSS_COMPILE=your-cross-compile-prefix
160 cd u-boot
161 make distclean
162 make MPC8560ADS_config (or make MPC8540ADS_config)
163 make
48abe7bf 164
547b4cb2 1654. Notes:
48abe7bf 166
547b4cb2 1674.1 When connecting with kermit, the following commands must be present.in
0ac6f8b7
WD
168 your .kermrc file. These are especially important when booting as
169 MPC8560, as the serial console will not work without them:
170
171 set speed 115200
172 set carrier-watch off
173 set handshake none
174 set flow-control none
175 robust
176
177
1784.2 Sometimes after U-Boot is up, the 'tftp' won't work well with TSEC
179 ethernet. If that happens, you can try the following steps to make
180 network work:
181
182 MPC8560ADS>tftp 1000000 pImage
183 (if it hangs, use Ctrl-C to quit)
184 MPC8560ADS>nm fdf24524
185 >0
186 >1
187 >. (to quit this memory operation)
188 MPC8560ADS>tftp 1000000 pImage
189
1904.3 If you're one of the early developers using the Rev1 8540/8560 chips,
191 please use U-Boot 1.0.0, as the newer silicon will only support Rev2
192 and future revisions of 8540/8560.
193
547b4cb2
WD
194
1954.4 Reflash U-boot Image using U-boot
196
d9b94f28
JL
197 tftp 10000 u-boot.bin
198 protect off fff80000 ffffffff
199 erase fff80000 ffffffff
200 cp.b 10000 fff80000 80000
547b4cb2 201
42d1f039 202
0ac6f8b7 2034.5 Reflash U-Boot with a BDI-2000
48abe7bf 204
9aea9530 205 BDI> erase 0xFFF80000 0x4000 0x20
0ac6f8b7
WD
206 BDI> prog 0xfff80000 u-boot.bin.8560ads
207 BDI> verify
208
209
9aea9530 2105. Screen dump MPC8540ADS board
42d1f039 211
9aea9530
WD
212U-Boot 1.1.2(pq3-20040707-0) (Jul 6 2004 - 17:34:25)
213
214Freescale PowerPC
215 Core: E500, Version: 2.0, (0x80200020)
216 System: 8540, Version: 2.0, (0x80300020)
217 Clocks: CPU: 825 MHz, CCB: 330 MHz, DDR: 165 MHz, LBC: 82 MHz
218 L1 D-cache 32KB, L1 I-cache 32KB enabled.
219Board: ADS
220 PCI1: 32 bit, 66 MHz (compiled)
42d1f039 221I2C: ready
9aea9530
WD
222DRAM: Initializing
223 SDRAM: 64 MB
224 DDR: 256 MB
42d1f039
WD
225FLASH: 16 MB
226L2 cache enabled: 256KB
227*** Warning - bad CRC, using default environment
228
229In: serial
230Out: serial
231Err: serial
9aea9530
WD
232Net: MOTO ENET0: PHY is Marvell 88E1011S (1410c62)
233MOTO ENET1: PHY is Marvell 88E1011S (1410c62)
234MOTO ENET2: PHY is Davicom DM9161E (181b881)
235MOTO ENET0, MOTO ENET1, MOTO ENET2
42d1f039 236Hit any key to stop autoboot: 0
9aea9530
WD
237=>
238=> fli
42d1f039
WD
239
240Bank # 1: Intel 28F640J3A (64 Mbit, 64 x 128K)
241 Size: 16 MB in 64 Sectors
242 Sector Start Addresses:
9aea9530
WD
243 FF000000 FF040000 FF080000 FF0C0000 FF100000
244 FF140000 FF180000 FF1C0000 FF200000 FF240000
245 FF280000 FF2C0000 FF300000 FF340000 FF380000
246 FF3C0000 FF400000 FF440000 FF480000 FF4C0000
247 FF500000 FF540000 FF580000 FF5C0000 FF600000
248 FF640000 FF680000 FF6C0000 FF700000 FF740000
249 FF780000 FF7C0000 FF800000 FF840000 FF880000
250 FF8C0000 FF900000 FF940000 FF980000 FF9C0000
251 FFA00000 FFA40000 FFA80000 FFAC0000 FFB00000
252 FFB40000 FFB80000 FFBC0000 FFC00000 FFC40000
253 FFC80000 FFCC0000 FFD00000 FFD40000 FFD80000
254 FFDC0000 FFE00000 FFE40000 FFE80000 FFEC0000
255 FFF00000 FFF40000 FFF80000 (RO) FFFC0000 (RO)
256
257=> bdinfo
42d1f039 258memstart = 0x00000000
9aea9530 259memsize = 0x10000000
42d1f039
WD
260flashstart = 0xFF000000
261flashsize = 0x01000000
262flashoffset = 0x00000000
263sramstart = 0x00000000
264sramsize = 0x00000000
9aea9530
WD
265immr_base = 0xE0000000
266bootflags = 0xE4013F80
267intfreq = 825 MHz
268busfreq = 330 MHz
269ethaddr = 00:E0:0C:00:00:FD
270eth1addr = 00:E0:0C:00:01:FD
271eth2addr = 00:E0:0C:00:02:FD
272IP addr = 192.168.1.253
42d1f039 273baudrate = 115200 bps
42d1f039 274
42d1f039 275
9aea9530
WD
276=> printenv
277bootcmd=setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off console=$consoledev,$baudrate $othbootargs;tftp $loadaddr $bootfile;bootm $loadaddr
278ramboot=setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;bootm $loadaddr $ramdiskaddr
279nfsboot=setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off console=$consoledev,$baudrate $othbootargs;tftp $loadaddr $bootfile;bootm $loadaddr
280bootdelay=10
42d1f039
WD
281baudrate=115200
282loads_echo=1
9aea9530
WD
283ethaddr=00:E0:0C:00:00:FD
284eth1addr=00:E0:0C:00:01:FD
285eth2addr=00:E0:0C:00:02:FD
286ipaddr=192.168.1.253
287serverip=192.168.1.1
288rootpath=/nfsroot
289gatewayip=192.168.1.1
290netmask=255.255.255.0
291hostname=unknown
292bootfile=your.uImage
293loadaddr=200000
294netdev=eth0
295consoledev=ttyS0
296ramdiskaddr=400000
297ramdiskfile=your.ramdisk.u-boot
42d1f039
WD
298stdin=serial
299stdout=serial
300stderr=serial
9aea9530 301ethact=MOTO ENET0
42d1f039 302
9aea9530 303Environment size: 1020/8188 bytes