/*
-----------------------------------------------------------------------------
 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_arm/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
}