diff --git a/zephyr/Makefile b/zephyr/Makefile
index 7f35eefb5fd6560d11295ee2c3412567cad63090..4c28e4da855ca904c3e0c3e972cfb55a94341d16 100644
--- a/zephyr/Makefile
+++ b/zephyr/Makefile
@@ -62,7 +62,7 @@ CFLAGS = $(KBUILD_CFLAGS) $(NOSTDINC_FLAGS) $(ZEPHYRINCLUDE) \
 
 include ../py/mkrules.mk
 
-$(Z_EXPORTS):
+$(Z_EXPORTS): $(CONF_FILE)
 	$(MAKE) -f Makefile.zephyr BOARD=$(BOARD) CONF_FILE=$(CONF_FILE) initconfig outputexports
 
 GENERIC_TARGETS = all zephyr qemu qemugdb flash debug
@@ -95,3 +95,8 @@ clean: z_clean
 
 z_clean:
 	$(MAKE) -f Makefile.zephyr BOARD=$(BOARD) clean
+
+.PHONY: prj.conf
+prj.conf: prj_base.conf
+	cat $< >$@
+	if [ -f prj_$(BOARD).conf ]; then cat prj_$(BOARD).conf >>$@; fi
diff --git a/zephyr/prj.conf b/zephyr/prj_base.conf
similarity index 68%
rename from zephyr/prj.conf
rename to zephyr/prj_base.conf
index a2fcb64d95e9647420ce24de7b762c071d40cd1e..43aedd8fecf17dc24d7e44c928c8bd7d94764343 100644
--- a/zephyr/prj.conf
+++ b/zephyr/prj_base.conf
@@ -10,10 +10,3 @@ CONFIG_NETWORKING=y
 CONFIG_NET_IPV4=y
 CONFIG_TEST_RANDOM_GENERATOR=y
 CONFIG_NET_NBUF_RX_COUNT=4
-
-# Networking drivers
-# SLIP driver for QEMU
-CONFIG_NET_SLIP_TAP=y
-
-# BOARD-specific config (qemu_x86)
-CONFIG_RAM_SIZE=256
diff --git a/zephyr/prj_qemu_x86.conf b/zephyr/prj_qemu_x86.conf
new file mode 100644
index 0000000000000000000000000000000000000000..cb90834ac0c9e1bee7ea10f206a69a9bfbb99435
--- /dev/null
+++ b/zephyr/prj_qemu_x86.conf
@@ -0,0 +1,6 @@
+# Networking drivers
+# SLIP driver for QEMU
+CONFIG_NET_SLIP_TAP=y
+
+# Default RAM easily overflows with uPy and networking
+CONFIG_RAM_SIZE=256