diff options
Diffstat (limited to 'libgloss/m68k/fido.sc')
-rw-r--r-- | libgloss/m68k/fido.sc | 230 |
1 files changed, 0 insertions, 230 deletions
diff --git a/libgloss/m68k/fido.sc b/libgloss/m68k/fido.sc deleted file mode 100644 index 9b80b5080..000000000 --- a/libgloss/m68k/fido.sc +++ /dev/null @@ -1,230 +0,0 @@ -SRAM_ORIGIN=0x03000000 -SRAM_LENGTH=0x00100000 - -# HEAPEND must be in the same memory region as DATA. STACK should be -# above HEAPEND, also in the same region, for configurations which -# need __stack. - -case $MODE in - rom) - CRT0=rom - TEXT=rom - DATA=sram - DATALOAD="rom" - STACK=0x030ffffc - HEAPEND=0x03080000 - ;; - sram) - CRT0=ram - TEXT=sram - DATA=sdram - STACK=0x021ffffc - HEAPEND=0x02180000 - # Leave the rest of SDRAM for manual use. - ;; - sdram) - CRT0=ram - TEXT=sdram - DATA=sdram - STACK=0x021ffffc - HEAPEND=0x02180000 - # Leave the rest of SDRAM for manual use. - ;; - redboot) - CRT0=redboot - # We need to avoid the area used by RedBoot - SRAM_ORIGIN=0x3080000 - SRAM_LENGTH=0x80000 - # Put code for RedBoot apps in SRAM, since the fido1100 has - # trouble running code from SDRAM. - TEXT=sram - DATA=sdram - STACK=0 - HEAPEND=0x027f0000 - ;; - *) - ERROR - ;; -esac - -cat <<EOF -/* - * Setup the memory map of the Innovasic SBC - * stack grows down from high memory. - * - * The memory map for the ROM model looks like this: - * - * +--------------------+ <-address 0 in Flash - * | .vector_table | - * +--------------------+ <- low memory - * | .text | - * | _etext | - * | ctor list | the ctor and dtor lists are for - * | dtor list | C++ support - * +--------------------+ - * | DCACHE_CODE | code to be loaded into DCACHE - * | _dcache_start | - * | _dcache_end | - * +--------------------+ - * | .data | initialized data goes here - * +--------------------+ - * . . - * . . - * . . - * +--------------------+ <- The beginning of the SRAM area - * | .data | a wriable copy of data goes here. - * | _edata | - * +--------------------+ - * | .bss | - * | __bss_start | start of bss, cleared by crt0 - * | _end | start of heap, used by sbrk() - * | _heapend | End of heap, used by sbrk() - * +--------------------+ - * . . - * . . - * . . - * | __stack | top of stack - * +--------------------+ - * - * - * The memory map for the RAM model looks like this: - * - * +--------------------+ <- The beginning of the SRAM or SDRAM area. - * | .vector_table | - * +--------------------+ <- low memory - * | .text | - * | _etext | - * | ctor list | the ctor and dtor lists are for - * | dtor list | C++ support - * +--------------------+ - * | DCACHE_CODE | code to be loaded into DCACHE - * | _dcache_start | - * | _dcache_end | - * +--------------------+ - * | .data | initialized data goes here - * | _edata | - * +--------------------+ - * | .bss | - * | __bss_start | start of bss, cleared by crt0 - * | _end | start of heap, used by sbrk() - * | _heapend | End of heap, used by sbrk() - * +--------------------+ - * . . - * . . - * . . - * | __stack | top of stack - * +--------------------+ - */ - -STARTUP(fido-${CRT0}-crt0.o) -OUTPUT_ARCH(m68k) -ENTRY(_start); -GROUP(-l${IO} -lfido -lc -lgcc) - -MEMORY { - /* Flash ROM. */ - rom (rx) : ORIGIN = 0x0000000, LENGTH = 0x800000 - /* Internal SRAM. */ - int_ram (rwx) : ORIGIN = 0x1000000, LENGTH = 0x6000 - /* External SDRAM. */ - sdram (rwx) : ORIGIN = 0x2000000, LENGTH = 0x800000 - /* External SRAM. */ - sram (rwx) : ORIGIN = ${SRAM_ORIGIN}, LENGTH = ${SRAM_LENGTH} -} - -SECTIONS { - /* The interrupt vector is placed at the beginning of ${TEXT}, - as required at reset. */ - .vector_table : { - *(.vector_table) - } > ${TEXT} - - /* Text section. */ - .text : - { - *(.text .text.*) - *(.gnu.linkonce.t.*) - - . = ALIGN(0x4); - /* These are for running static constructors and destructors under ELF. */ - KEEP (*crtbegin.o(.ctors)) - KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*crtend.o(.ctors)) - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*crtend.o(.dtors)) - - . = ALIGN(0x4); - KEEP (*crtbegin.o(.jcr)) - KEEP (*(EXCLUDE_FILE (*crtend.o) .jcr)) - KEEP (*crtend.o(.jcr)) - - *(.rodata .rodata.*) - *(.gnu.linkonce.r.*) - *(.gcc_except_table) - *(.eh_frame) - - . = ALIGN(0x2); - _init = . ; - LONG (0x4e560000) /* linkw %fp,#0 */ - *(.init) - SHORT (0x4e5e) /* unlk %fp */ - SHORT (0x4e75) /* rts */ - - _fini = . ; - LONG (0x4e560000) /* linkw %fp,#0 */ - *(.fini) - SHORT (0x4e5e) /* unlk %fp */ - SHORT (0x4e75) /* rts */ - . = ALIGN(0x800); /* align to a 2K dcache boundary */ - _dcache_start = .; - *(DCACHE_CODE) - _dcache_end = .; - _etext = .; - *(.lit) - . = ALIGN(0x4); - __start_romdata = .; - } > ${TEXT} - - /* Initialized data section. */ - .data : - { - _data = .; - *(.got.plt) *(.got) - *(.shdata); - *(.data .data.*) - *(.gnu.linkonce.d.*) - _edata_cksum = .; - *(checksum); - _edata = .; - } > ${DATA} ${DATALOAD:+AT>} ${DATALOAD} - - /* Zero-initialized data. */ - .bss : - { - . = ALIGN(0x4); - __bss_start = . ; - *(.shbss) - *(.bss .bss.*) - *(.gnu.linkonce.b.*) - *(COMMON) - _end = ALIGN (0x8); - __end = _end; - } > ${DATA} - - /* Specially designated data is placed in the internal RAM. */ - fast_memory : - { - . = ALIGN(0x4); - __fast_start = .; - *(FAST_RAM) - __fast_stop = .; - } > int_ram -} - -PROVIDE (__stack = ${STACK}); - -PROVIDE (_heapend = ${HEAPEND}); -EOF |