[platform] add platform check for core configuration option (#4008)
diff --git a/examples/Makefile-cc1352 b/examples/Makefile-cc1352
index d0ca307..c9396e6 100644
--- a/examples/Makefile-cc1352
+++ b/examples/Makefile-cc1352
@@ -68,10 +68,9 @@
-I$(PWD)/third_party/mbedtls/repo/include \
$(NULL)
-CC1352_CONFIG_FILE_CPPFLAGS = \
- -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-cc1352-config.h\"' \
- -I$(PWD)/examples/platforms/cc1352/ \
- $(NULL)
+CC1352_CONFIG_FILE_CPPFLAGS = -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-cc1352-config.h\"'
+CC1352_CONFIG_FILE_CPPFLAGS += -DOPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE='\"openthread-core-cc1352-config-check.h\"'
+CC1352_CONFIG_FILE_CPPFLAGS += -I$(PWD)/examples/platforms/cc1352/
COMMONCFLAGS := \
-fdata-sections \
diff --git a/examples/Makefile-cc2538 b/examples/Makefile-cc2538
index 0b8abe6..006fe7f 100644
--- a/examples/Makefile-cc2538
+++ b/examples/Makefile-cc2538
@@ -56,16 +56,16 @@
TopSourceDir := $(dir $(shell readlink $(firstword $(MAKEFILE_LIST))))..
AbsTopSourceDir := $(dir $(realpath $(firstword $(MAKEFILE_LIST))))..
-CONFIG_FILE = OPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-cc2538-config.h\"'
-CONFIG_FILE_PATH = $(AbsTopSourceDir)/examples/platforms/cc2538/
+CC2538_CONFIG_FILE_CPPFLAGS = -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-cc2538-config.h\"'
+CC2538_CONFIG_FILE_CPPFLAGS += -DOPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE='\"openthread-core-cc2538-config-check.h\"'
+CC2538_CONFIG_FILE_CPPFLAGS += -I$(AbsTopSourceDir)/examples/platforms/cc2538/
-COMMONCFLAGS := \
- -fdata-sections \
- -ffunction-sections \
- -Os \
- -g \
- -D$(CONFIG_FILE) \
- -I$(CONFIG_FILE_PATH) \
+COMMONCFLAGS := \
+ -fdata-sections \
+ -ffunction-sections \
+ -Os \
+ -g \
+ $(CC2538_CONFIG_FILE_CPPFLAGS) \
$(NULL)
include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/common-switches.mk
diff --git a/examples/Makefile-cc2650 b/examples/Makefile-cc2650
index 173a64a..5aa0dcd 100644
--- a/examples/Makefile-cc2650
+++ b/examples/Makefile-cc2650
@@ -60,6 +60,7 @@
CC2650_MBEDTLS_CPPFLAGS += -I$(PWD)/third_party/mbedtls/repo/include
CC2650_CONFIG_FILE_CPPFLAGS = -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-cc2650-config.h\"'
+CC2650_CONFIG_FILE_CPPFLAGS += -DOPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE='\"openthread-core-cc2650-config-check.h\"'
CC2650_CONFIG_FILE_CPPFLAGS += -I$(PWD)/examples/platforms/cc2650/
COMMONCFLAGS := \
diff --git a/examples/Makefile-cc2652 b/examples/Makefile-cc2652
index d0f6ef0..56a1753 100644
--- a/examples/Makefile-cc2652
+++ b/examples/Makefile-cc2652
@@ -68,10 +68,9 @@
-I$(PWD)/third_party/mbedtls/repo/include \
$(NULL)
-CC2652_CONFIG_FILE_CPPFLAGS = \
- -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-cc2652-config.h\"' \
- -I$(PWD)/examples/platforms/cc2652/ \
- $(NULL)
+CC2652_CONFIG_FILE_CPPFLAGS = -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-cc2652-config.h\"'
+CC2652_CONFIG_FILE_CPPFLAGS += -DOPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE='\"openthread-core-cc2652-config-check.h\"'
+CC2652_CONFIG_FILE_CPPFLAGS += -I$(PWD)/examples/platforms/cc2652/
COMMONCFLAGS := \
-fdata-sections \
diff --git a/examples/Makefile-efr32mg12 b/examples/Makefile-efr32mg12
index e89db1b..dea4010 100644
--- a/examples/Makefile-efr32mg12
+++ b/examples/Makefile-efr32mg12
@@ -101,19 +101,21 @@
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/mbedtls/repo/include
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/mbedtls/repo/include/mbedtls
-CONFIG_FILE = OPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-efr32-config.h\"'
CONFIG_FILE_PATH = $(AbsTopSourceDir)/examples/platforms/efr32mg12/
HAL_CONF_DIR = $(CONFIG_FILE_PATH)/$(shell echo $(BOARD) | tr A-Z a-z)
-COMMONCFLAGS := \
- -fdata-sections \
- -ffunction-sections \
- -Os \
- -g \
- -D$(CONFIG_FILE) \
- -I$(CONFIG_FILE_PATH) \
- -I$(HAL_CONF_DIR) \
- -D$(MCU) \
+EFR32MG12_CONFIG_FILE_CPPFLAGS = -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-efr32-config.h\"'
+EFR32MG12_CONFIG_FILE_CPPFLAGS += -DOPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE='\"openthread-core-efr32-config-check.h\"'
+EFR32MG12_CONFIG_FILE_CPPFLAGS += -I$(CONFIG_FILE_PATH)
+
+COMMONCFLAGS := \
+ -fdata-sections \
+ -ffunction-sections \
+ -Os \
+ -g \
+ -I$(HAL_CONF_DIR) \
+ -D$(MCU) \
+ $(EFR32MG12_CONFIG_FILE_CPPFLAGS) \
$(NULL)
include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/common-switches.mk
diff --git a/examples/Makefile-efr32mg21 b/examples/Makefile-efr32mg21
index 6d71755..8c7e14c 100644
--- a/examples/Makefile-efr32mg21
+++ b/examples/Makefile-efr32mg21
@@ -87,19 +87,21 @@
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/mbedtls/repo/include
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/mbedtls/repo/include/mbedtls
-CONFIG_FILE = OPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-efr32-config.h\"'
CONFIG_FILE_PATH = $(AbsTopSourceDir)/examples/platforms/efr32mg21/
HAL_CONF_DIR = $(CONFIG_FILE_PATH)/$(shell echo $(BOARD) | tr A-Z a-z)
-COMMONCFLAGS := \
- -fdata-sections \
- -ffunction-sections \
- -Os \
- -g \
- -D$(CONFIG_FILE) \
- -I$(CONFIG_FILE_PATH) \
- -I$(HAL_CONF_DIR) \
- -D$(MCU) \
+EFR32MG21_CONFIG_FILE_CPPFLAGS = -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-efr32-config.h\"'
+EFR32MG21_CONFIG_FILE_CPPFLAGS += -DOPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE='\"openthread-core-efr32-config-check.h\"'
+EFR32MG21_CONFIG_FILE_CPPFLAGS += -I$(CONFIG_FILE_PATH)
+
+COMMONCFLAGS := \
+ -fdata-sections \
+ -ffunction-sections \
+ -Os \
+ -g \
+ -I$(HAL_CONF_DIR) \
+ -D$(MCU) \
+ $(EFR32MG21_CONFIG_FILE_CPPFLAGS) \
$(NULL)
include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/common-switches.mk
diff --git a/examples/Makefile-gp712 b/examples/Makefile-gp712
index 7e6916e..c1e2858 100644
--- a/examples/Makefile-gp712
+++ b/examples/Makefile-gp712
@@ -60,6 +60,7 @@
endif
GP712_CONFIG_FILE_CPPFLAGS = -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-gp712-config.h\"'
+GP712_CONFIG_FILE_CPPFLAGS += -DOPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE='\"openthread-core-gp712-config-check.h\"'
GP712_CONFIG_FILE_CPPFLAGS += -I$(PWD)/examples/platforms/gp712/
COMMONCFLAGS := \
diff --git a/examples/Makefile-kw41z b/examples/Makefile-kw41z
index 006ebdf..60b17df 100644
--- a/examples/Makefile-kw41z
+++ b/examples/Makefile-kw41z
@@ -56,16 +56,16 @@
TopSourceDir := $(dir $(shell readlink $(firstword $(MAKEFILE_LIST))))..
AbsTopSourceDir := $(dir $(realpath $(firstword $(MAKEFILE_LIST))))..
-CONFIG_FILE = OPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-kw41z-config.h\"'
-CONFIG_FILE_PATH = $(AbsTopSourceDir)/examples/platforms/kw41z/
+KW41Z_CONFIG_FILE_CPPFLAGS = -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-kw41z-config.h\"'
+KW41Z_CONFIG_FILE_CPPFLAGS += -DOPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE='\"openthread-core-kw41z-config-check.h\"'
+KW41Z_CONFIG_FILE_CPPFLAGS += -I$(AbsTopSourceDir)/examples/platforms/kw41z/
COMMONCFLAGS := \
-fdata-sections \
-ffunction-sections \
-Os \
-g \
- -D$(CONFIG_FILE) \
- -I$(CONFIG_FILE_PATH) \
+ $(KW41Z_CONFIG_FILE_CPPFLAGS) \
$(NULL)
include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/common-switches.mk
diff --git a/examples/Makefile-nrf52811 b/examples/Makefile-nrf52811
index 493caab..fa6a846 100644
--- a/examples/Makefile-nrf52811
+++ b/examples/Makefile-nrf52811
@@ -68,16 +68,16 @@
NRF52811_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/NordicSemiconductor/cmsis
NRF52811_MBEDTLS_CPPFLAGS += -DNRF52811_XXAA
-CONFIG_FILE = OPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-nrf52811-config.h\"'
-CONFIG_FILE_PATH = $(AbsTopSourceDir)/examples/platforms/nrf52811/
+NRF52811_CONFIG_FILE_CPPFLAGS = -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-nrf52811-config.h\"'
+NRF52811_CONFIG_FILE_CPPFLAGS += -DOPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE='\"openthread-core-nrf52811-config-check.h\"'
+NRF52811_CONFIG_FILE_CPPFLAGS += -I$(AbsTopSourceDir)/examples/platforms/nrf52811/
-COMMONCFLAGS := \
- -fdata-sections \
- -ffunction-sections \
- -Os \
- -g \
- -D$(CONFIG_FILE) \
- -I$(CONFIG_FILE_PATH) \
+COMMONCFLAGS := \
+ -fdata-sections \
+ -ffunction-sections \
+ -Os \
+ -g \
+ $(NRF52811_CONFIG_FILE_CPPFLAGS) \
$(NULL)
include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/common-switches.mk
diff --git a/examples/Makefile-nrf52840 b/examples/Makefile-nrf52840
index efdd894..4485059 100644
--- a/examples/Makefile-nrf52840
+++ b/examples/Makefile-nrf52840
@@ -72,16 +72,16 @@
NRF52840_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/NordicSemiconductor/cmsis
NRF52840_MBEDTLS_CPPFLAGS += -DNRF52840_XXAA
-CONFIG_FILE = OPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-nrf52840-config.h\"'
-CONFIG_FILE_PATH = $(AbsTopSourceDir)/examples/platforms/nrf52840/
+NRF52840_CONFIG_FILE_CPPFLAGS = -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-nrf52840-config.h\"'
+NRF52840_CONFIG_FILE_CPPFLAGS += -DOPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE='\"openthread-core-nrf52840-config-check.h\"'
+NRF52840_CONFIG_FILE_CPPFLAGS += -I$(AbsTopSourceDir)/examples/platforms/nrf52840/
-COMMONCFLAGS := \
- -fdata-sections \
- -ffunction-sections \
- -Os \
- -g \
- -D$(CONFIG_FILE) \
- -I$(CONFIG_FILE_PATH) \
+COMMONCFLAGS := \
+ -fdata-sections \
+ -ffunction-sections \
+ -Os \
+ -g \
+ $(NRF52840_CONFIG_FILE_CPPFLAGS) \
$(NULL)
include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/common-switches.mk
diff --git a/examples/Makefile-qpg6095 b/examples/Makefile-qpg6095
index 5817a8f..059c520 100644
--- a/examples/Makefile-qpg6095
+++ b/examples/Makefile-qpg6095
@@ -59,6 +59,7 @@
AbsTopSourceDir := $(dir $(realpath $(firstword $(MAKEFILE_LIST))))..
QPG6095_CONFIG_FILE_CPPFLAGS = -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-qpg6095-config.h\"'
+QPG6095_CONFIG_FILE_CPPFLAGS += -DOPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE='\"openthread-core-qpg6095-config-check.h\"'
QPG6095_CONFIG_FILE_CPPFLAGS += -I$(PWD)/examples/platforms/qpg6095/
QPG6095_MBEDTLS_CPPFLAGS = -DMBEDTLS_CONFIG_FILE='\"mbedtls-config.h\"'
QPG6095_MBEDTLS_CPPFLAGS += -DMBEDTLS_USER_CONFIG_FILE='\"qpg6095-mbedtls-config.h\"'
@@ -67,16 +68,12 @@
QPG6095_MBEDTLS_CPPFLAGS += -I$(PWD)/third_party/mbedtls/repo/include
QPG6095_MBEDTLS_CPPFLAGS += -I$(PWD)/third_party/mbedtls/repo/include/mbedtls
-CONFIG_FILE = OPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-qpg6095-config.h\"'
-CONFIG_FILE_PATH = $(AbsTopSourceDir)/examples/platforms/qpg6095/
-
-COMMONCFLAGS := \
- -fdata-sections \
- -ffunction-sections \
- -Os \
- -g \
- -D$(CONFIG_FILE) \
- -I$(CONFIG_FILE_PATH) \
+COMMONCFLAGS := \
+ -fdata-sections \
+ -ffunction-sections \
+ -Os \
+ -g \
+ $(QPG6095_CONFIG_FILE_CPPFLAGS) \
$(NULL)
include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/common-switches.mk
diff --git a/examples/Makefile-samr21 b/examples/Makefile-samr21
index bd19b8f..58b298b 100644
--- a/examples/Makefile-samr21
+++ b/examples/Makefile-samr21
@@ -78,18 +78,18 @@
SAMR21_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/mbedtls
SAMR21_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/mbedtls/repo/include
-CONFIG_FILE = OPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-samr21-config.h\"'
-CONFIG_FILE_PATH = $(AbsTopSourceDir)/examples/platforms/samr21/
+SAMR21_CONFIG_FILE_CPPFLAGS = -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"openthread-core-samr21-config.h\"'
+SAMR21_CONFIG_FILE_CPPFLAGS += -DOPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE='\"openthread-core-samr21-config-check.h\"'
+SAMR21_CONFIG_FILE_CPPFLAGS += -I$(AbsTopSourceDir)/examples/platforms/samr21/
-COMMONCFLAGS := \
- -DBOARD=$(BOARD) \
- -D$(CPU) \
- -fdata-sections \
- -ffunction-sections \
- -Os \
- -g \
- -D$(CONFIG_FILE) \
- -I$(CONFIG_FILE_PATH) \
+COMMONCFLAGS := \
+ -DBOARD=$(BOARD) \
+ -D$(CPU) \
+ -fdata-sections \
+ -ffunction-sections \
+ -Os \
+ -g \
+ $(SAMR21_CONFIG_FILE_CPPFLAGS) \
$(NULL)
include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/common-switches.mk
diff --git a/examples/platforms/cc1352/Makefile.am b/examples/platforms/cc1352/Makefile.am
index 435e83a..e64c9fd 100644
--- a/examples/platforms/cc1352/Makefile.am
+++ b/examples/platforms/cc1352/Makefile.am
@@ -54,6 +54,7 @@
logging.c \
misc.c \
openthread-core-cc1352-config.h \
+ openthread-core-cc1352-config-check.h \
platform-cc1352.h \
radio.c \
system.c \
diff --git a/examples/platforms/cc1352/openthread-core-cc1352-config-check.h b/examples/platforms/cc1352/openthread-core-cc1352-config-check.h
new file mode 100644
index 0000000..eac2830
--- /dev/null
+++ b/examples/platforms/cc1352/openthread-core-cc1352-config-check.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2019, The OpenThread Authors.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef OPENTHREAD_CORE_CC1352_CONFIG_CHECK_H_
+#define OPENTHREAD_CORE_CC1352_CONFIG_CHECK_H_
+
+#if OPENTHREAD_CONFIG_ENABLE_TIME_SYNC
+#error "Platform cc1352 doesn't support configuration option: OPENTHREAD_CONFIG_ENABLE_TIME_SYNC"
+#endif
+
+#if OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
+#error "Platform cc1352 doesn't support configuration option: OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT"
+#endif
+
+#endif /* OPENTHREAD_CORE_CC1352_CONFIG_CHECK_H_ */
diff --git a/examples/platforms/cc2538/Makefile.am b/examples/platforms/cc2538/Makefile.am
index 8f95f2d..a7d2f00 100644
--- a/examples/platforms/cc2538/Makefile.am
+++ b/examples/platforms/cc2538/Makefile.am
@@ -44,6 +44,7 @@
flash.c \
misc.c \
openthread-core-cc2538-config.h \
+ openthread-core-cc2538-config-check.h \
platform-cc2538.h \
radio.c \
rom-utility.h \
diff --git a/examples/platforms/cc2538/openthread-core-cc2538-config-check.h b/examples/platforms/cc2538/openthread-core-cc2538-config-check.h
new file mode 100644
index 0000000..c1d4592
--- /dev/null
+++ b/examples/platforms/cc2538/openthread-core-cc2538-config-check.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2019, The OpenThread Authors.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef OPENTHREAD_CORE_CC2538_CONFIG_CHECK_H_
+#define OPENTHREAD_CORE_CC2538_CONFIG_CHECK_H_
+
+#if OPENTHREAD_CONFIG_ENABLE_TIME_SYNC
+#error "Platform cc2538 doesn't support configuration option: OPENTHREAD_CONFIG_ENABLE_TIME_SYNC"
+#endif
+
+#if OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
+#error "Platform cc2538 doesn't support configuration option: OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT"
+#endif
+
+#endif /* OPENTHREAD_CORE_CC2538_CONFIG_CHECK_H_ */
diff --git a/examples/platforms/cc2650/Makefile.am b/examples/platforms/cc2650/Makefile.am
index bf90901..af8dd42 100644
--- a/examples/platforms/cc2650/Makefile.am
+++ b/examples/platforms/cc2650/Makefile.am
@@ -54,6 +54,7 @@
misc.c \
logging.c \
openthread-core-cc2650-config.h \
+ openthread-core-cc2650-config-check.h \
platform-cc2650.h \
radio.c \
system.c \
diff --git a/examples/platforms/cc2650/openthread-core-cc2650-config-check.h b/examples/platforms/cc2650/openthread-core-cc2650-config-check.h
new file mode 100644
index 0000000..1aa48b3
--- /dev/null
+++ b/examples/platforms/cc2650/openthread-core-cc2650-config-check.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2019, The OpenThread Authors.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef OPENTHREAD_CORE_CC2650_CONFIG_CHECK_H_
+#define OPENTHREAD_CORE_CC2650_CONFIG_CHECK_H_
+
+#if OPENTHREAD_CONFIG_ENABLE_TIME_SYNC
+#error "Platform cc2650 doesn't support configuration option: OPENTHREAD_CONFIG_ENABLE_TIME_SYNC"
+#endif
+
+#if OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
+#error "Platform cc2650 doesn't support configuration option: OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT"
+#endif
+
+#endif /* OPENTHREAD_CORE_CC2650_CONFIG_CHECK_H_ */
diff --git a/examples/platforms/cc2652/Makefile.am b/examples/platforms/cc2652/Makefile.am
index 8d8b36a..7dfe572 100644
--- a/examples/platforms/cc2652/Makefile.am
+++ b/examples/platforms/cc2652/Makefile.am
@@ -54,6 +54,7 @@
logging.c \
misc.c \
openthread-core-cc2652-config.h \
+ openthread-core-cc2652-config-check.h \
platform-cc2652.h \
radio.c \
system.c \
diff --git a/examples/platforms/cc2652/openthread-core-cc2652-config-check.h b/examples/platforms/cc2652/openthread-core-cc2652-config-check.h
new file mode 100644
index 0000000..662d1ee
--- /dev/null
+++ b/examples/platforms/cc2652/openthread-core-cc2652-config-check.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2019, The OpenThread Authors.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef OPENTHREAD_CORE_CC2652_CONFIG_CHECK_H_
+#define OPENTHREAD_CORE_CC2652_CONFIG_CHECK_H_
+
+#if OPENTHREAD_CONFIG_ENABLE_TIME_SYNC
+#error "Platform cc2652 doesn't support configuration option: OPENTHREAD_CONFIG_ENABLE_TIME_SYNC"
+#endif
+
+#if OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
+#error "Platform cc2652 doesn't support configuration option: OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT"
+#endif
+
+#endif /* OPENTHREAD_CORE_CC2652_CONFIG_CHECK_H_ */
diff --git a/examples/platforms/efr32mg12/Makefile.am b/examples/platforms/efr32mg12/Makefile.am
index 72354f6..54b52da 100644
--- a/examples/platforms/efr32mg12/Makefile.am
+++ b/examples/platforms/efr32mg12/Makefile.am
@@ -99,6 +99,7 @@
logging.c \
misc.c \
openthread-core-efr32-config.h \
+ openthread-core-efr32-config-check.h \
platform-efr32.h \
platform-band.h \
radio.c \
diff --git a/examples/platforms/efr32mg12/openthread-core-efr32-config-check.h b/examples/platforms/efr32mg12/openthread-core-efr32-config-check.h
new file mode 100644
index 0000000..2dd40d4
--- /dev/null
+++ b/examples/platforms/efr32mg12/openthread-core-efr32-config-check.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2019, The OpenThread Authors.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef OPENTHREAD_CORE_EFR32_CONFIG_CHECK_H_
+#define OPENTHREAD_CORE_EFR32_CONFIG_CHECK_H_
+
+#include "board_config.h"
+
+#if OPENTHREAD_CONFIG_ENABLE_TIME_SYNC
+#error "Platform efr32mg12 doesn't support configuration option: OPENTHREAD_CONFIG_ENABLE_TIME_SYNC"
+#endif
+
+#ifndef RADIO_CONFIG_915MHZ_OQPSK_SUPPORT
+#if OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
+#error "Platform efr32mg12 not configured to support configuration option: OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT"
+#endif
+#endif
+
+#endif /* OPENTHREAD_CORE_EFR32_CONFIG_CHECK_H_ */
diff --git a/examples/platforms/efr32mg21/Makefile.am b/examples/platforms/efr32mg21/Makefile.am
index c6af552..c84ee64 100644
--- a/examples/platforms/efr32mg21/Makefile.am
+++ b/examples/platforms/efr32mg21/Makefile.am
@@ -85,6 +85,8 @@
flash.c \
logging.c \
misc.c \
+ openthread-core-efr32-config.h \
+ openthread-core-efr32-config-check.h \
radio.c \
startup-gcc.c \
system.c \
diff --git a/examples/platforms/efr32mg21/openthread-core-efr32-config-check.h b/examples/platforms/efr32mg21/openthread-core-efr32-config-check.h
new file mode 100644
index 0000000..953efee
--- /dev/null
+++ b/examples/platforms/efr32mg21/openthread-core-efr32-config-check.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2019, The OpenThread Authors.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef OPENTHREAD_CORE_EFR32_CONFIG_CHECK_H_
+#define OPENTHREAD_CORE_EFR32_CONFIG_CHECK_H_
+
+#if OPENTHREAD_CONFIG_ENABLE_TIME_SYNC
+#error "Platform efr32mg21 doesn't support configuration option: OPENTHREAD_CONFIG_ENABLE_TIME_SYNC"
+#endif
+
+#if OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
+#error "Platform efr32mg21 doesn't support configuration option: OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT"
+#endif
+
+#endif /* OPENTHREAD_CORE_EFR32_CONFIG_CHECK_H_ */
diff --git a/examples/platforms/efr32mg21/openthread-core-efr32-config.h b/examples/platforms/efr32mg21/openthread-core-efr32-config.h
index bdbc39e..ba95953 100644
--- a/examples/platforms/efr32mg21/openthread-core-efr32-config.h
+++ b/examples/platforms/efr32mg21/openthread-core-efr32-config.h
@@ -44,7 +44,7 @@
* The efr32 platform provides an otPlatLog() function.
*/
#ifndef OPENTHREAD_CONFIG_LOG_OUTPUT /* allow command line override */
-#define OPENTHREAD_CONFIG_LOG_OUTPUT OPENTHREAD_CONFIG_LOG_OUTPUT_PLATFORM_DEFINED
+#define OPENTHREAD_CONFIG_LOG_OUTPUT OPENTHREAD_CONFIG_LOG_OUTPUT_PLATFORM_DEFINED
#endif
/*
@@ -54,8 +54,7 @@
*
*/
-#define OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT 0
-
+#define OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT 0
/*
* @def OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT
@@ -64,9 +63,9 @@
*
*/
#ifdef RADIO_CONFIG_2P4GHZ_OQPSK_SUPPORT
-#define OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT 1
+#define OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT 1
#else
-#define OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT 0
+#define OPENTHREAD_CONFIG_RADIO_2P4GHZ_OQPSK_SUPPORT 0
#endif
/**
@@ -75,7 +74,7 @@
* The platform-specific string to insert into the OpenThread version string.
*
*/
-#define OPENTHREAD_CONFIG_PLATFORM_INFO "EFR32"
+#define OPENTHREAD_CONFIG_PLATFORM_INFO "EFR32"
/*
* @def OPENTHREAD_CONFIG_ENABLE_SOFTWARE_RETRANSMIT
@@ -83,7 +82,7 @@
* Define to 1 if you want to enable software retransmission logic.
*
*/
-#define OPENTHREAD_CONFIG_ENABLE_SOFTWARE_RETRANSMIT 1
+#define OPENTHREAD_CONFIG_ENABLE_SOFTWARE_RETRANSMIT 1
/**
* @def OPENTHREAD_CONFIG_ENABLE_SOFTWARE_CSMA_BACKOFF
@@ -91,7 +90,7 @@
* Define to 1 if you want to enable software CSMA-CA backoff logic.
*
*/
-#define OPENTHREAD_CONFIG_ENABLE_SOFTWARE_CSMA_BACKOFF 1
+#define OPENTHREAD_CONFIG_ENABLE_SOFTWARE_CSMA_BACKOFF 1
/**
* @def OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN
@@ -99,7 +98,7 @@
* Define to 1 if you want to enable software energy scanning logic.
*
*/
-#define OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN 1
+#define OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN 1
/**
* @def SETTINGS_CONFIG_BASE_ADDRESS
@@ -107,7 +106,7 @@
* The base address of settings.
*
*/
-#define SETTINGS_CONFIG_BASE_ADDRESS 0
+#define SETTINGS_CONFIG_BASE_ADDRESS 0
/**
* @def SETTINGS_CONFIG_PAGE_SIZE
@@ -115,7 +114,7 @@
* The page size of settings.
*
*/
-#define SETTINGS_CONFIG_PAGE_SIZE FLASH_PAGE_SIZE
+#define SETTINGS_CONFIG_PAGE_SIZE FLASH_PAGE_SIZE
/**
* @def SETTINGS_CONFIG_PAGE_NUM
@@ -123,7 +122,7 @@
* The page number of settings.
*
*/
-#define SETTINGS_CONFIG_PAGE_NUM 4
+#define SETTINGS_CONFIG_PAGE_NUM 4
/**
* @def RADIO_CONFIG_SRC_MATCH_SHORT_ENTRY_NUM
@@ -131,7 +130,7 @@
* The number of short source address table entries.
*
*/
-#define RADIO_CONFIG_SRC_MATCH_SHORT_ENTRY_NUM 6
+#define RADIO_CONFIG_SRC_MATCH_SHORT_ENTRY_NUM 6
/**
* @def RADIO_CONFIG_SRC_MATCH_EXT_ENTRY_NUM
@@ -139,6 +138,6 @@
* The number of extended source address table entries.
*
*/
-#define RADIO_CONFIG_SRC_MATCH_EXT_ENTRY_NUM 6
+#define RADIO_CONFIG_SRC_MATCH_EXT_ENTRY_NUM 6
-#endif // OPENTHREAD_CORE_EFR32_CONFIG_H_
+#endif // OPENTHREAD_CORE_EFR32_CONFIG_H_
diff --git a/examples/platforms/gp712/Makefile.am b/examples/platforms/gp712/Makefile.am
index af7707c..6731973 100644
--- a/examples/platforms/gp712/Makefile.am
+++ b/examples/platforms/gp712/Makefile.am
@@ -47,6 +47,7 @@
logging.c \
misc.c \
openthread-core-gp712-config.h \
+ openthread-core-gp712-config-check.h \
platform_qorvo.h \
radio.c \
radio_qorvo.h \
diff --git a/examples/platforms/gp712/openthread-core-gp712-config-check.h b/examples/platforms/gp712/openthread-core-gp712-config-check.h
new file mode 100644
index 0000000..9ba03f6
--- /dev/null
+++ b/examples/platforms/gp712/openthread-core-gp712-config-check.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2019, The OpenThread Authors.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef OPENTHREAD_CORE_GP712_CONFIG_CHECK_H_
+#define OPENTHREAD_CORE_GP712_CONFIG_CHECK_H_
+
+#if OPENTHREAD_CONFIG_ENABLE_TIME_SYNC
+#error "Platform gp712 doesn't support configuration option: OPENTHREAD_CONFIG_ENABLE_TIME_SYNC"
+#endif
+
+#if OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
+#error "Platform gp712 doesn't support configuration option: OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT"
+#endif
+
+#endif /* OPENTHREAD_CORE_GP712_CONFIG_CHECK_H_ */
diff --git a/examples/platforms/kw41z/Makefile.am b/examples/platforms/kw41z/Makefile.am
index eb4b254..4f3f7de 100644
--- a/examples/platforms/kw41z/Makefile.am
+++ b/examples/platforms/kw41z/Makefile.am
@@ -56,6 +56,7 @@
logging.c \
misc.c \
openthread-core-kw41z-config.h \
+ openthread-core-kw41z-config-check.h \
platform-kw41z.h \
radio.c \
system.c \
diff --git a/examples/platforms/kw41z/openthread-core-kw41z-config-check.h b/examples/platforms/kw41z/openthread-core-kw41z-config-check.h
new file mode 100644
index 0000000..237b2fb
--- /dev/null
+++ b/examples/platforms/kw41z/openthread-core-kw41z-config-check.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2019, The OpenThread Authors.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef OPENTHREAD_CORE_KW41Z_CONFIG_CHECK_H_
+#define OPENTHREAD_CORE_KW41Z_CONFIG_CHECK_H_
+
+#if OPENTHREAD_CONFIG_ENABLE_TIME_SYNC
+#error "Platform kw41z doesn't support configuration option: OPENTHREAD_CONFIG_ENABLE_TIME_SYNC"
+#endif
+
+#if OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
+#error "Platform kw41z doesn't support configuration option: OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT"
+#endif
+
+#endif /* OPENTHREAD_CORE_KW41Z_CONFIG_CHECK_H_ */
diff --git a/examples/platforms/nrf52811/Makefile.am b/examples/platforms/nrf52811/Makefile.am
index 4a5a1f1..aa04a06 100644
--- a/examples/platforms/nrf52811/Makefile.am
+++ b/examples/platforms/nrf52811/Makefile.am
@@ -78,6 +78,7 @@
logging.c \
misc.c \
openthread-core-nrf52811-config.h \
+ openthread-core-nrf52811-config-check.h \
platform-config.h \
platform-fem.h \
platform-nrf5.h \
diff --git a/examples/platforms/nrf52811/openthread-core-nrf52811-config-check.h b/examples/platforms/nrf52811/openthread-core-nrf52811-config-check.h
new file mode 100644
index 0000000..9b9c87d
--- /dev/null
+++ b/examples/platforms/nrf52811/openthread-core-nrf52811-config-check.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2019, The OpenThread Authors.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef OPENTHREAD_CORE_NRF52811_CONFIG_CHECK_H_
+#define OPENTHREAD_CORE_NRF52811_CONFIG_CHECK_H_
+
+#if OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
+#error "Platform nrf52811 doesn't support configuration option: OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT"
+#endif
+
+#endif /* OPENTHREAD_CORE_NRF52811_CONFIG_CHECK_H_ */
diff --git a/examples/platforms/nrf52840/Makefile.am b/examples/platforms/nrf52840/Makefile.am
index c0690ce..078ec5a 100644
--- a/examples/platforms/nrf52840/Makefile.am
+++ b/examples/platforms/nrf52840/Makefile.am
@@ -86,6 +86,7 @@
logging.c \
misc.c \
openthread-core-nrf52840-config.h \
+ openthread-core-nrf52840-config-check.h \
platform-config.h \
platform-fem.h \
platform-nrf5.h \
diff --git a/examples/platforms/nrf52840/openthread-core-nrf52840-config-check.h b/examples/platforms/nrf52840/openthread-core-nrf52840-config-check.h
new file mode 100644
index 0000000..bdeb782
--- /dev/null
+++ b/examples/platforms/nrf52840/openthread-core-nrf52840-config-check.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2019, The OpenThread Authors.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef OPENTHREAD_CORE_NRF52840_CONFIG_CHECK_H_
+#define OPENTHREAD_CORE_NRF52840_CONFIG_CHECK_H_
+
+#if OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
+#error "Platform nrf52840 doesn't support configuration option: OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT"
+#endif
+
+#endif /* OPENTHREAD_CORE_NRF52840_CONFIG_CHECK_H_ */
diff --git a/examples/platforms/qpg6095/Makefile.am b/examples/platforms/qpg6095/Makefile.am
index 6deeae1..ab114ad 100644
--- a/examples/platforms/qpg6095/Makefile.am
+++ b/examples/platforms/qpg6095/Makefile.am
@@ -49,6 +49,7 @@
misc.c \
misc_qorvo.h \
openthread-core-qpg6095-config.h \
+ openthread-core-qpg6095-config-check.h \
platform.c \
platform_qorvo.h \
radio.c \
diff --git a/examples/platforms/qpg6095/openthread-core-qpg6095-config-check.h b/examples/platforms/qpg6095/openthread-core-qpg6095-config-check.h
new file mode 100644
index 0000000..d45320b
--- /dev/null
+++ b/examples/platforms/qpg6095/openthread-core-qpg6095-config-check.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2019, The OpenThread Authors.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef OPENTHREAD_CORE_QPG6095_CONFIG_CHECK_H_
+#define OPENTHREAD_CORE_QPG6095_CONFIG_CHECK_H_
+
+#if OPENTHREAD_CONFIG_ENABLE_TIME_SYNC
+#error "Platform qpg6095 doesn't support configuration option: OPENTHREAD_CONFIG_ENABLE_TIME_SYNC"
+#endif
+
+#if OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
+#error "Platform qpg6095 doesn't support configuration option: OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT"
+#endif
+
+#endif /* OPENTHREAD_CORE_QPG6095_CONFIG_CHECK_H_ */
diff --git a/examples/platforms/samr21/Makefile.am b/examples/platforms/samr21/Makefile.am
index 92324d0..946af88 100644
--- a/examples/platforms/samr21/Makefile.am
+++ b/examples/platforms/samr21/Makefile.am
@@ -96,6 +96,7 @@
logging.c \
misc.c \
openthread-core-samr21-config.h \
+ openthread-core-samr21-config-check.h \
platform-samr21.h \
radio.c \
system.c \
diff --git a/examples/platforms/samr21/openthread-core-samr21-config-check.h b/examples/platforms/samr21/openthread-core-samr21-config-check.h
new file mode 100644
index 0000000..372a5f7
--- /dev/null
+++ b/examples/platforms/samr21/openthread-core-samr21-config-check.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2019, The OpenThread Authors.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef OPENTHREAD_CORE_SAMR21_CONFIG_CHECK_H_
+#define OPENTHREAD_CORE_SAMR21_CONFIG_CHECK_H_
+
+#if OPENTHREAD_CONFIG_ENABLE_TIME_SYNC
+#error "Platform samr21 doesn't support configuration option: OPENTHREAD_CONFIG_ENABLE_TIME_SYNC"
+#endif
+
+#if OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT
+#error "Platform samr21 doesn't support configuration option: OPENTHREAD_CONFIG_RADIO_915MHZ_OQPSK_SUPPORT"
+#endif
+
+#endif /* OPENTHREAD_CORE_SAMR21_CONFIG_CHECK_H_ */