summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/board
diff options
context:
space:
mode:
authorIngo Albrecht <prom@berlin.ccc.de>2010-04-11 08:04:20 +0200
committerIngo Albrecht <prom@berlin.ccc.de>2010-07-20 14:41:19 +0200
commit0068f87c1fa8e8ee788851b67f39dfd9ae307cb8 (patch)
tree7489a95e92bd7b8536be7fb2b78e8be20ae16eb0 /src/target/firmware/board
parent3936c397a7918fa8625355b5af39a371da6adc3a (diff)
firmware: linker script and startup code reorg.
Diffstat (limited to 'src/target/firmware/board')
-rw-r--r--src/target/firmware/board/common/compal_osmoload.lds98
-rw-r--r--src/target/firmware/board/compal/ram.lds (renamed from src/target/firmware/board/common/compal_ramload.lds)7
-rw-r--r--src/target/firmware/board/compal/rffe_dualband.c (renamed from src/target/firmware/board/common/rffe_compal_dualband.c)0
-rw-r--r--src/target/firmware/board/compal/start.S (renamed from src/target/firmware/board/common/compal_ramload_start.S)0
-rw-r--r--src/target/firmware/board/compal_e88/loader.lds (renamed from src/target/firmware/board/common/compal_app.lds)0
5 files changed, 7 insertions, 98 deletions
diff --git a/src/target/firmware/board/common/compal_osmoload.lds b/src/target/firmware/board/common/compal_osmoload.lds
deleted file mode 100644
index 2765ec22..00000000
--- a/src/target/firmware/board/common/compal_osmoload.lds
+++ /dev/null
@@ -1,98 +0,0 @@
-OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-MEMORY
-{
- /* compal-loaded binary: text, initialized data */
- LRAM (rw) : ORIGIN = 0x00800000, LENGTH = 0x00010000
- /* compal-loaded binary: unitialized data, stacks, heap */
- DRAM (rw) : ORIGIN = 0x00810000, LENGTH = 0x00010000
- /* remainder of internal ram: this is where we are linking to */
- IRAM (rw) : ORIGIN = 0x00820000, LENGTH = 0x00020000
-}
-SECTIONS
-{
- . = 0x820000;
-
- /* initialization code */
- . = ALIGN(4);
- .text.start : {
- PROVIDE(_start = .);
- KEEP(*(.text.start))
- *(.text.start)
- } > IRAM
-
- /* exception vectors from 0x80001c to 0x800034 */
- .text.exceptions 0x80001c : AT (LOADADDR(.text.start) + SIZEOF(.text.start)) {
- KEEP(*(.text.exceptions))
- * (.text.exceptions)
- . = ALIGN(4);
-
- /* constructors and destructors */
- . = ALIGN(4);
- __CTOR_LIST__ = .;
- LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
- KEEP(*(SORT(.ctors)))
- LONG(0) /* end of list */
- __CTOR_END__ = .;
- __DTOR_LIST__ = .;
- LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
- KEEP(*(SORT(.dtors)))
- LONG(0) /* end of list */
- __DTOR_END__ = .;
- } > LRAM
- PROVIDE(_exceptions = LOADADDR(.text.exceptions));
-
- /* code */
- . = ALIGN(4);
- .text (LOADADDR(.text.exceptions) + SIZEOF(.text.exceptions)) :
- AT (LOADADDR(.text.exceptions) + SIZEOF(.text.exceptions)) {
- /* regular code */
- *(.text*)
- /* gcc voodoo */
- *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
- } > IRAM
- PROVIDE(_text_start = LOADADDR(.text));
- PROVIDE(_text_end = LOADADDR(.text) + SIZEOF(.text));
-
- /* read-only data */
- . = ALIGN(4);
- .rodata : {
- *(.rodata*)
- } > IRAM
- PROVIDE(_rodata_start = LOADADDR(.rodata));
- PROVIDE(_rodata_end = LOADADDR(.rodata) + SIZEOF(.rodata));
-
- /* initialized data */
- . = ALIGN(4);
- .data : {
- *(.data)
- } > IRAM
- PROVIDE(_data_start = LOADADDR(.data));
- PROVIDE(_data_end = LOADADDR(.data) + SIZEOF(.data));
-
- /* pic offset tables */
- . = ALIGN(4);
- .got : {
- *(.got)
- *(.got.plt) *(.igot.plt) *(.got) *(.igot)
- } > IRAM
- PROVIDE(_got_start = LOADADDR(.got));
- PROVIDE(_got_end = LOADADDR(.got) + SIZEOF(.got));
-
- /* uninitialized data */
- .bss (NOLOAD) : {
- . = ALIGN(4);
- __bss_start = .;
- *(.bss)
- } > IRAM
- . = ALIGN(4);
- __bss_end = .;
- PROVIDE(_bss_start = __bss_start);
- PROVIDE(_bss_end = __bss_end);
-
- /* end of image */
- . = ALIGN(4);
- _end = .;
- PROVIDE(end = .);
-}
diff --git a/src/target/firmware/board/common/compal_ramload.lds b/src/target/firmware/board/compal/ram.lds
index 00f0d001..d6df49a9 100644
--- a/src/target/firmware/board/common/compal_ramload.lds
+++ b/src/target/firmware/board/compal/ram.lds
@@ -1,3 +1,10 @@
+/*
+ * Linker script for running from internal SRAM on Compal phones
+ *
+ * This script is tailored specifically to the requirements imposed
+ * on us by the Compal bootloader.
+ *
+ */
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(_start)
diff --git a/src/target/firmware/board/common/rffe_compal_dualband.c b/src/target/firmware/board/compal/rffe_dualband.c
index bfd3d98e..bfd3d98e 100644
--- a/src/target/firmware/board/common/rffe_compal_dualband.c
+++ b/src/target/firmware/board/compal/rffe_dualband.c
diff --git a/src/target/firmware/board/common/compal_ramload_start.S b/src/target/firmware/board/compal/start.S
index 3036fec9..3036fec9 100644
--- a/src/target/firmware/board/common/compal_ramload_start.S
+++ b/src/target/firmware/board/compal/start.S
diff --git a/src/target/firmware/board/common/compal_app.lds b/src/target/firmware/board/compal_e88/loader.lds
index 3d821ae8..3d821ae8 100644
--- a/src/target/firmware/board/common/compal_app.lds
+++ b/src/target/firmware/board/compal_e88/loader.lds