source: trunk/softs/soft_hello_giet/giet.ld.in @ 810

Last change on this file since 810 was 810, checked in by cfuguet, 10 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.