]> git.zerfleddert.de Git - proxmark3-svn/blob - bootrom/ldscript-flash
New bootrom
[proxmark3-svn] / bootrom / ldscript-flash
1 INCLUDE ../common/ldscript.common
2
3 ENTRY(flashstart)
4 SECTIONS
5 {
6 . = 0;
7
8 .bootphase1 : {
9 *(.startup)
10 *(.bootphase1)
11
12 /* It seems to be impossible to flush align a section at the
13 end of a memory segment. Instead, we'll put the version_information
14 wherever the linker wants it, and then put a pointer to the start
15 of the version information at the end of the section.
16 -- Henryk Plötz <henryk@ploetzli.ch> 2009-08-28 */
17
18 _version_information_start = ABSOLUTE(.);
19 *(.version_information);
20
21 /* Why doesn't this work even though _bootphase1_version_pointer = 0x1001fc?
22 . = _bootphase1_version_pointer - ORIGIN(bootphase1); */
23 /* This works, apparently it fools the linker into accepting an absolute address */
24 . = _bootphase1_version_pointer - ORIGIN(bootphase1) + ORIGIN(bootphase1);
25 LONG(_version_information_start)
26 } >bootphase1
27
28 __bootphase2_src_start__ = ORIGIN(bootphase2);
29 .bootphase2 : {
30 __bootphase2_start__ = .;
31 *(.startphase2)
32 *(.text)
33 *(.glue_7)
34 *(.glue_7t)
35 *(.rodata)
36 *(.data)
37 . = ALIGN( 32 / 8 );
38 __bootphase2_end__ = .;
39 } >ram AT>bootphase2
40
41 .bss : {
42 __bss_start__ = .;
43 *(.bss)
44 } >ram
45
46 . = ALIGN( 32 / 8 );
47 __bss_end__ = .;
48
49 .commonarea (NOLOAD) : {
50 *(.commonarea)
51 } >commonarea
52 }
Impressum, Datenschutz