// eCos memory layout

#include <cyg/infra/cyg_type.inc>

MEMORY
{
    ram : ORIGIN = 0x00000000, LENGTH = 0x00400000
    rom : ORIGIN = 0xF0000000, LENGTH = 0x10000000
}

SECTIONS
{
    SECTIONS_BEGIN
    SECTION_vectors (rom, 0xF0000100, LMA_EQ_VMA)
    SECTION_ROMISC (rom, ALIGN (0x8), LMA_EQ_VMA)
    SECTION_RELOCS (rom, ALIGN (0x8), LMA_EQ_VMA)
    SECTION_init (rom, ALIGN (0x8), LMA_EQ_VMA)
    SECTION_text (rom, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_fini (rom, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_rodata1 (rom, ALIGN (0x8), LMA_EQ_VMA)
    SECTION_rodata (rom, ALIGN (0x8), LMA_EQ_VMA)
    SECTION_fixup (rom, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_gcc_except_table (rom, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_data (ram, 0x1000, FOLLOWING (.gcc_except_table))
    SECTION_eh_frame (ram, ALIGN (0x8), FOLLOWING (.data))
    SECTION_ctors (ram, ALIGN (0x8), FOLLOWING (.eh_frame))
    SECTION_dtors (ram, ALIGN (0x8), FOLLOWING (.ctors))
    SECTION_devtab (ram, ALIGN (0x8), FOLLOWING (.dtors))
    SECTION_got (ram, ALIGN (0x8), FOLLOWING (.devtab))
    SECTION_dynamic (ram, ALIGN (0x8), FOLLOWING (.got))
    SECTION_sdata (ram, ALIGN (0x8), FOLLOWING (.dynamic))
    SECTION_lit8 (ram, ALIGN (0x8), FOLLOWING (.sdata))
    SECTION_lit4 (ram, ALIGN (0x8), FOLLOWING (.lit8))
    SECTION_sbss (ram, ALIGN (0x8), LMA_EQ_VMA)
    SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
    SECTIONS_END
}
