commit cda1472944648652764c6980f5ee3f3e91459ef3
Author: Thomas Schöpping <tschoepp@cit-ec.uni-bielefeld.de>
Date:   Mon Oct 28 11:15:03 2019 +0100

    Major SSSP overhaul:
    - SSSP no works even without Bootloader (AMiRo-OS implements startup and shutdown phases)
    - MSI and calendar synchronization are currently not available (WIP)
    - lots of minor changes

diff --git a/core/inc/aos_confcheck.h b/core/inc/aos_confcheck.h
index 5f9f5f1..1dde0cb 100644
--- a/core/inc/aos_confcheck.h
+++ b/core/inc/aos_confcheck.h
@@ -59,13 +59,51 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
   #error "AMIROOS_CFG_MAIN_LOOP_TIMEOUT not defined in aosconf.h"
 #endif /* !defined(AMIROOS_CFG_MAIN_LOOP_TIMEOUT) */
 
+/* bootloader parameters and options */
+
+#if !defined(AMIROOS_CFG_BOOTLOADER)
+  #error "AMIROOS_CFG_BOOTLOADER not defined in aosconf.h"
+#endif /* !defined(AMIROOS_CFG_BOOTLOADER)*/
+
 /* SSSP parameters and options */
 
 #if !defined(AMIROOS_CFG_SSSP_ENABLE)
   #error "AMIROOS_CFG_SSSP_ENABLE not defined in aosconf.h"
 #endif /* !defined(AMIROOS_CFG_SSSP_ENABLE) */
 
-# if (AMIROOS_CFG_SSSP_ENABLE == true)
+#if (AMIROOS_CFG_SSSP_ENABLE == true)
+
+  #if !defined(AMIROOS_CFG_SSSP_STARTUP)
+    #error "AMIROOS_CFG_SSSP_STARTUP not defined in aosconf.h"
+  #else /* !defined(AMIROOS_CFG_SSSP_STARTUP) */
+    #if (AMIROOS_CFG_SSSP_STARTUP == true)
+      #if (AMIROOS_CFG_BOOTLOADER == AOS_BOOTLOADER_AMiRoBLT)
+        #error "AMIROOS_CFG_SSSP_STARTUP is enabled in aosconf.h, but SSSP startup phase is already handled by AMiRo-BLT."
+      #endif /* (AMIROOS_CFG_BOOTLOADER == AOS_BOOTLOADER_AMiRoBLT) */
+    #else /* (AMIROOS_CFG_SSSP_STARTUP == true) */
+      #if (AMIROOS_CFG_BOOTLOADER == AOS_BOOTLOADER_NONE)
+        #error "AMIROOS_CFG_SSSP_STARTUP is disabled in aosconf.h, but no bootloader is defined to handle SSSP startup phase instead."
+      #endif /* (AMIROOS_CFG_BOOTLOADER == AOS_BOOTLOADER_NONE) */
+    #endif /* (AMIROOS_CFG_SSSP_STARTUP == true) */
+  #endif /* !defined(AMIROOS_CFG_SSSP_STARTUP) */
+
+  #if !defined(AMIROOS_CFG_SSSP_SHUTDOWN)
+    #error "AMIROOS_CFG_SSSP_SHUTDOWN not defined in aosconf.h"
+  #else /* !defined(AMIROOS_CFG_SSSP_SHUTDOWN) */
+    #if (AMIROOS_CFG_SSSP_SHUTDOWN != true)
+      #if (AMIROOS_CFG_BOOTLOADER == AOS_BOOTLOADER_NONE)
+        #error "AMIROOS_CFG_SSSP_SHUTDOWN is disabled in aosconf.h, but no bootloader is defined to handle SSSP shutdown phase instead."
+      #endif /* (AMIROOS_CFG_BOOTLOADER == AOS_BOOTLOADER_NONE) */
+    #endif /* (AMIROOS_CFG_SSSP_SHUTDOWN != true) && (AMIROOS_CFG_BOOTLOADER == AOS_BOOTLOADER_NONE) */
+  #endif /* !defined(AMIROOS_CFG_SSSP_SHUTDOWN) */
+
+  #if !defined(AMIROOS_CFG_SSSP_MSI)
+    #error "AMIROOS_CFG_SSSP_MSI not defined in aosconf.h"
+  #endif /* !defined(AMIROOS_CFG_SSSP_MSI) */
+
+  #if !defined(AMIROOS_CFG_SSSP_MODULEIDWIDTH)
+    #error "AMIROOS_CFG_SSSP_MODULEIDWIDTH not defined in aosconf.h"
+  #endif /* !defined(AMIROOS_CFG_SSSP_MODULEIDWIDTH) */
 
   #if !defined(AMIROOS_CFG_SSSP_MASTER)
     #error "AMIROOS_CFG_SSSP_MASTER not defined in aosconf.h"
@@ -94,6 +132,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
     #error "AMIROOS_CFG_SSSP_SYSSYNCPERIOD not defined in aosconf.h"
   #endif /* !defined(AMIROOS_CFG_SSSP_SYSSYNCPERIOD) */
 
+#else /* (AMIROOS_CFG_SSSP_ENABLE == true) */
+
+  #if (AMIROOS_CFG_BOOTLOADER == AOS_BOOTLOADER_AMiRoBLT)
+    #warning "SSSP is disabled in aosconf.h, but AMiRo-BLT implements it nevertheless."
+  #endif /* (AMIROOS_CFG_BOOTLOADER == AOS_BOOTLOADER_AMiRoBLT) */
+
 #endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
 
 /* system shell options */
@@ -123,7 +167,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #else /* (AMIROOS_CFG_SHELL_ENABLE == true) */
 
   #if (AMIROOS_CFG_TESTS_ENABLE == true)
-    #pragma message "AMiRo-OS shell enabled implicitely via AMIROOS_CFG_TESTS_ENABLE"
+    #error "Enabling AMIROOS_CFG_TESTS_ENABLE in aosconf.h requires AMIROOS_CFG_SHELL_ENABLE to be enabled as well."
   #endif /* (AMIROOS_CFG_TESTS_ENABLE == true) */
 
 #endif /* (AMIROOS_CFG_SHELL_ENABLE == true) */
