arch/arm/stm32h7: add support for STM32H750xx chips

Add STM32H7_STM32H7X0XX chip family.
Add new chip configurations for STM32H750 variants in Kconfig, update
hardware includes to support CONFIG_STM32H7_STM32H7X0XX, and modify
board configurations for stm32h750b-dk to use STM32H750XB.
This enables support for the new STM32H750 chip series with appropriate
memory and peripheral mappings.
Normalize the defconfig files for boards from stm32f7 chip family.

Signed-off-by: Sergey Rzhevsky <rzsa@yandex.ru>
This commit is contained in:
Sergey Rzhevsky 2025-09-21 18:14:51 +03:00 committed by Alan C. Assis
parent 1e9a6f0832
commit d195260894
28 changed files with 145 additions and 48 deletions

View file

@ -76,7 +76,10 @@
defined (CONFIG_ARCH_CHIP_STM32H7B3LI) || \
defined (CONFIG_ARCH_CHIP_STM32H745XI) || \
defined (CONFIG_ARCH_CHIP_STM32H745ZI) || \
defined (CONFIG_ARCH_CHIP_STM32H750B) || \
defined (CONFIG_ARCH_CHIP_STM32H750VB) || \
defined (CONFIG_ARCH_CHIP_STM32H750ZB) || \
defined (CONFIG_ARCH_CHIP_STM32H750IB) || \
defined (CONFIG_ARCH_CHIP_STM32H750XB) || \
defined (CONFIG_ARCH_CHIP_STM32H755II)
#elif defined(CONFIG_ARCH_CHIP_STM32H747XI)
#else
@ -85,7 +88,7 @@
/* Size SRAM */
#if defined(CONFIG_STM32H7_STM32H7X3XX) || defined(CONFIG_STM32H7_STM32H7X5XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX) || defined(CONFIG_STM32H7_STM32H7X3XX) || defined(CONFIG_STM32H7_STM32H7X5XX)
/* Memory */
# define STM32H7_SRAM_SIZE (512*1024) /* 512Kb SRAM on AXI bus Matrix (D1) */

View file

@ -69,7 +69,9 @@
* Included Files
****************************************************************************/
#if defined(CONFIG_STM32H7_STM32H7X3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX)
# include <arch/stm32h7/stm32h7x3xx_irq.h>
#elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include <arch/stm32h7/stm32h7x3xx_irq.h>
#elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include <arch/stm32h7/stm32h7x3xx_irq.h>

View file

@ -202,15 +202,41 @@ config ARCH_CHIP_STM32H747XI
Dual core STM32 H7 Cortex M7+M4, 2048 Kb FLASH, 1024K Kb SRAM
TFBGA240
config ARCH_CHIP_STM32H750B
bool "STM32H750B"
select STM32H7_STM32H7X5XX
select STM32H7_FLASH_CONFIG_I
select STM32H7_IO_CONFIG_X
select STM32H7_HAVE_SMPS
config ARCH_CHIP_STM32H750VB
bool "STM32H750VB"
select STM32H7_STM32H7X0XX
select STM32H7_FLASH_CONFIG_B
select STM32H7_IO_CONFIG_V
---help---
STM32 H7 Cortex M7+M4, 1024 Kb FLASH, 1024K Kb SRAM,
LQFP208
STM32 H7 Cortex M7+M4, 128 Kb FLASH, 1024K Kb SRAM,
LQFP100
config ARCH_CHIP_STM32H750ZB
bool "STM32H750ZB"
select STM32H7_STM32H7X0XX
select STM32H7_FLASH_CONFIG_B
select STM32H7_IO_CONFIG_Z
---help---
STM32 H7 Cortex M7+M4, 128 Kb FLASH, 1024K Kb SRAM,
LQFP144
config ARCH_CHIP_STM32H750IB
bool "STM32H750IB"
select STM32H7_STM32H7X0XX
select STM32H7_FLASH_CONFIG_B
select STM32H7_IO_CONFIG_I
---help---
STM32 H7 Cortex M7+M4, 128 Kb FLASH, 1024K Kb SRAM,
LQFP176 or UFBGA176+25
config ARCH_CHIP_STM32H750XB
bool "STM32H750XB"
select STM32H7_STM32H7X0XX
select STM32H7_FLASH_CONFIG_B
select STM32H7_IO_CONFIG_X
---help---
STM32 H7 Cortex M7+M4, 128 Kb FLASH, 1024K Kb SRAM,
TFBGA240+25
config ARCH_CHIP_STM32H753AI
bool "STM32H753AI"
@ -388,6 +414,21 @@ config ARCH_CHIP_STM32H7_CORTEXM4
endchoice # STM32 H7 Core selection
config STM32H7_STM32H7X0XX
bool
default n
select ARCH_HAVE_FPU
select ARCH_HAVE_DPFPU
select STM32H7_HAVE_LTDC
select STM32H7_HAVE_ETHERNET
select STM32H7_HAVE_FMC
select STM32H7_HAVE_GPIOF if !STM32H7_IO_CONFIG_V
select STM32H7_HAVE_GPIOG if !STM32H7_IO_CONFIG_V
select STM32H7_HAVE_SPI4
select STM32H7_HAVE_SPI5 if !STM32H7_IO_CONFIG_V
select STM32H7_HAVE_SPI6
select STM32H7_HAVE_RNG
config STM32H7_STM32H7X3XX
bool
default n

