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= 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/ SOCLIB=1 USE_DT=0