TSAR BOOT LOADER

Files:
===============================================================================
src/        Source files
            The entry point of this boot loader is the file reset.S

include/    Header files

conf/       Platform specific files and ldscript examples.
            For each platform, we must define a new directory.

      --->  defs_platform.h:

             This file is mandatory. This file defines the
             NB_PROCS per cluster, the NB_CLUSTERS and the base address of
             the TTY, IOC, XICU and MEMC (config) devices.
             It defines also:

              -> USE_IOB
                 This constant is used by the boot_ioc_read function to know
                 if the buffer used to store the blocks from the
                 block_device must be invalidated in the memory cache after
                 the transfert has finished.

              -> CACHE_COHERENCE
                 This constant is used by the boot_ioc_read function to know
                 if the buffer used to store the blocks from the block_device
                 must be invalidated in the dcache after the transfert has
                 finished.

              -> CACHE_LINE_SIZE
                 This constant is mandatory if CACHE_COHERENCE=0 or USE_IOB=1
                 This constant defines the size in bytes of a cache line.

              -> RESET_DEBUG
                 Set value to 1 to show some debug messages during loading 

              -> IRQ_PER_PROC
                 This constant is used to know how many XICU irq outputs are
                 connected to each processor.

      --->  platform_soclib.dts:

             Device tree file. It is mandatory if compiling for a SOCLIB
             platform and USE_DT=1.

      --->  platform_fpga.dts:

             Device tree file. It is mandatory if compiling for a FPGA platform
             and USE_DT=1.

      --->  ldscript:

             LD script defining the segments of this boot loader.
             We define two segments:
                seg_stack_base: Base address of the stack used by processor 0
                during the boot process. read-write data and bss will also
                be there.

                seg_boot_base: Base address of the code and read-only data
                defined for this loader
            
Makefile    Makefile for compile the boot loader.
            Arguments to pass:

             ---> PLATFORM_DIR=<platform_dir>
    
                   Defines the directory where to find the plateform specific
                   files

             ---> SOCLIB=1

                   If using SOCLIB, define this flag to use the BLOCK DEVICE
                   driver and to choose the platform_soclib device tree.

             ---> RAMDISK=1

                   If using SOCLIB, define this flag to use a RAMDISK instead
                   of BLOCK DEVICE (Set this flag when the SOCLIB flag is also set)

             ---> USE_DT=0

                   If a device tree file is not used, set this flag to 0. It
                   is set by default to 1.

              e.g. make PLATFORM_DIR=conf/<platform_dir> SOCLIB=1 USE_DT=0
