Doing this for bootrom and armsrc for now. If you're using Windows, please configure your editor for LF line endings.
54 lines
1.4 KiB
Plaintext
54 lines
1.4 KiB
Plaintext
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
|
|
}
|