summaryrefslogtreecommitdiff
path: root/linker.ld
blob: 3a51718210aebbeb95806b4cfd7c08e58677e5ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2026 Richard Qin

OUTPUT_ARCH( "riscv" )
ENTRY( _start )

SECTIONS
{
  . = 0x80200000;

  /* Text Segment */
  .text : {
    *(.text.entry)
    *(.text .text.*)
    . = ALIGN(0x1000); 
    PROVIDE(etext = .); 
  }

  /* Read Only Data Segment */
  .rodata : {
    . = ALIGN(16);
    *(.srodata .srodata.*)
    . = ALIGN(16);
    *(.rodata .rodata.*)
  }

  /* Data Segment */
  .data : {
    . = ALIGN(16);
    *(.sdata .sdata.*)
    . = ALIGN(16);
    *(.data .data.*)
  }

  /* BBS Segment */
  .bss : {
    . = ALIGN(16);
    PROVIDE(sbss = .);
    *(.sbss .sbss.*)
    . = ALIGN(16);
    *(.bss .bss.*)
    PROVIDE(ebss = .);
  }

  . = ALIGN(0x1000);
  PROVIDE(end = .);
  PROVIDE(kernel_end = .);
}