diff --git a/kernel/Makefile b/kernel/Makefile
index 69e21b7f21f86b307150337d319101a71b1b184b..e2fe2668a5b03bb0358caef367d5f5c7b59ba32b 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -8,6 +8,13 @@ KBUILD_EXTRA_SYMBOLS := $(FMC_DRV)/Module.symvers
 
 GIT_VERSION = $(shell cd $(src); git describe --dirty --long --tags)
 
+# For this CSM_VERSION, please see ohwr.org/csm documentation
+ifdef CONFIG_CSM_VERSION
+  ccflags-y += -D"CERN_SUPER_MODULE=MODULE_VERSION(\"$(CONFIG_CSM_VERSION)\")"
+else
+  ccflags-y += -DCERN_SUPER_MODULE=""
+endif
+
 ccflags-y += -I$(src)/include -I$(FMC_DRV)/include
 ccflags-y += $(WR_NIC_CFLAGS)
 ccflags-y += -DGIT_VERSION=\"$(GIT_VERSION)\"
diff --git a/kernel/spec-pci.c b/kernel/spec-pci.c
index 58f06598cb167a9d0fc2e9917464c5a0fbd32941..64844de012b758a1784ac13651f139f1dd9253f5 100644
--- a/kernel/spec-pci.c
+++ b/kernel/spec-pci.c
@@ -215,3 +215,5 @@ module_exit(spec_exit);
 
 MODULE_VERSION(GIT_VERSION);
 MODULE_LICENSE("GPL");
+
+CERN_SUPER_MODULE;
diff --git a/kernel/wr-nic-core.c b/kernel/wr-nic-core.c
index 54b1394b90fc18a2e4acbf6973c41e794d97f850..4dac6b693f833ca625c7c3af93c984583b66ee5f 100644
--- a/kernel/wr-nic-core.c
+++ b/kernel/wr-nic-core.c
@@ -225,3 +225,5 @@ void __weak wrn_gpio_exit(struct fmc_device *fmc)
 
 MODULE_VERSION(GIT_VERSION);
 MODULE_LICENSE("GPL");
+
+CERN_SUPER_MODULE;