Blame view

doc/README.mpc8572ds 4.29 KB
30837e5b2   Haiying Wang   Add README file f...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
  Overview
  --------
  MPC8572DS is a high-performance computing, evaluation and development platform
  supporting the mpc8572 PowerTM processor.
  
  Building U-boot
  -----------
  	make MPC8572DS_config
  	make
  
  Flash Banks
  -----------
  MPC8572DS board has two flash banks. They are both present on boot, but their
  locations can be swapped using the dip-switch SW9[1:2].
  
  Booting is always from the boot bank at 0xec00_0000.
  
  
  Memory Map
  ----------
  
  0xe800_0000 - 0xebff_ffff	Alernate bank		64MB
  0xec00_0000 - 0xefff_ffff	Boot bank		64MB
  
  0xebf8_0000 - 0xebff_ffff	Alternate u-boot address	512KB
  0xeff8_0000 - 0xefff_ffff	Boot u-boot address		512KB
  
  
  Flashing Images
  ---------------
  
  To place a new u-boot image in the alternate flash bank and then reset with that
   new image temporarily, use this:
  
  	tftp 1000000 u-boot.bin
  	erase ebf80000 ebffffff
  	cp.b 1000000 ebf80000 80000
  	pixis_reset altbank
  
  
  To program the image in the boot flash bank:
  
  	tftp 1000000 u-boot.bin
  	protect off all
  	erase eff80000 ffffffff
  	cp.b 1000000 eff80000 80000
  
  
  The pixis_reset command
  -----------------------
  The command - "pixis_reset", is introduced to reset mpc8572ds board
  using the FPGA sequencer.  When the board restarts, it has the option
  of using either the current or alternate flash bank as the boot
  image, with or without the watchdog timer enabled, and finally with
  or without frequency changes.
  
  Usage is;
  
  	pixis_reset
  	pixis_reset altbank
  	pixis_reset altbank wd
  	pixis_reset altbank cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio>
  	pixis_reset cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio>
  
  Examples:
  
  	/* reset to current bank, like "reset" command */
  	pixis_reset
  
  	/* reset board but use the to alternate flash bank */
  	pixis_reset altbank
  
  
  Using the Device Tree Source File
  ---------------------------------
  To create the DTB (Device Tree Binary) image file,
  use a command similar to this:
  
  	dtc -b 0 -f -I dts -O dtb mpc8572ds.dts > mpc8572ds.dtb
  
  Likely, that .dts file will come from here;
  
  	linux-2.6/arch/powerpc/boot/dts/mpc8572ds.dts
  
  
  Booting Linux
  -------------
  
  Place a linux uImage in the TFTP disk area.
  
  	tftp 1000000 uImage.8572
  	tftp c00000 mpc8572ds.dtb
  	bootm 1000000 - c00000
  
  
  Implementing AMP(Asymmetric MultiProcessing)
  -------------
  1. Build kernel image for core0:
f15c6515f   Wolfgang Denk   Coding style clea...
99
  	a. $ make 85xx/mpc8572_ds_defconfig
30837e5b2   Haiying Wang   Add README file f...
100

f15c6515f   Wolfgang Denk   Coding style clea...
101
102
  	b. $ make menuconfig
  	   - un-select "Processor support"->"Symetric multi-processing support"
30837e5b2   Haiying Wang   Add README file f...
103

f15c6515f   Wolfgang Denk   Coding style clea...
104
  	c. $ make uImage
30837e5b2   Haiying Wang   Add README file f...
105
106
107
108
  
  	d. $ cp arch/powerpc/boot/uImage /tftpboot/uImage.core0
  
  2. Build kernel image for core1:
f15c6515f   Wolfgang Denk   Coding style clea...
109
  	a. $ make 85xx/mpc8572_ds_defconfig
30837e5b2   Haiying Wang   Add README file f...
110

f15c6515f   Wolfgang Denk   Coding style clea...
111
112
113
114
115
116
117
118
119
120
  	b. $ make menuconfig
  	   - Un-select "Processor support"->"Symetric multi-processing support"
  	   - Select "Advanced setup" -> " Prompt for advanced kernel
  	     configuration options"
  		- Select "Set physical address where the kernel is loaded" and
  		  set it to 0x20000000, asssuming core1 will start from 512MB.
  		- Select "Set custom page offset address"
  		- Select "Set custom kernel base address"
  		- Select "Set maximum low memory"
  	   - "Exit" and save the selection.
30837e5b2   Haiying Wang   Add README file f...
121

f15c6515f   Wolfgang Denk   Coding style clea...
122
  	c. $ make uImage
30837e5b2   Haiying Wang   Add README file f...
123
124
125
126
  
  	d. $ cp arch/powerpc/boot/uImage /tftpboot/uImage.core1
  
  3. Create dtb for core0:
f15c6515f   Wolfgang Denk   Coding style clea...
127
  	$ dtc -I dts -O dtb -f -b 0 arch/powerpc/boot/dts/mpc8572ds_core0.dts > /tftpboot/mpc8572ds_core0.dtb
30837e5b2   Haiying Wang   Add README file f...
128
129
  
  4. Create dtb for core1:
f15c6515f   Wolfgang Denk   Coding style clea...
130
  	$ dtc -I dts -O dtb -f -b 1 arch/powerpc/boot/dts/mpc8572ds_core1.dts > /tftpboot/mpc8572ds_core1.dtb
30837e5b2   Haiying Wang   Add README file f...
131
132
  
  5. Bring up two cores separately:
f15c6515f   Wolfgang Denk   Coding style clea...
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
  	a. Power on the board, under u-boot prompt:
  		=> setenv <serverip>
  		=> setenv <ipaddr>
  		=> setenv bootargs root=/dev/ram rw console=ttyS0,115200
  	b. Bring up core1's kernel first:
  		=> setenv bootm_low 0x20000000
  		=> setenv bootm_size 0x10000000
  		=> tftp 21000000 8572/uImage.core1
  		=> tftp 22000000 8572/ramdiskfile
  		=> tftp 20c00000 8572/mpc8572ds_core1.dtb
  		=> interrupts off
  		=> bootm start 21000000 22000000 20c00000
  		=> bootm loados
  		=> bootm ramdisk
  		=> bootm fdt
  		=> fdt boardsetup
  		=> fdt chosen $initrd_start $initrd_end
  		=> bootm prep
  		=> cpu 1 release $bootm_low - $fdtaddr -
  	c. Bring up core0's kernel(on the same u-boot console):
  		=> setenv bootm_low 0
  		=> setenv bootm_size 0x20000000
  		=> tftp 1000000 8572/uImage.core0
  		=> tftp 2000000 8572/ramdiskfile
  		=> tftp c00000 8572/mpc8572ds_core0.dtb
  		=> bootm 1000000 2000000 c00000
30837e5b2   Haiying Wang   Add README file f...
159
160
161
  
  Please note only core0 will run u-boot, core1 starts kernel directly after
  "cpu release" command is issued.