source: trunk/softs/soft_sort_giet/giet.ld.in

Last change on this file was 810, checked in by cfuguet, 12 years ago

giet_tsar: updating giet_tsar to use new hard_config format

Other optimizations:

  • Using a memory lock instead of the hard lock for the TTY
  • Each tty channel data is aligned to a cacheline (lock and buffers).
  • The applications' ldscript is generated from a template which includes the hard_config.h file.
File size: 2.2 KB
Line 
1/**
2 * \file : giet.ld.in
3 * \author : Cesar Fuguet
4 * \date : September 19, 2014
5 *
6 * \brief : giet ldscript template
7 * \note : must be compiled with gcc to generate an instance
8 */
9
10#include <hard_config.h>
11
12seg_reset_base = RESET_ADDRESS; /* boot code */
13
14seg_kcode_base = SEG_RAM_BASE + 0x10000; /* kernel code */
15seg_kdata_base = SEG_RAM_BASE + 0x20000; /* kernel cacheable data */
16seg_kunc_base = SEG_RAM_BASE + 0x30000; /* kernel uncacheable data */
17seg_code_base = SEG_RAM_BASE + 0x40000; /* application code */
18seg_data_base = SEG_RAM_BASE + 0x50000; /* application data */
19seg_heap_base = SEG_RAM_BASE + 0x100000; /* heaps for applications */
20seg_stack_base = SEG_RAM_BASE + 0x300000; /* stacks ifor applications */
21seg_ramdisk_base = SEG_RAM_BASE + 0x800000; /* virtual disk */
22
23seg_xcu_base = SEG_XCU_BASE; /* controler XCU */
24seg_tty_base = SEG_TTY_BASE; /* controler TTY */
25seg_fbf_base = SEG_FBF_BASE; /* controler FBF */
26seg_ioc_base = SEG_IOC_BASE; /* controler IOC */
27seg_nic_base = SEG_NIC_BASE; /* controler NIC */
28seg_cma_base = SEG_CMA_BASE; /* controler CMA */
29seg_pic_base = SEG_PIC_BASE; /* controler PIC */
30seg_mmc_base = SEG_MMC_BASE; /* config MMC */
31
32/* Grouping sections into segments */
33
34ENTRY(reset)
35
36SECTIONS
37{
38 . = seg_kcode_base;
39 seg_kcode : {
40 *(.giet)
41 *(.switch)
42 *(.drivers)
43 *(.isr)
44 }
45 . = seg_kdata_base;
46 seg_kdata : {
47 *(.kdata)
48 }
49 . = seg_kunc_base;
50 seg_kunc : {
51 *(.unckdata)
52 }
53 . = seg_kdata_base;
54 seg_kdata : {
55 *(.ksave)
56 }
57 . = seg_code_base;
58 seg_code : {
59 *(.text)
60 }
61 . = seg_reset_base;
62 seg_reset : {
63 *(.reset)
64 }
65 . = seg_data_base;
66 seg_data : {
67 *(.rodata)
68 . = ALIGN(4);
69 *(.rodata.*)
70 . = ALIGN(4);
71 *(.data)
72 . = ALIGN(4);
73 *(.sdata)
74 . = ALIGN(4);
75 *(.bss)
76 *(COMMON)
77 *(.sbss)
78 }
79}
Note: See TracBrowser for help on using the repository browser.