Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions boards/id8/seven_nrf9151/Kconfig.defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Seven_nrf9151 board configuration

# Copyright (c) 2026 ID8 Engineering AB
# SPDX-License-Identifier: Apache-2.0
#
config HW_STACK_PROTECTION
default ARCH_HAS_STACK_PROTECTION

if BOARD_SEVEN_NRF9151 || BOARD_SEVEN_NRF9151_NS

config BOARD_SEVEN
select USE_DT_CODE_PARTITION if BOARD_SEVEN_NRF9151_NS

endif # BOARD_SEVEN_NRF9151 || BOARD_SEVEN_NRF9151_NS
7 changes: 7 additions & 0 deletions boards/id8/seven_nrf9151/Kconfig.seven
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Seven nRF9151 board configuration

# Copyright (c) 2026 ID8 Engineering AB
# SPDX-License-Identifier: Apache-2.0

config BOARD_SEVEN
select SOC_NRF9151_LACA
14 changes: 14 additions & 0 deletions boards/id8/seven_nrf9151/board.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# SPDX-License-Identifier: Apache-2.0

if(CONFIG_BOARD_SEVEN_NRF9151_NS)
set(TFM_PUBLIC_KEY_FORMAT "full")
endif()

if(CONFIG_TFM_FLASH_MERGED_BINARY)
set_property(TARGET runners_yaml_props_target PROPERTY hex_file tfm_merged.hex)
endif()

board_runner_args(jlink "--device=nRF9151_xxCA" "--speed=4000")
include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake)
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
8 changes: 8 additions & 0 deletions boards/id8/seven_nrf9151/board.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
board:
name: seven
full_name: Seven nRF9151
vendor: id8
socs:
- name: nrf9151
variants:
- name: 'ns'
142 changes: 142 additions & 0 deletions boards/id8/seven_nrf9151/doc/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
.. zephyr:board:: seven

Overview
********

Seven is a custom nRF9151-based board from ID8 Engineering AB. The
``seven/nrf9151`` board target supports the Nordic Semiconductor nRF9151 ARM
Cortex-M33 CPU with Armv8-M Security Extension.

Hardware
********

Seven is based on the Nordic nRF9151 and provides:

* LTE-M / NB-IoT modem support
* GNSS support
* 6 V to 36 V input supply
* One Nano-SIM card holder
* LTE and GNSS SMA connectors
* One WS2812-compatible system LED on ``P0.18``
* One passive buzzer on ``P0.19``
* One debug UART on ``P0.27`` (TX) and ``P0.26`` (RX)
* Two mikroBUS™ headers

Supported Features
==================

.. zephyr:board-supported-hw::

mikroBUS™ Notes
==============

Seven provides default interface routing for the mikroBUS™ sockets:

* mikroBUS™ 1 uses ``uart2`` / ``i2c2`` / ``spi2``
* mikroBUS™ 2 uses ``uart3`` / ``i2c3`` / ``spi3``

Application overlays are expected to enable the function they need on the
target socket. The generic ``&mikrobus_*`` labels target mikroBUS™ 1 by
default, while the explicit ``&mikrobus_1_*`` and ``&mikrobus_2_*`` labels
target a specific socket.

On nRF9151, the serial blocks are multiplexed:

* ``uart1`` / ``i2c1`` / ``spi1``
* ``uart2`` / ``i2c2`` / ``spi2``
* ``uart3`` / ``i2c3`` / ``spi3``

Only one function from each group can be enabled at a time, so each mikroBUS™
socket may use UART or I2C or SPI, but not multiple of those functions
simultaneously.

The on-board RGB LED uses ``spi1`` with MOSI on ``P0.18`` by default, so
serial block 1 is not available for mikroBUS™ overlays unless that LED route
is overridden.

For ``seven/nrf9151/ns``, ``uart1`` is disabled by default to match the
upstream ``nrf9151dk`` non-secure board behavior where TF-M uses it by
default.