View file

@ -203,7 +203,9 @@
/* Import DMAMUX map */
#if defined(CONFIG_STM32H7_STM32H7X3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "hardware/stm32h7x3xx_dmamux.h"
#elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "hardware/stm32h7x3xx_dmamux.h"
#elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "hardware/stm32h7x3xx_dmamux.h"

View file

@ -33,7 +33,8 @@
* families
*/
#if defined(CONFIG_STM32H7_STM32H7X3XX) || \
#if defined(CONFIG_STM32H7_STM32H7X0XX) || \
defined(CONFIG_STM32H7_STM32H7X3XX) || \
defined(CONFIG_STM32H7_STM32H7B3XX) || \
defined(CONFIG_STM32H7_STM32H7X5XX) || \
defined(CONFIG_STM32H7_STM32H7X7XX)

View file

@ -35,7 +35,8 @@
* families
*/
#if defined(CONFIG_STM32H7_STM32H7X3XX) || \
#if defined(CONFIG_STM32H7_STM32H7X0XX) || \
defined(CONFIG_STM32H7_STM32H7X3XX) || \
defined(CONFIG_STM32H7_STM32H7B3XX) || \
defined(CONFIG_STM32H7_STM32H7X5XX) || \
defined(CONFIG_STM32H7_STM32H7X7XX)

View file

@ -30,7 +30,9 @@
#include <nuttx/config.h>
#include "chip.h"
#if defined(CONFIG_STM32H7_STM32H7X3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "hardware/stm32h7x3xx_flash.h"
#elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "hardware/stm32h7x3xx_flash.h"
#elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "hardware/stm32h7b3xx_flash.h"

View file

@ -30,7 +30,9 @@
#include <nuttx/config.h>
#include "chip.h"
#if defined(CONFIG_STM32H7_STM32H7X3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "hardware/stm32h7x3xx_gpio.h"
#elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "hardware/stm32h7x3xx_gpio.h"
#elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "hardware/stm32h7x3xx_gpio.h"

View file

@ -30,7 +30,9 @@
#include <nuttx/config.h>
#include "chip.h"
#if defined(CONFIG_STM32H7_STM32H7X3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "hardware/stm32h7x3xx_i2c.h"
#elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "hardware/stm32h7x3xx_i2c.h"
#elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "hardware/stm32h7x3xx_i2c.h"

View file

@ -30,7 +30,9 @@
#include <nuttx/config.h>
#include "chip.h"
#if defined(CONFIG_STM32H7_STM32H7X3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "hardware/stm32h7x3xx_memorymap.h"
#elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "hardware/stm32h7x3xx_memorymap.h"
#elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "hardware/stm32h7x3xx_memorymap.h"

View file

