forked from zeoneo/rpi-3b-wifi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
linker.ld
executable file
·81 lines (66 loc) · 1.73 KB
/
linker.ld
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
ENTRY(_start)
SECTIONS
{
/* Starts at LOADER_ADDR. */
. = 0x8000;
__start = .;
__text_start = .;
.text :
{
KEEP(*(.text.boot))
*(.text)
}
. = ALIGN(4096); /* align to page size */
__text_end = .;
__rodata_start = .;
.rodata :
{
*(.rodata)
}
. = ALIGN(4096); /* align to page size */
__rodata_end = .;
__data_start = .;
.data :
{
*(.data)
}
. = ALIGN(4096); /* align to page size */
__data_end = .;
__bss_start = .;
.bss :
{
bss = .;
*(.bss)
}
. = ALIGN(4096); /* align to page size */
__bss_end = .;
. = . + 131072; /* 128KB for svc stack */
__svc_stack_base = .;
. = . + 1024; /* 1024 Bytes for undef stack */
__undef_stack_base = .;
. = . + 1024; /* 1024 Bytes for irq stack */
__irq_stack_base = .;
. = ALIGN(16384); /* align 16KB for page tables */
__first_lvl_tbl_base = .;
. = . + 4096; /* First level page table size */
__first_lvl_tbl_end = .;
. = ALIGN(1024); /* Align address here on 1KB boundary for 2nd level page table */
/* 1KB for each 2nd lvl page table = 4 Bytes * 256 */
/* How many 2nd lvl tables ? */
__second_lvl_tbl_base = .;
. = . + 1048576; /* 1MB space for 2nd lvl tables. */
__second_lvl_tbl_end = .;
/* DMA demo starts here */
. = ALIGN(4096);
dma_cb_page = .;
. = . + 4096; /* 4 KB for DMA control blocks */
dma_src_page_1 = . ;
. = . + 65536; /* 64 Kb of data */
dma_src_page_2 = . ;
. = . + 65536; /* 64 Kb of data */
dma_dest_page_1 = . ;
. = . + 65536; /* 64 Kb of data */
dma_dest_page_2 = . ;
. = . + 65536; /* 64 Kb of data */
__kernel_end = .;
}