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.
            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 and XICU devices.
             It defines also:
              -> 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.
				 0 means invalidation must be made.

              -> CACHE_LINE_SIZE
                 This constant defines the size in bytes of a cache line.

              -> 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. If the application to execute does not use
             a device tree file, create an empty one.

      --->  platform_fpga.dts:
             Device tree file. It is mandatory if compiling
             for a FPGA platform. If the application to execute does not use
             a device tree file, create an empty one.

      --->  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.

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

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

             ---> SOCLIB=1

                   If using SOCLIB, define this flag to use the SOCLIB device
                   drivers

             ---> SYSCLK_FREQ=<value hz>

                   If not SOCLIB platform, this flag allows us to choose the
                   CLK frequency used in the hardware platform (i.e. FPGA).
                   This information is used to configurate the SPI device
                   which allow us to drive a SD card device.

              i.e. make PLATFORM_DIR=conf/<platform_dir> SYSCLK_FREQ=50000000
                   make PLATFORM_DIR=conf/<platform_dir> SOCLIB=1
