...
To retrieve the SDK from SLAC, execute the following command on your host:
Code Block | ||
---|---|---|
| ||
gitwget clone http://www.slac.stanford.edu/projects/CTK/SDK/<architecture>.git-sdk-<tag>.tar.gz <install_path> tar -xzf <architecture>-sdk-<tag>.tar.gz <install_path> |
This will place the most recent current tag of the SDK into <install_path>
Info |
---|
If you wish a different tag, you may add the " |
...
Code Block |
---|
<install_path>/tools/install-sdk.sh
|
Note |
---|
The git clone option "-b" causes several "detached HEAD" warning messages. These are benign, but if you wish to suppress them, you may modify your global git configuration with:
|
Installation on the Target
We use tools in the host linux SDK to install update the target RTEMS with the OS SDK contents. The DTM serves the update package to DPM RCEs.
You will need the following available:
- the i86-linux SDK appropriate to your host machine
- the arm-rtems-rceCA9 or arm-linux-rceCA9 SDK
- The location of your target in "shelf/slot/bay/rce" space (like "katahdin/12/0/2")
- Optionally: the location of your new FPGA bitstream
RTEMS Core
OS System Files
Ensure that the target is booted into the corresponding OS:
Code Block |
---|
<i86_linux_SDK_path>/bin/dsl_identify [options] location
<i86_linux_SDK_path>/bin/dsl_reboot [options] -t rtems -b 1 location
-- or --
<i86_linux_SDK_path>/bin/dsl_reboot [options] -t linux -b 0 location |
Package the Package the RTEMS SDK into a tarball like so:
Code Block |
---|
<i86_linux_SDK_path>/tools/packageSDK <RTEMS_SDK<SDK_path> ~/foo.tar |
Then, install Upload the tarball onto your target at <location> to the DTM with:
Code Block |
---|
<i86_linux_SDK_path>/tools/updateRCEuploadSDK <location><dtm_location> ~/foo.tar |
This script logs its progress, so you can see where it is.
Warning |
---|
Note: prior to V0.4.0, the updateRCE command had the argument order <tarball> <location>. |
Linux Core
Package the arm-linux-rceCA9 SDK like you would for RTEMS, substituting the path to the arm-linux SDK for the RTEMS SDK. Install as above.
Bootstrap
Now, apply the updates to your target at <location> with:
Code Block |
---|
<i86_linux_SDK_path>/bin/dsl_update --ip <dtm_ip> --src /srv/nfs4/dsl --file tools/update-target.sh --id <update_id> --tmo <timeout in ms> [options] location |
Info |
---|
Use a minimum of 8000ms for the --tmo option |
Wait 20-30 seconds, then verify completion status of update:The bootstrap is dependent on the type of board you are updating. (dpm/dtm/zed/zc70x)
Code Block |
---|
<i86_linux_SDK_path>/tools/updateBOOTSTRAP <location> <RTEMS_SDK_path> [dpm|dtm|zed|zc70x]
|
FPGA bitstream
bin/dsl_identify [options] location |
Reboot the target to apply the update:The user has control of the FPGA bitstream, however a copy known to work with the RTEMS core is included with the RTEMS SDK.
Code Block |
---|
<i86_linux_SDK_path>/toolsbin/updateFPGA <location> <bitstream_path> dsl_reboot [options] location |
Troubleshooting and recovery
You've corrupted something, and you're stuck with a non-booting RCE
...