Index: kernel/generic/src/mm/frame.c
===================================================================
--- kernel/generic/src/mm/frame.c	(revision dd50aa1911e36b82569a97729165ef1d797d3cd1)
+++ kernel/generic/src/mm/frame.c	(revision 597fa246c9481b40ae4d512256c4ceea4506b215)
@@ -63,5 +63,8 @@
 #include <proc/thread.h> /* THREAD */
 
-zones_t zones;
+zones_t zones = {
+	.count = 0,
+	.lock = IRQ_SPINLOCK_INITIALIZER("frame.zones.lock"),
+};
 
 /*
@@ -69,6 +72,6 @@
  * available.
  */
-static mutex_t mem_avail_mtx;
-static condvar_t mem_avail_cv;
+static MUTEX_INITIALIZE(mem_avail_mtx, MUTEX_ACTIVE);
+static CONDVAR_INITIALIZE(mem_avail_cv);
 static size_t mem_avail_req = 0;  /**< Number of frames requested. */
 static size_t mem_avail_gen = 0;  /**< Generation counter. */
@@ -1108,11 +1111,4 @@
 void frame_init(void)
 {
-	if (config.cpu_active == 1) {
-		zones.count = 0;
-		irq_spinlock_initialize(&zones.lock, "frame.zones.lock");
-		mutex_initialize(&mem_avail_mtx, MUTEX_ACTIVE);
-		condvar_initialize(&mem_avail_cv);
-	}
-
 	/* Tell the architecture to create some memory */
 	frame_low_arch_init();
