diff --git a/Marlin/src/Marlin.cpp b/Marlin/src/Marlin.cpp
index c6e25b5a5aea782f088d874be64a8c8900925070..e612b0de93ed6020cbbdacff9e0abf3b641a2eab 100644
--- a/Marlin/src/Marlin.cpp
+++ b/Marlin/src/Marlin.cpp
@@ -939,6 +939,11 @@ void setup() {
 
   queue_setup();
 
+  #if ENABLED(SDIO_SUPPORT) && SD_DETECT_PIN == -1
+    // Auto-mount the SD for EEPROM.dat emulation
+    if (!card.isDetected()) card.initsd();
+  #endif
+
   // Load data from EEPROM if available (or use defaults)
   // This also updates variables in the planner, elsewhere
   (void)settings.load();