source: trunk/softs/tsar_boot/README.txt @ 478

Last change on this file since 478 was 425, checked in by cfuguet, 11 years ago

Modifications in tsar_boot:

  • Creating new files boot_utils.[c h] containing the memcpy, memset and some ELF format debug functions
  • Introducing assert in the boot_elf_loader to show an error when some of segments to load conflicts with some of the pre-loader segments
  • Cosmetic changes in boot_elf_loader to improve code readibility
  • Fixing bug in dcache_buf_invalidate function used by boot_ioc_read when cache coherence not supported. The condition in the for loop was erroneous.
  • Modification in Makefile: The SYSCLK_FREQ parameter is not passed anymore

as a Makefile parameter but it is definesd in the defs_platform.h file

File size: 2.6 KB
Line 
1TSAR BOOT LOADER
2
3Files:
4===============================================================================
5src/        Source files
6            The entry point of this boot loader is the file reset.S
7
8include/    Header files
9
10conf/       Platform specific files and ldscript examples.
11            For each platform, we must define a new directory.
12
13      --->  defs_platform.h:
14
15             This file is mandatory. This file defines the
16             NB_PROCS per cluster, the NB_CLUSTERS and the base address of
17             the TTY, IOC and XICU devices.
18             It defines also:
19
20              -> CACHE_COHERENCE
21                 This constant is used by the boot_ioc_read function to know
22                 if the buffer used to store the blocks from the block_device
23                 must be invalidated in the dcache after the transfert has
24                 finished.
25
26              -> CACHE_LINE_SIZE
27                 This constant is mandatory if CACHE_COHERENCE=0
28                 This constant defines the size in bytes of a cache line.
29
30              -> BOOT_DEBUG
31                 Set value to 1 to show some debug messages during loading
32
33              -> BOOT_DEBUG_IOC
34                 Set value to 1 to show some debug messages during loading
35                 concerning the disk accesses.
36
37              -> IRQ_PER_PROC
38                 This constant is used to know how many XICU irq outputs are
39                 connected to each processor.
40
41      --->  platform_soclib.dts:
42
43             Device tree file. It is mandatory if compiling for a SOCLIB
44             platform and USE_DT=1.
45
46      --->  platform_fpga.dts:
47
48             Device tree file. It is mandatory if compiling for a FPGA platform
49             and USE_DT=1.
50
51      --->  ldscript:
52
53             LD script defining the segments of this boot loader.
54             We define two segments:
55                seg_stack_base: Base address of the stack used by processor 0
56                during the boot process.
57
58                seg_boot_base: Base address of the code and data defined for
59                this loader
60           
61Makefile    Makefile for compile the boot loader.
62            Arguments to pass:
63
64             ---> PLATFORM_DIR=<platform_dir>
65   
66                   Defines the directory where to find the plateform specific
67                   files
68
69             ---> SOCLIB=1
70
71                   If using SOCLIB, define this flag to use the SOCLIB device
72                   drivers
73
74             ---> USE_DT=0
75
76                   If a device tree file is not used, set this flag to 0. It
77                   is set by default to 1.
78
79              e.g. make PLATFORM_DIR=conf/<platform_dir> SOCLIB=1 USE_DT=0
Note: See TracBrowser for help on using the repository browser.