Mercurial > nand-ecoscentric
diff packages/hal/sparclite/sleb/current/include/pkgconf/mlt_sparclite_sleb_rom.ldi @ 46:797268ecc331 ecos-sw-1999-10-19
Merge from eCos master repository on 1999-10-19-18:55:31-BST
| author | jlarmour |
|---|---|
| date | Tue, 19 Oct 1999 19:19:52 +0000 |
| parents | 443894e2e912 |
| children | c38311975d4f |
line wrap: on
line diff
--- a/packages/hal/sparclite/sleb/current/include/pkgconf/mlt_sparclite_sleb_rom.ldi +++ b/packages/hal/sparclite/sleb/current/include/pkgconf/mlt_sparclite_sleb_rom.ldi @@ -26,14 +26,21 @@ //####COPYRIGHTEND#### //=========================================================================== -// Leave 512 bytes free at the start of RAM for trampoline code to be -// copied in from the vectors. -// There is no nice way of automating the choice of size for this. + +// The ram_vectors section is to allow some free space to copy vectors into +// from the ROM. This is required to be variable size to accomodate SVT or +// MVT; 80 bytes vs 4kB. Copying is not necessary with MVT, but it is +// optional because it may offer performance gains. Copying is required +// for SVT because the (aligned) start of ROM contains initialization +// instructions. RAM copy is used rather than leave a big gap in the ROM +// to get an aligned address for the trampoline code. For RAM startup, +// ram_vectors will usually be of size zero, unless MVT and copying are +// enabled for memory estimation reasons. MEMORY { rom : ORIGIN = 0x00000000, LENGTH = 0x020000 - ram : ORIGIN = 0x04000200, LENGTH = 0x3ffe00 + ram : ORIGIN = 0x04000000, LENGTH = 0x400000 } SECTIONS @@ -46,7 +53,8 @@ SECTIONS SECTION_rodata1 (rom, ALIGN (0x8), LMA_EQ_VMA) SECTION_fixup (rom, ALIGN (0x8), LMA_EQ_VMA) SECTION_gcc_except_table (rom, ALIGN (0x8), LMA_EQ_VMA) - SECTION_data (ram, 0x4000200, FOLLOWING (.gcc_except_table)) + SECTION_ram_vectors(ram, 0x04000000, LMA_EQ_VMA) + SECTION_data (ram, ALIGN (0x8), FOLLOWING (.gcc_except_table)) SECTION_bss (ram, ALIGN (0x8), LMA_EQ_VMA) SECTIONS_END }
