From 1a12a401102384a343e2f239d5afd90cbd082512 Mon Sep 17 00:00:00 2001
From: Vincent Dupont <vincent@otakeys.com>
Date: Wed, 28 Dec 2016 13:44:13 +0100
Subject: [PATCH] boards/nucleo-f042: initial support

---
 boards/nucleo-f042/Makefile              |   3 +
 boards/nucleo-f042/Makefile.dep          |   3 +
 boards/nucleo-f042/Makefile.features     |  11 +++
 boards/nucleo-f042/Makefile.include      |  13 +++
 boards/nucleo-f042/board.c               |  31 ++++++
 boards/nucleo-f042/dist/openocd.cfg      |   1 +
 boards/nucleo-f042/include/board.h       |  46 +++++++++
 boards/nucleo-f042/include/gpio_params.h |  46 +++++++++
 boards/nucleo-f042/include/periph_conf.h | 115 +++++++++++++++++++++++
 examples/dtls-echo/Makefile              |   2 +-
 examples/gcoap/Makefile                  |   2 +-
 examples/gnrc_border_router/Makefile     |   3 +-
 examples/gnrc_networking/Makefile        |   2 +-
 examples/gnrc_tftp/Makefile              |   2 +-
 examples/microcoap_server/Makefile       |   2 +-
 examples/nanocoap_server/Makefile        |   3 +-
 examples/posix_sockets/Makefile          |   2 +-
 examples/riot_and_cpp/Makefile           |   2 +-
 tests/coap/Makefile                      |   2 +-
 tests/conn_ip/Makefile                   |   3 +-
 tests/driver_xbee/Makefile               |   3 +-
 tests/gnrc_ipv6_ext/Makefile             |   2 +-
 tests/gnrc_sixlowpan/Makefile            |   2 +-
 tests/gnrc_sock_udp/Makefile             |   2 +
 tests/libfixmath_unittests/Makefile      |   2 +-
 tests/mutex_order/Makefile               |   2 +-
 tests/nhdp/Makefile                      |   3 +-
 tests/posix_semaphore/Makefile           |   2 +-
 tests/pthread_rwlock/Makefile            |   3 +-
 tests/slip/Makefile                      |   2 +-
 tests/thread_cooperation/Makefile        |   3 +-
 tests/thread_msg/Makefile                |   2 +-
 tests/thread_msg_seq/Makefile            |   2 +-
 tests/unittests/Makefile                 |   3 +-
 tests/xtimer_drift/Makefile              |   2 +
 tests/xtimer_longterm/Makefile           |   2 +
 36 files changed, 307 insertions(+), 24 deletions(-)
 create mode 100644 boards/nucleo-f042/Makefile
 create mode 100644 boards/nucleo-f042/Makefile.dep
 create mode 100644 boards/nucleo-f042/Makefile.features
 create mode 100644 boards/nucleo-f042/Makefile.include
 create mode 100644 boards/nucleo-f042/board.c
 create mode 100644 boards/nucleo-f042/dist/openocd.cfg
 create mode 100644 boards/nucleo-f042/include/board.h
 create mode 100644 boards/nucleo-f042/include/gpio_params.h
 create mode 100644 boards/nucleo-f042/include/periph_conf.h

