From a02f863eefd0878a539df0e0f757597af0e80c98 Mon Sep 17 00:00:00 2001 From: Marcin Bukat Date: Fri, 10 Jan 2014 16:12:38 +0100 Subject: coldfire: Use single app.lds script for all coldfires. The only true difference in this platform is the amount of iram between MCF5249 and MCF5250. Instead of duplicating the file simply use one with proper ifdefs. Change-Id: Ifd56ebd2666813633502e3b5d83669424659c039 Reviewed-on: http://gerrit.rockbox.org/713 Reviewed-by: Thomas Martitz Reviewed-by: Marcin Bukat --- firmware/target/coldfire/app.lds | 143 ++++++++++++++++++++++++++++++++ firmware/target/coldfire/iaudio/app.lds | 143 -------------------------------- firmware/target/coldfire/iriver/app.lds | 139 ------------------------------- firmware/target/coldfire/mpio/app.lds | 139 ------------------------------- 4 files changed, 143 insertions(+), 421 deletions(-) create mode 100644 firmware/target/coldfire/app.lds delete mode 100644 firmware/target/coldfire/iaudio/app.lds delete mode 100644 firmware/target/coldfire/iriver/app.lds delete mode 100644 firmware/target/coldfire/mpio/app.lds (limited to 'firmware/target/coldfire') diff --git a/firmware/target/coldfire/app.lds b/firmware/target/coldfire/app.lds new file mode 100644 index 0000000000..5364157fdd --- /dev/null +++ b/firmware/target/coldfire/app.lds @@ -0,0 +1,143 @@ +#include "config.h" + +ENTRY(start) + +OUTPUT_FORMAT(elf32-m68k) +STARTUP(target/coldfire/crt0.o) + +#define PLUGINSIZE PLUGIN_BUFFER_SIZE +#define CODECSIZE CODEC_SIZE + +#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - CODECSIZE + +#define DRAMORIG 0x31000000 +#define IRAMORIG 0x10000000 +#if CONFIG_CPU == MCF5250 +#define IRAMSIZE 0xc800 +#else +#define IRAMSIZE 0xc000 +#endif + +/* End of the audio buffer, where the codec buffer starts */ +#define ENDAUDIOADDR (DRAMORIG + DRAMSIZE) + +/* Where the codec buffer ends, and the plugin buffer starts */ +#define ENDADDR (ENDAUDIOADDR + CODECSIZE) + +MEMORY +{ + DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE + IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE +} + +SECTIONS +{ + .vectors : + { + loadaddress = .; + _loadaddress = .; + KEEP(*(.resetvectors)); + *(.resetvectors); + KEEP(*(.vectors)); + *(.vectors); + } > DRAM + + .text : + { + . = ALIGN(0x200); + *(.init.text) + *(.text*) + . = ALIGN(0x4); + } > DRAM + + .rodata : + { + *(.rodata) /* problems without this, dunno why */ + *(.rodata*) + *(.rodata.str1.1) + *(.rodata.str1.4) + . = ALIGN(0x4); + + /* Pseudo-allocate the copies of the data sections */ + _datacopy = .; + } > DRAM + + /* TRICK ALERT! For RAM execution, we put the .data section at the + same load address as the copy. Thus, we don't waste extra RAM + when we don't actually need the copy. */ + .data : AT ( _datacopy ) + { + _datastart = .; + *(.data*) + . = ALIGN(0x4); + _dataend = .; + } > DRAM + + /DISCARD/ : + { + *(.eh_frame) + } + + .iram IRAMORIG : + { + _iramstart = .; + *(.icode) + *(.irodata) + *(.idata) + _iramend = .; + } > IRAM AT> DRAM + + _iramcopy = LOADADDR(.iram); + _noloaddram = LOADADDR(.iram); + + .ibss (NOLOAD) : + { + _iedata = .; + *(.ibss) + . = ALIGN(0x4); + _iend = .; + } > IRAM + + .stack (NOLOAD) : + { + *(.stack) + stackbegin = .; + . += 0x2000; + stackend = .; + } > IRAM + + .bss _noloaddram (NOLOAD): + { + _edata = .; + *(.bss*) + *(COMMON) + . = ALIGN(0x4); + _end = .; + } > DRAM + + .audiobuf (NOLOAD) : + { + . = ALIGN(4); + _audiobuffer = .; + audiobuffer = .; + } > DRAM + + .audiobufend ENDAUDIOADDR (NOLOAD) : + { + audiobufend = .; + _audiobufend = .; + } > DRAM + + .codec ENDAUDIOADDR (NOLOAD) : + { + codecbuf = .; + _codecbuf = .; + } + + .plugin ENDADDR (NOLOAD) : + { + _pluginbuf = .; + pluginbuf = .; + } +} + diff --git a/firmware/target/coldfire/iaudio/app.lds b/firmware/target/coldfire/iaudio/app.lds deleted file mode 100644 index 6a733ed07e..0000000000 --- a/firmware/target/coldfire/iaudio/app.lds +++ /dev/null @@ -1,143 +0,0 @@ -#include "config.h" - -ENTRY(start) - -OUTPUT_FORMAT(elf32-m68k) -STARTUP(target/coldfire/crt0.o) - -#define PLUGINSIZE PLUGIN_BUFFER_SIZE -#define CODECSIZE CODEC_SIZE - -#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - CODECSIZE - -#define DRAMORIG 0x31000000 -#define IRAMORIG 0x10000000 -#if CONFIG_CPU == MCF5250 -#define IRAMSIZE 0xc800 -#else -#define IRAMSIZE 0xc000 -#endif - -/* End of the audio buffer, where the codec buffer starts */ -#define ENDAUDIOADDR (DRAMORIG + DRAMSIZE) - -/* Where the codec buffer ends, and the plugin buffer starts */ -#define ENDADDR (ENDAUDIOADDR + CODECSIZE) - -MEMORY -{ - DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE - IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE -} - -SECTIONS -{ - .vectors : - { - loadaddress = .; - _loadaddress = .; - KEEP(*(.resetvectors)); - *(.resetvectors); - KEEP(*(.vectors)); - *(.vectors); - } > DRAM - - .text : - { - . = ALIGN(0x200); - *(.init.text) - *(.text*) - . = ALIGN(0x4); - } > DRAM - - .rodata : - { - *(.rodata) /* problems without this, dunno why */ - *(.rodata*) - *(.rodata.str1.1) - *(.rodata.str1.4) - . = ALIGN(0x4); - - /* Pseudo-allocate the copies of the data sections */ - _datacopy = .; - } > DRAM - - /* TRICK ALERT! For RAM execution, we put the .data section at the - same load address as the copy. Thus, we don't waste extra RAM - when we don't actually need the copy. */ - .data : AT ( _datacopy ) - { - _datastart = .; - *(.data*) - . = ALIGN(0x4); - _dataend = .; - } > DRAM - - /DISCARD/ : - { - *(.eh_frame) - } - - .iram IRAMORIG : - { - _iramstart = .; - *(.icode) - *(.irodata) - *(.idata) - _iramend = .; - } > IRAM AT> DRAM - - _iramcopy = LOADADDR(.iram); - _noloaddram = LOADADDR(.iram); - - .ibss (NOLOAD) : - { - _iedata = .; - *(.ibss) - . = ALIGN(0x4); - _iend = .; - } > IRAM - - .stack (NOLOAD) : - { - *(.stack) - stackbegin = .; - . += 0x2000; - stackend = .; - } > IRAM - - .bss _noloaddram (NOLOAD): - { - _edata = .; - *(.bss*) - *(COMMON) - . = ALIGN(0x4); - _end = .; - } > DRAM - - .audiobuf (NOLOAD) : - { - . = ALIGN(4); - _audiobuffer = .; - audiobuffer = .; - } > DRAM - - .audiobufend ENDAUDIOADDR (NOLOAD) : - { - audiobufend = .; - _audiobufend = .; - } > DRAM - - .codec ENDAUDIOADDR (NOLOAD) : - { - codecbuf = .; - _codecbuf = .; - } - - .plugin ENDADDR (NOLOAD) : - { - _pluginbuf = .; - pluginbuf = .; - } -} - diff --git a/firmware/target/coldfire/iriver/app.lds b/firmware/target/coldfire/iriver/app.lds deleted file mode 100644 index 56ccfca509..0000000000 --- a/firmware/target/coldfire/iriver/app.lds +++ /dev/null @@ -1,139 +0,0 @@ -#include "config.h" - -ENTRY(start) - -OUTPUT_FORMAT(elf32-m68k) -STARTUP(target/coldfire/crt0.o) - -#define PLUGINSIZE PLUGIN_BUFFER_SIZE -#define CODECSIZE CODEC_SIZE - -#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - CODECSIZE - -#define DRAMORIG 0x31000000 -#define IRAMORIG 0x10000000 -#define IRAMSIZE 0xc000 - -/* End of the audio buffer, where the codec buffer starts */ -#define ENDAUDIOADDR (DRAMORIG + DRAMSIZE) - -/* Where the codec buffer ends, and the plugin buffer starts */ -#define ENDADDR (ENDAUDIOADDR + CODECSIZE) - -MEMORY -{ - DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE - IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE -} - -SECTIONS -{ - .vectors : - { - loadaddress = .; - _loadaddress = .; - KEEP(*(.resetvectors)); - *(.resetvectors); - KEEP(*(.vectors)); - *(.vectors); - } > DRAM - - .text : - { - . = ALIGN(0x200); - *(.init.text) - *(.text*) - . = ALIGN(0x4); - } > DRAM - - .rodata : - { - *(.rodata) /* problems without this, dunno why */ - *(.rodata*) - *(.rodata.str1.1) - *(.rodata.str1.4) - . = ALIGN(0x4); - - /* Pseudo-allocate the copies of the data sections */ - _datacopy = .; - } > DRAM - - /* TRICK ALERT! For RAM execution, we put the .data section at the - same load address as the copy. Thus, we don't waste extra RAM - when we don't actually need the copy. */ - .data : AT ( _datacopy ) - { - _datastart = .; - *(.data*) - . = ALIGN(0x4); - _dataend = .; - } > DRAM - - /DISCARD/ : - { - *(.eh_frame) - } - - .iram IRAMORIG : - { - _iramstart = .; - *(.icode) - *(.irodata) - *(.idata) - _iramend = .; - } > IRAM AT> DRAM - - _iramcopy = LOADADDR(.iram); - _noloaddram = LOADADDR(.iram); - - .ibss (NOLOAD) : - { - _iedata = .; - *(.ibss) - . = ALIGN(0x4); - _iend = .; - } > IRAM - - .stack (NOLOAD) : - { - *(.stack) - stackbegin = .; - . += 0x2000; - stackend = .; - } > IRAM - - .bss _noloaddram (NOLOAD) : - { - _edata = .; - *(.bss*) - *(COMMON) - . = ALIGN(0x4); - _end = .; - } > DRAM - - .audiobuf (NOLOAD) : - { - . = ALIGN(4); - _audiobuffer = .; - audiobuffer = .; - } > DRAM - - .audiobufend ENDAUDIOADDR (NOLOAD) : - { - audiobufend = .; - _audiobufend = .; - } > DRAM - - .codec ENDAUDIOADDR (NOLOAD) : - { - codecbuf = .; - _codecbuf = .; - } - - .plugin ENDADDR (NOLOAD) : - { - _pluginbuf = .; - pluginbuf = .; - } -} - diff --git a/firmware/target/coldfire/mpio/app.lds b/firmware/target/coldfire/mpio/app.lds deleted file mode 100644 index 56ccfca509..0000000000 --- a/firmware/target/coldfire/mpio/app.lds +++ /dev/null @@ -1,139 +0,0 @@ -#include "config.h" - -ENTRY(start) - -OUTPUT_FORMAT(elf32-m68k) -STARTUP(target/coldfire/crt0.o) - -#define PLUGINSIZE PLUGIN_BUFFER_SIZE -#define CODECSIZE CODEC_SIZE - -#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - CODECSIZE - -#define DRAMORIG 0x31000000 -#define IRAMORIG 0x10000000 -#define IRAMSIZE 0xc000 - -/* End of the audio buffer, where the codec buffer starts */ -#define ENDAUDIOADDR (DRAMORIG + DRAMSIZE) - -/* Where the codec buffer ends, and the plugin buffer starts */ -#define ENDADDR (ENDAUDIOADDR + CODECSIZE) - -MEMORY -{ - DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE - IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE -} - -SECTIONS -{ - .vectors : - { - loadaddress = .; - _loadaddress = .; - KEEP(*(.resetvectors)); - *(.resetvectors); - KEEP(*(.vectors)); - *(.vectors); - } > DRAM - - .text : - { - . = ALIGN(0x200); - *(.init.text) - *(.text*) - . = ALIGN(0x4); - } > DRAM - - .rodata : - { - *(.rodata) /* problems without this, dunno why */ - *(.rodata*) - *(.rodata.str1.1) - *(.rodata.str1.4) - . = ALIGN(0x4); - - /* Pseudo-allocate the copies of the data sections */ - _datacopy = .; - } > DRAM - - /* TRICK ALERT! For RAM execution, we put the .data section at the - same load address as the copy. Thus, we don't waste extra RAM - when we don't actually need the copy. */ - .data : AT ( _datacopy ) - { - _datastart = .; - *(.data*) - . = ALIGN(0x4); - _dataend = .; - } > DRAM - - /DISCARD/ : - { - *(.eh_frame) - } - - .iram IRAMORIG : - { - _iramstart = .; - *(.icode) - *(.irodata) - *(.idata) - _iramend = .; - } > IRAM AT> DRAM - - _iramcopy = LOADADDR(.iram); - _noloaddram = LOADADDR(.iram); - - .ibss (NOLOAD) : - { - _iedata = .; - *(.ibss) - . = ALIGN(0x4); - _iend = .; - } > IRAM - - .stack (NOLOAD) : - { - *(.stack) - stackbegin = .; - . += 0x2000; - stackend = .; - } > IRAM - - .bss _noloaddram (NOLOAD) : - { - _edata = .; - *(.bss*) - *(COMMON) - . = ALIGN(0x4); - _end = .; - } > DRAM - - .audiobuf (NOLOAD) : - { - . = ALIGN(4); - _audiobuffer = .; - audiobuffer = .; - } > DRAM - - .audiobufend ENDAUDIOADDR (NOLOAD) : - { - audiobufend = .; - _audiobufend = .; - } > DRAM - - .codec ENDAUDIOADDR (NOLOAD) : - { - codecbuf = .; - _codecbuf = .; - } - - .plugin ENDADDR (NOLOAD) : - { - _pluginbuf = .; - pluginbuf = .; - } -} - -- cgit