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