diff --git a/demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/.cproject b/demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/.cproject
similarity index 96%
rename from demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/.cproject
rename to demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/.cproject
index 2ed9eb148..01c661d61 100755
--- a/demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/.cproject
+++ b/demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/.cproject
@@ -37,7 +37,7 @@
-
+
diff --git a/demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/.project b/demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/.project
similarity index 94%
rename from demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/.project
rename to demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/.project
index c20b61896..732b05bf3 100755
--- a/demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/.project
+++ b/demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/.project
@@ -1,6 +1,6 @@
- RT-STM32H743ZI_REV_V-NUCLEO144
+ RT-STM32H743ZI_REV_XY-NUCLEO144
diff --git a/demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/Makefile b/demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/Makefile
similarity index 94%
rename from demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/Makefile
rename to demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/Makefile
index d572eeff9..1a01bf995 100644
--- a/demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/Makefile
+++ b/demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/Makefile
@@ -150,7 +150,7 @@ CPPWARN = -Wall -Wextra -Wundef
#
# List all user C define here, like -D_DEBUG=1
-UDEFS = -DSTM32_ENFORCE_H7_REV_V # Must be removed for non-Rev-V devices.
+UDEFS = -DSTM32_ENFORCE_H7_REV_XY # Remove for non revision X or Y devices.
# Define ASM defines here
UADEFS =
diff --git a/demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/cfg/chconf.h b/demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/cfg/chconf.h
similarity index 100%
rename from demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/cfg/chconf.h
rename to demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/cfg/chconf.h
diff --git a/demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/cfg/halconf.h b/demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/cfg/halconf.h
similarity index 100%
rename from demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/cfg/halconf.h
rename to demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/cfg/halconf.h
diff --git a/demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/cfg/mcuconf.h b/demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/cfg/mcuconf.h
similarity index 100%
rename from demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/cfg/mcuconf.h
rename to demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/cfg/mcuconf.h
diff --git a/demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/main.c b/demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/main.c
similarity index 100%
rename from demos/STM32/RT-STM32H743ZI_REV_V-NUCLEO144/main.c
rename to demos/STM32/RT-STM32H743ZI_REV_XY-NUCLEO144/main.c
diff --git a/os/hal/ports/STM32/LLD/BDMAv1/stm32_bdma.h b/os/hal/ports/STM32/LLD/BDMAv1/stm32_bdma.h
index de479a150..7461dc6b1 100644
--- a/os/hal/ports/STM32/LLD/BDMAv1/stm32_bdma.h
+++ b/os/hal/ports/STM32/LLD/BDMAv1/stm32_bdma.h
@@ -121,7 +121,7 @@
STM32_BDMA_CR_MSIZE_MASK)
#define STM32_BDMA_CR_PL_MASK BDMA_CCR_PL_Msk
#define STM32_BDMA_CR_PL(n) ((n) << 12U)
-#if !defined(STM32_ENFORCE_H7_REV_V)
+#if !defined(STM32_ENFORCE_H7_REV_XY)
#define STM32_BDMA_CR_DBM BDMA_CCR_DBM
#define STM32_BDMA_CR_CM BDMA_CCR_CT
#endif
@@ -272,7 +272,7 @@ typedef struct {
*
* @special
*/
-#if !defined(STM32_ENFORCE_H7_REV_V) || defined(__DOXYGEN__)
+#if defined(STM32_ENFORCE_H7_REV_XY) || defined(__DOXYGEN__)
#define bdmaStreamSetMemory(stp, addr) { \
(stp)->channel->CM0AR = (uint32_t)(addr); \
}
diff --git a/os/hal/ports/STM32/STM32H7xx/hal_lld.c b/os/hal/ports/STM32/STM32H7xx/hal_lld.c
index d3cda6520..d40f21f4d 100644
--- a/os/hal/ports/STM32/STM32H7xx/hal_lld.c
+++ b/os/hal/ports/STM32/STM32H7xx/hal_lld.c
@@ -108,7 +108,7 @@ static inline void init_pwr(void) {
PWR->CR3 = STM32_PWR_CR3; /* Other bits, lower byte is not changed. */
PWR->CPUCR = STM32_PWR_CPUCR;
PWR->D3CR = STM32_VOS;
-#if !defined(STM32_ENFORCE_H7_REV_V)
+#if !defined(STM32_ENFORCE_H7_REV_XY)
SYSCFG->PWRCR = STM32_ODEN;
#endif
while ((PWR->D3CR & PWR_D3CR_VOSRDY) == 0)
@@ -217,7 +217,7 @@ void stm32_clock_init(void) {
(void)rcc;
#endif
-#if defined(STM32_ENFORCE_H7_REV_V)
+#if defined(STM32_ENFORCE_H7_REV_XY)
/* Fix for errata 2.2.15: Reading from AXI SRAM might lead to data
read corruption.
AXI->TARG7_FN_MOD.*/
@@ -250,7 +250,7 @@ void stm32_clock_init(void) {
/* Registers cleared to reset values.*/
RCC->CR = RCC_CR_HSION; /* CR Reset value. */
RCC->HSICFGR = 0x40000000U; /* HSICFGR Reset value. */
-#if !defined(STM32_ENFORCE_H7_REV_V)
+#if !defined(STM32_ENFORCE_H7_REV_XY)
RCC->CSICFGR = 0x20000000U; /* CSICFGR Reset value. */
#endif
RCC->CSR = 0x00000000U; /* CSR reset value. */
diff --git a/os/hal/ports/STM32/STM32H7xx/hal_lld.h b/os/hal/ports/STM32/STM32H7xx/hal_lld.h
index 7d2667823..466c3fdc8 100644
--- a/os/hal/ports/STM32/STM32H7xx/hal_lld.h
+++ b/os/hal/ports/STM32/STM32H7xx/hal_lld.h
@@ -84,7 +84,7 @@
#endif
/** @} */
-#if !defined(STM32_ENFORCE_H7_REV_V)
+#if !defined(STM32_ENFORCE_H7_REV_XY)
/**
* @name Absolute Maximum Ratings
* @{
@@ -215,7 +215,7 @@
#define STM32_ADCCLK_MAX 100000000
/** @} */
-#else /* defined(STM32_ENFORCE_H7_REV_V) */
+#else /* defined(STM32_ENFORCE_H7_REV_XY) */
#define STM32_SYSCLK_MAX 400000000
#define STM32_SYSCLK_MAX_NOBOOST 400000000
@@ -243,7 +243,7 @@
#define STM32_SPI456_MAX 100000000
#define STM32_ADCCLK_MAX 36000000
-#endif /* defined(STM32_ENFORCE_H7_REV_V) */
+#endif /* defined(STM32_ENFORCE_H7_REV_XY) */
/**
* @name Internal clock sources frequencies
diff --git a/readme.txt b/readme.txt
index d4143aac8..ca7e2e905 100644
--- a/readme.txt
+++ b/readme.txt
@@ -77,6 +77,7 @@
- NEW: Added a new setting to STM32 USBv1 allowing for some clock deviation
from 48MHz. Renamed setting USB_HOST_WAKEUP_DURATION to
STM32_USB_HOST_WAKEUP_DURATION for consistency.
+- FIX: Fixed wrong revisions handling in STM32H743 HAL (bug #1110).
- FIX: Fixed missing STM32_I2C_BDMA_REQUIRED definition in I2Cv3 driver
(bug #1109).
- FIX: Fixed wrong definitions in SPC563M board files (bug #1108).
diff --git a/testhal/STM32/multi/ADC/make/stm32h743zi_nucleo144.make b/testhal/STM32/multi/ADC/make/stm32h743zi_nucleo144.make
index 347c0e688..faf8cf6cd 100644
--- a/testhal/STM32/multi/ADC/make/stm32h743zi_nucleo144.make
+++ b/testhal/STM32/multi/ADC/make/stm32h743zi_nucleo144.make
@@ -152,7 +152,7 @@ CPPWARN = -Wall -Wextra -Wundef
#
# List all user C define here, like -D_DEBUG=1
-UDEFS = -DSTM32_ENFORCE_H7_REV_V # Must be removed for non-Rev-V devices.
+UDEFS = -DSTM32_ENFORCE_H7_REV_XY # Remove for non revision X or Y devices.
# Define ASM defines here
UADEFS =