/*
-----------------------------------------------------------------------------
 This code is licensed to you under the terms of the GNU GPL, version 2 or,
 at your option, any later version. See the LICENSE.txt file for the text of
 the license.
-----------------------------------------------------------------------------
 Linker script for the ARM binary
-----------------------------------------------------------------------------
*/
INCLUDE ../common/ldscript.common

PHDRS
{
	text PT_LOAD FLAGS(5);
	data PT_LOAD;
	bss PT_LOAD;
}

ENTRY(Vector)
SECTIONS
{
	.start : {
		*(.startos)
	} >osimage :text

	.text : {
		KEEP(*(stage1_image))
		*(.text)
		*(.text.*)
		*(.eh_frame)
		*(.glue_7)
		*(.glue_7t)
	} >osimage :text

	.rodata : {
		*(.rodata)
		*(.rodata.*)
		*(fpga_all_bit.data)
		KEEP(*(.version_information))
		. = ALIGN(8);
	} >osimage :text

	.data : {
		KEEP(*(compressed_data))
		*(.data)
		*(.data.*)
		*(.ramfunc)
		. = ALIGN(4);
	} >ram AT>osimage :data

	__data_src_start__ = LOADADDR(.data);
	__data_start__ = ADDR(.data);
	__data_end__ = __data_start__ + SIZEOF(.data);
	__os_size__ = SIZEOF(.text) + SIZEOF(.data) + SIZEOF(.rodata);
	
	.bss : {
		__bss_start__ = .; 
		*(.bss)
		*(.bss.*) 
		. = ALIGN(4);
		__bss_end__ = .;
	} >ram AT>ram :bss

	.commonarea (NOLOAD) : {
		*(.commonarea)
	} >commonarea :NONE
}