Examples:

* To place an I2C Click board on mikroBUS™ 1, enable ``&mikrobus_1_i2c`` and
add the device below it in an app overlay.
* To place an SPI Click board on mikroBUS™ 2, enable ``&mikrobus_2_spi`` and
add the device below it in an app overlay.
* To place a UART Click board on mikroBUS™ 1, enable ``&mikrobus_1_serial`` in
an app overlay.
* Upstream shields target mikroBUS™ 1 by default through
``&mikrobus_spi``, ``&mikrobus_i2c``, ``&mikrobus_serial``, and
``&mikrobus_header``.

Connections and IOs
===================

On-board peripherals
--------------------

* System LED data = ``P0.18`` via ``spi1`` MOSI
* Buzzer PWM = ``P0.19``
* Debug UART TX = ``P0.27``
* Debug UART RX = ``P0.26``

mikroBUS™ 1
----------

* AN = ``P0.20``
* RST = ``P0.16``
* CS = ``P0.07``
* SCK = ``P0.29``
* MISO = ``P0.28``
* MOSI = ``P0.21``
* PWM = ``P0.17``
* INT = ``P0.15``
* RX = ``P0.13``
* TX = ``P0.12``
* SCL = ``P0.23``
* SDA = ``P0.22``

mikroBUS™ 2
----------

* AN = ``P0.14``
* RST = ``P0.02``
* CS = ``P0.00``
* SCK = ``P0.06``
* MISO = ``P0.05``
* MOSI = ``P0.04``
* PWM = ``P0.03``
* INT = ``P0.01``
* RX = ``P0.11``
* TX = ``P0.10``
* SCL = ``P0.08``
* SDA = ``P0.09``

Programming and Debugging
*************************

Seven provides a TC2030 SWD/JTAG connector for programming and a UART VCOM
interface for debug output.

.. zephyr:board-supported-runners::

References
**********

.. target-notes::

.. _Seven hardware documentation:
https://github.com/id8-engineering/seven-hardware

.. _nRF9151 website:
https://www.nordicsemi.com/Products/nRF9151

.. _Nordic Semiconductor TechDocs:
https://docs.nordicsemi.com/

.. _Trusted Firmware M:
https://www.trustedfirmware.org/projects/tf-m/

.. _mikroBUS standard:
https://www.mikroe.com/mikrobus
7 changes: 7 additions & 0 deletions boards/id8/seven_nrf9151/pre_dt_board.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Copyright (c) 2021 Linaro Limited
# SPDX-License-Identifier: Apache-2.0

# Suppress "unique_unit_address_if_enabled" to handle the following overlaps:
# - flash-controller@39000 & kmu@39000
# - power@5000 & clock@5000
list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")
22 changes: 22 additions & 0 deletions boards/id8/seven_nrf9151/seven_nrf9151.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
* Copyright (c) 2026 ID8 Engineering AB
*
* SPDX-License-Identifier: Apache-2.0
*/

/dts-v1/;
#include <nordic/nrf9151_laca.dtsi>
#include "seven_nrf9151_common.dtsi"

/ {
model = "Seven nRF9151";
compatible = "id8,seven-nrf9151";

chosen {
zephyr,sram = &sram0_s;
zephyr,flash = &flash0;
zephyr,code-partition = &slot0_partition;
zephyr,sram-secure-partition = &sram0_s;
zephyr,sram-non-secure-partition = &sram0_ns;
};
};
19 changes: 19 additions & 0 deletions boards/id8/seven_nrf9151/seven_nrf9151.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
identifier: seven/nrf9151
name: seven_nrf9151
type: mcu
arch: arm
toolchain:
- gnuarmemb
- zephyr
ram: 88
flash: 1024
supported:
- gpio
- i2c
- pwm
- uart
- spi
- watchdog
- counter
- adc
vendor: id8
Loading