This feature allows multiple devkits (CAT-DEV) to be connected to, and controlled from, a single host PC without using virtual machines (VMs).
To open a multi-devkit session, open a Windows CMD shell and run
This batch file will establish the multi-devkit environment variables necessary to run the session.
To make use of a multi-devkit session, the session environment must be initialized by setting the name and IP of the devkit it will make use of. This can be performed using either one of the following methods.
Usage: setbridge -default <name> [<ip-address>]
See the CAT-DEV QuickStart Guide for more information.
Usage: cafe.bat -multi [-bridge <name> <ip-address>] [<shell-command>]
||Specifies the name and IP address of the devkit that you wish to use.|
||Command(s) to run in the open Cafe window.|
If the command string needs to pass options, it is necessary to enclose the entire command in single quotes to prevent the bash shell from trying to interpret them.
Depending on the command, you may also need to use bash's
cafe.bat -multi -bridge devkit_name devkit_ip -c 'caferun -b $CAFE_ROOT/system/bin/ghs/cafe/demo/helloworld/DEBUG/helloworld.rpx'
Also, note that most bash shells start in the
$HOME directory rather than
$CAFE_ROOT, so be aware of any relative paths in your command.
cd $CAFE_ROOT to the end of your
.bashrc file to start in the proper working directory.
An alternative to using the
-multi option is to create desktop shortcuts to
This simplifies the opening of multi-devkit windows.
All scripts and utilities work as previously but will only affect the devkit associated with this session.
cafeon will sync the data directory and will overwrite any settings previously saved in the System Config Tool.
To prevent these settings from being overwritten, use the
-nosync option. If
cafeon is the first command used in the session
window, then the
-nosync option cannot be used and will exit with the appropriate error message.
Usage: cafeon -nosync
caferun will sync the data directory and will remove any files that were created by the running title.
To prevent the data directory from being synced, use the
-z option. If
caferun is the first command used in the session
window then the
-z option cannot be used and will exit with the appropriate error message.
Usage: caferun -z -b $CAFE_ROOT/system/bin/ghs/cafe/demo/helloworld/DEBUG/helloworld.rpx
In multi-devkit SDK operations, the session data directory is synchronized during
cafex before the title is
launched. Occasionally, this automatic synchronization has unwanted side effects. For example: Deleting / updating files with persisted data, settings, etc.
To resolve this problem, perform the following.
cafeonto disable automatic synchronization.
syncsession utility calls
synctool to perform the work of syncing the data directories.
CAFE_SAVE_DIRis changed from the default value, it will no longer be synced when running from a multi-devkit window.
Cleaning a session is generally not needed. If you would like to remove all of the temporary folders and files that were created during running of your code,
Each session has the following environment variables that contain session specific information. Developers should not change the value of any of these variables as there may be unpredictable side effects.
||Name of the session. This is based on the IP address of the devkit|
||Prefix to be added to the start of session specific path and file names. Empty in a non multi-devkit window.|
||Session TCP port number for debug output. The default is
||Session TCP port number for debugger connectivity and control. The default is
||Session TCP port number for Host IO. The default is
||Session TCP port for soft-launch control. The default is
||Session TCP port for PCFS over SATA transport. The default is
||Session specific data directory. This is synced from
||Session specific code directory where code is ran from. This is sync's from the
At this time, it is recommended that no more than 16 Devkits be used with one PC. The recommendation is based on tests using the host PC specified below. Your results may vary depending on your PC and network environment.
|Make/Model||Dell Precision T3500.|
|Operating System||Windows 7 (64-bit) with SP1.|
|Processor||Intel Xeon Quad Core @ 2.72GHz.|
|Memory||12 GB RAM.|
|Disk||1TB, 7200RPM Internal Hard Drive.|
|Network||Broadcom NetXtreme Gigabit Controller.|
Three different Networks were used that were connected by several gigabit switches.
16 CAT-DEVs were used.
A test was conducted using a dedicated PCFS stress test that performs random reads and writes using file sizes from 2B-1MB in size, and sustained for 1 hour.
Below is a table and screenshots of the results.
|Disk||Write: 4.1Mb/S, Read: Unavailable due to disk caching.|
The SDK cannot be built using a multi-devkit window. This is because the main OS image is rebuilt and will be located in
If an attempt is made to build the SDK, the following error will be produced:
build/make/multi_session_check.mk:16: Cannot build when multi session is enabled! build/make/multi_session_check.mk:17: *** Please open a non multi-session window and build again. Stop.
You will need to open a non multi-devkit window using
cafe.bat to build the SDK making sure that any open Cafe windows are not running any code.
No Cafe window (multi-devkit or not) can be running any code while building the SDK for a particular enlistment. Session specific data files are linked to the those being built in
and may be locked or have their contents changed while devkits are running. Running
make clobber in any SDK source directory ($CAFE_ROOT/system/src) calls
cafestop and since this has to be ran in a non multi-devkit window, all running devkits are stopped, regardless of the enlistment they are running in.
Caution must be used when using non multi-devkit windows with this feature. If any commands which
interact with the devkit, such as
cafestop are used in the non multi-devkit window, it will affect all devkits running. Even those in multi-devkit windows. Individual devkits are isolated only between multi-devkit windows.
Non multi-devkit windows do not have this isolation and may apply commands to more than one devkit.
Improper use may lead to unpredictable results.
Any existing desktop applications using the default HIO output port of 6003, will need to change its port number.
Use the session specific environment variable
SESSION_HIO_OUT_PORT to obtain the HIO port value for the session if not using 6003.
2014/09/23 Removed Caution and removed
cleansession to independent page.
2014/02/19 Replace refs to multi_cafe.bat.
2014/02/06 Removed references to MP1 and MP2.
2013/12/23 Added image links to full screen views.
2013/07/29 Updated the Session syncing section.
2013/05/08 Automated cleanup pass.
2013/04/05 Added Session Syncing section.
2013/03/13 Editorial updates.
2013/01/23 Updates for System Config Tool.
2012/09/12 Updated for initial release.
2012/07/26 Initial version.