diff --git a/arch/cpu/arm/cortex-m/Makefile.cortex-m b/arch/cpu/arm/cortex-m/Makefile.cortex-m
index 444df05cd2307bcd36987c45ab58f81c4bd45fcf..aebcf2bddbcbcaa241049ff4d72ebc0f9d713cca 100644
--- a/arch/cpu/arm/cortex-m/Makefile.cortex-m
+++ b/arch/cpu/arm/cortex-m/Makefile.cortex-m
@@ -1,3 +1,14 @@
 CONTIKI_ARM_DIRS += cortex-m cortex-m/CMSIS
 
+### Build syscalls for newlib
+MODULES += os/lib/newlib
+
+CUSTOM_RULE_LINK = 1
+
+.SECONDEXPANSION:
+
+%.elf: $(CPU_STARTFILES) $$(CONTIKI_OBJECTFILES) %.o $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) $(LDSCRIPT) $(TARGET_LIBS)
+	$(TRACE_LD)
+	$(Q)$(LD) $(LDFLAGS) ${filter-out $(LDSCRIPT) %.a,$^} ${filter %.a,$^} $(TARGET_LIBFLAGS) -o $@
+
 include $(CONTIKI)/arch/cpu/arm/Makefile.arm
diff --git a/arch/cpu/arm/cortex-m/cm3/Makefile.cm3 b/arch/cpu/arm/cortex-m/cm3/Makefile.cm3
index 6bd76135cb254a69e1f2450b06ef64ac94ed31e5..3cf216bfbaa452c9542e8e5db6ed8392c3e670a4 100644
--- a/arch/cpu/arm/cortex-m/cm3/Makefile.cm3
+++ b/arch/cpu/arm/cortex-m/cm3/Makefile.cm3
@@ -9,22 +9,10 @@ LDFLAGS += -Wl,-Map=$(CONTIKI_NG_PROJECT_MAP),--cref,--no-warn-mismatch
 
 OBJCOPY_FLAGS += --gap-fill 0xff
 
-### Build syscalls for newlib
-MODULES += os/lib/newlib
-
 CPU_STARTFILES = ${addprefix $(OBJECTDIR)/,${call oname, $(CPU_START_SOURCEFILES)}}
 
-### Compilation rules
-CUSTOM_RULE_LINK = 1
-
 ### Resolve any potential circular dependencies between the linked libraries
 ### See: https://stackoverflow.com/questions/5651869/gcc-what-are-the-start-group-and-end-group-command-line-options/5651895
 TARGET_LIBFLAGS := -Wl,--start-group $(TARGET_LIBFILES) -lm -Wl,--end-group
 
-.SECONDEXPANSION:
-
-%.elf: $(CPU_STARTFILES) $$(CONTIKI_OBJECTFILES) %.o $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) $(LDSCRIPT)
-	$(TRACE_LD)
-	$(Q)$(LD) $(LDFLAGS) ${filter-out $(LDSCRIPT) %.a,$^} ${filter %.a,$^} $(TARGET_LIBFLAGS) -o $@
-
 include $(CONTIKI)/arch/cpu/arm/cortex-m/Makefile.cortex-m
diff --git a/arch/cpu/arm/cortex-m/cm4/Makefile.cm4 b/arch/cpu/arm/cortex-m/cm4/Makefile.cm4
index 110e0697b34dd9bfd5ae377275b24351de1e59ed..b0b592e43eed38208dd3adb797d95f695704153e 100644
--- a/arch/cpu/arm/cortex-m/cm4/Makefile.cm4
+++ b/arch/cpu/arm/cortex-m/cm4/Makefile.cm4
@@ -9,20 +9,10 @@ LDFLAGS += -Wl,-Map=$(CONTIKI_NG_PROJECT_MAP),--cref,--no-warn-mismatch
 
 OBJCOPY_FLAGS += --gap-fill 0xff
 
-### Build syscalls for newlib
-MODULES += os/lib/newlib
-
 CPU_STARTFILES = ${addprefix $(OBJECTDIR)/,${call oname, $(CPU_START_SOURCEFILES)}}
 