@ -31,7 +31,9 @@
#include "chip.h"
#if defined(CONFIG_STM32H7_USE_LEGACY_PINMAP)
# if defined(CONFIG_STM32H7_STM32H7X3XX)
# if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "hardware/stm32h7x3xx_pinmap_legacy.h"
# elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "hardware/stm32h7x3xx_pinmap_legacy.h"
# elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "hardware/stm32h7x3xx_pinmap_legacy.h"
@ -41,7 +43,9 @@
# error "Unsupported STM32 H7 Pin map"
# endif
#else
# if defined(CONFIG_STM32H7_STM32H7X3XX)
# if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "hardware/stm32h7x3xx_pinmap.h"
# elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "hardware/stm32h7x3xx_pinmap.h"
# elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "hardware/stm32h7x3xx_pinmap.h"

View file

@ -30,7 +30,9 @@
#include <nuttx/config.h>
#include "chip.h"
#if defined(CONFIG_STM32H7_STM32H7X3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "hardware/stm32h7x3xx_pwr.h"
#elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "hardware/stm32h7x3xx_pwr.h"
#elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "hardware/stm32h7x3xx_pwr.h"

View file

@ -30,7 +30,9 @@
#include <nuttx/config.h>
#include "chip.h"
#if defined(CONFIG_STM32H7_STM32H7X3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "hardware/stm32h7x3xx_rcc.h"
#elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "hardware/stm32h7x3xx_rcc.h"
#elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "hardware/stm32h7x3xx_rcc.h"

View file

@ -30,7 +30,9 @@
#include <nuttx/config.h>
#include "chip.h"
#if defined(CONFIG_STM32H7_STM32H7X3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "stm32h7x3xx_sdmmc.h"
#elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "stm32h7x3xx_sdmmc.h"
#elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "stm32h7x3xx_sdmmc.h"

View file

@ -30,7 +30,9 @@
#include <nuttx/config.h>
#include "chip.h"
#if defined(CONFIG_STM32H7_STM32H7X3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "hardware/stm32h7x3xx_spi.h"
#elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "hardware/stm32h7x3xx_spi.h"
#elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "hardware/stm32h7x3xx_spi.h"

View file

@ -30,7 +30,9 @@
#include <nuttx/config.h>
#include "chip.h"
#if defined(CONFIG_STM32H7_STM32H7X3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "hardware/stm32h7x3xx_syscfg.h"
#elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "hardware/stm32h7x3xx_syscfg.h"
#elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "hardware/stm32h7x3xx_syscfg.h"

View file

@ -30,7 +30,9 @@
#include <nuttx/config.h>
#include "chip.h"
#if defined(CONFIG_STM32H7_STM32H7X3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "hardware/stm32h7x3xx_uart.h"
#elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "hardware/stm32h7x3xx_uart.h"
#elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "hardware/stm32h7x3xx_uart.h"

View file

@ -30,10 +30,11 @@
#include <nuttx/config.h>
#include <arch/stm32h7/chip.h>
#if defined(CONFIG_STM32H7_STM32H7X3XX) || \
defined(CONFIG_STM32H7_STM32H7B3XX) || \
defined(CONFIG_STM32H7_STM32H7X5XX) || \
defined(CONFIG_STM32H7_STM32H7X7XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX) || \
defined(CONFIG_STM32H7_STM32H7X3XX) || \
defined(CONFIG_STM32H7_STM32H7B3XX) || \
defined(CONFIG_STM32H7_STM32H7X5XX) || \
defined(CONFIG_STM32H7_STM32H7X7XX)
/****************************************************************************
* Pre-processor Definitions

View file

@ -31,7 +31,8 @@
#include "stm32_gpio.h"
#if defined(CONFIG_STM32H7_STM32H7X3XX) || \
#if defined(CONFIG_STM32H7_STM32H7X0XX) || \
defined(CONFIG_STM32H7_STM32H7X3XX) || \
defined(CONFIG_STM32H7_STM32H7B3XX) || \
defined(CONFIG_STM32H7_STM32H7X5XX) || \
defined(CONFIG_STM32H7_STM32H7X7XX)
@ -1537,5 +1538,5 @@
#define GPIO_UART8_TX_1 (GPIO_ALT|GPIO_AF8|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN1)
#define GPIO_UART8_TX_2 (GPIO_ALT|GPIO_AF8|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTJ|GPIO_PIN8)
#endif /* CONFIG_STM32H7_STM32H7X3XX || CONFIG_STM32H7_STM32H7X7XX || CONFIG_STM32H7_STM32H7B3XX */
#endif /* CONFIG_STM32H7_STM32H7X0XX CONFIG_STM32H7_STM32H7X3XX || CONFIG_STM32H7_STM32H7X7XX || CONFIG_STM32H7_STM32H7B3XX */
#endif /* __ARCH_ARM_SRC_STM32H7_HARDWARE_STM32H7X3XX_PINMAP_H */

