Blame view

doc/README.srio-boot-corenet 4.3 KB
006f37f69   Liu Gang   powerpc/corenet_d...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  ------------------------------
  SRIO Boot on Corenet Platforms
  ------------------------------
  
  For some PowerPC processors with SRIO interface, boot location can be configured
  to SRIO by RCW. The processor booting from SRIO can do without flash for u-boot
  image, ucode and ENV. All the images can be fetched from another processor's
  memory space by SRIO link connected between them.
  
  This document describes the processes based on an example implemented on P4080DS
  platforms and a RCW example with boot from SRIO configuration.
  
  Environment of the SRIO boot:
  	a) Master and slave can be SOCs in one board or SOCs in separate boards.
  	b) They are connected with SRIO links, whether 1x or 4x, and directly or
  	   through switch system.
  	c) Only Master has NorFlash for booting, and all the Master's and Slave's
  	   U-Boot images, UCodes will be stored in this flash.
  	d) Slave has its own EEPROM for RCW and PBI.
  	e) Slave's RCW should configure the SerDes for SRIO boot port, set the boot
51928df64   Liu Gang   powerpc/corenet_d...
21
  	   location to SRIO, and holdoff all the cores.
006f37f69   Liu Gang   powerpc/corenet_d...
22
23
24
25
26
27
28
29
30
31
32
  
  	----------        -----------             -----------
  	|		  |       |         |             |         |
  	|		  |       |         |             |         |
  	| NorFlash|<----->| Master  |    SRIO     |  Slave  |<---->[EEPROM]
  	|		  |       |         |<===========>|         |
  	|		  |       |         |             |         |
  	----------        -----------             -----------
  
  The example based on P4080DS platform:
  	Two P4080DS platforms can be used to implement the boot from SRIO. Their SRIO
51928df64   Liu Gang   powerpc/corenet_d...
33
  	ports 1 will be connected directly and will be used for the boot from SRIO.
006f37f69   Liu Gang   powerpc/corenet_d...
34

51928df64   Liu Gang   powerpc/corenet_d...
35
  	1. Slave's RCW example for boot from SRIO port 1 and all cores in holdoff.
006f37f69   Liu Gang   powerpc/corenet_d...
36
37
38
39
40
  		00000000: aa55 aa55 010e 0100 0c58 0000 0000 0000
  		00000010: 1818 1818 0000 8888 7440 4000 0000 2000
  		00000020: f440 0000 0100 0000 0000 0000 0000 0000
  		00000030: 0000 0000 0083 0000 0000 0000 0000 0000
  		00000040: 0000 0000 0000 0000 0813 8040 063c 778f
51928df64   Liu Gang   powerpc/corenet_d...
41
42
  	2. Sequence in Step by Step.
  		a) Update RCW for slave with boot from SRIO port 1 configuration.
006f37f69   Liu Gang   powerpc/corenet_d...
43
44
  		b) Program slave's U-Boot image, UCode, and ENV parameters into master's
  		   NorFlash.
51928df64   Liu Gang   powerpc/corenet_d...
45
46
47
48
49
  		c) Set environment variable "bootmaster" to "SRIO1" and save environment
  		   for master.
  					setenv bootmaster SRIO1
  					saveenv
  		d) Restart up master and it will boot up normally from its NorFlash.
006f37f69   Liu Gang   powerpc/corenet_d...
50
  		   Then, it will finish necessary configurations for slave's boot from
51928df64   Liu Gang   powerpc/corenet_d...
51
52
  		   SRIO port 1.
  		e) Master will set inbound SRIO windows covered slave's U-Boot image stored
006f37f69   Liu Gang   powerpc/corenet_d...
53
  		   in master's NorFlash.
51928df64   Liu Gang   powerpc/corenet_d...
54
55
56
57
58
59
60
61
  		f) Master will set an inbound SRIO window covered slave's UCode and ENV
  		   stored in master's NorFlash.
  		g) Master will set outbound SRIO windows in order to configure slave's
  		   registers for the core's releasing.
  		h) Since all cores of slave in holdoff, slave should be powered on before all
  		   the above master's steps, and wait to be released by master. In the
  		   startup phase of the slave from SRIO, it will finish some necessary
  		   configurations.
006f37f69   Liu Gang   powerpc/corenet_d...
62
  		i) Slave will set a specific TLB entry for the boot process.
51928df64   Liu Gang   powerpc/corenet_d...
63
  		j) Slave will set a LAW entry with the TargetID SRIO port 1 for the boot.
006f37f69   Liu Gang   powerpc/corenet_d...
64
65
  		k) Slave will set a specific TLB entry in order to fetch UCode and ENV
  		   from master.
51928df64   Liu Gang   powerpc/corenet_d...
66
  		l) Slave will set a LAW entry with the TargetID SRIO port 1 for UCode and ENV.
006f37f69   Liu Gang   powerpc/corenet_d...
67
68
  
  How to use this feature:
51928df64   Liu Gang   powerpc/corenet_d...
69
  	To use this feature, you need to focus those points.
006f37f69   Liu Gang   powerpc/corenet_d...
70
71
  
  	1. Slave's RCW with SRIO boot configurations, and all cores in holdoff
51928df64   Liu Gang   powerpc/corenet_d...
72
  	   configurations.
006f37f69   Liu Gang   powerpc/corenet_d...
73
74
75
  	   Please refer to the examples given above.
  
  	2. U-Boot image's compilation.
51928df64   Liu Gang   powerpc/corenet_d...
76
  		For master, U-Boot image should be generated normally.
006f37f69   Liu Gang   powerpc/corenet_d...
77
78
  
  		For example, master U-Boot image used on P4080DS should be compiled with
51928df64   Liu Gang   powerpc/corenet_d...
79
  				make P4080DS_config.
006f37f69   Liu Gang   powerpc/corenet_d...
80
81
82
83
84
85
86
87
88
89
  
  		For slave, U-Boot image should be generated specifically by
  
  				make xxxx_SRIOBOOT_SLAVE_config.
  
  		For example, slave U-Boot image used on P4080DS should be compiled with
  
  				make P4080DS_SRIOBOOT_SLAVE_config.
  
  	3. Necessary modifications based on a specific environment.
51928df64   Liu Gang   powerpc/corenet_d...
90
91
92
  		For a specific environment, the addresses of the slave's U-Boot image,
  		UCode, ENV stored in master's NorFlash, and any other configurations
  		can be modified in the file:
006f37f69   Liu Gang   powerpc/corenet_d...
93
  					include/configs/corenet_ds.h.
51928df64   Liu Gang   powerpc/corenet_d...
94
95
96
97
  
  	4. Set and save the environment variable "bootmaster" with "SRIO1" or "SRIO2"
  	   for master, and then restart it in order to perform the role as a master
  	   for boot from SRIO.