summaryrefslogtreecommitdiff
path: root/cesar/ecos
diff options
context:
space:
mode:
authorYacine Belkadi2011-10-03 18:14:34 +0200
committerYacine Belkadi2011-11-02 14:55:27 +0100
commitb9f15454f6db72e3359a748a16ec86ab101d51db (patch)
tree276a7bf0938e1f161876dfd76bffc3ea6d734706 /cesar/ecos
parent6f38a3d1e941c03589e330bdef31a3ed6b48b628 (diff)
cesar/ecos: add the __bin_eof symbol to the linker script, refs #583
Add the __bin_eof symbol to identify the end of the .bin file. This will be the place where boot code will expect to find the boot parameters passed to Cesar.
Diffstat (limited to 'cesar/ecos')
-rw-r--r--cesar/ecos/packages/hal/sparc/leon/current/include/pkgconf/mlt_sparc_leon_ram.h5
-rw-r--r--cesar/ecos/packages/hal/sparc/leon/current/include/pkgconf/mlt_sparc_leon_ram.ldi7
2 files changed, 12 insertions, 0 deletions
diff --git a/cesar/ecos/packages/hal/sparc/leon/current/include/pkgconf/mlt_sparc_leon_ram.h b/cesar/ecos/packages/hal/sparc/leon/current/include/pkgconf/mlt_sparc_leon_ram.h
index a50ee7922e..5eaa075558 100644
--- a/cesar/ecos/packages/hal/sparc/leon/current/include/pkgconf/mlt_sparc_leon_ram.h
+++ b/cesar/ecos/packages/hal/sparc/leon/current/include/pkgconf/mlt_sparc_leon_ram.h
@@ -25,4 +25,9 @@ extern char CYG_LABEL_NAME (__heap1) [];
#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
#define CYGMEM_SECTION_heap1_SIZE (0x04000000 - (size_t) CYG_LABEL_NAME (__heap1))
+#ifndef __ASSEMBLER__
+extern char *CYG_LABEL_NAME (__bin_eof);
+#endif
+#define CYGMEM_LABEL_bin_eof (CYG_LABEL_NAME (__bin_eof))
+
#define CYGHWR_HAL_SPARC_MULTIPLE_VECTOR_TRAPPING
diff --git a/cesar/ecos/packages/hal/sparc/leon/current/include/pkgconf/mlt_sparc_leon_ram.ldi b/cesar/ecos/packages/hal/sparc/leon/current/include/pkgconf/mlt_sparc_leon_ram.ldi
index e3b60fc6b8..7245ca3cdb 100644
--- a/cesar/ecos/packages/hal/sparc/leon/current/include/pkgconf/mlt_sparc_leon_ram.ldi
+++ b/cesar/ecos/packages/hal/sparc/leon/current/include/pkgconf/mlt_sparc_leon_ram.ldi
@@ -28,10 +28,17 @@ SECTIONS
SECTION_ilram (tclri, , FOLLOWING (.dlram_data))
CYG_LABEL_DEFN(__dlram_data_source) = LOADADDR (.dlram_data);
CYG_LABEL_DEFN(__ilram_source) = LOADADDR (.ilram);
+
+ // The end of the binary file.
+ CYG_LABEL_DEFN(__bin_eof) = ADDR (.bss) + SIZEOF (.dlram_data)
+ + SIZEOF (.ilram);
. = ADDR (.bss)
+ MAX (SIZEOF (.bss), SIZEOF (.dlram_data) + SIZEOF (.ilram));
#else
SECTION_interrupt_stack (ram, ALIGN (8) (NOLOAD), LMA_EQ_VMA)
+
+ // The end of the binary file.
+ CYG_LABEL_DEFN(__bin_eof) = ADDR (.bss);
#endif
CYG_LABEL_DEFN(__heap1) = ALIGN (8);
SECTIONS_END