diff --git a/boards/nucleo-f042/Makefile b/boards/nucleo-f042/Makefile
new file mode 100644
index 0000000000..f8fcbb53a0
--- /dev/null
+++ b/boards/nucleo-f042/Makefile
@@ -0,0 +1,3 @@
+MODULE = board
+
+include $(RIOTBASE)/Makefile.base
diff --git a/boards/nucleo-f042/Makefile.dep b/boards/nucleo-f042/Makefile.dep
new file mode 100644
index 0000000000..5472bf8b8d
--- /dev/null
+++ b/boards/nucleo-f042/Makefile.dep
@@ -0,0 +1,3 @@
+ifneq (,$(filter saul_default,$(USEMODULE)))
+  USEMODULE += saul_gpio
+endif
diff --git a/boards/nucleo-f042/Makefile.features b/boards/nucleo-f042/Makefile.features
new file mode 100644
index 0000000000..6d9af05fcb
--- /dev/null
+++ b/boards/nucleo-f042/Makefile.features
@@ -0,0 +1,11 @@
+# Put defined MCU peripherals here (in alphabetical order)
+FEATURES_PROVIDED += periph_cpuid
+FEATURES_PROVIDED += periph_gpio
+FEATURES_PROVIDED += periph_timer
+FEATURES_PROVIDED += periph_uart
+
+# Various common features of Nucleo boards
+FEATURES_PROVIDED += cpp
+
+# The board MPU family (used for grouping by the CI system)
+FEATURES_MCU_GROUP = cortex_m0_1
diff --git a/boards/nucleo-f042/Makefile.include b/boards/nucleo-f042/Makefile.include
new file mode 100644
index 0000000000..d7f0a0f990
--- /dev/null
+++ b/boards/nucleo-f042/Makefile.include
@@ -0,0 +1,13 @@
+## the cpu to build for
+export CPU = stm32f0
+export CPU_MODEL = stm32f042k6
+
+# define the default port depending on the host OS
+PORT_LINUX ?= /dev/ttyACM0
+PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
+
+# setup serial terminal
+include $(RIOTBOARD)/Makefile.include.serial
+
+# this board uses openocd
+include $(RIOTBOARD)/Makefile.include.openocd
diff --git a/boards/nucleo-f042/board.c b/boards/nucleo-f042/board.c
new file mode 100644
index 0000000000..8ef551a05a
--- /dev/null
+++ b/boards/nucleo-f042/board.c
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2016  OTA keys
+ *
+ * This file is subject to the terms and conditions of the GNU Lesser
+ * General Public License v2.1. See the file LICENSE in the top level
+ * directory for more details.
+ */
+
+/**
+ * @ingroup     boards_nucleo-f042
+ * @{
+ *
+ * @file
+ * @brief       Board specific implementations for the nucleo-f042 board
+ *
+ * @author      Vincent Dupont <vincent@otakeys.com>
+ *
+ * @}
+ */
+
+#include "board.h"
+#include "periph/gpio.h"
+
+void board_init(void)
+{
+    /* initialize the CPU */
+    cpu_init();
+
+    /* initialize the boards LEDs */
+    gpio_init(LED0_PIN, GPIO_OUT);
+}
diff --git a/boards/nucleo-f042/dist/openocd.cfg b/boards/nucleo-f042/dist/openocd.cfg
new file mode 100644
index 0000000000..4f0cfb3a02
--- /dev/null
+++ b/boards/nucleo-f042/dist/openocd.cfg
@@ -0,0 +1 @@
+source [find board/st_nucleo_f0.cfg]
diff --git a/boards/nucleo-f042/include/board.h b/boards/nucleo-f042/include/board.h
new file mode 100644
index 0000000000..4826c48f9e
--- /dev/null
+++ b/boards/nucleo-f042/include/board.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2016  OTA keys
+ *
+ * This file is subject to the terms and conditions of the GNU Lesser
+ * General Public License v2.1. See the file LICENSE in the top level
+ * directory for more details.
+ */
+
+/**
+ * @defgroup    boards_nucleo-f042 Nucleo-F042
+ * @ingroup     boards
+ * @brief       Board specific files for the nucleo-f042 board
+ * @{
+ *
+ * @file
+ * @brief       Board specific definitions for the nucleo-f042 board
+ *
+ * @author      Vincent Dupont <vincent@otakeys.com>
+ */
+
+#ifndef BOARD_H_
+#define BOARD_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define LED0_PIN            GPIO_PIN(PORT_B, 3)
+
+#define LED0_MASK           (1 << 3)
+
+#define LED0_ON             (GPIOB->BSRR     = LED0_MASK)
+#define LED0_OFF            (GPIOB->BRR      = LED0_MASK)
+#define LED0_TOGGLE         (GPIOB->ODR     ^= LED0_MASK)
+
+/**
+ * @brief   Initialize board specific hardware, including clock, LEDs and std-IO
+ */
+void board_init(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* BOARD_H_ */
+/** @} */
diff --git a/boards/nucleo-f042/include/gpio_params.h b/boards/nucleo-f042/include/gpio_params.h
new file mode 100644
index 0000000000..1fa15d0f7f
--- /dev/null
+++ b/boards/nucleo-f042/include/gpio_params.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) OTA keys 2016
+ *
+ * This file is subject to the terms and conditions of the GNU Lesser
+ * General Public License v2.1. See the file LICENSE in the top level
+ * directory for more details.
+ */
+
+/**
+ * @ingroup   boards_nucleo-f042
+ * @{
+ *
+ * @file
+ * @brief     Board specific configuration of direct mapped GPIOs
+ *
+ * @author    Vincent Dupont <vincent@otakeys.com>
+ */
+
+#ifndef GPIO_PARAMS_H
+#define GPIO_PARAMS_H
+
+#include "board.h"
+#include "saul/periph.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief    GPIO pin configuration
+ */
+static const  saul_gpio_params_t saul_gpio_params[] =
+{
+    {
+        .name = "LED(green)",
+        .pin = LED0_PIN,
+        .mode = GPIO_OUT
+    },
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GPIO_PARAMS_H */
+/** @} */
diff --git a/boards/nucleo-f042/include/periph_conf.h b/boards/nucleo-f042/include/periph_conf.h
new file mode 100644
index 0000000000..48a5a537a7
--- /dev/null
+++ b/boards/nucleo-f042/include/periph_conf.h
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2016  OTA keys
+ *
+ * This file is subject to the terms and conditions of the GNU Lesser
+ * General Public License v2.1. See the file LICENSE in the top level
+ * directory for more details.
+ */
+
+/**
+ * @ingroup     boards_nucleo-f042
+ * @{
+ *
+ * @file
+ * @brief       Peripheral MCU configuration for the nucleo-f042 board
+ *
+ * @author      Vincent Dupont <vincent@otakeys.com>
+ */
+
+#ifndef PERIPH_CONF_H_
+#define PERIPH_CONF_H_
+
+#include "periph_cpu.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @name Clock system configuration
+ * @{
+ */
+#define CLOCK_HSI           (8000000U)          /* internal oscillator */
+#define CLOCK_CORECLOCK     (48000000U)         /* desired core clock frequency */
+
+/* the actual PLL values are automatically generated */
+#define CLOCK_PLL_MUL       (CLOCK_CORECLOCK / CLOCK_HSI)
+
+/* bus clocks for simplified peripheral initialization, UPDATE MANUALLY! */
+#define CLOCK_AHB           (CLOCK_CORECLOCK / 1)
+#define CLOCK_APB1          (CLOCK_CORECLOCK / 1)
+#define CLOCK_APB2          (CLOCK_CORECLOCK / 1)
+/** @} */
+
+/**
+ * @brief   Timer configuration
+ * @{
+ */
+static const timer_conf_t timer_config[] = {
+    {
+        .dev      = TIM2,
+        .max      = 0xffffffff,
+        .rcc_mask = RCC_APB1ENR_TIM2EN,
+        .bus      = APB1,
+        .irqn     = TIM2_IRQn
+    }
+};
+
+#define TIMER_0_ISR         isr_tim2
+
+#define TIMER_NUMOF         (sizeof(timer_config) / sizeof(timer_config[0]))
+/** @} */
+
+/**
+ * @brief UART configuration
+ * @{
+ */
+static const uart_conf_t uart_config[] = {
+    {
+        .dev        = USART2,
+        .rcc_mask   = RCC_APB1ENR_USART2EN,
+        .rx_pin     = GPIO_PIN(PORT_A, 15),
+        .tx_pin     = GPIO_PIN(PORT_A, 2),
+        .rx_af      = GPIO_AF1,
+        .tx_af      = GPIO_AF1,
+        .bus        = APB1,
+        .irqn       = USART2_IRQn
+    },
+};
+
+#define UART_0_ISR          (isr_usart2)
+
+#define UART_NUMOF          (sizeof(uart_config) / sizeof(uart_config[0]))
+/** @} */
+
+/**
+ * @name RTC configuration
+ * @{
+ */
+/**
+ * Nucleo-f042 does not have any LSE, current RTC driver does not support LSI as
+ * clock source, so disabling RTC.
+ */
+#define RTC_NUMOF           (0U)
+/** @} */
+
+/**
+ * @brief   ADC configuration
+ * @{
+ */
+#define ADC_NUMOF          (0)
+/** @} */
+
+/**
+ * @brief   DAC configuration
+ * @{
+ */
+#define DAC_NUMOF           (0)
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PERIPH_CONF_H_ */
+/** @} */
diff --git a/examples/dtls-echo/Makefile b/examples/dtls-echo/Makefile
index 401a0792b1..d4e0b5b13e 100644
--- a/examples/dtls-echo/Makefile
+++ b/examples/dtls-echo/Makefile
@@ -17,7 +17,7 @@ BOARD_INSUFFICIENT_MEMORY := airfy-beacon nrf51dongle nrf6310 nucleo-f103 \
                              nucleo-f334 pca10000 pca10005 spark-core \
                              stm32f0discovery weio yunjia-nrf51822 nucleo-f072 \
                              cc2650stk nucleo-f030 nucleo-f070 microbit \
-                             calliope-mini
+                             calliope-mini nucleo-f042
 
 # Include packages that pull up and auto-init the link layer.
 # NOTE: 6LoWPAN will be included if IEEE802.15.4 devices are present
diff --git a/examples/gcoap/Makefile b/examples/gcoap/Makefile
index 5d8608a478..ef76e1b8af 100644
--- a/examples/gcoap/Makefile
+++ b/examples/gcoap/Makefile
@@ -11,7 +11,7 @@ RIOTBASE ?= $(CURDIR)/../..
 
 BOARD_INSUFFICIENT_MEMORY := chronos msb-430 msb-430h nucleo-f030 nucleo-f334 \
                              stm32f0discovery telosb weio wsn430-v1_3b wsn430-v1_4 \
-                             z1
+                             z1 nucleo-f042
 
 # Must read nordic_softdevice_ble package before nanocoap package. However,
 # can't read it explicitly here because it is read later, as a dependency for
diff --git a/examples/gnrc_border_router/Makefile b/examples/gnrc_border_router/Makefile
index 4020fcab75..f198756668 100644
--- a/examples/gnrc_border_router/Makefile
+++ b/examples/gnrc_border_router/Makefile
@@ -11,7 +11,8 @@ BOARD_INSUFFICIENT_MEMORY := airfy-beacon cc2650stk msb-430 msb-430h pca10000 pc
                              nrf51dongle nrf6310 nucleo-f103 nucleo-f334 \
                              spark-core stm32f0discovery telosb \
                              weio wsn430-v1_3b wsn430-v1_4 yunjia-nrf51822 z1 nucleo-f072 \
-                             nucleo-f030 nucleo-f070 microbit calliope-mini
+                             nucleo-f030 nucleo-f070 microbit calliope-mini \
+                             nucleo-f042
 
 # use ethos (ethernet over serial) for network communication and stdio over
 # UART, but not on native, as native has a tap interface towards the host.
diff --git a/examples/gnrc_networking/Makefile b/examples/gnrc_networking/Makefile
index 1b667351c6..fb8bfe8872 100644
--- a/examples/gnrc_networking/Makefile
+++ b/examples/gnrc_networking/Makefile
@@ -11,7 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := airfy-beacon chronos msb-430 msb-430h nrf51dongle \
                           nrf6310 nucleo-f103 nucleo-f334 pca10000 pca10005 spark-core \
                           stm32f0discovery telosb weio wsn430-v1_3b wsn430-v1_4 \
                           yunjia-nrf51822 z1 nucleo-f072 nucleo-f030 nucleo-f070 \
-                          microbit calliope-mini
+                          microbit calliope-mini nucleo-f042
 
 # Include packages that pull up and auto-init the link layer.
 # NOTE: 6LoWPAN will be included if IEEE802.15.4 devices are present
diff --git a/examples/gnrc_tftp/Makefile b/examples/gnrc_tftp/Makefile
index 10e6d664f7..9d27880eb1 100644
--- a/examples/gnrc_tftp/Makefile
+++ b/examples/gnrc_tftp/Makefile
@@ -11,7 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := airfy-beacon chronos msb-430 msb-430h nrf51dongle \
                           nrf6310 nucleo-f103 nucleo-f334 pca10000 pca10005 \
                           spark-core stm32f0discovery telosb weio wsn430-v1_3b \
                           wsn430-v1_4 yunjia-nrf51822 z1 nucleo-f072 nucleo-f030 \
-                          nucleo-f070 microbit calliope-mini
+                          nucleo-f070 microbit calliope-mini nucleo-f042
 
 # Include packages that pull up and auto-init the link layer.
 # NOTE: 6LoWPAN will be included if IEEE802.15.4 devices are present
diff --git a/examples/microcoap_server/Makefile b/examples/microcoap_server/Makefile
index 070af13e5f..c0003d8959 100644
--- a/examples/microcoap_server/Makefile
+++ b/examples/microcoap_server/Makefile
@@ -11,7 +11,7 @@ BOARD_INSUFFICIENT_MEMORY := airfy-beacon chronos msb-430 msb-430h nrf51dongle \
                           nrf6310 pca10000 pca10005 spark-core \
                           stm32f0discovery telosb weio wsn430-v1_3b wsn430-v1_4 \
                           yunjia-nrf51822 z1 nucleo-f072 nucleo-f030 nucleo-f070 \
-                          microbit calliope-mini
+                          microbit calliope-mini nucleo-f042
 
 # Include packages that pull up and auto-init the link layer.
 # NOTE: 6LoWPAN will be included if IEEE802.15.4 devices are present
diff --git a/examples/nanocoap_server/Makefile b/examples/nanocoap_server/Makefile
index e8fc493a45..a3dc0fd7ea 100644
--- a/examples/nanocoap_server/Makefile
+++ b/examples/nanocoap_server/Makefile
@@ -10,7 +10,8 @@ RIOTBASE ?= $(CURDIR)/../..
 BOARD_INSUFFICIENT_MEMORY := airfy-beacon chronos msb-430 msb-430h nrf51dongle \
                           nrf6310 pca10000 pca10005 spark-core \
                           stm32f0discovery telosb weio wsn430-v1_3b wsn430-v1_4 \
-                          yunjia-nrf51822 z1 nucleo-f072 nucleo-f030
+                          yunjia-nrf51822 z1 nucleo-f072 nucleo-f030 \
+                          nucleo-f042
 
 # blacklist this until #6022 is sorted out
 BOARD_BLACKLIST := nrf52dk
diff --git a/examples/posix_sockets/Makefile b/examples/posix_sockets/Makefile
index 07d6c55fe8..0b0f297ae2 100644
--- a/examples/posix_sockets/Makefile
+++ b/examples/posix_sockets/Makefile
@@ -10,7 +10,7 @@ RIOTBASE ?= $(CURDIR)/../..
 BOARD_INSUFFICIENT_MEMORY := airfy-beacon chronos msb-430 msb-430h nrf51dongle nrf6310 \
                              nucleo-f334 pca10000 pca10005 stm32f0discovery telosb weio \
                              wsn430-v1_3b wsn430-v1_4 yunjia-nrf51822 z1 nucleo-f072 \
-                             nucleo-f030 nucleo-f070
+                             nucleo-f030 nucleo-f070 nucleo-f042
 
 # Include packages that pull up and auto-init the link layer.
 # NOTE: 6LoWPAN will be included if IEEE802.15.4 devices are present
diff --git a/examples/riot_and_cpp/Makefile b/examples/riot_and_cpp/Makefile
index 1f12b0beb4..091b4a03a9 100644
--- a/examples/riot_and_cpp/Makefile
+++ b/examples/riot_and_cpp/Makefile
@@ -6,7 +6,7 @@ BOARD ?= native
 
 # stm32f0discovery objects are too big with ARM Embedded Toolchain v4.9.3 20141119
 # (used currently by travis)
-BOARD_INSUFFICIENT_MEMORY=stm32f0discovery weio
+BOARD_INSUFFICIENT_MEMORY=stm32f0discovery weio nucleo-f042
 
 # This has to be the absolute path to the RIOT base directory:
 RIOTBASE ?= $(CURDIR)/../..
diff --git a/tests/coap/Makefile b/tests/coap/Makefile
index 19e6927376..631c932201 100644
--- a/tests/coap/Makefile
+++ b/tests/coap/Makefile
@@ -6,7 +6,7 @@ BOARD_BLACKLIST := arduino-mega2560 chronos msb-430 msb-430h telosb wsn430-v1_3b
                    wsn430-v1_4 z1 waspmote-pro arduino-uno arduino-duemilanove
 BOARD_INSUFFICIENT_MEMORY := chronos msb-430 msb-430h nucleo-f334 nucleo-f030 \
                              stm32f0discovery telosb weio wsn430-v1_3b wsn430-v1_4 z1 \
-                             nucleo-f070
+                             nucleo-f070 nucleo-f042
 
 USEMODULE += gnrc_ipv6
 USEMODULE += gnrc_conn_udp
diff --git a/tests/conn_ip/Makefile b/tests/conn_ip/Makefile
index 661a96d57d..919aada6be 100644
--- a/tests/conn_ip/Makefile
+++ b/tests/conn_ip/Makefile
@@ -5,7 +5,8 @@ BOARD ?= native
 RIOTBASE ?= $(CURDIR)/../..
 
 BOARD_INSUFFICIENT_MEMORY := chronos msb-430 msb-430h nucleo-f334 stm32f0discovery telosb \
-                             weio wsn430-v1_3b wsn430-v1_4 z1 nucleo-f030 nucleo-f070
+                             weio wsn430-v1_3b wsn430-v1_4 z1 nucleo-f030 nucleo-f070 \
+                             nucleo-f042
 
 USEMODULE += gnrc_netdev_default
 USEMODULE += auto_init_gnrc_netif
diff --git a/tests/driver_xbee/Makefile b/tests/driver_xbee/Makefile
index a285f49f03..27e332fa5e 100644
--- a/tests/driver_xbee/Makefile
+++ b/tests/driver_xbee/Makefile
@@ -3,7 +3,8 @@ include ../Makefile.tests_common
 
 FEATURES_REQUIRED = periph_uart periph_gpio
 
-BOARD_INSUFFICIENT_MEMORY := nucleo-f030 nucleo-f334 stm32f0discovery weio
+BOARD_INSUFFICIENT_MEMORY := nucleo-f030 nucleo-f334 stm32f0discovery weio \
+                             nucleo-f042
 
 USEMODULE += xbee
 USEMODULE += gnrc_netif
diff --git a/tests/gnrc_ipv6_ext/Makefile b/tests/gnrc_ipv6_ext/Makefile
index c57bb55e8a..a1bbadadba 100644
--- a/tests/gnrc_ipv6_ext/Makefile
+++ b/tests/gnrc_ipv6_ext/Makefile
@@ -10,7 +10,7 @@ RIOTBASE ?= $(CURDIR)/../..
 BOARD_INSUFFICIENT_MEMORY := airfy-beacon chronos msb-430 msb-430h nrf51dongle \
                           nrf6310 nucleo-f103 nucleo-f334 pca10000 pca10005 spark-core \
                           stm32f0discovery telosb weio wsn430-v1_3b wsn430-v1_4 \
-                          yunjia-nrf51822 z1 nucleo-f030
+                          yunjia-nrf51822 z1 nucleo-f030 nucleo-f042
 
 # Include packages that pull up and auto-init the link layer.
 # NOTE: 6LoWPAN will be included if IEEE802.15.4 devices are present
diff --git a/tests/gnrc_sixlowpan/Makefile b/tests/gnrc_sixlowpan/Makefile
index 13d17e1b78..3f890044f2 100644
--- a/tests/gnrc_sixlowpan/Makefile
+++ b/tests/gnrc_sixlowpan/Makefile
@@ -10,7 +10,7 @@ RIOTBASE ?= $(CURDIR)/../..
 BOARD_INSUFFICIENT_MEMORY := airfy-beacon chronos msb-430 msb-430h nrf51dongle \
                           nrf6310 nucleo-f103 nucleo-f334 pca10000 pca10005 spark-core \
                           stm32f0discovery telosb weio wsn430-v1_3b wsn430-v1_4 \
-                          yunjia-nrf51822 z1 nucleo-f030 nucleo-f070
+                          yunjia-nrf51822 z1 nucleo-f030 nucleo-f070 nucleo-f042
 
 # Include packages that pull up and auto-init the link layer.
 # NOTE: 6LoWPAN will be included if IEEE802.15.4 devices are present
diff --git a/tests/gnrc_sock_udp/Makefile b/tests/gnrc_sock_udp/Makefile
index 156f98817e..f38e3b7838 100644
--- a/tests/gnrc_sock_udp/Makefile
+++ b/tests/gnrc_sock_udp/Makefile
@@ -4,6 +4,8 @@ BOARD ?= native
 
 RIOTBASE ?= $(CURDIR)/../..
 
+BOARD_INSUFFICIENT_MEMORY := nucleo-f042
+
 USEMODULE += gnrc_sock_check_reuse
 USEMODULE += gnrc_sock_udp
 USEMODULE += gnrc_ipv6
diff --git a/tests/libfixmath_unittests/Makefile b/tests/libfixmath_unittests/Makefile
index 4325714e0e..b61872b424 100644
--- a/tests/libfixmath_unittests/Makefile
+++ b/tests/libfixmath_unittests/Makefile
@@ -8,7 +8,7 @@ BOARD_BLACKLIST := arduino-mega2560 waspmote-pro arduino-uno arduino-duemilanove
 # The MSP boards don't feature round(), exp(), and log(), which are used in the unittests
 BOARD_BLACKLIST += chronos msb-430 msb-430h telosb wsn430-v1_3b wsn430-v1_4 z1
 
-BOARD_INSUFFICIENT_MEMORY := weio
+BOARD_INSUFFICIENT_MEMORY := weio nucleo-f042
 
 USEMODULE += libfixmath-unittests
 
diff --git a/tests/mutex_order/Makefile b/tests/mutex_order/Makefile
index 30153d1ca2..a402d03196 100644
--- a/tests/mutex_order/Makefile
+++ b/tests/mutex_order/Makefile
@@ -1,6 +1,6 @@
 APPLICATION = mutex_order
 include ../Makefile.tests_common
 
-BOARD_INSUFFICIENT_MEMORY := stm32f0discovery weio nucleo-f030
+BOARD_INSUFFICIENT_MEMORY := stm32f0discovery weio nucleo-f030 nucleo-f042
 
 include $(RIOTBASE)/Makefile.include
diff --git a/tests/nhdp/Makefile b/tests/nhdp/Makefile
index 46a7e9ce94..6f741483e7 100644
--- a/tests/nhdp/Makefile
+++ b/tests/nhdp/Makefile
@@ -4,7 +4,8 @@ include ../Makefile.tests_common
 BOARD_BLACKLIST := arduino-mega2560 chronos msb-430 msb-430h telosb \
                    wsn430-v1_3b wsn430-v1_4 z1 waspmote-pro arduino-uno \
                    arduino-duemilanove
-BOARD_INSUFFICIENT_MEMORY := nucleo-f334 stm32f0discovery weio nucleo-f030
+BOARD_INSUFFICIENT_MEMORY := nucleo-f334 stm32f0discovery weio nucleo-f030 \
+                             nucleo-f042
 
 USEMODULE += gnrc_ipv6
 USEMODULE += gnrc_conn_udp
diff --git a/tests/posix_semaphore/Makefile b/tests/posix_semaphore/Makefile
index 704108e9b8..54ab8fa9f1 100644
--- a/tests/posix_semaphore/Makefile
+++ b/tests/posix_semaphore/Makefile
@@ -3,7 +3,7 @@ include ../Makefile.tests_common
 
 BOARD_INSUFFICIENT_MEMORY := msb-430 msb-430h mbed_lpc1768 chronos stm32f0discovery \
                           pca10000 pca10005 weio yunjia-nrf51822 nrf6310 spark-core \
-                          nucleo-f334 nucleo-f030
+                          nucleo-f334 nucleo-f030 nucleo-f042
 
 USEMODULE += fmt
 USEMODULE += posix_semaphore
diff --git a/tests/pthread_rwlock/Makefile b/tests/pthread_rwlock/Makefile
index 97dccb142c..a00c909502 100644
--- a/tests/pthread_rwlock/Makefile
+++ b/tests/pthread_rwlock/Makefile
@@ -12,6 +12,7 @@ CFLAGS += -DNATIVE_AUTO_EXIT
 
 BOARD_INSUFFICIENT_MEMORY += chronos mbed_lpc1768 msb-430 msb-430h stm32f0discovery \
                           pca10000 pca10005 yunjia-nrf51822 spark-core nucleo-f334 \
-                          airfy-beacon nrf51dongle nrf6310 weio nucleo-f030
+                          airfy-beacon nrf51dongle nrf6310 weio nucleo-f030 \
+                          nucleo-f042
 
 include $(RIOTBASE)/Makefile.include
diff --git a/tests/slip/Makefile b/tests/slip/Makefile
index e40124f045..4852a70cd4 100644
--- a/tests/slip/Makefile
+++ b/tests/slip/Makefile
@@ -2,7 +2,7 @@ APPLICATION = driver_slip
 include ../Makefile.tests_common
 
 BOARD_INSUFFICIENT_MEMORY := msb-430 msb-430h nucleo-f334 stm32f0discovery weio \
-                          nucleo-f030
+                          nucleo-f030 nucleo-f042
 
 USEMODULE += auto_init_gnrc_netif
 USEMODULE += gnrc
diff --git a/tests/thread_cooperation/Makefile b/tests/thread_cooperation/Makefile
index 44865f9878..e52f393cf2 100644
--- a/tests/thread_cooperation/Makefile
+++ b/tests/thread_cooperation/Makefile
@@ -5,7 +5,8 @@ BOARD_INSUFFICIENT_MEMORY := cc2650stk chronos msb-430 msb-430h mbed_lpc1768 \
                           stm32f0discovery pca10000 pca10005 \
                           yunjia-nrf51822 spark-core airfy-beacon nucleo-f103 \
                           nucleo-f334 nrf51dongle nrf6310 weio nucleo-f072 \
-                          nucleo-f030 nucleo-f070 microbit calliope-mini
+                          nucleo-f030 nucleo-f070 microbit calliope-mini \
+                          nucleo-f042
 
 DISABLE_MODULE += auto_init
 
diff --git a/tests/thread_msg/Makefile b/tests/thread_msg/Makefile
index 6b75e85602..1290ddc73e 100644
--- a/tests/thread_msg/Makefile
+++ b/tests/thread_msg/Makefile
@@ -1,7 +1,7 @@
 APPLICATION = thread_msg
 include ../Makefile.tests_common
 
-BOARD_INSUFFICIENT_MEMORY := stm32f0discovery
+BOARD_INSUFFICIENT_MEMORY := stm32f0discovery nucleo-f042
 
 DISABLE_MODULE += auto_init
 
diff --git a/tests/thread_msg_seq/Makefile b/tests/thread_msg_seq/Makefile
index 0750adeb93..0b4114e2d1 100644
--- a/tests/thread_msg_seq/Makefile
+++ b/tests/thread_msg_seq/Makefile
@@ -1,7 +1,7 @@
 APPLICATION = thread_msg_seq
 include ../Makefile.tests_common
 
-BOARD_INSUFFICIENT_MEMORY := stm32f0discovery
+BOARD_INSUFFICIENT_MEMORY := stm32f0discovery nucleo-f042
 
 DISABLE_MODULE += auto_init
 
diff --git a/tests/unittests/Makefile b/tests/unittests/Makefile
index 045b531ec8..fdb10e27cd 100644
--- a/tests/unittests/Makefile
+++ b/tests/unittests/Makefile
@@ -11,7 +11,8 @@ BOARD_INSUFFICIENT_MEMORY := airfy-beacon cc2650stk chronos ek-lm4f120xl \
                           arduino-duemilanove sodaq-autonomo arduino-zero \
                           nucleo-f030 nucleo-f070 nucleo-f091 pba-d-01-kw2x \
                           saml21-xpro microbit calliope-mini limifrog-v1 \
-                          slwstk6220a ek-lm4f120xl stm32f3discovery
+                          slwstk6220a ek-lm4f120xl stm32f3discovery \
+                          slwstk6220a nucleo-f042
 
 USEMODULE += embunit
 
diff --git a/tests/xtimer_drift/Makefile b/tests/xtimer_drift/Makefile
index 570dd15012..397428b02d 100644
--- a/tests/xtimer_drift/Makefile
+++ b/tests/xtimer_drift/Makefile
@@ -1,6 +1,8 @@
 APPLICATION = xtimer_drift
 include ../Makefile.tests_common
 
+BOARD_INSUFFICIENT_MEMORY := nucleo-f042
+
 USEMODULE += xtimer
 
 include $(RIOTBASE)/Makefile.include
diff --git a/tests/xtimer_longterm/Makefile b/tests/xtimer_longterm/Makefile
index 385693055b..4ea956ce4a 100644
--- a/tests/xtimer_longterm/Makefile
+++ b/tests/xtimer_longterm/Makefile
@@ -1,6 +1,8 @@
 APPLICATION = xtimer_longterm
 include ../Makefile.tests_common
 
+BOARD_INSUFFICIENT_MEMORY := nucleo-f042
+
 USEMODULE += xtimer
 
 include $(RIOTBASE)/Makefile.include
-- 
GitLab