bsps/sparc: Add leon3 BSP variants

Rename NGMP to GR740 and add configs for UT699, UT700, and GR712RC

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.

Remove -msoft-float from the leon3 config to make the more common case
of using the FPU the default.

Update #3057.
This commit is contained in:
Daniel Cederman
2017-07-14 14:12:07 +02:00
committed by Sebastian Huber
parent 2f8704b6c8
commit 4debaca6d2
11 changed files with 134 additions and 5 deletions

View File

@@ -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 =

View File

@@ -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 -mfix-gr712rc
# optimize flag: typically -O2
CFLAGS_OPTIMIZE_V = -O2 -g
CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
LDFLAGS = -Wl,--gc-sections

View File

@@ -9,7 +9,7 @@ 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
CPU_CFLAGS = -mcpu=leon3
# optimize flag: typically -O2
CFLAGS_OPTIMIZE_V = -O2 -g

View File

@@ -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 -mfix-ut699
# optimize flag: typically -O2
CFLAGS_OPTIMIZE_V = -O2 -g
CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
LDFLAGS = -Wl,--gc-sections

View File

@@ -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 -mfix-ut700
# optimize flag: typically -O2
CFLAGS_OPTIMIZE_V = -O2 -g
CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
LDFLAGS = -Wl,--gc-sections

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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