diff --git a/cpu/esp8266/Makefile b/cpu/esp8266/Makefile
index d1c2d71d3446295ea9cab6b4b8d7412766a65fe0..1b16977b69bc40b1b3161d743946b563f1d64b2f 100644
--- a/cpu/esp8266/Makefile
+++ b/cpu/esp8266/Makefile
@@ -7,4 +7,8 @@ DIRS += periph
 DIRS += sdk
 DIRS += vendor
 
+ifneq (, $(filter esp_wifi, $(USEMODULE)))
+    DIRS += esp-wifi
+endif
+
 include $(RIOTBASE)/Makefile.base
diff --git a/cpu/esp8266/Makefile.dep b/cpu/esp8266/Makefile.dep
index cbbab2332446429d2cf3039b184b6d3fb264b536..e0f6c4466f4adc66587cd50e2e3eceeb2891c2cb 100644
--- a/cpu/esp8266/Makefile.dep
+++ b/cpu/esp8266/Makefile.dep
@@ -10,6 +10,12 @@ ifneq (, $(filter esp_spiffs, $(USEMODULE)))
     USEMODULE += vfs
 endif
 
+ifneq (, $(filter esp_wifi, $(USEMODULE)))
+    CFLAGS += -DLWIP_OPEN_SRC
+    LINKFLAGS += -Wl,-wrap=ethernet_input
+    USEMODULE += netdev_eth
+endif
+
 ifneq (, $(filter lua, $(USEPKG)))
     USEMODULE += newlib_syscalls_default
     USEMODULE += xtimer
diff --git a/cpu/esp8266/Makefile.include b/cpu/esp8266/Makefile.include
index 72fcdaace04831400f8c226698d23ccd44f8c3a2..4658d192acd4a3e0951f6d300ee2b13fe1c01676 100644
--- a/cpu/esp8266/Makefile.include
+++ b/cpu/esp8266/Makefile.include
@@ -33,6 +33,12 @@ ifneq (, $(filter esp_sw_timer, $(USEMODULE)))
     USEMODULE += esp_sdk
 endif
 
+ifneq (, $(filter esp_now esp_wifi, $(USEMODULE)))
+    $(eval GNRC_NETIF_NUMOF=$(shell echo $$(($(GNRC_NETIF_NUMOF)+1))))
+    USEMODULE += esp_sdk
+    USEMODULE += netopt
+endif
+
 ifneq (, $(filter esp_gdbstub, $(USEMODULE)))
     USEMODULE += esp_gdb
 endif