mirror of
https://github.com/Proxmark/proxmark3.git
synced 2024-11-14 12:45:26 +08:00
15c4dc5ace
Doing this for bootrom and armsrc for now. If you're using Windows, please configure your editor for LF line endings.
53 lines
1.4 KiB
Text
53 lines
1.4 KiB
Text
INCLUDE ../common/ldscript.common
|
|
|
|
ENTRY(flashstart)
|
|
SECTIONS
|
|
{
|
|
. = 0;
|
|
|
|
.bootphase1 : {
|
|
*(.startup)
|
|
*(.bootphase1)
|
|
|
|
/* It seems to be impossible to flush align a section at the
|
|
end of a memory segment. Instead, we'll put the version_information
|
|
wherever the linker wants it, and then put a pointer to the start
|
|
of the version information at the end of the section.
|
|
-- Henryk Plötz <henryk@ploetzli.ch> 2009-08-28 */
|
|
|
|
_version_information_start = ABSOLUTE(.);
|
|
*(.version_information);
|
|
|
|
/* Why doesn't this work even though _bootphase1_version_pointer = 0x1001fc?
|
|
. = _bootphase1_version_pointer - ORIGIN(bootphase1); */
|
|
/* This works, apparently it fools the linker into accepting an absolute address */
|
|
. = _bootphase1_version_pointer - ORIGIN(bootphase1) + ORIGIN(bootphase1);
|
|
LONG(_version_information_start)
|
|
} >bootphase1
|
|
|
|
__bootphase2_src_start__ = ORIGIN(bootphase2);
|
|
.bootphase2 : {
|
|
__bootphase2_start__ = .;
|
|
*(.startphase2)
|
|
*(.text)
|
|
*(.eh_frame)
|
|
*(.glue_7)
|
|
*(.glue_7t)
|
|
*(.rodata)
|
|
*(.data)
|
|
. = ALIGN( 32 / 8 );
|
|
__bootphase2_end__ = .;
|
|
} >ram AT>bootphase2
|
|
|
|
.bss : {
|
|
__bss_start__ = .;
|
|
*(.bss)
|
|
} >ram
|
|
|
|
. = ALIGN( 32 / 8 );
|
|
__bss_end__ = .;
|
|
|
|
.commonarea (NOLOAD) : {
|
|
*(.commonarea)
|
|
} >commonarea
|
|
}
|