summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2018-08-20 15:10:38 +0200
committerDaniel Hellstrom <daniel@gaisler.com>2020-09-02 10:53:07 +0200
commit63d35455567024a5f38fd50af14125034e159dcf (patch)
tree86e1992cc4d1d279a30a52a80c273f5cf0a70df9
parent5d93996d8e0b081616efe968ab38f043a3fdae1b (diff)
leon3: added leon3_flat BSP configuration
The flat register window model activated by -mflat is ABI compatible with the standard SPARC ABI. SAVE/RESTORE instructions are not generated by the compiler.
-rw-r--r--bsps/sparc/leon3/config/leon3_flat.cfg3
-rw-r--r--bsps/sparc/leon3/start/linkcmds.leon3_flat22
-rw-r--r--c/src/lib/libbsp/sparc/leon3/Makefile.am1
3 files changed, 26 insertions, 0 deletions
diff --git a/bsps/sparc/leon3/config/leon3_flat.cfg b/bsps/sparc/leon3/config/leon3_flat.cfg
new file mode 100644
index 0000000000..619404c7fb
--- /dev/null
+++ b/bsps/sparc/leon3/config/leon3_flat.cfg
@@ -0,0 +1,3 @@
+include $(RTEMS_ROOT)/make/custom/leon3.cfg
+
+CPU_CFLAGS += -mflat
diff --git a/bsps/sparc/leon3/start/linkcmds.leon3_flat b/bsps/sparc/leon3/start/linkcmds.leon3_flat
new file mode 100644
index 0000000000..6954e88f45
--- /dev/null
+++ b/bsps/sparc/leon3/start/linkcmds.leon3_flat
@@ -0,0 +1,22 @@
+/* linkcmds
+ */
+
+/* Default values, can be overridden */
+
+_PROM_SIZE = DEFINED (_PROM_SIZE) ? _PROM_SIZE : 2M;
+_PROM_START = DEFINED (_PROM_START) ? _PROM_START : 0x00000000;
+
+_RAM_SIZE = DEFINED (_RAM_SIZE) ? _RAM_SIZE : 4M;
+_RAM_START = DEFINED (_RAM_START) ? _RAM_START : 0x40000000;
+
+/* these are the maximum values */
+
+MEMORY
+{
+ rom : ORIGIN = 0x00000000, LENGTH = 256M
+ ram : ORIGIN = 0x40000000, LENGTH = 1024M
+}
+
+ENTRY(start)
+
+INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/sparc/leon3/Makefile.am b/c/src/lib/libbsp/sparc/leon3/Makefile.am
index 9cc32459f6..7649c93657 100644
--- a/c/src/lib/libbsp/sparc/leon3/Makefile.am
+++ b/c/src/lib/libbsp/sparc/leon3/Makefile.am
@@ -18,6 +18,7 @@ dist_project_lib_DATA += ../../../../../../bsps/sparc/shared/start/linkcmds.base
dist_project_lib_DATA += ../../../../../../bsps/sparc/leon3/start/linkcmds.gr712rc
dist_project_lib_DATA += ../../../../../../bsps/sparc/leon3/start/linkcmds.gr740
dist_project_lib_DATA += ../../../../../../bsps/sparc/leon3/start/linkcmds.leon3
+dist_project_lib_DATA += ../../../../../../bsps/sparc/leon3/start/linkcmds.leon3_flat
dist_project_lib_DATA += ../../../../../../bsps/sparc/leon3/start/linkcmds.ut699
dist_project_lib_DATA += ../../../../../../bsps/sparc/leon3/start/linkcmds.ut700
dist_project_lib_DATA += ../../../../../../bsps/sparc/leon3/start/linkcmds.gr712rc_smp