-### Compilation rules
-CUSTOM_RULE_LINK = 1
-
 ### Resolve any potential circular dependencies between the linked libraries
 ### See: https://stackoverflow.com/questions/5651869/gcc-what-are-the-start-group-and-end-group-command-line-options/5651895
 TARGET_LIBFLAGS := -Wl,--start-group $(TARGET_LIBFILES) -Wl,--end-group
 
-%.elf: $(CPU_STARTFILES) %.o $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) $(CONTIKI_NG_TARGET_LIB) $(TARGET_LIBS)
-	$(TRACE_LD)
-	$(Q)$(LD) $(LDFLAGS) ${filter %.o %.a,$^} $(TARGET_LIBFLAGS) -o $@
-
 include $(CONTIKI)/arch/cpu/arm/cortex-m/Makefile.cortex-m
diff --git a/arch/cpu/cc2538/cc2538-def.h b/arch/cpu/cc2538/cc2538-def.h
index 163456a142a21e9aa0a5cf91182db00a9157b5cd..defa4ecb0c34dfbe7b5fedfb5fbb4c71807dbdcd 100644
--- a/arch/cpu/cc2538/cc2538-def.h
+++ b/arch/cpu/cc2538/cc2538-def.h
@@ -36,11 +36,13 @@
 /*---------------------------------------------------------------------------*/
 #define RTIMER_ARCH_SECOND 32768
 /*---------------------------------------------------------------------------*/
+#define CC2538_PHY_OVERHEAD          3
+#define CC2538_BYTE_AIR_TIME         32
 /* 352us from calling transmit() until the SFD byte has been sent */
-#define CC2538_DELAY_BEFORE_TX     ((unsigned)US_TO_RTIMERTICKS(352))
+#define CC2538_DELAY_BEFORE_TX       ((unsigned)US_TO_RTIMERTICKS(352))
 /* 192us as in datasheet but ACKs are not always received, so adjusted to 250us */
-#define CC2538_DELAY_BEFORE_RX     ((unsigned)US_TO_RTIMERTICKS(250))
-#define CC2538_DELAY_BEFORE_DETECT 0
+#define CC2538_DELAY_BEFORE_RX       ((unsigned)US_TO_RTIMERTICKS(250))
+#define CC2538_DELAY_BEFORE_DETECT   0
 /* Frame filtering done in software */
 #define TSCH_CONF_HW_FRAME_FILTERING  0
 
diff --git a/arch/cpu/cc26xx-cc13xx/cc26xx.ld b/arch/cpu/cc26xx-cc13xx/cc26xx.ld
index 649da32cfcb45ca8bb3a851832e6e31cc82f58ef..4ea422558bcbc4ecbb17c7bf883748e40965a889 100644
--- a/arch/cpu/cc26xx-cc13xx/cc26xx.ld
+++ b/arch/cpu/cc26xx-cc13xx/cc26xx.ld
@@ -96,6 +96,8 @@ SECTIONS
     /* These symbols are used by the stack check library. */
     _stack = .;
     _stack_origin = ORIGIN(SRAM) + LENGTH(SRAM);
