Browse Source
Adding the Circuit Dojo nRF9160 Thing Plus device tree definitions. Both secure and non secure targets. Adding LIS2DH to nRF9160 Feather definitions. Updating flash to W25Q32JV. Signed-off-by: Jared Wolff <hello@jaredwolff.com>pull/34774/head
20 changed files with 712 additions and 17 deletions
@ -0,0 +1,4 @@ |
|||||||
|
# SPDX-License-Identifier: Apache-2.0 |
||||||
|
|
||||||
|
zephyr_library() |
||||||
|
zephyr_library_sources(board.c) |
@ -0,0 +1,5 @@ |
|||||||
|
# Circuit Dojo nRF9160 Feather configuration |
||||||
|
|
||||||
|
# Copyright (c) 2018-2020 Nordic Semiconductor ASA |
||||||
|
# Copyright (c) 2020 Circuit Dojo LLC |
||||||
|
# SPDX-License-Identifier: Apache-2.0 |
@ -0,0 +1,15 @@ |
|||||||
|
# Sparkfun nRF9160 Thing Plus configuration |
||||||
|
|
||||||
|
# Copyright (c) 2018-2020 Nordic Semiconductor ASA |
||||||
|
# Copyright (c) 2020 Circuit Dojo LLC |
||||||
|
# SPDX-License-Identifier: Apache-2.0 |
||||||
|
|
||||||
|
if SOC_NRF9160_SICA |
||||||
|
|
||||||
|
config BOARD_SPARKFUN_THING_PLUS_NRF9160 |
||||||
|
bool "Sparkfun nRF9160 Thing Plus" |
||||||
|
|
||||||
|
config BOARD_SPARKFUN_THING_PLUS_NRF9160NS |
||||||
|
bool "Sparkfun nRF9160 Thing Plus non-secure" |
||||||
|
|
||||||
|
endif # SOC_NRF9160_SICA |
@ -0,0 +1,39 @@ |
|||||||
|
# Circuit Dojo nRF9160 Feather configuration |
||||||
|
|
||||||
|
# Copyright (c) 2018-2020 Nordic Semiconductor ASA |
||||||
|
# Copyright (c) 2020 Circuit Dojo LLC |
||||||
|
# SPDX-License-Identifier: Apache-2.0 |
||||||
|
|
||||||
|
if BOARD_SPARKFUN_THING_PLUS_NRF9160 || BOARD_SPARKFUN_THING_PLUS_NRF9160NS |
||||||
|
|
||||||
|
config BOARD |
||||||
|
default "sparkfun_thing_plus_nrf9160" |
||||||
|
|
||||||
|
# For the secure version of the board the firmware is linked at the beginning |
||||||
|
# of the flash, or into the code-partition defined in DT if it is intended to |
||||||
|
# be loaded by MCUboot. If the secure firmware is to be combined with a non- |
||||||
|
# secure image (TRUSTED_EXECUTION_SECURE=y), the secure FW image shall always |
||||||
|
# be restricted to the size of its code partition. |
||||||
|
# For the non-secure version of the board, the firmware |
||||||
|
# must be linked into the code-partition (non-secure) defined in DT, regardless. |
||||||
|
# Apply this configuration below by setting the Kconfig symbols used by |
||||||
|
# the linker according to the information extracted from DT partitions. |
||||||
|
|
||||||
|
# Workaround for not being able to have commas in macro arguments |
||||||
|
DT_CHOSEN_Z_CODE_PARTITION := zephyr,code-partition |
||||||
|
|
||||||
|
config FLASH_LOAD_SIZE |
||||||
|
default $(dt_chosen_reg_size_hex,$(DT_CHOSEN_Z_CODE_PARTITION)) |
||||||
|
depends on BOARD_SPARKFUN_THING_PLUS_NRF9160 && TRUSTED_EXECUTION_SECURE |
||||||
|
|
||||||
|
if BOARD_SPARKFUN_THING_PLUS_NRF9160NS |
||||||
|
|
||||||
|
config FLASH_LOAD_OFFSET |
||||||
|
default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CODE_PARTITION)) |
||||||
|
|
||||||
|
config FLASH_LOAD_SIZE |
||||||
|
default $(dt_chosen_reg_size_hex,$(DT_CHOSEN_Z_CODE_PARTITION)) |
||||||
|
|
||||||
|
endif # BOARD_SPARKFUN_THING_PLUS_NRF9160NS |
||||||
|
|
||||||
|
endif # BOARD_SPARKFUN_THING_PLUS_NRF9160 || BOARD_SPARKFUN_THING_PLUS_NRF9160NS |
@ -0,0 +1,33 @@ |
|||||||
|
/*
|
||||||
|
* Copyright (c) 2020 Circuit Dojo LLC |
||||||
|
* |
||||||
|
* SPDX-License-Identifier: Apache-2.0 |
||||||
|
*/ |
||||||
|
|
||||||
|
#include <init.h> |
||||||
|
#include <drivers/gpio.h> |
||||||
|
|
||||||
|
#define GPIO0 DT_LABEL(DT_NODELABEL(gpio0)) |
||||||
|
#define POWER_LATCH_PIN 31 |
||||||
|
|
||||||
|
static int board_sparkfun_thing_plus_nrf9160_init(const struct device *dev) |
||||||
|
{ |
||||||
|
ARG_UNUSED(dev); |
||||||
|
|
||||||
|
/* Get the device binding */ |
||||||
|
const struct device *gpio = device_get_binding(GPIO0); |
||||||
|
|
||||||
|
/* Return if NULL */ |
||||||
|
if (gpio == NULL) { |
||||||
|
return -ENODEV; |
||||||
|
} |
||||||
|
|
||||||
|
/* Configure latch pin as output. */ |
||||||
|
gpio_pin_configure(gpio, POWER_LATCH_PIN, GPIO_OUTPUT_HIGH); |
||||||
|
|
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
/* needs to be done after GPIO driver init */ |
||||||
|
SYS_INIT(board_sparkfun_thing_plus_nrf9160_init, POST_KERNEL, |
||||||
|
CONFIG_KERNEL_INIT_PRIORITY_DEFAULT); |
@ -0,0 +1,6 @@ |
|||||||
|
# SPDX-License-Identifier: Apache-2.0 |
||||||
|
|
||||||
|
board_runner_args(nrfjprog "--nrf-family=NRF91") |
||||||
|
board_runner_args(jlink "--device=cortex-m33" "--speed=4000") |
||||||
|
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) |
||||||
|
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) |
After Width: | Height: | Size: 187 KiB |
@ -0,0 +1,153 @@ |
|||||||
|
.. _sparkfun_thing_plus_nrf9160: |
||||||
|
|
||||||
|
nRF9160 Thing Plus |
||||||
|
################## |
||||||
|
|
||||||
|
.. figure:: img/sparkfun_thing_plus_nrf9160.jpeg |
||||||
|
:width: 600px |
||||||
|
:align: center |
||||||
|
:alt: Sparkfun nRF9160 Thing Plus |
||||||
|
|
||||||
|
nRF9160 Thing Plus (Credit: Sparkfun) |
||||||
|
|
||||||
|
Overview |
||||||
|
******** |
||||||
|
|
||||||
|
The nRF9160 Thing Plus designed by Circuit Dojo is a single-board development |
||||||
|
for bringing your LTE-M and NB-IoT applications to life. The sparkfun_thing_plus_nrf9160 |
||||||
|
board configuration leverages the pre-existing support for the Nordic Semiconductor |
||||||
|
nRF9160. Supported nRF9160 peripherals include: |
||||||
|
|
||||||
|
* :abbr:`ADC (Analog to Digital Converter)` |
||||||
|
* CLOCK |
||||||
|
* FLASH |
||||||
|
* :abbr:`GPIO (General Purpose Input Output)` |
||||||
|
* :abbr:`I2C (Inter-Integrated Circuit)` |
||||||
|
* :abbr:`MPU (Memory Protection Unit)` |
||||||
|
* :abbr:`NVIC (Nested Vectored Interrupt Controller)` |
||||||
|
* :abbr:`PWM (Pulse Width Modulation)` |
||||||
|
* :abbr:`RTC (nRF RTC System Clock)` |
||||||
|
* Segger RTT (RTT Console) |
||||||
|
* :abbr:`SPI (Serial Peripheral Interface)` |
||||||
|
* :abbr:`UARTE (Universal asynchronous receiver-transmitter with EasyDMA)` |
||||||
|
* :abbr:`WDT (Watchdog Timer)` |
||||||
|
* :abbr:`IDAU (Implementation Defined Attribution Unit)` |
||||||
|
|
||||||
|
More information about the board can be found at the |
||||||
|
`nRF9160 Thing Plus Documentation`_. |
||||||
|
|
||||||
|
|
||||||
|
Hardware |
||||||
|
******** |
||||||
|
|
||||||
|
Connections and IOs |
||||||
|
=================== |
||||||
|
|
||||||
|
The nRF9160 Thing Plus has everything you know and love about |
||||||
|
the Feather platform. Here are some of the highlights: |
||||||
|
|
||||||
|
LED |
||||||
|
--- |
||||||
|
|
||||||
|
* D7 (blue) = P0.03 |
||||||
|
|
||||||
|
Push buttons and Switches |
||||||
|
------------------------- |
||||||
|
|
||||||
|
* MODE = P0.12 |
||||||
|
* RESET |
||||||
|
|
||||||
|
USB |
||||||
|
--- |
||||||
|
|
||||||
|
Contains a USB/UART connection for both debugging and loading new |
||||||
|
code using a UART Enabled MCUBoot. |
||||||
|
|
||||||
|
Standard Battery Connection |
||||||
|
---------------------------- |
||||||
|
|
||||||
|
The nRF9160 Thing Plus has a 2 pin battery connector on board. Lithium Polymer batteries > |
||||||
|
300mA required. |
||||||
|
|
||||||
|
Nano SIM Holder |
||||||
|
--------------- |
||||||
|
|
||||||
|
The nRF9160 Thing Plus has a built-in nano SIM (4FF) holder located |
||||||
|
on the bottom side. |
||||||
|
|
||||||
|
|
||||||
|
Programming and Debugging |
||||||
|
************************* |
||||||
|
|
||||||
|
sparkfun_thing_plus_nrf9160 can be used with most programmers like: |
||||||
|
|
||||||
|
* J-Link (the nRF53-DK is recommended) |
||||||
|
* CMSIS-DAP based programmers |
||||||
|
|
||||||
|
Check out `Getting Started`_ for more info. |
||||||
|
|
||||||
|
Building an application |
||||||
|
======================= |
||||||
|
|
||||||
|
In most cases you'll want to use the ``ns`` target with any of the Zephyr |
||||||
|
or Nordic based examples. Some of the examples do not use secure mode, |
||||||
|
so they do not required the ``ns`` suffix. A great example of this is the |
||||||
|
`hello_world` below: |
||||||
|
|
||||||
|
Flashing |
||||||
|
======== |
||||||
|
|
||||||
|
Follow the instructions in the :ref:`nordic_segger` page to install |
||||||
|
and configure all the necessary software. Further information can be |
||||||
|
found in :ref:`nordic_segger_flashing`. Then build and flash |
||||||
|
applications as usual (see :ref:`build_an_application` and |
||||||
|
:ref:`application_run` for more details). |
||||||
|
|
||||||
|
Here is an example for the :ref:`hello_world` application. |
||||||
|
|
||||||
|
First, run your favorite terminal program to listen for output. |
||||||
|
|
||||||
|
.. code-block:: console |
||||||
|
|
||||||
|
$ screen /dev/<tty_device> 115200 |
||||||
|
|
||||||
|
Replace :code:`<tty_device>` with the port where the nRF9160 Thing Plus |
||||||
|
can be found. In most cases (On Linux/Mac) it will be: :code:`/dev/tty.SLAB_USBtoUART`. |
||||||
|
|
||||||
|
Then build and flash the application in the usual way. |
||||||
|
|
||||||
|
.. zephyr-app-commands:: |
||||||
|
:zephyr-app: samples/hello_world |
||||||
|
:board: sparkfun_thing_plus_nrf9160 |
||||||
|
:goals: build flash |
||||||
|
|
||||||
|
Debugging |
||||||
|
========= |
||||||
|
|
||||||
|
Refer to the :ref:`nordic_segger` page to learn about debugging Nordic boards with a |
||||||
|
Segger IC. |
||||||
|
|
||||||
|
|
||||||
|
Testing the LEDs and buttons on the nRF9160 Thing Plus |
||||||
|
****************************************************** |
||||||
|
|
||||||
|
There are 2 samples that allow you to test that the buttons (switches) and LEDs on |
||||||
|
the board are working properly with Zephyr: |
||||||
|
|
||||||
|
* :ref:`blinky-sample` |
||||||
|
* :ref:`button-sample` |
||||||
|
|
||||||
|
You can build and flash the examples to make sure Zephyr is running correctly on |
||||||
|
your board. The button and LED definitions can be found in |
||||||
|
:zephyr_file:`boards/arm/sparkfun_thing_plus_nrf9160/sparkfun_thing_plus_nrf9160_common.dts`. |
||||||
|
|
||||||
|
References |
||||||
|
********** |
||||||
|
|
||||||
|
.. target-notes:: |
||||||
|
|
||||||
|
**Side note** This page was based on the documentation for the nRF9160 DK. Thanks to Nordic for |
||||||
|
developing a great platform! |
||||||
|
|
||||||
|
.. _nRF9160 Thing Plus Documentation: https://docs.jaredwolff.com/nrf9160-introduction.html |
||||||
|
.. _Getting Started: https://docs.jaredwolff.com/nrf9160-getting-started.html |
@ -0,0 +1,27 @@ |
|||||||
|
/* |
||||||
|
* Copyright (c) 2018-2020 Nordic Semiconductor ASA |
||||||
|
* Copyright (c) 2020 Circuit Dojo LLC |
||||||
|
* |
||||||
|
* SPDX-License-Identifier: Apache-2.0 |
||||||
|
*/ |
||||||
|
|
||||||
|
/dts-v1/; |
||||||
|
#include <nordic/nrf9160_sica.dtsi> |
||||||
|
#include "sparkfun_thing_plus_nrf9160_common.dts" |
||||||
|
|
||||||
|
/ { |
||||||
|
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; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
&uart0 { |
||||||
|
status = "okay"; |
||||||
|
current-speed = <1000000>; |
||||||
|
tx-pin = <6>; |
||||||
|
rx-pin = <5>; |
||||||
|
}; |
@ -0,0 +1,15 @@ |
|||||||
|
identifier: sparkfun_thing_plus_nrf9160 |
||||||
|
name: Sparkfun-Thing-Plus-nRF9160 |
||||||
|
type: mcu |
||||||
|
arch: arm |
||||||
|
toolchain: |
||||||
|
- gnuarmemb |
||||||
|
- xtools |
||||||
|
- zephyr |
||||||
|
ram: 64 |
||||||
|
flash: 256 |
||||||
|
supported: |
||||||
|
- i2c |
||||||
|
- pwm |
||||||
|
- watchdog |
||||||
|
- counter |
@ -0,0 +1,234 @@ |
|||||||
|
/* |
||||||
|
* Copyright (c) 2018-2020 Nordic Semiconductor ASA |
||||||
|
* Copyright (c) 2020 Circuit Dojo LLC |
||||||
|
* |
||||||
|
* SPDX-License-Identifier: Apache-2.0 |
||||||
|
*/ |
||||||
|
|
||||||
|
/ { |
||||||
|
model = "Sparkfun nRF9160 Thing Plus"; |
||||||
|
compatible = "sparkfun,thing-plus-nrf9160"; |
||||||
|
|
||||||
|
chosen { |
||||||
|
zephyr,console = &uart0; |
||||||
|
zephyr,shell-uart = &uart0; |
||||||
|
zephyr,uart-mcumgr = &uart0; |
||||||
|
}; |
||||||
|
|
||||||
|
leds { |
||||||
|
compatible = "gpio-leds"; |
||||||
|
blue_led: led_0 { |
||||||
|
gpios = <&gpio0 3 GPIO_ACTIVE_LOW>; |
||||||
|
label = "Blue LED (D7)"; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
pwmleds { |
||||||
|
compatible = "pwm-leds"; |
||||||
|
pwm_led0: pwm_led_0 { |
||||||
|
pwms = <&pwm0 3>; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
buttons { |
||||||
|
compatible = "gpio-keys"; |
||||||
|
button0: button_0 { |
||||||
|
gpios = <&gpio0 12 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; |
||||||
|
label = "Switch 1"; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
/* These aliases are provided for compatibility with samples */ |
||||||
|
aliases { |
||||||
|
led0 = &blue_led; |
||||||
|
bootloader-led0 = &blue_led; |
||||||
|
pwm-led0 = &pwm_led0; |
||||||
|
sw0 = &button0; |
||||||
|
}; |
||||||
|
|
||||||
|
/* Used for accessing other pins */ |
||||||
|
feather_header: feather_connector { |
||||||
|
compatible = "adafruit-feather-header"; |
||||||
|
#gpio-cells = <2>; |
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>; |
||||||
|
gpio-map-pass-thru = <0 0x3f>; |
||||||
|
gpio-map = <12 0 &gpio0 26 0>, /* SDA */ |
||||||
|
<13 0 &gpio0 27 0>, /* SCL */ |
||||||
|
<14 0 &gpio0 29 0>, /* PWM3 */ |
||||||
|
<15 0 &gpio0 30 0>, /* PWM3 */ |
||||||
|
<16 0 &gpio0 0 0>, /* PWM1 */ |
||||||
|
<17 0 &gpio0 1 0>, /* PWM1 */ |
||||||
|
<18 0 &gpio0 2 0>, /* PWM1 */ |
||||||
|
<19 0 &gpio0 3 0>, /* PWM0 */ |
||||||
|
<20 0 &gpio0 4 0>, /* PWM1 */ |
||||||
|
/* 11 not connected */ |
||||||
|
<10 0 &gpio0 24 0>, /* TX */ |
||||||
|
<9 0 &gpio0 23 0>, /* RX */ |
||||||
|
<8 0 &gpio0 22 0>, /* MISO */ |
||||||
|
<7 0 &gpio0 21 0>, /* MOSI */ |
||||||
|
<6 0 &gpio0 19 0>, /* SCK */ |
||||||
|
<5 0 &gpio0 18 0>, /* SS */ |
||||||
|
<4 0 &gpio0 17 0>, /* ADC4 = AIN6 */ |
||||||
|
<3 0 &gpio0 16 0>, /* ADC3 = AIN5 */ |
||||||
|
<2 0 &gpio0 15 0>, /* ADC2 = AIN4 */ |
||||||
|
<1 0 &gpio0 14 0>, /* ADC1 = AIN2 */ |
||||||
|
<0 0 &gpio0 13 0>; /* ADC0 = AIN1 */ |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
&adc { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
&gpiote { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
&gpio0 { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
&uart0 { |
||||||
|
status = "okay"; |
||||||
|
current-speed = <115200>; |
||||||
|
tx-pin = <6>; |
||||||
|
rx-pin = <5>; |
||||||
|
}; |
||||||
|
|
||||||
|
&uart1 { |
||||||
|
current-speed = <115200>; |
||||||
|
tx-pin = <0>; |
||||||
|
rx-pin = <1>; |
||||||
|
}; |
||||||
|
|
||||||
|
&uart2 { |
||||||
|
tx-pin = <24>; |
||||||
|
rx-pin = <23>; |
||||||
|
}; |
||||||
|
|
||||||
|
&i2c1 { |
||||||
|
compatible = "nordic,nrf-twim"; |
||||||
|
status = "okay"; |
||||||
|
sda-pin = <26>; |
||||||
|
scl-pin = <27>; |
||||||
|
|
||||||
|
pcf85063a@51 { |
||||||
|
compatible = "nxp,pcf85063a"; |
||||||
|
label = "PCF85063A"; |
||||||
|
reg = <0x51>; |
||||||
|
}; |
||||||
|
|
||||||
|
lis2dh@18 { |
||||||
|
compatible = "st,lis2dh"; |
||||||
|
label = "LIS2DH"; |
||||||
|
reg = <0x18>; |
||||||
|
irq-gpios = <&gpio0 29 0>; |
||||||
|
}; |
||||||
|
|
||||||
|
}; |
||||||
|
|
||||||
|
&pwm0 { |
||||||
|
status = "okay"; |
||||||
|
ch0-pin = <3>; |
||||||
|
}; |
||||||
|
|
||||||
|
&spi3 { |
||||||
|
compatible = "nordic,nrf-spim"; |
||||||
|
status = "okay"; |
||||||
|
sck-pin = <11>; |
||||||
|
mosi-pin = <9>; |
||||||
|
miso-pin = <28>; |
||||||
|
cs-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; |
||||||
|
w25q32jv: w25q32jv@0 { |
||||||
|
compatible = "jedec,spi-nor"; |
||||||
|
label = "W25Q32JV"; |
||||||
|
reg = <0>; |
||||||
|
spi-max-frequency = <40000000>; |
||||||
|
wp-gpios = <&gpio0 8 GPIO_ACTIVE_LOW>; |
||||||
|
hold-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>; |
||||||
|
size = <0x2000000>; |
||||||
|
has-dpd; |
||||||
|
t-enter-dpd = <3000>; |
||||||
|
t-exit-dpd = <30000>; |
||||||
|
jedec-id = [ ef 40 16 ]; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
&timer0 { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
&timer1 { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
&timer2 { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
&flash0 { |
||||||
|
partitions { |
||||||
|
compatible = "fixed-partitions"; |
||||||
|
#address-cells = <1>; |
||||||
|
#size-cells = <1>; |
||||||
|
|
||||||
|
boot_partition: partition@0 { |
||||||
|
label = "mcuboot"; |
||||||
|
reg = <0x00000000 0x10000>; |
||||||
|
}; |
||||||
|
slot0_partition: partition@10000 { |
||||||
|
label = "image-0"; |
||||||
|
}; |
||||||
|
slot0_ns_partition: partition@40000 { |
||||||
|
label = "image-0-nonsecure"; |
||||||
|
}; |
||||||
|
slot1_partition: partition@80000 { |
||||||
|
label = "image-1"; |
||||||
|
}; |
||||||
|
slot1_ns_partition: partition@b0000 { |
||||||
|
label = "image-1-nonsecure"; |
||||||
|
}; |
||||||
|
scratch_partition: partition@f0000 { |
||||||
|
label = "image-scratch"; |
||||||
|
reg = <0x000f0000 0xa000>; |
||||||
|
}; |
||||||
|
storage_partition: partition@fa000 { |
||||||
|
label = "storage"; |
||||||
|
reg = <0x000fa000 0x00006000>; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
/ { |
||||||
|
|
||||||
|
reserved-memory { |
||||||
|
#address-cells = <1>; |
||||||
|
#size-cells = <1>; |
||||||
|
ranges; |
||||||
|
|
||||||
|
sram0_s: image_s@20000000 { |
||||||
|
/* Secure image memory */ |
||||||
|
}; |
||||||
|
|
||||||
|
sram0_bsd: image_bsd@20010000 { |
||||||
|
/* BSD (shared) memory */ |
||||||
|
}; |
||||||
|
|
||||||
|
sram0_ns: image_ns@20020000 { |
||||||
|
/* Non-Secure image memory */ |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
/ { |
||||||
|
vbatt { |
||||||
|
compatible = "voltage-divider"; |
||||||
|
io-channels = <&adc 7>; |
||||||
|
output-ohms = <100000>; |
||||||
|
full-ohms = <(100000 + 100000)>; |
||||||
|
power-gpios = <&gpio0 25 0>; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
/* Include partition configuration file */ |
||||||
|
#include "sparkfun_thing_plus_nrf9160_partition_conf.dts" |
@ -0,0 +1,24 @@ |
|||||||
|
# SPDX-License-Identifier: Apache-2.0 |
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_NRF91X=y |
||||||
|
CONFIG_SOC_NRF9160_SICA=y |
||||||
|
CONFIG_BOARD_SPARKFUN_THING_PLUS_NRF9160=y |
||||||
|
|
||||||
|
# Enable MPU |
||||||
|
CONFIG_ARM_MPU=y |
||||||
|
|
||||||
|
# Enable TrustZone-M |
||||||
|
CONFIG_ARM_TRUSTZONE_M=y |
||||||
|
|
||||||
|
# Hardware stack protection |
||||||
|
CONFIG_HW_STACK_PROTECTION=y |
||||||
|
|
||||||
|
# enable GPIO |
||||||
|
CONFIG_GPIO=y |
||||||
|
|
||||||
|
# Enable uart driver |
||||||
|
CONFIG_SERIAL=y |
||||||
|
|
||||||
|
# enable console |
||||||
|
CONFIG_CONSOLE=y |
||||||
|
CONFIG_UART_CONSOLE=y |
@ -0,0 +1,59 @@ |
|||||||
|
/* |
||||||
|
* Copyright (c) 2018-2020 Nordic Semiconductor ASA |
||||||
|
* Copyright (c) 2020 Circuit Dojo LLC |
||||||
|
* |
||||||
|
* SPDX-License-Identifier: Apache-2.0 |
||||||
|
*/ |
||||||
|
|
||||||
|
/* |
||||||
|
* Default Flash planning for sparkfun_thing_plus_nrf9160. |
||||||
|
* |
||||||
|
* Zephyr build for nRF9160 with ARM TrustZone-M support, |
||||||
|
* implies building Secure and Non-Secure Zephyr images. |
||||||
|
* |
||||||
|
* Secure image will be placed, by default, in flash0 |
||||||
|
* (or in slot0, if MCUboot is present). |
||||||
|
* Secure image will use sram0 for system memory. |
||||||
|
* |
||||||
|
* Non-Secure image will be placed in slot0_ns, and use |
||||||
|
* sram0_ns for system memory. |
||||||
|
* |
||||||
|
* Note that the Secure image only requires knowledge of |
||||||
|
* the beginning of the Non-Secure image (not its size). |
||||||
|
*/ |
||||||
|
|
||||||
|
&slot0_partition { |
||||||
|
reg = <0x00010000 0x30000>; |
||||||
|
}; |
||||||
|
|
||||||
|
&slot0_ns_partition { |
||||||
|
reg = <0x00040000 0x40000>; |
||||||
|
}; |
||||||
|
|
||||||
|
&slot1_partition { |
||||||
|
reg = <0x00080000 0x30000>; |
||||||
|
}; |
||||||
|
|
||||||
|
&slot1_ns_partition { |
||||||
|
reg = <0x000b0000 0x40000>; |
||||||
|
}; |
||||||
|
|
||||||
|
/* Default SRAM planning when building for nRF9160 with |
||||||
|
* ARM TrustZone-M support |
||||||
|
* - Lowest 64 kB SRAM allocated to Secure image (sram0_s). |
||||||
|
* - 64 kB SRAM reserved for and used by the BSD socket |
||||||
|
* library (sram0_bsd). |
||||||
|
* - Upper 128 kB allocated to Non-Secure image (sram0_ns). |
||||||
|
*/ |
||||||
|
|
||||||
|
&sram0_s { |
||||||
|
reg = <0x20000000 DT_SIZE_K(64)>; |
||||||
|
}; |
||||||
|
|
||||||
|
&sram0_bsd { |
||||||
|
reg = <0x20010000 DT_SIZE_K(64)>; |
||||||
|
}; |
||||||
|
|
||||||
|
&sram0_ns { |
||||||
|
reg = <0x20020000 DT_SIZE_K(128)>; |
||||||
|
}; |
@ -0,0 +1,18 @@ |
|||||||
|
/* |
||||||
|
* Copyright (c) 2018-2020 Nordic Semiconductor ASA |
||||||
|
* Copyright (c) 2020 Circuit Dojo LLC |
||||||
|
* |
||||||
|
* SPDX-License-Identifier: Apache-2.0 |
||||||
|
*/ |
||||||
|
|
||||||
|
/dts-v1/; |
||||||
|
#include <nordic/nrf9160ns_sica.dtsi> |
||||||
|
#include "sparkfun_thing_plus_nrf9160_common.dts" |
||||||
|
|
||||||
|
/ { |
||||||
|
chosen { |
||||||
|
zephyr,flash = &flash0; |
||||||
|
zephyr,sram = &sram0_ns; |
||||||
|
zephyr,code-partition = &slot0_ns_partition; |
||||||
|
}; |
||||||
|
}; |
@ -0,0 +1,14 @@ |
|||||||
|
identifier: sparkfun_thing_plus_nrf9160ns |
||||||
|
name: Sparkfun-Thing-Plus-nRF9160-Non-Secure |
||||||
|
type: mcu |
||||||
|
arch: arm |
||||||
|
toolchain: |
||||||
|
- gnuarmemb |
||||||
|
- xtools |
||||||
|
- zephyr |
||||||
|
ram: 128 |
||||||
|
flash: 256 |
||||||
|
supported: |
||||||
|
- i2c |
||||||
|
- pwm |
||||||
|
- watchdog |
@ -0,0 +1,27 @@ |
|||||||
|
# SPDX-License-Identifier: Apache-2.0 |
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_NRF91X=y |
||||||
|
CONFIG_SOC_NRF9160_SICA=y |
||||||
|
CONFIG_BOARD_SPARKFUN_THING_PLUS_NRF9160NS=y |
||||||
|
|
||||||
|
# Enable MPU |
||||||
|
CONFIG_ARM_MPU=y |
||||||
|
|
||||||
|
# Enable TrustZone-M |
||||||
|
CONFIG_ARM_TRUSTZONE_M=y |
||||||
|
|
||||||
|
# This Board implies building Non-Secure firmware |
||||||
|
CONFIG_TRUSTED_EXECUTION_NONSECURE=y |
||||||
|
|
||||||
|
# Hardware stack protection |
||||||
|
CONFIG_HW_STACK_PROTECTION=y |
||||||
|
|
||||||
|
# enable GPIO |
||||||
|
CONFIG_GPIO=y |
||||||
|
|
||||||
|
# Enable uart driver |
||||||
|
CONFIG_SERIAL=y |
||||||
|
|
||||||
|
# enable console |
||||||
|
CONFIG_CONSOLE=y |
||||||
|
CONFIG_UART_CONSOLE=y |
Loading…
Reference in new issue