1/*
2 * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 */
6OUTPUT_ARCH( "riscv" )
7
8ENTRY( _start )
9
10SECTIONS
11{
12
13  /*--------------------------------------------------------------------*/
14  /* Code and read-only segment                                         */
15  /*--------------------------------------------------------------------*/
16
17  /* Begining of code and text segment */
18  . = 0x0000000080400000;
19  _text = .;
20  /* . = 0x00000000ff000000; *
21  _ftext = .;
22  PROVIDE( eprol = . );
23
24
25  /* text: Program code section */
26  .start :
27    {
28        *(.text.start)
29    }
30
31  .text :
32  {
33    *(.text)
34  }
35
36  /* End of code and read-only segment */
37  PROVIDE( etext = . );
38  _etext = .;
39
40  /*--------------------------------------------------------------------*/
41  /* Initialized data segment                                           */
42  /*--------------------------------------------------------------------*/
43
44  /* Start of initialized data segment */
45  . = ALIGN(16);
46   _fdata = .;
47
48  /* Start of data section */
49
50    _sdata = .;
51   .sdata : {
52    __global_pointer$ = . + 0x800;
53    *(.sdata*)
54  }
55    .srodata : {
56    *(.srodata*)
57  }
58
59  /* data: Writable data */
60  .data :
61  {
62    *(.data)
63    *(.data.*)
64  }
65
66  /* End of initialized data segment */
67  . = ALIGN(4);
68  PROVIDE( edata = . );
69  _edata = .;
70
71  /*--------------------------------------------------------------------*/
72  /* Uninitialized data segment                                         */
73  /*--------------------------------------------------------------------*/
74
75  /* Start of uninitialized data segment */
76  . = .;
77  _fbss = .;
78
79  /* sbss: Uninitialized writeable small data section */
80  . = .;
81
82  /* bss: Uninitialized writeable data section */
83  . = .;
84  _bss = .;
85  .bss :
86  {
87    *(.bss)
88    *(.bss.*)
89    *(.sbss*)
90  }
91  _bss_end = .;
92
93  /* rodata: Read-only data */
94  .rodata :
95  {
96    *(.rodata)
97    *(.rodata.*)
98
99    . = ALIGN(8);
100    _archive_start = .;
101      *(._archive_cpio)
102    _archive_end = .;
103  }
104
105_end = .;
106}
107