Index: /branches/reconfiguration/platforms/tsar_generic_iob/README
===================================================================
--- /branches/reconfiguration/platforms/tsar_generic_iob/README	(revision 1027)
+++ /branches/reconfiguration/platforms/tsar_generic_iob/README	(revision 1027)
@@ -0,0 +1,105 @@
+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 <path_to_tsar_dist_boot> 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=<path_to_tsar>
+
+	In tcsh:
+
+		setenv TSARPATH <path_to_tsar>
+
+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:
+
+  - <outdir>/config/boot_config.h    (contains debug flags)
+  - <outdir>/config/fault_config.h   (contains the coordinates of faulty cores)
+  - <outdir>/config/hard_config.h    (contains hardware parameters' definition)
+
+The name of the <outdir> 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
Index: /branches/reconfiguration/platforms/tsar_generic_iob/scripts/onerun.py
===================================================================
--- /branches/reconfiguration/platforms/tsar_generic_iob/scripts/onerun.py	(revision 1026)
+++ /branches/reconfiguration/platforms/tsar_generic_iob/scripts/onerun.py	(revision 1027)
@@ -200,5 +200,8 @@
     parser.add_argument(
         '--faulty-router', '-fr', dest='faultyrouter', action='append', nargs=3,
-        help='ID (T,X,Y) of faulty router. The T is 0:CMD, 1:RSP')
+        help='ID (T,X,Y) of faulty router. \
+        The T is 0:CMD, 1:RSP, 2:M2P, 3:P2M, 4:CLACK. \
+        The three arguments are space-separated. \
+        (e.g. -fr 2 1 1, router M2P (1,1) is deactivated')
 
     parser.add_argument(
@@ -208,5 +211,7 @@
     parser.add_argument(
         '--faulty-core', '-fc', dest='faultycore', action='append', nargs=3,
-        help='ID (X,Y,L) of faulty processor')
+        help='ID (X,Y,L) of faulty processor. \
+        The three arguments are space-separated. \
+        (e.g. -fc 0 1 3, core (0,1,3) is deactivated')
 
     parser.add_argument(
@@ -224,5 +229,5 @@
     parser.add_argument(
         '--disk-image', '-di', dest='diskimage', default="/dev/null",
-        help='relative or absolute path to the external firmware')
+        help='relative or absolute path to the disk image used by the IOC')
 
     parser.add_argument(
Index: /branches/reconfiguration/platforms/tsar_generic_iob/soclib.conf
===================================================================
--- /branches/reconfiguration/platforms/tsar_generic_iob/soclib.conf	(revision 1026)
+++ /branches/reconfiguration/platforms/tsar_generic_iob/soclib.conf	(revision 1027)
@@ -1,10 +1,15 @@
+from os import environ
+from os.path import join
+
 # append compilation flags
-cflags = config.default.toolchain.cflags
+#cflags = config.default.toolchain.cflags
+#cflags.extend(['-Wno-unknown-warning-option'])
 #cflags.extend(['-ggdb'])
-config.default.toolchain.set("cflags", cflags)
+#config.default.toolchain.set("cflags", cflags)
 
 # append modules' description file paths
-from os import environ
-from os.path import join
+# set the TSARPATH env variable to the path of TSAR's soclib working directory
+# (e.g. export TSARPATH=<path_to_tsar>). Otherwise, modify hereafter the
+# tsarpath variable, and set the path explicitly.
 tsarpath = environ['TSARPATH']
 config.addDescPath(join(tsarpath, "trunk/lib"))
Index: /branches/reconfiguration/platforms/tsar_generic_iob/top.cpp
===================================================================
--- /branches/reconfiguration/platforms/tsar_generic_iob/top.cpp	(revision 1026)
+++ /branches/reconfiguration/platforms/tsar_generic_iob/top.cpp	(revision 1027)
@@ -474,12 +474,4 @@
    }
 
-   // Activate Distributed Boot (set by environment variable)
-   // When this is activated, every processor boots with its instruction and data
-   // physical address extension register initialized to its cluster index
-   // (X_LOCAL, Y_LOCAL). To support this feature, a distributed ROM is
-   // implemented in each cluster.
-
-   const bool distributed_boot = (getenv("DISTRIBUTED_BOOT") != NULL);
-
    // checking hardware parameters
    assert( (X_SIZE <= (1 << X_WIDTH)) and
@@ -514,5 +506,4 @@
              << " - RAM_LATENCY     = " << XRAM_LATENCY << std::endl
              << " - MAX_FROZEN      = " << frozen_cycles << std::endl
-             << " - DIST_BOOT       = " << distributed_boot << std::endl
              << " - DEBUG_PROCID    = " << debug_proc_id << std::endl
              << " - DEBUG_MEMCID    = " << debug_memc_id << std::endl
@@ -1170,5 +1161,4 @@
                 IRQ_PER_PROCESSOR,
 
-                distributed_boot,
                 disable_cluster_procs[x][y],
 
Index: /branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h
===================================================================
--- /branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h	(revision 1026)
+++ /branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h	(revision 1027)
@@ -241,5 +241,4 @@
                     size_t                             irq_per_proc,
 
-                    bool                               distboot,
                     bool                               disable_procs,
 
Index: /branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp
===================================================================
--- /branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp	(revision 1026)
+++ /branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp	(revision 1027)
@@ -79,5 +79,4 @@
         size_t                             irq_per_proc,
 
-        bool                               distboot,
         bool                               disable_procs,
 
@@ -156,9 +155,6 @@
         // initialize physical address extension with cluster ID when using
         // distributed boot
-        if (distboot)
-        {
-            proc[p]->set_dcache_paddr_ext_reset(cluster_id);
-            proc[p]->set_icache_paddr_ext_reset(cluster_id);
-        }
+        proc[p]->set_dcache_paddr_ext_reset(cluster_id);
+        proc[p]->set_icache_paddr_ext_reset(cluster_id);
     }
 
