The UT699 requires -mcpu=leon as it does not support the CAS instruction provided by -mcpu=leon3. It also requires -mfix-ut699 for errata fixes.
UT700 and GR712RC requires the -mfix-ut700 and -mfix-gr712rc flags that have been recently added to GCC's master and 7-branch. --- c/src/lib/libbsp/sparc/leon3/Makefile.am | 5 ++++- c/src/lib/libbsp/sparc/leon3/make/custom/gr712rc.cfg | 18 ++++++++++++++++++ .../sparc/leon3/make/custom/{ngmp.cfg => gr740.cfg} | 0 c/src/lib/libbsp/sparc/leon3/make/custom/ut699.cfg | 18 ++++++++++++++++++ c/src/lib/libbsp/sparc/leon3/make/custom/ut700.cfg | 18 ++++++++++++++++++ c/src/lib/libbsp/sparc/leon3/preinstall.am | 18 +++++++++++++++--- .../lib/libbsp/sparc/leon3/startup/linkcmds.gr712rc | 20 ++++++++++++++++++++ .../leon3/startup/{linkcmds.ngmp => linkcmds.gr740} | 0 c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut699 | 20 ++++++++++++++++++++ c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut700 | 20 ++++++++++++++++++++ 10 files changed, 133 insertions(+), 4 deletions(-) create mode 100644 c/src/lib/libbsp/sparc/leon3/make/custom/gr712rc.cfg rename c/src/lib/libbsp/sparc/leon3/make/custom/{ngmp.cfg => gr740.cfg} (100%) create mode 100644 c/src/lib/libbsp/sparc/leon3/make/custom/ut699.cfg create mode 100644 c/src/lib/libbsp/sparc/leon3/make/custom/ut700.cfg create mode 100644 c/src/lib/libbsp/sparc/leon3/startup/linkcmds.gr712rc rename c/src/lib/libbsp/sparc/leon3/startup/{linkcmds.ngmp => linkcmds.gr740} (100%) create mode 100644 c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut699 create mode 100644 c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut700 diff --git a/c/src/lib/libbsp/sparc/leon3/Makefile.am b/c/src/lib/libbsp/sparc/leon3/Makefile.am index 52f6b56..cd591dd 100644 --- a/c/src/lib/libbsp/sparc/leon3/Makefile.am +++ b/c/src/lib/libbsp/sparc/leon3/Makefile.am @@ -26,7 +26,10 @@ project_lib_DATA = start.$(OBJEXT) dist_project_lib_DATA += ../shared/startup/linkcmds.base dist_project_lib_DATA += startup/linkcmds dist_project_lib_DATA += startup/linkcmds.leon3 -dist_project_lib_DATA += startup/linkcmds.ngmp +dist_project_lib_DATA += startup/linkcmds.ut699 +dist_project_lib_DATA += startup/linkcmds.gr712rc +dist_project_lib_DATA += startup/linkcmds.ut700 +dist_project_lib_DATA += startup/linkcmds.gr740 noinst_LIBRARIES += libbsp.a libbsp_a_SOURCES = diff --git a/c/src/lib/libbsp/sparc/leon3/make/custom/gr712rc.cfg b/c/src/lib/libbsp/sparc/leon3/make/custom/gr712rc.cfg new file mode 100644 index 0000000..0a20b2c --- /dev/null +++ b/c/src/lib/libbsp/sparc/leon3/make/custom/gr712rc.cfg @@ -0,0 +1,18 @@ +# +# Config file for the GR712RC LEON3 SPARC processor. +# + +include $(RTEMS_ROOT)/make/custom/default.cfg + +RTEMS_CPU=sparc +RTEMS_CPU_MODEL=leon3 + +# This contains the compiler options necessary to select the CPU model +# and (hopefully) optimize for it. +CPU_CFLAGS = -mcpu=leon3 -msoft-float -mfix-gr712rc + +# optimize flag: typically -O2 +CFLAGS_OPTIMIZE_V = -O2 -g +CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections + +LDFLAGS = -Wl,--gc-sections diff --git a/c/src/lib/libbsp/sparc/leon3/make/custom/ngmp.cfg b/c/src/lib/libbsp/sparc/leon3/make/custom/gr740.cfg similarity index 100% rename from c/src/lib/libbsp/sparc/leon3/make/custom/ngmp.cfg rename to c/src/lib/libbsp/sparc/leon3/make/custom/gr740.cfg diff --git a/c/src/lib/libbsp/sparc/leon3/make/custom/ut699.cfg b/c/src/lib/libbsp/sparc/leon3/make/custom/ut699.cfg new file mode 100644 index 0000000..e1e4f84 --- /dev/null +++ b/c/src/lib/libbsp/sparc/leon3/make/custom/ut699.cfg @@ -0,0 +1,18 @@ +# +# Config file for the UT699 LEON3 SPARC processor. +# + +include $(RTEMS_ROOT)/make/custom/default.cfg + +RTEMS_CPU=sparc +RTEMS_CPU_MODEL=leon3 + +# This contains the compiler options necessary to select the CPU model +# and (hopefully) optimize for it. +CPU_CFLAGS = -mcpu=leon -msoft-float -mfix-ut699 + +# optimize flag: typically -O2 +CFLAGS_OPTIMIZE_V = -O2 -g +CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections + +LDFLAGS = -Wl,--gc-sections diff --git a/c/src/lib/libbsp/sparc/leon3/make/custom/ut700.cfg b/c/src/lib/libbsp/sparc/leon3/make/custom/ut700.cfg new file mode 100644 index 0000000..3f0c016 --- /dev/null +++ b/c/src/lib/libbsp/sparc/leon3/make/custom/ut700.cfg @@ -0,0 +1,18 @@ +# +# Config file for the UT699e/UT700 LEON3 SPARC processor. +# + +include $(RTEMS_ROOT)/make/custom/default.cfg + +RTEMS_CPU=sparc +RTEMS_CPU_MODEL=leon3 + +# This contains the compiler options necessary to select the CPU model +# and (hopefully) optimize for it. +CPU_CFLAGS = -mcpu=leon3 -msoft-float -mfix-ut700 + +# optimize flag: typically -O2 +CFLAGS_OPTIMIZE_V = -O2 -g +CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections + +LDFLAGS = -Wl,--gc-sections diff --git a/c/src/lib/libbsp/sparc/leon3/preinstall.am b/c/src/lib/libbsp/sparc/leon3/preinstall.am index 273a52d..70d58c8 100644 --- a/c/src/lib/libbsp/sparc/leon3/preinstall.am +++ b/c/src/lib/libbsp/sparc/leon3/preinstall.am @@ -81,9 +81,21 @@ $(PROJECT_LIB)/linkcmds.leon3: startup/linkcmds.leon3 $(PROJECT_LIB)/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.leon3 PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.leon3 -$(PROJECT_LIB)/linkcmds.ngmp: startup/linkcmds.ngmp $(PROJECT_LIB)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.ngmp -PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.ngmp +$(PROJECT_LIB)/linkcmds.ut699: startup/linkcmds.ut699 $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.ut699 +PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.ut699 + +$(PROJECT_LIB)/linkcmds.gr712rc: startup/linkcmds.gr712rc $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.gr712rc +PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.gr712rc + +$(PROJECT_LIB)/linkcmds.ut700: startup/linkcmds.ut700 $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.ut700 +PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.ut700 + +$(PROJECT_LIB)/linkcmds.gr740: startup/linkcmds.gr740 $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.gr740 +PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.gr740 $(PROJECT_INCLUDE)/bsp/gnatcommon.h: ../shared/include/gnatcommon.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/gnatcommon.h diff --git a/c/src/lib/libbsp/sparc/leon3/startup/linkcmds.gr712rc b/c/src/lib/libbsp/sparc/leon3/startup/linkcmds.gr712rc new file mode 100644 index 0000000..30f2b68 --- /dev/null +++ b/c/src/lib/libbsp/sparc/leon3/startup/linkcmds.gr712rc @@ -0,0 +1,20 @@ +/* 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 +} + +INCLUDE linkcmds.base diff --git a/c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ngmp b/c/src/lib/libbsp/sparc/leon3/startup/linkcmds.gr740 similarity index 100% rename from c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ngmp rename to c/src/lib/libbsp/sparc/leon3/startup/linkcmds.gr740 diff --git a/c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut699 b/c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut699 new file mode 100644 index 0000000..30f2b68 --- /dev/null +++ b/c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut699 @@ -0,0 +1,20 @@ +/* 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 +} + +INCLUDE linkcmds.base diff --git a/c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut700 b/c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut700 new file mode 100644 index 0000000..30f2b68 --- /dev/null +++ b/c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut700 @@ -0,0 +1,20 @@ +/* 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 +} + +INCLUDE linkcmds.base -- 2.9.3 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel