source: trunk/softs/tsar_boot/README @ 760

Last change on this file since 760 was 759, checked in by cfuguet, 10 years ago

tsar_boot: preloader ldscript is automatically generated

  • Stack for processor 0 is allocated at the end of the cluster(0,0) ram segment:

SEG_RAM_BASE + SEG_RAM_SIZE - RESET_STACK_SIZE

  • code base is equal to the SEG_ROM_BASE constant defined in the hard_config.h file.
File size: 2.5 KB
RevLine 
[758]1\author: Cesar Fuguet
2\date  : July 24, 2014
[292]3
[758]4TSAR BOOT-LOADER
5
[292]6Files:
7src/        Source files
[302]8            The entry point of this boot loader is the file reset.S
[292]9
10include/    Header files
11
[758]12driver/     Drivers source files and headers
13
[759]14conf/       Platform specific files
[347]15            For each platform, we must define a new directory.
[758]16            Mandatory files:
[292]17
[758]18              - hard_config.h (can be generated using giet-vm genmap tool)
[292]19
[759]20                This file contains all physical segments addresses and sizes of the
21                hardware platform. It also contains other configuration definitions
22                as the disk controller type, mesh size, etc. Examples can be found
23                in the conf/ directory.
[425]24
[758]25            Optional files:
[568]26
[758]27              - platform.dts (platform device tree)
[292]28
[758]29Makefile    Makefile to compile the boot loader.
30            Mandatory arguments:
[347]31
[759]32              - HARD_CONFIG_PATH=<platform_dir>
[425]33
[759]34                Defines the directory where to find the hard_config.h file
[347]35
[758]36           Optional arguments:
[292]37
[758]38              - USE_DT=<value>
[292]39
[758]40                Value can be 1 or 0.
41                If a device tree file is not used, set this flag to 0. It is
42                set by default to 1.
[388]43
[758]44              - SYSTEM_CLK=<platform clock frequency>
[292]45
[758]46                Platform clock frequency in KHz
[388]47
[758]48              - DTS=<file.dts>
[292]49
[758]50                Platform device tree (by default is platform.dts)
[702]51
[759]52Important characteristics of this preloader:
53
54  - Processor 0 performs loading of Operating System Boot Loader which must
55    be an ELF file located at the third block of the disk.
56
57  - Other processors wait to be waken up through an interruption generated
58    from a XICU mailbox. Each processor other than 0 has its own mailbox
59    in the local XICU.
60
61  - Stack allocation is only made for processor 0. The loaded Operating System
62    boot loader or kernel must perform stack allocation for other processors.
63
64  - Stack for processor 0 is allocated at the end of RAM segment in the
65    cluster (0,0).
66
[758]67Examples:
[702]68
[759]69    make HARD_CONFIG_PATH=<platform_dir> USE_DT=0
[702]70
[758]71        Compile for <platform_dir> and do not compile device tree file
[702]72
[759]73    make HARD_CONFIG_PATH=<platform_dir> DTS=platform_fpga.dts SYSTEM_CLK=25000
[702]74
[758]75        Compile for <platform_dir> and compile the 'platform_dpga.dts'
76        device tree file. System clock frequency is 25 MHz
[702]77
[759]78    make HARD_CONFIG_PATH=<platform_conf> SYSTEM_CLK=25000
[292]79
[758]80        Compile for <platform_dir> and compile the 'platform.dts'
81        device tree file (default name). System clock frequency is 25 MHz
[292]82
Note: See TracBrowser for help on using the repository browser.