From d3d4e77c4218377d9aad9a3ac5d71461274bbc1e Mon Sep 17 00:00:00 2001 From: Jiri Gaisler Date: Fri, 18 Jan 2019 12:37:55 +0100 Subject: riscv: add griscv bsp Update #3678. --- c/src/lib/libbsp/riscv/acinclude.m4 | 2 + c/src/lib/libbsp/riscv/griscv/Makefile.am | 70 ++++++++++++++++++++++++++++++ c/src/lib/libbsp/riscv/griscv/configure.ac | 40 +++++++++++++++++ c/src/lib/libbsp/riscv/riscv/Makefile.am | 4 +- 4 files changed, 114 insertions(+), 2 deletions(-) create mode 100644 c/src/lib/libbsp/riscv/griscv/Makefile.am create mode 100644 c/src/lib/libbsp/riscv/griscv/configure.ac (limited to 'c/src') diff --git a/c/src/lib/libbsp/riscv/acinclude.m4 b/c/src/lib/libbsp/riscv/acinclude.m4 index d8b3319b08..db1a210fd4 100644 --- a/c/src/lib/libbsp/riscv/acinclude.m4 +++ b/c/src/lib/libbsp/riscv/acinclude.m4 @@ -2,6 +2,8 @@ AC_DEFUN([RTEMS_CHECK_BSPDIR], [ case "$1" in + griscv ) + AC_CONFIG_SUBDIRS([griscv]);; riscv ) AC_CONFIG_SUBDIRS([riscv]);; *) diff --git a/c/src/lib/libbsp/riscv/griscv/Makefile.am b/c/src/lib/libbsp/riscv/griscv/Makefile.am new file mode 100644 index 0000000000..4077ddebd2 --- /dev/null +++ b/c/src/lib/libbsp/riscv/griscv/Makefile.am @@ -0,0 +1,70 @@ +## +# +# @brief Makefile of LibBSP for the RISCV/Spike simulator. +# +# +ACLOCAL_AMFLAGS = -I ../../../../aclocal + +include $(top_srcdir)/../../../../automake/compile.am +include $(top_srcdir)/../../bsp.am + +dist_project_lib_DATA = ../../../../../../bsps/riscv/griscv/start/bsp_specs + +############################################################################### +# Header # +############################################################################### + +############################################################################### +# Data # +############################################################################### + +start.$(OBJEXT): ../../../../../../bsps/riscv/shared/start/start.S + $(CPPASCOMPILE) -o $@ -c $< +project_lib_DATA = start.$(OBJEXT) + +project_lib_DATA += linkcmds +project_lib_DATA += ../../../../../../bsps/riscv/shared/start/linkcmds.base + +############################################################################### +# LibBSP # +############################################################################### + +project_lib_LIBRARIES = librtemsbsp.a + +# Startup +librtemsbsp_a_SOURCES = ../../../../../../bsps/shared/start/bspreset-empty.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/riscv/griscv/start/bspstart.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/riscv/griscv/start/bsp_fatal_halt.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/riscv/griscv/start/amba.c + +# Shared +librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/bspfatal-default.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/dev/getentropy/getentropy-cpucounter.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/bspgetworkarea-default.c + +# clock +librtemsbsp_a_SOURCES +=../../../../../../bsps/riscv/griscv/clock/clockdrv.c + +# Timer +librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/dev/btimer/btimer-stub.c + +# IRQ +librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/irq/irq-default-handler.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/riscv/griscv/irq/irq.c + +# Cache +librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/cache/nocache.c + +# Console +librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/dev/serial/console-termios.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/riscv/griscv/console/console.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/riscv/griscv/console/printk_support.c + +if HAS_SMP +librtemsbsp_a_SOURCES += ../../../../../../bsps/riscv/griscv/start/bspsmp.c +endif + +include $(srcdir)/../../../../../../bsps/shared/irq-sources.am +include $(srcdir)/../../../../../../bsps/shared/grlib-sources.am +include $(srcdir)/../../../../../../bsps/shared/shared-sources.am +include $(srcdir)/../../../../../../bsps/riscv/griscv/headers.am diff --git a/c/src/lib/libbsp/riscv/griscv/configure.ac b/c/src/lib/libbsp/riscv/griscv/configure.ac new file mode 100644 index 0000000000..ed5694c763 --- /dev/null +++ b/c/src/lib/libbsp/riscv/griscv/configure.ac @@ -0,0 +1,40 @@ +## +# +# @file +# +# @brief Configure script of LibBSP for riscv BSP. +# + +AC_PREREQ([2.69]) +AC_INIT([rtems-c-src-lib-libbsp-riscv],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla]) +RTEMS_TOP(../../../../../..) +RTEMS_SOURCE_TOP +RTEMS_BUILD_TOP + +RTEMS_CANONICAL_TARGET_CPU +AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.12.2]) +RTEMS_BSP_CONFIGURE + +RTEMS_BSPOPTS_SET([BSP_CONSOLE_BAUD],[*],[115200]) +RTEMS_BSPOPTS_HELP([BSP_CONSOLE_BAUD],[default baud for console driver devices (default 115200)]) + +RTEMS_BSPOPTS_SET([RISCV_MAXIMUM_EXTERNAL_INTERRUPTS],[*],[64]) +RTEMS_BSPOPTS_HELP([RISCV_MAXIMUM_EXTERNAL_INTERRUPTS],[maximum number of external interrupts supported by the BSP (default 64)]) + +RTEMS_BSP_CLEANUP_OPTIONS + +RISCV_RAM_REGION_BEGIN_DEFAULT=0x40000000 + +AC_DEFUN([RISCV_LINKCMD],[ +AC_ARG_VAR([$1],[$2])dnl +[$1]=[$]{[$1]:-[$3]} +]) + +RISCV_LINKCMD([RISCV_RAM_REGION_BEGIN],[begin of the RAM region for linker command file (default is 0x40000000)],[${RISCV_RAM_REGION_BEGIN_DEFAULT}]) +RISCV_LINKCMD([RISCV_RAM_REGION_SIZE],[size of the RAM region for linker command file (default 16MiB)],[0x01000000]) + +AC_CONFIG_FILES([ +Makefile +linkcmds:../../../../../../bsps/riscv/griscv/start/linkcmds.in +]) +AC_OUTPUT diff --git a/c/src/lib/libbsp/riscv/riscv/Makefile.am b/c/src/lib/libbsp/riscv/riscv/Makefile.am index b8a034ccde..34bedf844f 100644 --- a/c/src/lib/libbsp/riscv/riscv/Makefile.am +++ b/c/src/lib/libbsp/riscv/riscv/Makefile.am @@ -18,12 +18,12 @@ dist_project_lib_DATA = ../../../../../../bsps/riscv/riscv/start/bsp_specs # Data # ############################################################################### -start.$(OBJEXT): ../../../../../../bsps/riscv/riscv/start/start.S +start.$(OBJEXT): ../../../../../../bsps/riscv/shared/start/start.S $(CPPASCOMPILE) -o $@ -c $< project_lib_DATA = start.$(OBJEXT) project_lib_DATA += linkcmds -project_lib_DATA += ../../../../../../bsps/riscv/riscv/start/linkcmds.base +project_lib_DATA += ../../../../../../bsps/riscv/shared/start/linkcmds.base ############################################################################### # LibBSP # -- cgit v1.2.3