Author: Cesar FUGUET TORTOLERO Platform tsar_generic_iob with fault tolerance ============================================== Prerequisites: ============== 1. Checkout the distributed bootloader in another directory (e.g. user home directory) svn co https://www-soc.lip6.fr/svn/tsar_dist_boot/ 2. In order to execute the distributed bootloader on this platform, you need to create first a symbolic link called "soft" to the distributed bootloader working directory (obtained during the step 1): ln -s soft 3. Then, you have to set the TSARPATH environment variable to the path of the tsar repo's working directory In bash: export TSARPATH= In tcsh: setenv TSARPATH The TSARPATH environment variable is used by the soclib.conf file in order to add the hardware components with the fault-tolerance add-ons in the soclib-cc description paths. The soclib.conf expects the tsar working directory to have the trunk/ directory, and the branches/reconfiguration directory. It is in this second directory, where there are the hardware components with fault-tolerance. If you don't want to have the branches, and the trunk in different working directories, you can directly modify the soclib.conf configuration file, and add manually the directories. Execution: ========== To execute this platform use preferably the "scripts/onerun.py" script. This script creates automatically the configuration files needed to compile the platform: - /config/boot_config.h (contains debug flags) - /config/fault_config.h (contains the coordinates of faulty cores) - /config/hard_config.h (contains hardware parameters' definition) The name of the directory can be passed with the "-o" option of the scripts/onerun.py script. Hereafter a description of the main arguments for the scripts/onerun.py: --xsize / -x # clusters per row --ysize / -y # clusters per column --nprocs / -n # processor cores per cluster --compile-only / -c Do not simulate, only compile both platform and soft --batch-mode / -b Framebuffer and TTYs are not shown. TTYs are redirected to files --faulty-router / -fr Inject a faulty router. The faulty router is designated by three arguments: T, X, and Y. - T is the index of the target NoC (CMD:0, RSP:1, M2P:2, P2M:3, CLACK:4). - X and Y are the coordinates of the router. You can inject several faulty routers by repeating the -fr parameter. Example: Run simulation with a 4x4 mesh, and the routers CMD(3,3) and RSP(3,0) are faulty. scripts/onerun -x 4 -y 4 -fr 0 3 3 -fr 1 3 0 --faulty-core / -fc Inject a faulty core. The faulty core is designated by three arguments X, Y, and L. - X, and Y are the global coordinates of the core. - L is the local id of the core You can inject several faulty cores by repeating the -fc parameter. Example: Run simulation with a 4x4 mesh, and the cores (0,0,0) and (2,3,1) are faulty. scripts/onerun -x 4 -y 4 -fc 0 0 0 -fc 2 3 1 --disk-image / -di Path to the disk image from which the operating system will be loaded at the end of the distributed boot procedure. This disk image is the file handled by the external disk controller. For more information about the scripts/onerun.py arguments run: scripts/onerun.py --help