View file

@ -31,7 +31,11 @@
#include "stm32_gpio.h"
#if defined(CONFIG_STM32H7_STM32H7X3XX) || defined(CONFIG_STM32H7_STM32H7X7XX) || defined(CONFIG_STM32H7_STM32H7B3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX) || \
defined(CONFIG_STM32H7_STM32H7X3XX) || \
defined(CONFIG_STM32H7_STM32H7B3XX) || \
defined(CONFIG_STM32H7_STM32H7X5XX) || \
defined(CONFIG_STM32H7_STM32H7X7XX)
/****************************************************************************
* Pre-processor Definitions
@ -1534,5 +1538,5 @@
#define GPIO_UART8_TX_1 (GPIO_ALT|GPIO_AF8|GPIO_SPEED_100MHz|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN1)
#define GPIO_UART8_TX_2 (GPIO_ALT|GPIO_AF8|GPIO_SPEED_100MHz|GPIO_PUSHPULL|GPIO_PULLUP|GPIO_PORTJ|GPIO_PIN8)
#endif /* CONFIG_STM32H7_STM32H7X3XX || CONFIG_STM32H7_STM32H7X7XX || CONFIG_STM32H7_STM32H7B3XX */
#endif /* CONFIG_STM32H7_STM32H7X0XX CONFIG_STM32H7_STM32H7X3XX || CONFIG_STM32H7_STM32H7X7XX || CONFIG_STM32H7_STM32H7B3XX */
#endif /* __ARCH_ARM_SRC_STM32H7_HARDWARE_STM32H7X3XX_PINMAP_LEGACY_H */

View file

@ -29,7 +29,8 @@
#include <nuttx/config.h>
#if defined(CONFIG_STM32H7_STM32H7X3XX) || \
#if defined(CONFIG_STM32H7_STM32H7X0XX) || \
defined(CONFIG_STM32H7_STM32H7X3XX) || \
defined(CONFIG_STM32H7_STM32H7B3XX) || \
defined(CONFIG_STM32H7_STM32H7X5XX) || \
defined(CONFIG_STM32H7_STM32H7X7XX)

View file

@ -31,7 +31,8 @@
#include "chip.h"
#include "hardware/stm32_memorymap.h"
#if defined(CONFIG_STM32H7_STM32H7X3XX) || \
#if defined(CONFIG_STM32H7_STM32H7X0XX) || \
defined(CONFIG_STM32H7_STM32H7X3XX) || \
defined(CONFIG_STM32H7_STM32H7B3XX) || \
defined(CONFIG_STM32H7_STM32H7X5XX) || \
defined(CONFIG_STM32H7_STM32H7X7XX)

View file

@ -44,7 +44,8 @@
* families
*/
#if defined(CONFIG_STM32H7_STM32H7X3XX) || \
#if defined(CONFIG_STM32H7_STM32H7X0XX) || \
defined(CONFIG_STM32H7_STM32H7X3XX) || \
defined(CONFIG_STM32H7_STM32H7B3XX) || \
defined(CONFIG_STM32H7_STM32H7X5XX) || \
defined(CONFIG_STM32H7_STM32H7X7XX)

View file

@ -26,10 +26,14 @@
#include <nuttx/config.h>
#if defined(CONFIG_STM32H7_STM32H7X3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "stm32h743xx_flash.c"
#elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "stm32h743xx_flash.c"
#elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "stm32h7b3xx_flash.c"
#elif defined(CONFIG_STM32H7_STM32H7X5XX)
# include "stm32h743xx_flash.c"
#elif defined(CONFIG_STM32H7_STM32H7X7XX)
# include "stm32h743xx_flash.c"
#else

View file

