From 9ec9be834d94c5a90890eddb9a1eed8269d67300 Mon Sep 17 00:00:00 2001 From: Martin Aberg Date: Mon, 1 Feb 2021 15:18:21 +0100 Subject: bsp/riscv: Add NOEL-V BSP Added support for Cobham Gaisler NOEL-V systems. The NOEL-V support is implemented as a riscv BSP. Both 32-bit and 64-bit processor systems are supported. Cobham Gaisler's NOEL-V RISC-V processor IP is described here: https://www.gaisler.com/NOELV Compatible with the following NOEL-V FPGA example design ranges available from Cobham Gaisler. Follow the links for free bit-streams, DTS/DTB, user's manuals and quick-start guides: - NOEL-ARTYA7-EX (https://www.gaisler.com/NOEL-ARTYA7) - NOEL-PF-EX (https://www.gaisler.com/NOEL-PF) - NOEL-XCKU-EX (https://www.gaisler.com/NOEL-XCKU) Uses the shared GRLIB APBUART console driver "apbuart_termios.c". APBUART devices are probed using device tree. Closes #4225. --- spec/build/bsps/riscv/noel/abi.yml | 48 ++++++++++++++++++++ spec/build/bsps/riscv/noel/bspnoel32im.yml | 19 ++++++++ spec/build/bsps/riscv/noel/bspnoel32imafd.yml | 19 ++++++++ spec/build/bsps/riscv/noel/bspnoel64imac.yml | 19 ++++++++ spec/build/bsps/riscv/noel/bspnoel64imafd.yml | 19 ++++++++ spec/build/bsps/riscv/noel/bspnoel64imafdc.yml | 19 ++++++++ spec/build/bsps/riscv/noel/grp.yml | 61 ++++++++++++++++++++++++++ spec/build/bsps/riscv/noel/obj.yml | 38 ++++++++++++++++ spec/build/bsps/riscv/noel/objsmp.yml | 15 +++++++ spec/build/bsps/riscv/noel/optapbuartmax.yml | 16 +++++++ spec/build/bsps/riscv/optrambegin.yml | 3 ++ 11 files changed, 276 insertions(+) create mode 100644 spec/build/bsps/riscv/noel/abi.yml create mode 100644 spec/build/bsps/riscv/noel/bspnoel32im.yml create mode 100644 spec/build/bsps/riscv/noel/bspnoel32imafd.yml create mode 100644 spec/build/bsps/riscv/noel/bspnoel64imac.yml create mode 100644 spec/build/bsps/riscv/noel/bspnoel64imafd.yml create mode 100644 spec/build/bsps/riscv/noel/bspnoel64imafdc.yml create mode 100644 spec/build/bsps/riscv/noel/grp.yml create mode 100644 spec/build/bsps/riscv/noel/obj.yml create mode 100644 spec/build/bsps/riscv/noel/objsmp.yml create mode 100644 spec/build/bsps/riscv/noel/optapbuartmax.yml (limited to 'spec/build/bsps') diff --git a/spec/build/bsps/riscv/noel/abi.yml b/spec/build/bsps/riscv/noel/abi.yml new file mode 100644 index 0000000000..f81e0c1a60 --- /dev/null +++ b/spec/build/bsps/riscv/noel/abi.yml @@ -0,0 +1,48 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +actions: +- get-string: null +- split: null +- env-append: null +build-type: option +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +default: +- -march=rv32ima +- -mabi=ilp32 +default-by-variant: +- value: + - -march=rv64imafdc + - -mabi=lp64d + variants: + - riscv/noel64imafdc +- value: + - -march=rv64imafd + - -mabi=lp64d + variants: + - riscv/noel64imafd +- value: + - -march=rv64imac + - -mabi=lp64 + variants: + - riscv/noel64imac +- value: + - -march=rv64im + - -mabi=lp64 + variants: + - riscv/noel64im +- value: + - -march=rv32imafd + - -mabi=ilp32d + variants: + - riscv/noel32imafd +- value: + - -march=rv32im + - -mabi=ilp32 + variants: + - riscv/noel32im +description: | + ABI flags +enabled-by: true +links: [] +name: ABI_FLAGS +type: build diff --git a/spec/build/bsps/riscv/noel/bspnoel32im.yml b/spec/build/bsps/riscv/noel/bspnoel32im.yml new file mode 100644 index 0000000000..ab9a650ca5 --- /dev/null +++ b/spec/build/bsps/riscv/noel/bspnoel32im.yml @@ -0,0 +1,19 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +arch: riscv +bsp: noel32im +build-type: bsp +cflags: [] +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +cppflags: [] +enabled-by: true +family: noel +includes: [] +install: [] +links: +- role: build-dependency + uid: ../../opto2 +- role: build-dependency + uid: grp +source: [] +type: build diff --git a/spec/build/bsps/riscv/noel/bspnoel32imafd.yml b/spec/build/bsps/riscv/noel/bspnoel32imafd.yml new file mode 100644 index 0000000000..7510f182a1 --- /dev/null +++ b/spec/build/bsps/riscv/noel/bspnoel32imafd.yml @@ -0,0 +1,19 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +arch: riscv +bsp: noel32imafd +build-type: bsp +cflags: [] +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +cppflags: [] +enabled-by: true +family: noel +includes: [] +install: [] +links: +- role: build-dependency + uid: ../../opto2 +- role: build-dependency + uid: grp +source: [] +type: build diff --git a/spec/build/bsps/riscv/noel/bspnoel64imac.yml b/spec/build/bsps/riscv/noel/bspnoel64imac.yml new file mode 100644 index 0000000000..16e9b20fd2 --- /dev/null +++ b/spec/build/bsps/riscv/noel/bspnoel64imac.yml @@ -0,0 +1,19 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +arch: riscv +bsp: noel64imac +build-type: bsp +cflags: [] +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +cppflags: [] +enabled-by: true +family: noel +includes: [] +install: [] +links: +- role: build-dependency + uid: ../../opto2 +- role: build-dependency + uid: grp +source: [] +type: build diff --git a/spec/build/bsps/riscv/noel/bspnoel64imafd.yml b/spec/build/bsps/riscv/noel/bspnoel64imafd.yml new file mode 100644 index 0000000000..c6a2b4f6a5 --- /dev/null +++ b/spec/build/bsps/riscv/noel/bspnoel64imafd.yml @@ -0,0 +1,19 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +arch: riscv +bsp: noel64imafd +build-type: bsp +cflags: [] +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +cppflags: [] +enabled-by: true +family: noel +includes: [] +install: [] +links: +- role: build-dependency + uid: ../../opto2 +- role: build-dependency + uid: grp +source: [] +type: build diff --git a/spec/build/bsps/riscv/noel/bspnoel64imafdc.yml b/spec/build/bsps/riscv/noel/bspnoel64imafdc.yml new file mode 100644 index 0000000000..9aa881ed93 --- /dev/null +++ b/spec/build/bsps/riscv/noel/bspnoel64imafdc.yml @@ -0,0 +1,19 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +arch: riscv +bsp: noel64imafdc +build-type: bsp +cflags: [] +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +cppflags: [] +enabled-by: true +family: noel +includes: [] +install: [] +links: +- role: build-dependency + uid: ../../opto2 +- role: build-dependency + uid: grp +source: [] +type: build diff --git a/spec/build/bsps/riscv/noel/grp.yml b/spec/build/bsps/riscv/noel/grp.yml new file mode 100644 index 0000000000..c527fd6fef --- /dev/null +++ b/spec/build/bsps/riscv/noel/grp.yml @@ -0,0 +1,61 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +build-type: group +cflags: [] +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +cppflags: [] +cxxflags: [] +enabled-by: true +includes: [] +install: [] +ldflags: [] +links: +- role: build-dependency + uid: ../../obj +- role: build-dependency + uid: ../../objirq +- role: build-dependency + uid: ../../optclang +- role: build-dependency + uid: ../../optconsolebaud +- role: build-dependency + uid: ../../optgcc +- role: build-dependency + uid: ../grp +- role: build-dependency + uid: ../optrambegin +- role: build-dependency + uid: ../optramsize +- role: build-dependency + uid: abi +- role: build-dependency + uid: obj +- role: build-dependency + uid: objsmp +- role: build-dependency + uid: ../../objmem +- role: build-dependency + uid: ../optextirqmax +- role: build-dependency + uid: ../../optfdtcpyro +- role: build-dependency + uid: ../../optfdtmxsz +- role: build-dependency + uid: ../../optfdtro +- role: build-dependency + uid: ../../optfdtuboot +- role: build-dependency + uid: ../../optconsoleirq +- role: build-dependency + uid: ../linkcmds +- role: build-dependency + uid: ../linkcmdsbase +- role: build-dependency + uid: ../start +- role: build-dependency + uid: ../../bspopts +- role: build-dependency + uid: optapbuartmax +type: build +use-after: [] +use-before: [] diff --git a/spec/build/bsps/riscv/noel/obj.yml b/spec/build/bsps/riscv/noel/obj.yml new file mode 100644 index 0000000000..e702eb334d --- /dev/null +++ b/spec/build/bsps/riscv/noel/obj.yml @@ -0,0 +1,38 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +build-type: objects +cflags: [] +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +cppflags: [] +cxxflags: [] +enabled-by: true +includes: [] +install: +- destination: ${BSP_INCLUDEDIR} + source: + - bsps/riscv/noel/include/bsp.h + - bsps/riscv/noel/include/tm27.h +- destination: ${BSP_INCLUDEDIR}/bsp + source: + - bsps/riscv/noel/include/bsp/irq.h + - bsps/riscv/noel/include/bsp/riscv.h +links: [] +source: +- bsps/riscv/riscv/clock/clockdrv.c +- bsps/riscv/noel/console/console-config.c +- bsps/riscv/riscv/irq/irq.c +- bsps/riscv/noel/start/bsp_fatal_halt.c +- bsps/riscv/riscv/start/bspstart.c +- bsps/riscv/shared/start/bspgetworkarea.c +- bsps/shared/cache/nocache.c +- bsps/shared/dev/btimer/btimer-cpucounter.c +- bsps/shared/dev/getentropy/getentropy-cpucounter.c +- bsps/shared/dev/serial/console-termios.c +- bsps/shared/irq/irq-default-handler.c +- bsps/shared/start/bsp-fdt.c +- bsps/shared/start/bspfatal-default.c +- bsps/shared/start/bspreset-empty.c +- bsps/shared/start/gettargethash-default.c +- bsps/shared/grlib/uart/apbuart_polled.c +- bsps/shared/grlib/uart/apbuart_termios.c +type: build diff --git a/spec/build/bsps/riscv/noel/objsmp.yml b/spec/build/bsps/riscv/noel/objsmp.yml new file mode 100644 index 0000000000..46369f977e --- /dev/null +++ b/spec/build/bsps/riscv/noel/objsmp.yml @@ -0,0 +1,15 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +build-type: objects +cflags: [] +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +cppflags: [] +cxxflags: [] +enabled-by: +- RTEMS_SMP +includes: [] +install: [] +links: [] +source: +- bsps/riscv/riscv/start/bspsmp.c +type: build diff --git a/spec/build/bsps/riscv/noel/optapbuartmax.yml b/spec/build/bsps/riscv/noel/optapbuartmax.yml new file mode 100644 index 0000000000..c120816868 --- /dev/null +++ b/spec/build/bsps/riscv/noel/optapbuartmax.yml @@ -0,0 +1,16 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +actions: +- get-integer: null +- define: null +build-type: option +copyrights: +- Copyright (C) 2022 Cobham Gaisler AB +default: 2 +default-by-variant: [] +description: | + maximum number of APBUART devices supported by the console driver (2 by default) +enabled-by: true +format: '{}' +links: [] +name: RISCV_CONSOLE_MAX_APBUART_DEVICES +type: build diff --git a/spec/build/bsps/riscv/optrambegin.yml b/spec/build/bsps/riscv/optrambegin.yml index 2073926dac..4a867a1921 100644 --- a/spec/build/bsps/riscv/optrambegin.yml +++ b/spec/build/bsps/riscv/optrambegin.yml @@ -16,6 +16,9 @@ default-by-variant: - value: 1879048192 variants: - riscv/rv64.* +- value: 0 + variants: + - riscv/noel.* - value: 1073741824 variants: - riscv/griscv -- cgit v1.2.3