diff --git a/src/console/console.c b/src/console/console.c
index 5b8a872..f37f120 100644
--- a/src/console/console.c
+++ b/src/console/console.c
@@ -11,6 +11,8 @@
 #include <console/flash.h>
 #include <console/system76_ec.h>
 
+/* Note: when adding a new console, make sure you update the definition of
+   HAS_ONLY_FAST_CONSOLES in <console.h>! */
 void console_hw_init(void)
 {
 	__cbmemc_init();
diff --git a/src/console/printk.c b/src/console/printk.c
index ffa3106..8db2c45 100644
--- a/src/console/printk.c
+++ b/src/console/printk.c
@@ -67,6 +67,8 @@
 	};
 };
 
+#define LOG_FAST(state) (HAS_ONLY_FAST_CONSOLES || ((state).level == CONSOLE_LOG_FAST))
+
 static void wrap_interactive_printf(const char *fmt, ...)
 {
 	va_list args;
@@ -83,7 +85,7 @@
 	   LOG_FAST mode, just write the marker to CBMC and exit -- the rest of this function
 	   implements the LOG_ALL case. */
 	unsigned char marker = BIOS_LOG_LEVEL_TO_MARKER(state.level);
-	if (state.speed == CONSOLE_LOG_FAST) {
+	if (LOG_FAST(state)) {
 		__cbmemc_tx_byte(marker);
 		return;
 	}
@@ -98,7 +100,7 @@
 
 static void line_end(union log_state state)
 {
-	if (CONFIG(CONSOLE_USE_ANSI_ESCAPES) && state.speed != CONSOLE_LOG_FAST)
+	if (CONFIG(CONSOLE_USE_ANSI_ESCAPES) && !LOG_FAST(state))
 		wrap_interactive_printf(BIOS_LOG_ESCAPE_RESET);
 }
 
@@ -115,7 +117,7 @@
 		line_started = true;
 	}
 
-	if (state.speed == CONSOLE_LOG_FAST)
+	if (LOG_FAST(state))
 		__cbmemc_tx_byte(byte);
 	else
 		console_tx_byte(byte);
@@ -138,7 +140,7 @@
 	console_time_run();
 
 	i = vtxprintf(wrap_putchar, fmt, args, state.as_ptr);
-	if (state.speed != CONSOLE_LOG_FAST)
+	if (LOG_FAST(state))
 		console_tx_flush();
 
 	console_time_stop();
diff --git a/src/include/console/console.h b/src/include/console/console.h
index 5546aa9..e4090af 100644
--- a/src/include/console/console.h
+++ b/src/include/console/console.h
@@ -61,7 +61,18 @@
 long console_time_get_and_reset(void);
 void console_time_report(void);
 
+/*
+ * "Fast" basically means only the CBMEM console right now. This is used to still
+ * print debug messages there when loglevel disables the other consoles. It is also
+ * used to compile-time eliminate code paths that only affect "interactive" consoles
+ * (which are all "slow") when none of those are enabled.
+ */
 enum { CONSOLE_LOG_NONE = 0, CONSOLE_LOG_FAST, CONSOLE_LOG_ALL };
+#define HAS_ONLY_FAST_CONSOLES !(CONFIG(SPKMODEM) || CONFIG(CONSOLE_QEMU_DEBUGCON) || \
+	CONFIG(CONSOLE_SERIAL) || CONFIG(CONSOLE_NE2K) || CONFIG(CONSOLE_USB) || \
+	CONFIG(EM100PRO_SPI_CONSOLE) || CONFIG(CONSOLE_SPI_FLASH) || \
+	CONFIG(CONSOLE_SYSTEM76_EC))
+
 #else
 static inline int get_log_level(void) { return -1; }
 static inline void console_init(void) {}