@ -44,10 +44,11 @@
* families
*/
#if defined(CONFIG_STM32H7_STM32H7X3XX) || \
defined(CONFIG_STM32H7_STM32H7B3XX) || \
defined(CONFIG_STM32H7_STM32H7X5XX) || \
defined(CONFIG_STM32H7_STM32H7X7XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX) || \
defined(CONFIG_STM32H7_STM32H7X3XX) || \
defined(CONFIG_STM32H7_STM32H7B3XX) || \
defined(CONFIG_STM32H7_STM32H7X5XX) || \
defined(CONFIG_STM32H7_STM32H7X7XX)
#if defined(CONFIG_STM32H7_USE_LEGACY_PINMAP)
# pragma message "CONFIG_STM32H7_USE_LEGACY_PINMAP will be deprecated migrate board.h see tools/stm32_pinmap_tool.py"

View file

@ -56,7 +56,9 @@
/* Include chip-specific clocking initialization logic */
#if defined(CONFIG_STM32H7_STM32H7X3XX)
#if defined(CONFIG_STM32H7_STM32H7X0XX)
# include "stm32h7x3xx_rcc.c"
#elif defined(CONFIG_STM32H7_STM32H7X3XX)
# include "stm32h7x3xx_rcc.c"
#elif defined(CONFIG_STM32H7_STM32H7B3XX)
# include "stm32h7x3xx_rcc.c"

View file

@ -1870,6 +1870,15 @@ config ARCH_BOARD_WEACT_STM32H743
---help---
This is WeAct MiniSTM32H7xx (STM32H743VIT6) board.
config ARCH_BOARD_WEACT_STM32H750
bool "WeAct Studio STM32H750"
depends on ARCH_CHIP_STM32H750VB
select ARCH_HAVE_LEDS
select ARCH_HAVE_BUTTONS
select ARCH_HAVE_IRQBUTTONS
---help---
This is WeAct MiniSTM32H7xx (STM32H750VB) board.
config ARCH_BOARD_NUCLEO_H743ZI
bool "STM32H743 Nucleo H743ZI"
depends on ARCH_CHIP_STM32H743ZI
@ -1907,9 +1916,9 @@ config ARCH_BOARD_STM32H745I_DISCO
config ARCH_BOARD_STM32H750B_DK
bool "STM32H750B-DK board"
depends on ARCH_CHIP_STM32H750B
depends on ARCH_CHIP_STM32H750XB
---help---
STMicro STM32H750B-DK board based on the STMicro STM32H750B MCU.
STMicro STM32H750B-DK board based on the STMicro STM32H750XB MCU.
config ARCH_BOARD_LINUM_STM32H753BI
bool "Linum (STM32H753BI) board"

View file

@ -6,7 +6,6 @@
# modifications.
#
# CONFIG_STANDARD_SERIAL is not set
# CONFIG_STM32H7_CORTEXM4_ENABLED is not set
# CONFIG_STM32H7_FB_CMAP is not set
# CONFIG_STM32H7_LTDC_L1_CHROMAKEYEN is not set
# CONFIG_STM32H7_LTDC_L2 is not set
@ -16,7 +15,7 @@ CONFIG_ARCH_BOARD="stm32h750b-dk"
CONFIG_ARCH_BOARD_STM32H750B_DK=y
CONFIG_ARCH_BOARD_STM32H750B_DK_TOUCHSCREEN_SWAPXY=y
CONFIG_ARCH_CHIP="stm32h7"
CONFIG_ARCH_CHIP_STM32H750B=y
CONFIG_ARCH_CHIP_STM32H750XB=y
CONFIG_ARCH_CHIP_STM32H7=y
CONFIG_ARCH_CHIP_STM32H7_CORTEXM7=y
CONFIG_ARCH_STACKDUMP=y
@ -77,7 +76,6 @@ CONFIG_STM32H7_I2C4=y
CONFIG_STM32H7_LTDC=y
CONFIG_STM32H7_LTDC_FB_BASE=0xd0000000
CONFIG_STM32H7_LTDC_FB_SIZE=522240
CONFIG_STM32H7_PWR_DIRECT_SMPS_SUPPLY=y
CONFIG_STM32H7_USART3=y
CONFIG_SYSTEM_NSH=y
CONFIG_TTY_SIGINT=y