diff --git a/Marlin/src/core/drivers.h b/Marlin/src/core/drivers.h
index f1410f1d47c362df12b623d90b67be5ccaf91a9e..306329d6fe988269627cf8bf76e430485d6b6eee 100644
--- a/Marlin/src/core/drivers.h
+++ b/Marlin/src/core/drivers.h
@@ -131,7 +131,7 @@
 #define AXIS_HAS_UART(A) (    AXIS_DRIVER_TYPE(A,TMC2208) \
                            || AXIS_DRIVER_TYPE(A,TMC2209) )
 
-#define AXIS_HAS_SW_SERIAL(A) ((AXIS_HAS_UART(A) && !HAS_##A##_HARDWARE_SERIAL))
+#define AXIS_HAS_SW_SERIAL(A) ((AXIS_HAS_UART(A) && !defined(A##_HARDWARE_SERIAL)))
 
 #define AXIS_HAS_STALLGUARD(A)   (    AXIS_DRIVER_TYPE(A,TMC2130) \
                                    || AXIS_DRIVER_TYPE(A,TMC2160) \
@@ -158,7 +158,7 @@
                                    || AXIS_DRIVER_TYPE(A,TMC5160) )
 
 #define _OR_EAH(N,T)    || AXIS_HAS_##T(E##N)
-#define E_AXIS_HAS(T)   (0 RREPEAT2(E_STEPPERS, _OR_EAH, T))
+#define E_AXIS_HAS(T)   (0 _OR_EAH(0,T) _OR_EAH(1,T) _OR_EAH(2,T) _OR_EAH(3,T) _OR_EAH(4,T) _OR_EAH(5,T) _OR_EAH(6,T) _OR_EAH(7,T))
 
 #define ANY_AXIS_HAS(T) (    AXIS_HAS_##T(X)  || AXIS_HAS_##T(X2) \
                           || AXIS_HAS_##T(Y)  || AXIS_HAS_##T(Y2) \
diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h
index 55058a4d1107f520d465c615c912be144d24dc78..6785ea01e81cd6b45ff5f794803357619959f899 100644
--- a/Marlin/src/inc/Conditionals_post.h
+++ b/Marlin/src/inc/Conditionals_post.h
@@ -1444,59 +1444,6 @@
 #define HAS_Z4_MAX (PIN_EXISTS(Z4_MAX))
 #define HAS_Z_MIN_PROBE_PIN (HAS_CUSTOM_PROBE_PIN && PIN_EXISTS(Z_MIN_PROBE))
 
-// Cannot use a macro with a defined() statement inside REPEAT macros.
-// [AXIS]_HARDWARE_SERIAL definitions are typically strings which cannot be
-// tested directly, as they will evaluate to 0.
-#ifdef X_HARDWARE_SERIAL
-  #define HAS_X_HARDWARE_SERIAL 1
-#endif
-#ifdef X2_HARDWARE_SERIAL
-  #define HAS_X2_HARDWARE_SERIAL 1
-#endif
-#ifdef Y_HARDWARE_SERIAL
-  #define HAS_Y_HARDWARE_SERIAL 1
-#endif
-#ifdef Y2_HARDWARE_SERIAL
-  #define HAS_Y2_HARDWARE_SERIAL 1
-#endif
-#ifdef Z_HARDWARE_SERIAL
-  #define HAS_Z_HARDWARE_SERIAL 1
-#endif
-#ifdef Z2_HARDWARE_SERIAL
-  #define HAS_Z2_HARDWARE_SERIAL 1
-#endif
-#ifdef Z3_HARDWARE_SERIAL
-  #define HAS_Z3_HARDWARE_SERIAL 1
-#endif
-#ifdef Z4_HARDWARE_SERIAL
-  #define HAS_Z4_HARDWARE_SERIAL 1
-#endif
-#ifdef E0_HARDWARE_SERIAL
-  #define HAS_E0_HARDWARE_SERIAL 1
-#endif
-#ifdef E1_HARDWARE_SERIAL
-  #define HAS_E1_HARDWARE_SERIAL 1
-#endif
-#ifdef E2_HARDWARE_SERIAL
-  #define HAS_E2_HARDWARE_SERIAL 1
-#endif
-#ifdef E3_HARDWARE_SERIAL
-  #define HAS_E3_HARDWARE_SERIAL 1
-#endif
-#ifdef E4_HARDWARE_SERIAL
-  #define HAS_E4_HARDWARE_SERIAL 1
-#endif
-#ifdef E5_HARDWARE_SERIAL
-  #define HAS_E5_HARDWARE_SERIAL 1
-#endif
-#ifdef E6_HARDWARE_SERIAL
-  #define HAS_E6_HARDWARE_SERIAL 1
-#endif
-#ifdef E7_HARDWARE_SERIAL
-  #define HAS_E7_HARDWARE_SERIAL 1
-#endif
-
-
 //
 // ADC Temp Sensors (Thermistor or Thermocouple with amplifier ADC interface)
 //