]> git.zerfleddert.de Git - proxmark3-svn/blame - bootrom/ldscript-flash
Ooops, we forgot a few details
[proxmark3-svn] / bootrom / ldscript-flash
CommitLineData
bd20f8f4 1/*
2-----------------------------------------------------------------------------
3 This code is licensed to you under the terms of the GNU GPL, version 2 or,
4 at your option, any later version. See the LICENSE.txt file for the text of
5 the license.
6-----------------------------------------------------------------------------
7 Bootrom linker script
8-----------------------------------------------------------------------------
9*/
10
15c4dc5a 11INCLUDE ../common/ldscript.common
12
13ENTRY(flashstart)
14SECTIONS
15{
16 . = 0;
17
18 .bootphase1 : {
19 *(.startup)
20 *(.bootphase1)
21
22 /* It seems to be impossible to flush align a section at the
23 end of a memory segment. Instead, we'll put the version_information
24 wherever the linker wants it, and then put a pointer to the start
25 of the version information at the end of the section.
26 -- Henryk Plötz <henryk@ploetzli.ch> 2009-08-28 */
27
28 _version_information_start = ABSOLUTE(.);
29 *(.version_information);
30
31 /* Why doesn't this work even though _bootphase1_version_pointer = 0x1001fc?
32 . = _bootphase1_version_pointer - ORIGIN(bootphase1); */
33 /* This works, apparently it fools the linker into accepting an absolute address */
34 . = _bootphase1_version_pointer - ORIGIN(bootphase1) + ORIGIN(bootphase1);
35 LONG(_version_information_start)
36 } >bootphase1
37
38 __bootphase2_src_start__ = ORIGIN(bootphase2);
39 .bootphase2 : {
40 __bootphase2_start__ = .;
41 *(.startphase2)
42 *(.text)
43 *(.eh_frame)
44 *(.glue_7)
45 *(.glue_7t)
46 *(.rodata)
47 *(.data)
48 . = ALIGN( 32 / 8 );
49 __bootphase2_end__ = .;
50 } >ram AT>bootphase2
51
52 .bss : {
53 __bss_start__ = .;
54 *(.bss)
55 } >ram
56
57 . = ALIGN( 32 / 8 );
58 __bss_end__ = .;
59
60 .commonarea (NOLOAD) : {
61 *(.commonarea)
62 } >commonarea
63}
Impressum, Datenschutz