|
@@ -18,7 +18,7 @@ Environment of the SRIO boot:
|
|
U-Boot images, UCodes will be stored in this flash.
|
|
U-Boot images, UCodes will be stored in this flash.
|
|
d) Slave has its own EEPROM for RCW and PBI.
|
|
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
|
|
e) Slave's RCW should configure the SerDes for SRIO boot port, set the boot
|
|
- location to SRIO, and holdoff all the cores if needed.
|
|
|
|
|
|
+ location to SRIO, and holdoff all the cores.
|
|
|
|
|
|
---------- ----------- -----------
|
|
---------- ----------- -----------
|
|
| | | | | |
|
|
| | | | | |
|
|
@@ -30,63 +30,55 @@ Environment of the SRIO boot:
|
|
|
|
|
|
The example based on P4080DS platform:
|
|
The example based on P4080DS platform:
|
|
Two P4080DS platforms can be used to implement the boot from SRIO. Their SRIO
|
|
Two P4080DS platforms can be used to implement the boot from SRIO. Their SRIO
|
|
- ports 0 will be connected directly and will be used for the boot from SRIO.
|
|
|
|
|
|
+ ports 1 will be connected directly and will be used for the boot from SRIO.
|
|
|
|
|
|
- 1. Slave's RCW example for boot from SRIO port 0 and core 0 not in holdoff.
|
|
|
|
- 00000000: aa55 aa55 010e 0100 0c58 0000 0000 0000
|
|
|
|
- 00000010: 1818 1818 0000 8888 7440 4000 0000 2000
|
|
|
|
- 00000020: f400 0000 0100 0000 0000 0000 0000 0000
|
|
|
|
- 00000030: 0000 0000 0083 0000 0000 0000 0000 0000
|
|
|
|
- 00000040: 0000 0000 0000 0000 0813 8040 698b 93fe
|
|
|
|
-
|
|
|
|
- 2. Slave's RCW example for boot from SRIO port 0 and all cores in holdoff.
|
|
|
|
|
|
+ 1. Slave's RCW example for boot from SRIO port 1 and all cores in holdoff.
|
|
00000000: aa55 aa55 010e 0100 0c58 0000 0000 0000
|
|
00000000: aa55 aa55 010e 0100 0c58 0000 0000 0000
|
|
00000010: 1818 1818 0000 8888 7440 4000 0000 2000
|
|
00000010: 1818 1818 0000 8888 7440 4000 0000 2000
|
|
00000020: f440 0000 0100 0000 0000 0000 0000 0000
|
|
00000020: f440 0000 0100 0000 0000 0000 0000 0000
|
|
00000030: 0000 0000 0083 0000 0000 0000 0000 0000
|
|
00000030: 0000 0000 0083 0000 0000 0000 0000 0000
|
|
00000040: 0000 0000 0000 0000 0813 8040 063c 778f
|
|
00000040: 0000 0000 0000 0000 0813 8040 063c 778f
|
|
|
|
|
|
- 3. Sequence in Step by Step.
|
|
|
|
- a) Update RCW for slave with boot from SRIO port 0 configuration.
|
|
|
|
|
|
+ 2. Sequence in Step by Step.
|
|
|
|
+ a) Update RCW for slave with boot from SRIO port 1 configuration.
|
|
b) Program slave's U-Boot image, UCode, and ENV parameters into master's
|
|
b) Program slave's U-Boot image, UCode, and ENV parameters into master's
|
|
NorFlash.
|
|
NorFlash.
|
|
- c) Start up master and it will boot up normally from its NorFlash.
|
|
|
|
|
|
+ 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.
|
|
Then, it will finish necessary configurations for slave's boot from
|
|
Then, it will finish necessary configurations for slave's boot from
|
|
- SRIO port 0.
|
|
|
|
- d) Master will set inbound SRIO windows covered slave's U-Boot image stored
|
|
|
|
|
|
+ SRIO port 1.
|
|
|
|
+ e) Master will set inbound SRIO windows covered slave's U-Boot image stored
|
|
in master's NorFlash.
|
|
in master's NorFlash.
|
|
- e) Master will set an inbound SRIO window covered slave's UCode stored in
|
|
|
|
- master's NorFlash.
|
|
|
|
- f) Master will set an inbound SRIO window covered slave's ENV stored in
|
|
|
|
- master's NorFlash.
|
|
|
|
- g) If need to release slave's core, master will set outbound SRIO windows
|
|
|
|
- in order to configure slave's registers for the core's releasing.
|
|
|
|
- h) If 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. If not all
|
|
|
|
- cores in holdoff, that means core 0 will start up normally, slave should
|
|
|
|
- be powered on after all the above master's steps. In the startup phase
|
|
|
|
- of the slave from SRIO, it will finish some necessary configurations.
|
|
|
|
|
|
+ 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.
|
|
i) Slave will set a specific TLB entry for the boot process.
|
|
i) Slave will set a specific TLB entry for the boot process.
|
|
- j) Slave will set a LAW entry with the TargetID SRIO port 0 for the boot.
|
|
|
|
|
|
+ j) Slave will set a LAW entry with the TargetID SRIO port 1 for the boot.
|
|
k) Slave will set a specific TLB entry in order to fetch UCode and ENV
|
|
k) Slave will set a specific TLB entry in order to fetch UCode and ENV
|
|
from master.
|
|
from master.
|
|
- l) Slave will set a LAW entry with the TargetID SRIO port 0 for UCode and ENV.
|
|
|
|
|
|
+ l) Slave will set a LAW entry with the TargetID SRIO port 1 for UCode and ENV.
|
|
|
|
|
|
How to use this feature:
|
|
How to use this feature:
|
|
- To use this feature, you need to focus three points.
|
|
|
|
|
|
+ To use this feature, you need to focus those points.
|
|
|
|
|
|
1. Slave's RCW with SRIO boot configurations, and all cores in holdoff
|
|
1. Slave's RCW with SRIO boot configurations, and all cores in holdoff
|
|
- configurations if needed.
|
|
|
|
|
|
+ configurations.
|
|
Please refer to the examples given above.
|
|
Please refer to the examples given above.
|
|
|
|
|
|
2. U-Boot image's compilation.
|
|
2. U-Boot image's compilation.
|
|
- For master, U-Boot image should be generated specifically by
|
|
|
|
-
|
|
|
|
- make xxxx_SRIOBOOT_MASTER_config.
|
|
|
|
|
|
+ For master, U-Boot image should be generated normally.
|
|
|
|
|
|
For example, master U-Boot image used on P4080DS should be compiled with
|
|
For example, master U-Boot image used on P4080DS should be compiled with
|
|
|
|
|
|
- make P4080DS_SRIOBOOT_MASTER_config.
|
|
|
|
|
|
+ make P4080DS_config.
|
|
|
|
|
|
For slave, U-Boot image should be generated specifically by
|
|
For slave, U-Boot image should be generated specifically by
|
|
|
|
|
|
@@ -97,7 +89,11 @@ How to use this feature:
|
|
make P4080DS_SRIOBOOT_SLAVE_config.
|
|
make P4080DS_SRIOBOOT_SLAVE_config.
|
|
|
|
|
|
3. Necessary modifications based on a specific environment.
|
|
3. Necessary modifications based on a specific environment.
|
|
- For a specific environment, the SRIO port for boot, 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:
|
|
|
|
|
|
+ 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:
|
|
include/configs/corenet_ds.h.
|
|
include/configs/corenet_ds.h.
|
|
|
|
+
|
|
|
|
+ 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.
|