diff --git a/makefiles/info-global.inc.mk b/makefiles/info-global.inc.mk
index 5e48b327ed9c26e213a9a32e28aa1920d7e923b8..ba1df4fa9156c39b6246ecbaab64b6bad5a10b2e 100644
--- a/makefiles/info-global.inc.mk
+++ b/makefiles/info-global.inc.mk
@@ -26,7 +26,7 @@ define board_missing_features
 
   include $(RIOTBASE)/Makefile.dep
 
-  FEATURES_MISSING := $$(filter-out $$(FEATURES_PROVIDED), $$(FEATURES_REQUIRED))
+  FEATURES_MISSING := $$(sort $$(filter-out $$(FEATURES_PROVIDED), $$(FEATURES_REQUIRED)))
   ifneq (, $${FEATURES_MISSING})
     BOARDS_FEATURES_MISSING += "${1} $${FEATURES_MISSING}"
     ifneq (, $$(filter-out $$(FEATURES_OPTIONAL), $$(FEATURES_MISSING)))
diff --git a/makefiles/info.inc.mk b/makefiles/info.inc.mk
index d08238d21c77356074b9b199036d289a5231b320..23c261c6fc3919ef12c7d8e8811f9237d18f76e0 100644
--- a/makefiles/info.inc.mk
+++ b/makefiles/info.inc.mk
@@ -1,5 +1,6 @@
 .PHONY: info-objsize info-buildsizes info-build info-boards-supported \
-        info-features-missing info-modules info-cpu
+        info-features-missing info-modules info-cpu \
+        info-features-provided info-features-required
 
 info-objsize:
 	@case "${SORTROW}" in \
@@ -114,5 +115,11 @@ info-modules:
 info-cpu:
 	@echo $(CPU)
 
+info-features-provided:
+	@for i in $(sort $(FEATURES_PROVIDED)); do echo $$i; done
+
+info-features-required:
+	@for i in $(sort $(FEATURES_REQUIRED)); do echo $$i; done
+
 info-features-missing:
-	@echo $(filter-out $(FEATURES_PROVIDED), $(FEATURES_REQUIRED))
+	@for i in $(sort $(filter-out $(FEATURES_PROVIDED), $(FEATURES_REQUIRED))); do echo $$i; done