[PATCH v3 0/6] OpenRISC de0 nano single and multicore boards

Stafford Horne
2026-01-09T13:44:25Z

Since v2:
- Fixup gpio-mmio patch to update driver compatible list and just
add opencores,gpio to mmio-gpio bindings. Discussed with Geert and
Linus W [1].
- Update new device trees to use proper ordering, remove debug options, remove
unneeded "status" properties. Suggested by Geert.
Since v1:
- Use proper schema in gpio-mmio suggsted by Conor Dooley
- Remove 0 clock-frequency definitions in dtsi file

The patches add support for OpenRISC systems running on the De0 Nano FPGA
development board. We have two SoCs which are available here:

- https://github.com/olofk/de0_nano - Single core
- https://github.com/stffrdhrn/de0_nano-multicore - Multicore

As I work on tutorials [2] to help other get started with OpenRISC I would like to
have these defconfig and devicetree definitions in the upstream kernel to avoid
losing them.

When I was working on resurrecting these old setup's I found a major bug in
OpenRISC SMP which is fixed in this series as well.

[1] https://lore.kernel.org/lkml/20251217080843.70621-1-shorne@gmail.com/
[2] https://openrisc.io/tutorials/

Stafford Horne (6):
gpio: mmio: Add compatible for opencores GPIO
dt-bindings: gpio-mmio: Add opencores GPIO
openrisc: dts: Add de0 nano config and devicetree
openrisc: Fix IPIs on simple multicore systems
openrisc: dts: Split simple smp dts to dts and dtsi
openrisc: dts: Add de0 nano multicore config and devicetree

.../devicetree/bindings/gpio/gpio-mmio.yaml | 9 ++
arch/openrisc/boot/dts/de0-nano-common.dtsi | 42 +++++++++
arch/openrisc/boot/dts/de0-nano-multicore.dts | 25 +++++
arch/openrisc/boot/dts/de0-nano.dts | 54 +++++++++++
arch/openrisc/boot/dts/simple-smp.dts | 25 +++++
.../dts/{simple_smp.dts => simple-smp.dtsi} | 11 +--
arch/openrisc/configs/de0_nano_defconfig | 79 ++++++++++++++++
.../configs/de0_nano_multicore_defconfig | 92 +++++++++++++++++++
arch/openrisc/configs/simple_smp_defconfig | 2 +-
arch/openrisc/include/asm/smp.h | 3 +-
arch/openrisc/kernel/smp.c | 22 ++++-
drivers/gpio/gpio-mmio.c | 1 +
drivers/irqchip/irq-ompic.c | 15 ++-
drivers/irqchip/irq-or1k-pic.c | 27 +++++-
14 files changed, 393 insertions(+), 14 deletions(-)
create mode 100644 arch/openrisc/boot/dts/de0-nano-common.dtsi
create mode 100644 arch/openrisc/boot/dts/de0-nano-multicore.dts
create mode 100644 arch/openrisc/boot/dts/de0-nano.dts
create mode 100644 arch/openrisc/boot/dts/simple-smp.dts
rename arch/openrisc/boot/dts/{simple_smp.dts => simple-smp.dtsi} (90%)
create mode 100644 arch/openrisc/configs/de0_nano_defconfig
create mode 100644 arch/openrisc/configs/de0_nano_multicore_defconfig

--
2.51.0