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 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. -> INSTRUMENTATION Set value different to 0 if some instrumentation of the bootloader is needed. -> 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= 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= 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/ SYSCLK_FREQ=50000000 make PLATFORM_DIR=conf/ SOCLIB=1