+    _heap = _stack;
+    _eheap = _stack_origin;
 
     .ccfg :
     {
diff --git a/arch/cpu/nrf52832/ld/nrf52-pca10036-sd.ld b/arch/cpu/nrf52832/ld/nrf52-pca10036-sd.ld
index f3bc5bc4369e5f882fc1c16c659b637950623d0a..2afa9e6e206dba17adfc73a5fe84a82d47c6098e 100644
--- a/arch/cpu/nrf52832/ld/nrf52-pca10036-sd.ld
+++ b/arch/cpu/nrf52832/ld/nrf52-pca10036-sd.ld
@@ -14,3 +14,5 @@ INCLUDE "nrf5x_common.ld"
 /* These symbols are used by the stack check library. */
 _stack = end;
 _stack_origin = ORIGIN(RAM) + LENGTH(RAM);
+_heap = _stack;
+_eheap = _stack_origin;
diff --git a/arch/cpu/nrf52832/ld/nrf52-pca10040-sd.ld b/arch/cpu/nrf52832/ld/nrf52-pca10040-sd.ld
index 0bc7349e39d1a0bf419d5a1e8008fdf663ee9fdc..b2c747f0a8bd0ae6448b38aa5a72f4e244c77158 100644
--- a/arch/cpu/nrf52832/ld/nrf52-pca10040-sd.ld
+++ b/arch/cpu/nrf52832/ld/nrf52-pca10040-sd.ld
@@ -14,3 +14,5 @@ INCLUDE "nrf5x_common.ld"
 /* These symbols are used by the stack check library. */
 _stack = end;
 _stack_origin = ORIGIN(RAM) + LENGTH(RAM);
+_heap = _stack;
+_eheap = _stack_origin;
diff --git a/arch/cpu/nrf52832/ld/nrf52.ld b/arch/cpu/nrf52832/ld/nrf52.ld
index 87fc9152d5297d731584e7b7079472e5827d2aa5..3fead12502dbe05da3b0ccd1aafc74b9f0acd59d 100644
--- a/arch/cpu/nrf52832/ld/nrf52.ld
+++ b/arch/cpu/nrf52832/ld/nrf52.ld
@@ -14,3 +14,5 @@ INCLUDE "nrf5x_common.ld"
 /* These symbols are used by the stack check library. */
 _stack = end;
 _stack_origin = ORIGIN(RAM) + LENGTH(RAM);
+_heap = _stack;
+_eheap = _stack_origin;
diff --git a/arch/platform/cc2538dk/dev/board.h b/arch/platform/cc2538dk/dev/board.h
index 80f036fd7c904c2fafd330f1f1fbc691e313f036..2540b7ce7b73651556ae417a59dbaa262f9f0fbf 100644
--- a/arch/platform/cc2538dk/dev/board.h
+++ b/arch/platform/cc2538dk/dev/board.h
@@ -220,6 +220,18 @@
 #endif  /* #if SPI1_IN_USE */
 /** @} */
 /*---------------------------------------------------------------------------*/
+/**
+ * \name CC2538 TSCH configuration
+ *
+ * @{
+ */
+#define RADIO_PHY_OVERHEAD        CC2538_PHY_OVERHEAD
+#define RADIO_BYTE_AIR_TIME       CC2538_BYTE_AIR_TIME
+#define RADIO_DELAY_BEFORE_TX     CC2538_DELAY_BEFORE_TX
+#define RADIO_DELAY_BEFORE_RX     CC2538_DELAY_BEFORE_RX
+#define RADIO_DELAY_BEFORE_DETECT CC2538_DELAY_BEFORE_DETECT
+/** @} */
+/*---------------------------------------------------------------------------*/
 /**
  * \name Device string used on startup
  * @{
diff --git a/arch/platform/openmote-cc2538/board.h b/arch/platform/openmote-cc2538/board.h
index abb89b8e21b5ca11ac84dfa7a9cdadaeb35e44d6..6e2a15e4633c7f85db33285c5e71e48660866a62 100644
--- a/arch/platform/openmote-cc2538/board.h
+++ b/arch/platform/openmote-cc2538/board.h
@@ -174,6 +174,18 @@
 #define I2C_SDA_PIN              4
 /** @} */
 /*---------------------------------------------------------------------------*/
+/**
+ * \name CC2538 TSCH configuration
+ *
+ * @{
+ */
+#define RADIO_PHY_OVERHEAD        CC2538_PHY_OVERHEAD
+#define RADIO_BYTE_AIR_TIME       CC2538_BYTE_AIR_TIME
+#define RADIO_DELAY_BEFORE_TX     CC2538_DELAY_BEFORE_TX
+#define RADIO_DELAY_BEFORE_RX     CC2538_DELAY_BEFORE_RX
+#define RADIO_DELAY_BEFORE_DETECT CC2538_DELAY_BEFORE_DETECT
+/** @} */
+/*---------------------------------------------------------------------------*/
 /**
  * \name Device string used on startup
  * @{
diff --git a/os/net/mac/tsch/tsch.h b/os/net/mac/tsch/tsch.h
index 8590dcb38bfed791cbe3fac9765a16b68395a0d4..db23b4851d061c93062a546644d7c46ee7f3213a 100644
--- a/os/net/mac/tsch/tsch.h
+++ b/os/net/mac/tsch/tsch.h
@@ -158,7 +158,7 @@ extern uint8_t tsch_current_channel;
 extern uint8_t tsch_hopping_sequence[TSCH_HOPPING_SEQUENCE_MAX_LEN];
 extern struct tsch_asn_divisor_t tsch_hopping_sequence_length;
 /* TSCH timeslot timing (in micro-second) */
-uint16_t tsch_timing_us[tsch_ts_elements_count];
+extern uint16_t tsch_timing_us[tsch_ts_elements_count];
 /* TSCH timeslot timing (in rtimer ticks) */
 extern rtimer_clock_t tsch_timing[tsch_ts_elements_count];
 /* Statistics on the current session */
diff --git a/tests/01-compile-base/Makefile b/tests/01-compile-base/Makefile
index e51ff523bfc07b736b683b8b69fa4d3cb17aaa1b..09f89418ded15ed00ae440776abc730fe619afb0 100644
--- a/tests/01-compile-base/Makefile
+++ b/tests/01-compile-base/Makefile
@@ -24,6 +24,8 @@ rpl-border-router/sky \
 slip-radio/sky \
 libs/ipv6-hooks/sky \
 nullnet/native \
+nullnet/sky \
+nullnet/sky:MAKE_MAC=MAKE_MAC_TSCH \
 mqtt-client/native \
 coap/coap-example-client/native \
 coap/coap-example-server/native \
diff --git a/tests/02-compile-arm-ports-01/Makefile b/tests/02-compile-arm-ports-01/Makefile
index 2ec2ce44300413f4f9430aa617f5f1e7736ecf2d..aaebab164c1a7c350e29df2ae7902a2c6a0eaf00 100644
--- a/tests/02-compile-arm-ports-01/Makefile
+++ b/tests/02-compile-arm-ports-01/Makefile
@@ -89,6 +89,8 @@ platform-specific/cc2538-common/pka/cc2538dk \
 hello-world/cc2538dk \
 rpl-border-router/cc2538dk \
 rpl-border-router/cc2538dk:MAKE_ROUTING=MAKE_ROUTING_RPL_CLASSIC \
+6tisch/simple-node/cc2538dk \
+6tisch/simple-node/cc2538dk:MAKE_WITH_SECURITY=1,MAKE_WITH_ORCHESTRA=1 \
 hello-world/nrf52dk \
 platform-specific/nrf52dk/coap-demo/coap-server/nrf52dk \
 platform-specific/nrf52dk/coap-demo/coap-client/nrf52dk:SERVER_IPV6_EP=ffff \
diff --git a/tests/03-compile-arm-ports-02/Makefile b/tests/03-compile-arm-ports-02/Makefile
index 190d36e4da1a8b3e55a7e88f131d3c1f620be7f2..655967e1bc9b5e23598bc6613a2529d8985ecce3 100644
--- a/tests/03-compile-arm-ports-02/Makefile
+++ b/tests/03-compile-arm-ports-02/Makefile
@@ -28,6 +28,7 @@ storage/antelope-shell/zoul \
 6tisch/simple-node/zoul:MAKE_WITH_ORCHESTRA=1 \
 6tisch/simple-node/zoul:MAKE_WITH_SECURITY=1 \
 libs/logging/zoul \
+libs/logging/zoul:MAKE_MAC=MAKE_MAC_TSCH \
 6tisch/etsi-plugtest-2017/zoul:BOARD=remote \
 6tisch/6p-packet/zoul \
 6tisch/sixtop/zoul \
@@ -68,6 +69,8 @@ libs/ipv6-hooks/openmote-cc2538 \
 libs/shell/openmote-cc2538 \
 libs/simple-energest/openmote-cc2538 \
 libs/deployment/openmote-cc2538 \
+6tisch/simple-node/openmote-cc2538 \
+6tisch/simple-node/openmote-cc2538:MAKE_WITH_SECURITY=1,MAKE_WITH_ORCHESTRA=1 \
 
 TOOLS=