This is an automated email from the ASF dual-hosted git repository.

xiaoxiang781216 pushed a commit to branch releases/13.0
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 62b0dbe851e00becbbcaeb19fb86f5e00e1ad158
Author: raiden00pl <[email protected]>
AuthorDate: Mon May 25 22:44:13 2026 +0200

    !arch/stm32: move stm32g4 to its own directory
    
    BREAKING CHANGE:
    
    Part of splitting the legacy stm32 super-directory; relocates
    the stm32g4 sources, headers and boards into arch/arm/src/stm32g4,
    arch/arm/include/stm32g4 and boards/arm/stm32g4.
    
    Signed-off-by: raiden00pl <[email protected]>
---
 arch/arm/include/stm32g4/chip.h                    | 350 +++++++++++++++++++++
 .../{stm32/stm32g4xxxx_irq.h => stm32g4/irq.h}     |  75 +++--
 .../arm/src/stm32g4}/CMakeLists.txt                |   9 +-
 arch/arm/src/stm32g4/Kconfig                       | 340 ++++++++++++++++++++
 .../src => arch/arm/src/stm32g4}/Make.defs         |  21 +-
 .../stm32_cansock.c => arch/arm/src/stm32g4/chip.h |  48 +--
 arch/arm/src/stm32g4/hardware/stm32_memorymap.h    |  17 +
 arch/arm/src/stm32g4/hardware/stm32_pinmap.h       |  17 +
 .../hardware/stm32g47xxx_hrtim.h                   |   2 +-
 .../hardware/stm32g4xxc_pinmap.h                   |   2 +-
 .../hardware/stm32g4xxk_pinmap.h                   |   2 +-
 .../hardware/stm32g4xxm_pinmap.h                   |   2 +-
 .../hardware/stm32g4xxp_pinmap.h                   |   2 +-
 .../hardware/stm32g4xxq_pinmap.h                   |   2 +-
 .../hardware/stm32g4xxr_pinmap.h                   |   2 +-
 .../hardware/stm32g4xxv_pinmap.h                   |   2 +-
 .../{stm32 => stm32g4}/hardware/stm32g4xxxx_comp.h |   2 +-
 .../hardware/stm32g4xxxx_cordic.h                  |   2 +-
 .../hardware/stm32g4xxxx_dmamux.h                  |   2 +-
 .../{stm32 => stm32g4}/hardware/stm32g4xxxx_gpio.h |   2 +-
 .../hardware/stm32g4xxxx_memorymap.h               |   2 +-
 .../hardware/stm32g4xxxx_opamp.h                   |   2 +-
 .../hardware/stm32g4xxxx_pinmap.h                  |   2 +-
 .../{stm32 => stm32g4}/hardware/stm32g4xxxx_pwr.h  |   2 +-
 .../{stm32 => stm32g4}/hardware/stm32g4xxxx_rcc.h  |   2 +-
 .../hardware/stm32g4xxxx_syscfg.h                  |   2 +-
 .../hardware/stm32g4xxxx_vrefbuf.h                 |   2 +-
 .../stm32_usbdev.c => arch/arm/src/stm32g4/stm32.h |  60 ++--
 arch/arm/src/stm32g4/stm32_rcc.c                   | 234 ++++++++++++++
 arch/arm/src/{stm32 => stm32g4}/stm32g4xxxx_rcc.c  |   2 +-
 .../b-g431b-esc1}/CMakeLists.txt                   |   2 +-
 boards/arm/{stm32 => stm32g4}/b-g431b-esc1/Kconfig |   0
 .../b-g431b-esc1/configs/can/defconfig             |   2 +-
 .../b-g431b-esc1/configs/cansock/defconfig         |   2 +-
 .../b-g431b-esc1/configs/foc_b16/defconfig         |   2 +-
 .../b-g431b-esc1/configs/foc_f32/defconfig         |   2 +-
 .../b-g431b-esc1/configs/nsh/defconfig             |   2 +-
 .../b-g431b-esc1/include/board.h                   |   2 +-
 .../b-g431b-esc1/scripts/Make.defs                 |   2 +-
 .../b-g431b-esc1/scripts/ld.script                 |   2 +-
 .../{stm32 => stm32g4}/b-g431b-esc1/src/.gitignore |   0
 .../b-g431b-esc1/src/CMakeLists.txt                |   2 +-
 .../{stm32 => stm32g4}/b-g431b-esc1/src/Make.defs  |   2 +-
 .../b-g431b-esc1/src/b-g431b-esc1.h                |   2 +-
 .../b-g431b-esc1/src/stm32_autoleds.c              |   2 +-
 .../b-g431b-esc1/src/stm32_boot.c                  |   2 +-
 .../b-g431b-esc1/src/stm32_bringup.c               |   2 +-
 .../b-g431b-esc1/src/stm32_buttons.c               |   2 +-
 .../b-g431b-esc1/src/stm32_can.c                   |   2 +-
 .../b-g431b-esc1/src/stm32_cansock.c               |   2 +-
 .../b-g431b-esc1/src/stm32_foc.c                   |   2 +-
 .../b-g431b-esc1/src/stm32_userleds.c              |   2 +-
 .../b-g474e-dpow1/CMakeLists.txt                   |   2 +-
 .../arm/{stm32 => stm32g4}/b-g474e-dpow1/Kconfig   |   0
 .../b-g474e-dpow1/configs/buckboost/defconfig      |   2 +-
 .../b-g474e-dpow1/configs/nsh/defconfig            |   2 +-
 .../b-g474e-dpow1/configs/ostest/defconfig         |   2 +-
 .../b-g474e-dpow1/include/board.h                  |   2 +-
 .../b-g474e-dpow1}/scripts/Make.defs               |   2 +-
 .../b-g474e-dpow1/scripts/ld.script                |   2 +-
 .../b-g474e-dpow1/scripts/ld.script.dfu            |   2 +-
 .../b-g474e-dpow1/src/.gitignore                   |   0
 .../b-g474e-dpow1/src/CMakeLists.txt               |   2 +-
 .../{stm32 => stm32g4}/b-g474e-dpow1/src/Make.defs |   2 +-
 .../b-g474e-dpow1/src/b-g474e-dpow1.h              |   2 +-
 .../b-g474e-dpow1/src/stm32_autoleds.c             |   2 +-
 .../b-g474e-dpow1/src/stm32_boot.c                 |   2 +-
 .../b-g474e-dpow1/src/stm32_smps.c                 |   2 +-
 .../b-g474e-dpow1/src/stm32_userleds.c             |   2 +-
 .../common}/CMakeLists.txt                         |   6 +-
 .../nucleo-g431kb => stm32g4/common}/Kconfig       |   4 +-
 .../src/Make.defs => stm32g4/common/Makefile}      |  36 +--
 .../nucleo-g431kb}/CMakeLists.txt                  |   2 +-
 .../arm/{stm32 => stm32g4}/nucleo-g431kb/Kconfig   |   0
 .../nucleo-g431kb/configs/comp/defconfig           |   2 +-
 .../nucleo-g431kb/configs/nsh/defconfig            |   2 +-
 .../nucleo-g431kb/configs/pwm/defconfig            |   2 +-
 .../nucleo-g431kb/include/board.h                  |   2 +-
 .../nucleo-g431kb}/scripts/Make.defs               |   2 +-
 .../nucleo-g431kb/scripts/ld.script                |   2 +-
 .../nucleo-g431kb/src/.gitignore                   |   0
 .../nucleo-g431kb/src/CMakeLists.txt               |   2 +-
 .../{stm32 => stm32g4}/nucleo-g431kb/src/Make.defs |   2 +-
 .../nucleo-g431kb/src/nucleo-g431kb.h              |   2 +-
 .../nucleo-g431kb/src/stm32_autoleds.c             |   2 +-
 .../nucleo-g431kb/src/stm32_boot.c                 |   2 +-
 .../nucleo-g431kb/src/stm32_bringup.c              |   2 +-
 .../nucleo-g431kb/src/stm32_comp.c                 |   2 +-
 .../nucleo-g431kb/src/stm32_dac.c                  |   2 +-
 .../nucleo-g431kb/src/stm32_pwm.c                  |   2 +-
 .../nucleo-g431kb/src/stm32_userleds.c             |   2 +-
 .../nucleo-g431rb}/CMakeLists.txt                  |   2 +-
 .../arm/{stm32 => stm32g4}/nucleo-g431rb/Kconfig   |   0
 .../nucleo-g431rb/configs/adc/defconfig            |   2 +-
 .../nucleo-g431rb/configs/can/defconfig            |   2 +-
 .../nucleo-g431rb/configs/cansock/defconfig        |   2 +-
 .../nucleo-g431rb/configs/cordic/defconfig         |   2 +-
 .../nucleo-g431rb/configs/ihm16m1_b16/defconfig    |   2 +-
 .../nucleo-g431rb/configs/ihm16m1_f32/defconfig    |   2 +-
 .../nucleo-g431rb/configs/nsh/defconfig            |   2 +-
 .../nucleo-g431rb/configs/pwm/defconfig            |   2 +-
 .../nucleo-g431rb/configs/qenco/defconfig          |   2 +-
 .../nucleo-g431rb/include/board.h                  |   2 +-
 .../nucleo-g431rb}/scripts/Make.defs               |   2 +-
 .../nucleo-g431rb/scripts/ld.script                |   2 +-
 .../nucleo-g431rb/src/.gitignore                   |   0
 .../nucleo-g431rb/src/CMakeLists.txt               |   2 +-
 .../{stm32 => stm32g4}/nucleo-g431rb/src/Make.defs |   2 +-
 .../nucleo-g431rb/src/nucleo-g431rb.h              |   2 +-
 .../nucleo-g431rb/src/stm32_adc.c                  |   2 +-
 .../nucleo-g431rb/src/stm32_autoleds.c             |   2 +-
 .../nucleo-g431rb/src/stm32_boot.c                 |   2 +-
 .../nucleo-g431rb/src/stm32_bringup.c              |   2 +-
 .../nucleo-g431rb/src/stm32_buttons.c              |   2 +-
 .../nucleo-g431rb/src/stm32_can.c                  |   2 +-
 .../nucleo-g431rb/src/stm32_cansock.c              |   2 +-
 .../nucleo-g431rb/src/stm32_cordic.c               |   2 +-
 .../nucleo-g431rb/src/stm32_foc_ihm16m1.c          |   2 +-
 .../nucleo-g431rb/src/stm32_pwm.c                  |   2 +-
 .../nucleo-g431rb/src/stm32_userleds.c             |   2 +-
 .../nucleo-g474re}/CMakeLists.txt                  |   2 +-
 .../arm/{stm32 => stm32g4}/nucleo-g474re/Kconfig   |   0
 .../nucleo-g474re/configs/lpuartnsh/defconfig      |   2 +-
 .../nucleo-g474re/configs/nsh/defconfig            |   2 +-
 .../nucleo-g474re/configs/usbserial/defconfig      |   2 +-
 .../nucleo-g474re/include/board.h                  |   2 +-
 .../nucleo-g474re}/scripts/Make.defs               |   2 +-
 .../nucleo-g474re/scripts/ld.script                |   2 +-
 .../nucleo-g474re/scripts/ld.script.dfu            |   2 +-
 .../nucleo-g474re/src/.gitignore                   |   0
 .../nucleo-g474re/src/CMakeLists.txt               |   2 +-
 .../{stm32 => stm32g4}/nucleo-g474re/src/Make.defs |   2 +-
 .../nucleo-g474re/src/nucleo-g474re.h              |   2 +-
 .../nucleo-g474re/src/stm32_autoleds.c             |   2 +-
 .../nucleo-g474re/src/stm32_boot.c                 |   2 +-
 .../nucleo-g474re/src/stm32_bringup.c              |   2 +-
 .../nucleo-g474re/src/stm32_usbdev.c               |   2 +-
 .../nucleo-g474re/src/stm32_userleds.c             |   2 +-
 138 files changed, 1210 insertions(+), 237 deletions(-)

diff --git a/arch/arm/include/stm32g4/chip.h b/arch/arm/include/stm32g4/chip.h
new file mode 100644
index 00000000000..f552caac654
--- /dev/null
+++ b/arch/arm/include/stm32g4/chip.h
@@ -0,0 +1,350 @@
+/****************************************************************************
+ * arch/arm/include/stm32g4/chip.h
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __ARCH_ARM_INCLUDE_STM32G4_CHIP_H
+#define __ARCH_ARM_INCLUDE_STM32G4_CHIP_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+/****************************************************************************
+ * Pre-processor Prototypes
+ ****************************************************************************/
+
+/* Get customizations for each supported chip and provide alternate function
+ * pin-mapping
+ *
+ * NOTE: Each GPIO pin may serve either for general purpose I/O or for a
+ * special alternate function (such as USART, CAN, USB, SDIO, etc.).  That
+ * particular pin-mapping will depend on the package and STM32 family.  If
+ * you are incorporating a new STM32 chip into NuttX, you will need to add
+ * the pin-mapping to a header file and to include that header file below.
+ * The chip-specific pin-mapping is defined in the chip datasheet.
+ */
+
+#if defined (CONFIG_ARCH_CHIP_STM32G431K)
+#  define STM32_NFSMC                    0   /* FSMC */
+#  define STM32_NATIM                    2   /* (2) Advanced motor control 
timers TIM1, 8 with DMA */
+#  define STM32_NGTIM                    6   /* (2) 16-bit general timers TIM3 
and 4 with DMA
+                                              * (1) 32-bit general timers TIM2 
with DMA
+                                              * (3) 16-bit general timers 
count-up timers with DMA: TIM15-17 */
+#  define STM32_NGTIMNDMA                0   /* (0) 16-bit general timers 
TIM9-14 without DMA */
+#  define STM32_NBTIM                    2   /* (2) Basic timers, TIM6-7 */
+#  define STM32_NDMA                     2   /* DMA1-2 */
+#  define STM32_NSPI                     3   /* SPI1-3 */
+#  define STM32_NI2S                     2   /* I2S2-3 (multiplexed with 
SPI2-3) */
+#  define STM32_NUSART                   2   /* USART1-2 */
+#  define STM32_NLPUART                  1   /* LPUART1 */
+#  define STM32_NI2C                     3   /* I2C1-3 */
+#  define STM32_NCAN                     1   /* FDCAN1 */
+#  define STM32_NSDIO                    0   /* No SDIO */
+#  define STM32_NLCD                     0   /* No LCD */
+#  define STM32_NUSBOTG                  0   /* No USB OTG FS/HS (but there is 
USB 2.0 full-speed
+                                              * with LPM and BCD support) */
+#  define STM32_NGPIO                    26  /* GPIOA-G */
+#  define STM32_NADC                     2   /* 12-bit ADC1-2 */
+#  define STM32_NDAC                     2   /* 12-bit DAC1-2, 4 channels (2 
external, 2 internal) */
+#  define STM32_NCAPSENSE                0   /* No capacitive sensing channels 
*/
+#  define STM32_NCRC                     1   /* CRC */
+#  define STM32_NETHERNET                0   /* No Ethernet MAC */
+#  define STM32_NRNG                     1   /* Random number generator (RNG) 
*/
+#  define STM32_NDCMI                    0   /* No digital camera interface 
(DCMI) */
+
+#elif defined (CONFIG_ARCH_CHIP_STM32G431C)
+#  define STM32_NFSMC                    0   /* FSMC */
+#  define STM32_NATIM                    2   /* (2) Advanced motor control 
timers TIM1, 8 with DMA */
+#  define STM32_NGTIM                    6   /* (2) 16-bit general timers TIM3 
and 4 with DMA
+                                              * (1) 32-bit general timers TIM2 
with DMA
+                                              * (3) 16-bit general timers 
count-up timers with DMA: TIM15-17 */
+#  define STM32_NGTIMNDMA                0   /* (0) 16-bit general timers 
TIM9-14 without DMA */
+#  define STM32_NBTIM                    2   /* (2) Basic timers, TIM6-7 */
+#  define STM32_NDMA                     2   /* DMA1-2 */
+#  define STM32_NSPI                     3   /* SPI1-3 */
+#  define STM32_NI2S                     2   /* I2S2-3 (multiplexed with 
SPI2-3) */
+#  define STM32_NUSART                   3   /* USART1-3 */
+#  define STM32_NLPUART                  1   /* LPUART1 */
+#  define STM32_NI2C                     3   /* I2C1-3 */
+#  define STM32_NCAN                     1   /* FDCAN1 */
+#  define STM32_NSDIO                    0   /* No SDIO */
+#  define STM32_NLCD                     0   /* No LCD */
+#  define STM32_NUSBOTG                  0   /* No USB OTG FS/HS (but there is 
USB 2.0 full-speed
+                                              * with LPM and BCD support) */
+#  define STM32_NGPIO                    42  /* GPIOA-G */
+#  define STM32_NADC                     2   /* 12-bit ADC1-2 */
+#  define STM32_NDAC                     2   /* 12-bit DAC1-2, 4 channels (2 
external, 2 internal) */
+#  define STM32_NCAPSENSE                0   /* No capacitive sensing channels 
*/
+#  define STM32_NCRC                     1   /* CRC */
+#  define STM32_NETHERNET                0   /* No Ethernet MAC */
+#  define STM32_NRNG                     1   /* Random number generator (RNG) 
*/
+#  define STM32_NDCMI                    0   /* No digital camera interface 
(DCMI) */
+
+#elif defined (CONFIG_ARCH_CHIP_STM32G431R)
+#  define STM32_NFSMC                    0   /* FSMC */
+#  define STM32_NATIM                    2   /* (2) Advanced motor control 
timers TIM1, 8 with DMA */
+#  define STM32_NGTIM                    6   /* (2) 16-bit general timers TIM3 
and 4 with DMA
+                                              * (1) 32-bit general timers TIM2 
with DMA
+                                              * (3) 16-bit general timers 
count-up timers with DMA: TIM15-17 */
+#  define STM32_NGTIMNDMA                0   /* (0) 16-bit general timers 
TIM9-14 without DMA */
+#  define STM32_NBTIM                    2   /* (2) Basic timers, TIM6-7 */
+#  define STM32_NDMA                     2   /* DMA1-2 */
+#  define STM32_NSPI                     3   /* SPI1-3 */
+#  define STM32_NI2S                     2   /* I2S2-3 (multiplexed with 
SPI2-3) */
+#  define STM32_NUSART                   4   /* USART1-3 and UART4*/
+#  define STM32_NLPUART                  1   /* LPUART1 */
+#  define STM32_NI2C                     3   /* I2C1-3 */
+#  define STM32_NCAN                     1   /* FDCAN1 */
+#  define STM32_NSDIO                    0   /* No SDIO */
+#  define STM32_NLCD                     0   /* No LCD */
+#  define STM32_NUSBOTG                  0   /* No USB OTG FS/HS (but there is 
USB 2.0 full-speed
+                                              * with LPM and BCD support) */
+#  define STM32_NGPIO                    52  /* GPIOA-G */
+#  define STM32_NADC                     2   /* 12-bit ADC1-2 */
+#  define STM32_NDAC                     2   /* 12-bit DAC1-2, 4 channels (2 
external, 2 internal) */
+#  define STM32_NCAPSENSE                0   /* No capacitive sensing channels 
*/
+#  define STM32_NCRC                     1   /* CRC */
+#  define STM32_NETHERNET                0   /* No Ethernet MAC */
+#  define STM32_NRNG                     1   /* Random number generator (RNG) 
*/
+#  define STM32_NDCMI                    0   /* No digital camera interface 
(DCMI) */
+
+#elif defined (CONFIG_ARCH_CHIP_STM32G431M)
+#  define STM32_NFSMC                    0   /* FSMC */
+#  define STM32_NATIM                    2   /* (2) Advanced motor control 
timers TIM1, 8 with DMA */
+#  define STM32_NGTIM                    6   /* (2) 16-bit general timers TIM3 
and 4 with DMA
+                                              * (1) 32-bit general timers TIM2 
with DMA
+                                              * (3) 16-bit general timers 
count-up timers with DMA: TIM15-17 */
+#  define STM32_NGTIMNDMA                0   /* (0) 16-bit general timers 
TIM9-14 without DMA */
+#  define STM32_NBTIM                    2   /* (2) Basic timers, TIM6-7 */
+#  define STM32_NDMA                     2   /* DMA1-2 */
+#  define STM32_NSPI                     3   /* SPI1-3 */
+#  define STM32_NI2S                     2   /* I2S2-3 (multiplexed with 
SPI2-3) */
+#  define STM32_NUSART                   4   /* USART1-3 and UART4*/
+#  define STM32_NLPUART                  1   /* LPUART1 */
+#  define STM32_NI2C                     3   /* I2C1-3 */
+#  define STM32_NCAN                     1   /* FDCAN1 */
+#  define STM32_NSDIO                    0   /* No SDIO */
+#  define STM32_NLCD                     0   /* No LCD */
+#  define STM32_NUSBOTG                  0   /* No USB OTG FS/HS (but there is 
USB 2.0 full-speed
+                                              * with LPM and BCD support) */
+#  define STM32_NGPIO                    66  /* GPIOA-G */
+#  define STM32_NADC                     2   /* 12-bit ADC1-2 */
+#  define STM32_NDAC                     2   /* 12-bit DAC1-2, 4 channels (2 
external, 2 internal) */
+#  define STM32_NCAPSENSE                0   /* No capacitive sensing channels 
*/
+#  define STM32_NCRC                     1   /* CRC */
+#  define STM32_NETHERNET                0   /* No Ethernet MAC */
+#  define STM32_NRNG                     1   /* Random number generator (RNG) 
*/
+#  define STM32_NDCMI                    0   /* No digital camera interface 
(DCMI) */
+
+#elif defined (CONFIG_ARCH_CHIP_STM32G431V)
+#  define STM32_NFSMC                    0   /* FSMC */
+#  define STM32_NATIM                    2   /* (2) Advanced motor control 
timers TIM1, 8 with DMA */
+#  define STM32_NGTIM                    6   /* (2) 16-bit general timers TIM3 
and 4 with DMA
+                                              * (1) 32-bit general timers TIM2 
with DMA
+                                              * (3) 16-bit general timers 
count-up timers with DMA: TIM15-17 */
+#  define STM32_NGTIMNDMA                0   /* (0) 16-bit general timers 
TIM9-14 without DMA */
+#  define STM32_NBTIM                    2   /* (2) Basic timers, TIM6-7 */
+#  define STM32_NDMA                     2   /* DMA1-2 */
+#  define STM32_NSPI                     3   /* SPI1-3 */
+#  define STM32_NI2S                     2   /* I2S2-3 (multiplexed with 
SPI2-3) */
+#  define STM32_NUSART                   4   /* USART1-3 and UART4*/
+#  define STM32_NLPUART                  1   /* LPUART1 */
+#  define STM32_NI2C                     3   /* I2C1-3 */
+#  define STM32_NCAN                     1   /* FDCAN1 */
+#  define STM32_NSDIO                    0   /* No SDIO */
+#  define STM32_NLCD                     0   /* No LCD */
+#  define STM32_NUSBOTG                  0   /* No USB OTG FS/HS (but there is 
USB 2.0 full-speed
+                                              * with LPM and BCD support) */
+#  define STM32_NGPIO                    86  /* GPIOA-G */
+#  define STM32_NADC                     2   /* 12-bit ADC1-2 */
+#  define STM32_NDAC                     2   /* 12-bit DAC1-2, 4 channels (2 
external, 2 internal) */
+#  define STM32_NCAPSENSE                0   /* No capacitive sensing channels 
*/
+#  define STM32_NCRC                     1   /* CRC */
+#  define STM32_NETHERNET                0   /* No Ethernet MAC */
+#  define STM32_NRNG                     1   /* Random number generator (RNG) 
*/
+#  define STM32_NDCMI                    0   /* No digital camera interface 
(DCMI) */
+
+#elif defined (CONFIG_ARCH_CHIP_STM32G474C)
+#  define STM32_NFSMC                    0   /* FSMC */
+#  define STM32_NATIM                    3   /* (3) Advanced motor control 
timers TIM1, 8, and 20 with DMA */
+#  define STM32_NGTIM                    7   /* (2) 16-bit general timers TIM3 
and 4 with DMA
+                                              * (2) 32-bit general timers TIM2 
and 5 with DMA
+                                              * (3) 16-bit general timers 
count-up timers with DMA: TIM15-17 */
+#  define STM32_NGTIMNDMA                0   /* (0) 16-bit general timers 
TIM9-14 without DMA */
+#  define STM32_NBTIM                    2   /* (2) Basic timers, TIM6-7 */
+#  define STM32_NDMA                     2   /* DMA1-2 */
+#  define STM32_NSPI                     3   /* SPI1-3 */
+#  define STM32_NI2S                     2   /* I2S2-3 (multiplexed with 
SPI2-3) */
+#  define STM32_NUSART                   3   /* USART1-3 */
+#  define STM32_NLPUART                  1   /* LPUART1 */
+#  define STM32_NI2C                     4   /* I2C1-4 */
+#  define STM32_NCAN                     3   /* FDCAN1-3 */
+#  define STM32_NSDIO                    0   /* No SDIO */
+#  define STM32_NLCD                     0   /* No LCD */
+#  define STM32_NUSBOTG                  0   /* No USB OTG FS/HS (but there is 
USB 2.0 full-speed
+                                              * with LPM and BCD support) */
+#  define STM32_NGPIO                    42  /* GPIOA-C, F-G */
+#  define STM32_NADC                     5   /* 12-bit ADC1-5 */
+#  define STM32_NDAC                     4   /* 12-bit DAC1-4, 7 channels (3 
external, 4 internal) */
+#  define STM32_NCAPSENSE                0   /* No capacitive sensing channels 
*/
+#  define STM32_NCRC                     1   /* CRC */
+#  define STM32_NETHERNET                0   /* No Ethernet MAC */
+#  define STM32_NRNG                     1   /* Random number generator (RNG) 
*/
+#  define STM32_NDCMI                    0   /* No digital camera interface 
(DCMI) */
+
+#elif defined (CONFIG_ARCH_CHIP_STM32G474M)
+#  define STM32_NFSMC                    0   /* FSMC */
+#  define STM32_NATIM                    3   /* (3) Advanced motor control 
timers TIM1, 8, and 20 with DMA */
+#  define STM32_NGTIM                    7   /* (2) 16-bit general timers TIM3 
and 4 with DMA
+                                              * (2) 32-bit general timers TIM2 
and 5 with DMA
+                                              * (3) 16-bit general timers 
count-up timers with DMA: TIM15-17 */
+#  define STM32_NGTIMNDMA                0   /* (0) 16-bit general timers 
TIM9-14 without DMA */
+#  define STM32_NBTIM                    2   /* (2) Basic timers, TIM6-7 */
+#  define STM32_NDMA                     2   /* DMA1-2 */
+#  define STM32_NSPI                     4   /* SPI1-4 */
+#  define STM32_NI2S                     2   /* I2S2-3 (multiplexed with 
SPI2-3) */
+#  define STM32_NUSART                   5   /* USART1-3 and UART 4-5 */
+#  define STM32_NLPUART                  1   /* LPUART1 */
+#  define STM32_NI2C                     4   /* I2C1-4 */
+#  define STM32_NCAN                     3   /* FDCAN1-3 */
+#  define STM32_NSDIO                    0   /* No SDIO */
+#  define STM32_NLCD                     0   /* No LCD */
+#  define STM32_NUSBOTG                  0   /* No USB OTG FS/HS (but there is 
USB 2.0 full-speed
+                                              * with LPM and BCD support) */
+#  define STM32_NGPIO                    67  /* GPIOA-G */
+#  define STM32_NADC                     5   /* 12-bit ADC1-5 */
+#  define STM32_NDAC                     4   /* 12-bit DAC1-4, 7 channels (3 
external, 4 internal) */
+#  define STM32_NCAPSENSE                0   /* No capacitive sensing channels 
*/
+#  define STM32_NCRC                     1   /* CRC */
+#  define STM32_NETHERNET                0   /* No Ethernet MAC */
+#  define STM32_NRNG                     1   /* Random number generator (RNG) 
*/
+#  define STM32_NDCMI                    0   /* No digital camera interface 
(DCMI) */
+
+#elif defined (CONFIG_ARCH_CHIP_STM32G474R)
+#  define STM32_NFSMC                    0   /* FSMC */
+#  define STM32_NATIM                    3   /* (3) Advanced motor control 
timers TIM1, 8, and 20 with DMA */
+#  define STM32_NGTIM                    7   /* (2) 16-bit general timers TIM3 
and 4 with DMA
+                                              * (2) 32-bit general timers TIM2 
and 5 with DMA
+                                              * (3) 16-bit general timers 
count-up timers with DMA: TIM15-17 */
+#  define STM32_NGTIMNDMA                0   /* (0) 16-bit general timers 
TIM9-14 without DMA */
+#  define STM32_NBTIM                    2   /* (2) Basic timers, TIM6-7 */
+#  define STM32_NDMA                     2   /* DMA1-2 */
+#  define STM32_NSPI                     3   /* SPI1-3 */
+#  define STM32_NI2S                     2   /* I2S2-3 (multiplexed with 
SPI2-3) */
+#  define STM32_NUSART                   5   /* USART1-3 and UART 4-5 */
+#  define STM32_NLPUART                  1   /* LPUART1 */
+#  define STM32_NI2C                     4   /* I2C1-4 */
+#  define STM32_NCAN                     3   /* FDCAN1-3 */
+#  define STM32_NSDIO                    0   /* No SDIO */
+#  define STM32_NLCD                     0   /* No LCD */
+#  define STM32_NUSBOTG                  0   /* No USB OTG FS/HS (but there is 
USB 2.0 full-speed
+                                              * with LPM and BCD support) */
+#  define STM32_NGPIO                    52  /* GPIOA-D, F-G */
+#  define STM32_NADC                     5   /* 12-bit ADC1-5 */
+#  define STM32_NDAC                     4   /* 12-bit DAC1-4, 7 channels (3 
external, 4 internal) */
+#  define STM32_NCAPSENSE                0   /* No capacitive sensing channels 
*/
+#  define STM32_NCRC                     1   /* CRC */
+#  define STM32_NETHERNET                0   /* No Ethernet MAC */
+#  define STM32_NRNG                     1   /* Random number generator (RNG) 
*/
+#  define STM32_NDCMI                    0   /* No digital camera interface 
(DCMI) */
+
+#elif defined (CONFIG_ARCH_CHIP_STM32G474Q)
+#  define STM32_NFSMC                    1   /* FSMC */
+#  define STM32_NATIM                    3   /* (3) Advanced motor control 
timers TIM1, 8, and 20 with DMA */
+#  define STM32_NGTIM                    7   /* (2) 16-bit general timers TIM3 
and 4 with DMA
+                                              * (2) 32-bit general timers TIM2 
and 5 with DMA
+                                              * (3) 16-bit general timers 
count-up timers with DMA: TIM15-17 */
+#  define STM32_NGTIMNDMA                0   /* (0) 16-bit general timers 
TIM9-14 without DMA */
+#  define STM32_NBTIM                    2   /* (2) Basic timers, TIM6-7 */
+#  define STM32_NDMA                     2   /* DMA1-2 */
+#  define STM32_NSPI                     4   /* SPI1-4 */
+#  define STM32_NI2S                     2   /* I2S2-3 (multiplexed with 
SPI2-3) */
+#  define STM32_NUSART                   5   /* USART1-3 and UART 4-5 */
+#  define STM32_NLPUART                  1   /* LPUART1 */
+#  define STM32_NI2C                     4   /* I2C1-4 */
+#  define STM32_NCAN                     3   /* FDCAN1-3 */
+#  define STM32_NSDIO                    0   /* No SDIO */
+#  define STM32_NLCD                     1   /* LCD parallel interface 
possible via FMC */
+#  define STM32_NUSBOTG                  0   /* No USB OTG FS/HS (but there is 
USB 2.0 full-speed
+                                              * with LPM and BCD support) */
+#  define STM32_NGPIO                    107 /* GPIOA-G */
+#  define STM32_NADC                     5   /* 12-bit ADC1-5 */
+#  define STM32_NDAC                     4   /* 12-bit DAC1-4, 7 channels (3 
external, 4 internal) */
+#  define STM32_NCAPSENSE                0   /* No capacitive sensing channels 
*/
+#  define STM32_NCRC                     1   /* CRC */
+#  define STM32_NETHERNET                0   /* No Ethernet MAC */
+#  define STM32_NRNG                     1   /* Random number generator (RNG) 
*/
+#  define STM32_NDCMI                    0   /* No digital camera interface 
(DCMI) */
+
+#elif defined (CONFIG_ARCH_CHIP_STM32G474V)
+#  define STM32_NFSMC                    1   /* FSMC */
+#  define STM32_NATIM                    3   /* (3) Advanced motor control 
timers TIM1, 8, and 20 with DMA */
+#  define STM32_NGTIM                    7   /* (2) 16-bit general timers TIM3 
and 4 with DMA
+                                              * (2) 32-bit general timers TIM2 
and 5 with DMA
+                                              * (3) 16-bit general timers 
count-up timers with DMA: TIM15-17 */
+#  define STM32_NGTIMNDMA                0   /* (0) 16-bit general timers 
TIM9-14 without DMA */
+#  define STM32_NBTIM                    2   /* (2) Basic timers, TIM6-7 */
+#  define STM32_NDMA                     2   /* DMA1-2 */
+#  define STM32_NSPI                     4   /* SPI1-4 */
+#  define STM32_NI2S                     2   /* I2S2-3 (multiplexed with 
SPI2-3) */
+#  define STM32_NUSART                   5   /* USART1-3 and UART 4-5 */
+#  define STM32_NLPUART                  1   /* LPUART1 */
+#  define STM32_NI2C                     4   /* I2C1-4 */
+#  define STM32_NCAN                     3   /* FDCAN1-3 */
+#  define STM32_NSDIO                    0   /* No SDIO */
+#  define STM32_NLCD                     1   /* LCD parallel interface 
possible via FMC */
+#  define STM32_NUSBOTG                  0   /* No USB OTG FS/HS (but there is 
USB 2.0 full-speed
+                                              * with LPM and BCD support) */
+#  define STM32_NGPIO                    86  /* GPIOA-G */
+#  define STM32_NADC                     5   /* 12-bit ADC1-5 */
+#  define STM32_NDAC                     4   /* 12-bit DAC1-4, 7 channels (3 
external, 4 internal) */
+#  define STM32_NCAPSENSE                0   /* No capacitive sensing channels 
*/
+#  define STM32_NCRC                     1   /* CRC */
+#  define STM32_NETHERNET                0   /* No Ethernet MAC */
+#  define STM32_NRNG                     1   /* Random number generator (RNG) 
*/
+#  define STM32_NDCMI                    0   /* No digital camera interface 
(DCMI) */
+
+#else
+#  error "Unsupported STM32 chip"
+#endif
+
+/* Peripheral IP versions ***************************************************/
+
+/* Peripheral IP versions are invariant and should be decided here, not in
+ * Kconfig.
+ *
+ * REVISIT: Currently only SPI IP version is handled here, with others being
+ *          handled in Kconfig. Those others need to be gradually refactored
+ *          and resolved here.
+ */
+
+#define STM32_HAVE_IP_SPI_V4
+
+/* NVIC priority levels *****************************************************/
+
+#define NVIC_SYSH_PRIORITY_MIN     0xf0 /* All bits set in minimum priority */
+#define NVIC_SYSH_PRIORITY_DEFAULT 0x80 /* Midpoint is the default */
+#define NVIC_SYSH_PRIORITY_MAX     0x00 /* Zero is maximum priority */
+#define NVIC_SYSH_PRIORITY_STEP    0x10 /* Four bits of interrupt priority 
used */
+
+#endif /* __ARCH_ARM_INCLUDE_STM32G4_CHIP_H */
diff --git a/arch/arm/include/stm32/stm32g4xxxx_irq.h 
b/arch/arm/include/stm32g4/irq.h
similarity index 82%
rename from arch/arm/include/stm32/stm32g4xxxx_irq.h
rename to arch/arm/include/stm32g4/irq.h
index 1d0418be96a..ef6c1fd7fa6 100644
--- a/arch/arm/include/stm32/stm32g4xxxx_irq.h
+++ b/arch/arm/include/stm32g4/irq.h
@@ -1,31 +1,31 @@
 /****************************************************************************
- * arch/arm/include/stm32/stm32g4xxxx_irq.h
+ * arch/arm/include/stm32g4/irq.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.  The
- *  ASF licenses this file to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance with the
- *  License.  You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
  *
- *    http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- *  License for the specific language governing permissions and limitations
- *  under the License.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
  *
  ****************************************************************************/
 
-/* This file should never be included directly but, rather, only indirectly
- * through nuttx/irq.h
+/* This file should never be included directly but, rather,
+ * only indirectly through nuttx/irq.h
  */
 
-#ifndef __ARCH_ARM_INCLUDE_STM32_STM32G4XXXX_IRQ_H
-#define __ARCH_ARM_INCLUDE_STM32_STM32G4XXXX_IRQ_H
+#ifndef __ARCH_ARM_INCLUDE_STM32G4_IRQ_H
+#define __ARCH_ARM_INCLUDE_STM32G4_IRQ_H
 
 /****************************************************************************
  * Included Files
@@ -33,21 +33,44 @@
 
 #include <nuttx/config.h>
 #include <nuttx/irq.h>
+#include <arch/stm32g4/chip.h>
 
 /****************************************************************************
  * Pre-processor Prototypes
  ****************************************************************************/
 
-/* IRQ numbers.  The IRQ numbers correspond to the vector numbers and hence
- * map directly to bits in the NVIC.  This does, however, waste several words
- * of memory in the IRQ to handle mapping tables.
- *
- * Processor Exceptions (vectors 0-15) are common to all STM32 parts and are
- * found in nuttx/arch/arm/include/stm32/irq.h.  They are not repeated here.
- *
- * Other interrupts (vectors >= 16) are defined below.
+/* IRQ numbers.
+ * The IRQ number corresponds vector number and hence map directly to
+ * bits in the NVIC.  This does, however, waste several words of memory in
+ * the IRQ to handle mapping tables.
  */
 
+/* Processor Exceptions (vectors 0-15) */
+
+#define STM32_IRQ_RESERVED       (0) /* Reserved vector (only used with 
CONFIG_DEBUG_FEATURES) */
+                                     /* Vector  0: Reset stack pointer value */
+                                     /* Vector  1: Reset (not handler as an 
IRQ) */
+#define STM32_IRQ_NMI            (2) /* Vector  2: Non-Maskable Interrupt 
(NMI) */
+#define STM32_IRQ_HARDFAULT      (3) /* Vector  3: Hard fault */
+#define STM32_IRQ_MEMFAULT       (4) /* Vector  4: Memory management (MPU) */
+#define STM32_IRQ_BUSFAULT       (5) /* Vector  5: Bus fault */
+#define STM32_IRQ_USAGEFAULT     (6) /* Vector  6: Usage fault */
+#define STM32_IRQ_SVCALL        (11) /* Vector 11: SVC call */
+#define STM32_IRQ_DBGMONITOR    (12) /* Vector 12: Debug Monitor */
+                                     /* Vector 13: Reserved */
+#define STM32_IRQ_PENDSV        (14) /* Vector 14: Pendable system service 
request */
+#define STM32_IRQ_SYSTICK       (15) /* Vector 15: System tick */
+
+/* External interrupts (vectors >= 16).
+ * These definitions are chip-specific
+ */
+
+#define STM32_IRQ_FIRST         (16) /* Vector number of the first external 
interrupt */
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
 #define STM32_IRQ_WWDG            (STM32_IRQ_FIRST + 0)   /* 0:  Window 
Watchdog interrupt */
 #define STM32_IRQ_PVD             (STM32_IRQ_FIRST + 1)   /* 1:  PVD through 
EXTI Line detection interrupt */
 #define STM32_IRQ_TAMPER          (STM32_IRQ_FIRST + 2)   /* 2:  Tamper 
interrupt, or Time Stamp (shared with STM32_IRQ_TIMESTAMP) */
@@ -199,4 +222,4 @@ extern "C"
 #endif
 #endif
 
-#endif /* __ARCH_ARM_INCLUDE_STM32_STM32G4XXXX_IRQ_H */
+#endif /* __ARCH_ARM_INCLUDE_STM32G4_IRQ_H */
diff --git a/boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt 
b/arch/arm/src/stm32g4/CMakeLists.txt
similarity index 84%
copy from boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
copy to arch/arm/src/stm32g4/CMakeLists.txt
index f0b7d812e44..24e6c94b342 100644
--- a/boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
+++ b/arch/arm/src/stm32g4/CMakeLists.txt
@@ -1,5 +1,5 @@
 # 
##############################################################################
-# boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
+# arch/arm/src/stm32g4/CMakeLists.txt
 #
 # SPDX-License-Identifier: Apache-2.0
 #
@@ -20,4 +20,9 @@
 #
 # 
##############################################################################
 
-add_subdirectory(src)
+set(SRCS)
+
+list(APPEND SRCS stm32_rcc.c)
+
+target_sources(arch PRIVATE ${SRCS})
+add_subdirectory(${NUTTX_DIR}/arch/arm/src/common/stm32 stm32_common)
diff --git a/arch/arm/src/stm32g4/Kconfig b/arch/arm/src/stm32g4/Kconfig
new file mode 100644
index 00000000000..a151b4a4877
--- /dev/null
+++ b/arch/arm/src/stm32g4/Kconfig
@@ -0,0 +1,340 @@
+#
+# For a description of the syntax of this configuration file,
+# see the file kconfig-language.txt in the NuttX tools repository.
+#
+comment "STM32 G4 configuration"
+
+if ARCH_CHIP_STM32G4
+
+choice
+       prompt "STM32G4 Chip Selection"
+       depends on ARCH_CHIP_STM32G4
+
+config ARCH_CHIP_STM32G431K
+       bool "STM32G431K"
+       select STM32_STM32G43XX
+       select STM32_STM32G4XXK
+       select STM32_STM32G431K
+
+config ARCH_CHIP_STM32G431C
+       bool "STM32G431C"
+       select STM32_STM32G43XX
+       select STM32_STM32G4XXC
+       select STM32_STM32G431C
+
+config ARCH_CHIP_STM32G431R
+       bool "STM32G431R"
+       select STM32_STM32G43XX
+       select STM32_STM32G4XXR
+       select STM32_STM32G431R
+
+config ARCH_CHIP_STM32G431M
+       bool "STM32G431M"
+       select STM32_STM32G43XX
+       select STM32_STM32G4XXM
+       select STM32_STM32G431M
+
+config ARCH_CHIP_STM32G431V
+       bool "STM32G431V"
+       select STM32_STM32G43XX
+       select STM32_STM32G4XXV
+       select STM32_STM32G431V
+
+config ARCH_CHIP_STM32G474C
+       bool "STM32G474C"
+       select STM32_STM32G47XX
+       select STM32_STM32G4XXC
+       select STM32_STM32G474C
+
+config ARCH_CHIP_STM32G474M
+       bool "STM32G474M"
+       select STM32_STM32G47XX
+       select STM32_STM32G4XXM
+       select STM32_STM32G474M
+
+config ARCH_CHIP_STM32G474R
+       bool "STM32G474R"
+       select STM32_STM32G47XX
+       select STM32_STM32G4XXR
+       select STM32_STM32G474R
+       select STM32_HAVE_USBFS
+
+config ARCH_CHIP_STM32G474Q
+       bool "STM32G474Q"
+       select STM32_STM32G47XX
+       select STM32_STM32G4XXQ
+       select STM32_STM32G474Q
+
+config ARCH_CHIP_STM32G474V
+       bool "STM32G474V"
+       select STM32_STM32G47XX
+       select STM32_STM32G4XXV
+       select STM32_STM32G474V
+
+endchoice
+
+endif
+
+config STM32_STM32G4XXX
+       bool
+       default n
+       select STM32_HAVE_DMA1
+       select STM32_HAVE_COMP
+       select STM32_HAVE_DMA2
+       select ARCH_CORTEXM4
+       select ARCH_HAVE_FPU
+       select STM32_HAVE_I2C1
+       select STM32_HAVE_SPI1
+       select STM32_HAVE_SYSCFG
+       select STM32_HAVE_USART1
+       select STM32_HAVE_USART2
+       select STM32_HAVE_DMAMUX
+       select STM32_HAVE_IP_AES_M3M4_V1 if STM32_HAVE_AES
+       select STM32_HAVE_IP_BBSRAM_M3M4_V1
+       select STM32_HAVE_IP_BKP_M3M4_V1
+       select STM32_HAVE_IP_CAN_BXCAN_M3M4_V1
+       select STM32_HAVE_IP_CCM_M3M4_V1 if STM32_HAVE_CCM
+       select STM32_HAVE_IP_CRYPTO_M3M4_V1
+       select STM32_HAVE_IP_DBGMCU_M3M4_V3
+       select STM32_HAVE_IP_ADC_M3M4_V2
+       select STM32_FOC_HAVE_ADC_CHAN0_WORKAROUND
+       select STM32_HAVE_COMMON_FOC
+       select STM32_HAVE_IP_COMP_M3M4_V2
+       select STM32_HAVE_IP_CORDIC_M3M4_V1 if STM32_HAVE_CORDIC
+       select STM32_HAVE_IP_DAC_M3M4_V2
+       select STM32_HAVE_IP_DCMI_V1
+       select STM32_HAVE_IP_DFUMODE_M3M4_V1
+       select STM32_HAVE_IP_DMA_V1
+       select STM32_HAVE_IP_DMA_V1_8CH_DMAMUX
+       select STM32_HAVE_IP_EXTI_V2
+       select STM32_HAVE_IP_ETHMAC_M3M4_V1 if STM32_HAVE_ETHMAC
+       select STM32_HAVE_IP_FDCAN_MCAN_M3M4_V1
+       select STM32_HAVE_IP_FLASH_M3M4_V1
+       select STM32_HAVE_IP_FLASH_M3M4_G4
+       select STM32_HAVE_IP_FMC_M3M4_V1 if STM32_HAVE_FMC
+       select STM32_HAVE_IP_FREERUN_M3M4_V1
+       select STM32_HAVE_IP_FSMC_M3M4_V1 if STM32_HAVE_FSMC
+       select STM32_HAVE_IP_GPIO_M3M4_V1
+       select STM32_HAVE_IP_HRTIM_M3M4_V1 if STM32_HAVE_HRTIM1
+       select STM32_HAVE_IP_I2C_M3M4_V2
+       select STM32_HAVE_IP_I2S_M3M4_V1
+       select STM32_HAVE_IP_ONESHOT_M3M4_V1
+       select STM32_HAVE_IP_OPAMP_M3M4_V1 if STM32_HAVE_OPAMP1 || 
STM32_HAVE_OPAMP2 || STM32_HAVE_OPAMP3 || STM32_HAVE_OPAMP4 || 
STM32_HAVE_OPAMP5 || STM32_HAVE_OPAMP6
+       select STM32_HAVE_IP_PWR_M3M4_V1
+       select STM32_HAVE_IP_RNG_M3M4_V1 if STM32_HAVE_RNG
+       select STM32_HAVE_IP_RTC_M3M4_V1
+       select STM32_HAVE_IP_RTCC_M3M4_V1
+       select STM32_HAVE_RTC_MAGIC
+       select STM32_HAVE_RTC
+       select STM32_HAVE_CRC
+       select STM32_HAVE_PWR
+       select STM32_HAVE_IP_SPI_V3
+       select STM32_HAVE_IP_SYSCFG_M3M4_V1
+       select STM32_HAVE_IP_TIMERS_M3M4_V3
+       select STM32_HAVE_IP_UID_M3M4_V1
+       select STM32_HAVE_IP_USART_V4
+       select STM32_HAVE_IP_USBDEV_M3M4_V1 if STM32_HAVE_USBDEV
+       select STM32_HAVE_IP_USBFS_M3M4_V1 if STM32_HAVE_USBFS
+       select STM32_HAVE_IP_OTGFS_M3M4_V1 if STM32_HAVE_OTGFS
+       select STM32_HAVE_IP_WDG_M3M4_V1
+
+config STM32_STM32G4_CAT2
+       bool
+       default n
+
+config STM32_STM32G4_CAT3
+       bool
+       default n
+
+config STM32_STM32G4_CAT4
+       bool
+       default n
+
+config STM32_STM32G4XXK
+       bool
+       default n
+
+config STM32_STM32G4XXC
+       bool
+       default n
+
+config STM32_STM32G4XXR
+       bool
+       default n
+
+config STM32_STM32G4XXM
+       bool
+       default n
+
+config STM32_STM32G4XXV
+       bool
+       default n
+
+config STM32_STM32G4XXP
+       bool
+       default n
+
+config STM32_STM32G4XXQ
+       bool
+       default n
+
+config STM32_STM32G43XX
+       bool
+       default n
+       select STM32_STM32G4XXX
+       select STM32_STM32G4_CAT2
+       select STM32_HAVE_ADC2
+       select STM32_HAVE_CCM
+       select STM32_HAVE_COMP1
+       select STM32_HAVE_COMP2
+       select STM32_HAVE_COMP3
+       select STM32_HAVE_COMP4
+       select STM32_HAVE_CORDIC
+       select STM32_HAVE_CRS
+       select STM32_HAVE_DAC1
+       select STM32_HAVE_DAC3
+       select STM32_HAVE_FMAC
+       select STM32_HAVE_FDCAN1
+       select STM32_HAVE_I2C2
+       select STM32_HAVE_I2C3
+       select STM32_HAVE_LPTIM1
+       select STM32_HAVE_LPUART1
+       select STM32_HAVE_OPAMP1
+       select STM32_HAVE_OPAMP2
+       select STM32_HAVE_OPAMP3
+       select STM32_HAVE_RNG
+       select STM32_HAVE_SPI2
+       select STM32_HAVE_SPI3
+       select STM32_HAVE_TIM1
+       select STM32_HAVE_TIM15
+       select STM32_HAVE_TIM16
+       select STM32_HAVE_TIM17
+       select STM32_HAVE_TIM2
+       select STM32_HAVE_TIM3
+       select STM32_HAVE_TIM4
+       select STM32_HAVE_TIM8
+       select STM32_HAVE_UCPD
+       select STM32_HAVE_USBDEV
+
+config STM32_STM32G431K
+       bool
+       default n
+
+config STM32_STM32G431C
+       bool
+       default n
+       select STM32_HAVE_USART3
+
+config STM32_STM32G431R
+       bool
+       default n
+       select STM32_HAVE_USART3
+       select STM32_HAVE_UART4
+
+config STM32_STM32G431M
+       bool
+       default n
+       select STM32_HAVE_USART3
+       select STM32_HAVE_UART4
+
+config STM32_STM32G431V
+       bool
+       default n
+       select STM32_HAVE_USART3
+       select STM32_HAVE_UART4
+
+config STM32_STM32G47XX
+       bool
+       default n
+       select STM32_STM32G4XXX
+       select STM32_STM32G4_CAT3
+       select STM32_HAVE_ADC2
+       select STM32_HAVE_ADC3
+       select STM32_HAVE_ADC4
+       select STM32_HAVE_ADC5
+       select STM32_HAVE_CCM
+       select STM32_HAVE_COMP1
+       select STM32_HAVE_COMP2
+       select STM32_HAVE_COMP3
+       select STM32_HAVE_COMP4
+       select STM32_HAVE_COMP5
+       select STM32_HAVE_COMP6
+       select STM32_HAVE_COMP7
+       select STM32_HAVE_CORDIC
+       select STM32_HAVE_CRS
+       select STM32_HAVE_DAC1
+       select STM32_HAVE_DAC2
+       select STM32_HAVE_DAC3
+       select STM32_HAVE_DAC4
+       select STM32_HAVE_FSMC
+       select STM32_HAVE_FMAC
+       select STM32_HAVE_FDCAN1
+       select STM32_HAVE_FDCAN2
+       select STM32_HAVE_HRTIM1
+       select STM32_HAVE_I2C2
+       select STM32_HAVE_I2C3
+       select STM32_HAVE_I2C4
+       select STM32_HAVE_I2S3
+       select STM32_HAVE_LPTIM1
+       select STM32_HAVE_LPUART1
+       select STM32_HAVE_OPAMP1
+       select STM32_HAVE_OPAMP2
+       select STM32_HAVE_OPAMP3
+       select STM32_HAVE_OPAMP4
+       select STM32_HAVE_OPAMP5
+       select STM32_HAVE_OPAMP6
+       select STM32_HAVE_QSPI
+       select STM32_HAVE_RNG
+       select STM32_HAVE_SPI2
+       select STM32_HAVE_SPI3
+       select STM32_HAVE_TIM1
+       select STM32_HAVE_TIM15
+       select STM32_HAVE_TIM16
+       select STM32_HAVE_TIM17
+       select STM32_HAVE_TIM2
+       select STM32_HAVE_TIM20
+       select STM32_HAVE_TIM3
+       select STM32_HAVE_TIM4
+       select STM32_HAVE_TIM5
+       select STM32_HAVE_TIM8
+       select STM32_HAVE_USART3
+       select STM32_HAVE_UCPD
+       select STM32_HAVE_USBDEV
+
+config STM32_STM32G474C
+       bool
+       default n
+       select STM32_HAVE_FDCAN3
+
+config STM32_STM32G474M
+       bool
+       default n
+       select STM32_HAVE_FDCAN3
+       select STM32_HAVE_SPI4
+       select STM32_HAVE_UART4
+       select STM32_HAVE_UART5
+
+config STM32_STM32G474R
+       bool
+       default n
+       select STM32_HAVE_FDCAN3
+       select STM32_HAVE_UART4
+       select STM32_HAVE_UART5
+
+config STM32_STM32G474Q
+       bool
+       default n
+       select STM32_HAVE_FDCAN3
+       select STM32_HAVE_FMC
+       select STM32_HAVE_SPI4
+       select STM32_HAVE_UART4
+       select STM32_HAVE_UART5
+
+config STM32_STM32G474V
+       bool
+       default n
+       select STM32_HAVE_FDCAN3
+       select STM32_HAVE_FMC
+       select STM32_HAVE_SPI4
+       select STM32_HAVE_UART4
+       select STM32_HAVE_UART5
diff --git a/boards/arm/stm32/b-g474e-dpow1/src/Make.defs 
b/arch/arm/src/stm32g4/Make.defs
similarity index 70%
copy from boards/arm/stm32/b-g474e-dpow1/src/Make.defs
copy to arch/arm/src/stm32g4/Make.defs
index e91f93fd7a5..e8ec4e1184e 100644
--- a/boards/arm/stm32/b-g474e-dpow1/src/Make.defs
+++ b/arch/arm/src/stm32g4/Make.defs
@@ -1,5 +1,5 @@
 ############################################################################
-# boards/arm/stm32/b-g474e-dpow1/src/Make.defs
+# arch/arm/src/stm32g4/Make.defs
 #
 # SPDX-License-Identifier: Apache-2.0
 #
@@ -20,21 +20,8 @@
 #
 ############################################################################
 
-include $(TOPDIR)/Make.defs
+include armv7-m/Make.defs
 
-ASRCS =
-CSRCS = stm32_boot.c
+CHIP_CSRCS  = stm32_rcc.c
 
-ifeq ($(CONFIG_ARCH_LEDS),y)
-CSRCS += stm32_autoleds.c
-else
-CSRCS += stm32_userleds.c
-endif
-
-ifeq ($(CONFIG_DRIVERS_SMPS),y)
-CSRCS += stm32_smps.c
-endif
-
-DEPPATH += --dep-path board
-VPATH += :board
-CFLAGS += 
${INCDIR_PREFIX}$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)board
+include common/stm32/Make.defs
diff --git a/boards/arm/stm32/nucleo-g431rb/src/stm32_cansock.c 
b/arch/arm/src/stm32g4/chip.h
similarity index 64%
copy from boards/arm/stm32/nucleo-g431rb/src/stm32_cansock.c
copy to arch/arm/src/stm32g4/chip.h
index 72b03dc2324..2be83d370f5 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/stm32_cansock.c
+++ b/arch/arm/src/stm32g4/chip.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/src/stm32_cansock.c
+ * arch/arm/src/stm32g4/chip.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -20,40 +20,40 @@
  *
  ****************************************************************************/
 
+#ifndef __ARCH_ARM_SRC_STM32G4_CHIP_H
+#define __ARCH_ARM_SRC_STM32G4_CHIP_H
+
 /****************************************************************************
  * Included Files
  ****************************************************************************/
 
 #include <nuttx/config.h>
 
-#include <nuttx/debug.h>
+/* Include the chip capabilities file */
 
-#include "stm32_fdcan.h"
+#include <arch/stm32g4/chip.h>
 
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
+/* Include the chip interrupt definition file */
+
+#include <arch/stm32g4/irq.h>
+
+/* Include the chip memory map */
+
+#include "hardware/stm32_memorymap.h"
+
+/* Include the chip pinmap */
+
+#include "hardware/stm32_pinmap.h"
 
 /****************************************************************************
- * Name: stm32_cansock_setup
- *
- * Description:
- *  Initialize CAN socket interface
- *
+ * Pre-processor Definitions
  ****************************************************************************/
 
-int stm32_cansock_setup(void)
-{
-  int ret;
-
-  /* Call stm32_fdcaninitialize() to get an instance of the FDCAN interface */
+/* Provide the required number of peripheral interrupt vector
+ * definitions as * well. The definition STM32_IRQ_NEXTINTS simply comes
+ * from the chip-specific * IRQ header file included by arch/stm32/irq.h.
+ */
 
-  ret = stm32_fdcansockinitialize(1);
-  if (ret < 0)
-    {
-      canerr("ERROR:  Failed to get FDCAN interface %d\n", ret);
-      return ret;
-    }
+#define ARMV7M_PERIPHERAL_INTERRUPTS  STM32_IRQ_NEXTINTS
 
-  return OK;
-}
+#endif /* __ARCH_ARM_SRC_STM32G4_CHIP_H */
diff --git a/arch/arm/src/stm32g4/hardware/stm32_memorymap.h 
b/arch/arm/src/stm32g4/hardware/stm32_memorymap.h
new file mode 100644
index 00000000000..5c737c84db3
--- /dev/null
+++ b/arch/arm/src/stm32g4/hardware/stm32_memorymap.h
@@ -0,0 +1,17 @@
+/****************************************************************************
+ * arch/arm/src/stm32g4/hardware/stm32_memorymap.h
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ ****************************************************************************/
+
+#ifndef __ARCH_ARM_SRC_STM32G4_HARDWARE_STM32_MEMORYMAP_H
+#define __ARCH_ARM_SRC_STM32G4_HARDWARE_STM32_MEMORYMAP_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include "hardware/stm32g4xxxx_memorymap.h"
+
+#endif /* __ARCH_ARM_SRC_STM32G4_HARDWARE_STM32_MEMORYMAP_H */
diff --git a/arch/arm/src/stm32g4/hardware/stm32_pinmap.h 
b/arch/arm/src/stm32g4/hardware/stm32_pinmap.h
new file mode 100644
index 00000000000..24148a45828
--- /dev/null
+++ b/arch/arm/src/stm32g4/hardware/stm32_pinmap.h
@@ -0,0 +1,17 @@
+/****************************************************************************
+ * arch/arm/src/stm32g4/hardware/stm32_pinmap.h
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ ****************************************************************************/
+
+#ifndef __ARCH_ARM_SRC_STM32G4_HARDWARE_STM32_PINMAP_H
+#define __ARCH_ARM_SRC_STM32G4_HARDWARE_STM32_PINMAP_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include "hardware/stm32g4xxxx_pinmap.h"
+
+#endif /* __ARCH_ARM_SRC_STM32G4_HARDWARE_STM32_PINMAP_H */
diff --git a/arch/arm/src/stm32/hardware/stm32g47xxx_hrtim.h 
b/arch/arm/src/stm32g4/hardware/stm32g47xxx_hrtim.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g47xxx_hrtim.h
rename to arch/arm/src/stm32g4/hardware/stm32g47xxx_hrtim.h
index 4e2a6445bfa..21a1dc772c5 100644
--- a/arch/arm/src/stm32/hardware/stm32g47xxx_hrtim.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g47xxx_hrtim.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g47xxx_hrtim.h
+ * arch/arm/src/stm32g4/hardware/stm32g47xxx_hrtim.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxc_pinmap.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxc_pinmap.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g4xxc_pinmap.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxc_pinmap.h
index ce520496590..6712ccc160f 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxc_pinmap.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxc_pinmap.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxc_pinmap.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxc_pinmap.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxk_pinmap.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxk_pinmap.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g4xxk_pinmap.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxk_pinmap.h
index 44701877d52..0061b3e7fd4 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxk_pinmap.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxk_pinmap.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxk_pinmap.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxk_pinmap.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxm_pinmap.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxm_pinmap.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g4xxm_pinmap.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxm_pinmap.h
index 1f28684b136..c8ef978d5cc 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxm_pinmap.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxm_pinmap.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxm_pinmap.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxm_pinmap.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxp_pinmap.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxp_pinmap.h
similarity index 96%
rename from arch/arm/src/stm32/hardware/stm32g4xxp_pinmap.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxp_pinmap.h
index 860e449abac..2d3ad178534 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxp_pinmap.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxp_pinmap.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxp_pinmap.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxp_pinmap.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxq_pinmap.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxq_pinmap.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g4xxq_pinmap.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxq_pinmap.h
index 82d1c4b8642..92b1d059c20 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxq_pinmap.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxq_pinmap.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxq_pinmap.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxq_pinmap.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxr_pinmap.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxr_pinmap.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g4xxr_pinmap.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxr_pinmap.h
index 53806263bc7..009b98fe1f5 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxr_pinmap.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxr_pinmap.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxr_pinmap.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxr_pinmap.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxv_pinmap.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxv_pinmap.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g4xxv_pinmap.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxv_pinmap.h
index a6cd76129e0..78197031a2c 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxv_pinmap.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxv_pinmap.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxv_pinmap.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxv_pinmap.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxxx_comp.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_comp.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g4xxxx_comp.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxxx_comp.h
index 4a9ec781e07..aff65335c07 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxxx_comp.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_comp.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxxx_comp.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxxx_comp.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxxx_cordic.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_cordic.h
similarity index 98%
rename from arch/arm/src/stm32/hardware/stm32g4xxxx_cordic.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxxx_cordic.h
index c0e5c6669cb..d664710669c 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxxx_cordic.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_cordic.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxxx_cordic.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxxx_cordic.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxxx_dmamux.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_dmamux.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g4xxxx_dmamux.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxxx_dmamux.h
index a5d58546c6c..7e7c994dc30 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxxx_dmamux.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_dmamux.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxxx_dmamux.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxxx_dmamux.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxxx_gpio.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_gpio.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g4xxxx_gpio.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxxx_gpio.h
index 661060cb876..7136812cdf6 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxxx_gpio.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_gpio.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxxx_gpio.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxxx_gpio.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxxx_memorymap.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_memorymap.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g4xxxx_memorymap.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxxx_memorymap.h
index e0d72cf4cf1..fe1b4330269 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxxx_memorymap.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_memorymap.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxxx_memorymap.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxxx_memorymap.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxxx_opamp.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_opamp.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g4xxxx_opamp.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxxx_opamp.h
index 89cddf6e59b..d607bd4d2b5 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxxx_opamp.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_opamp.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxxx_opamp.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxxx_opamp.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxxx_pinmap.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_pinmap.h
similarity index 97%
rename from arch/arm/src/stm32/hardware/stm32g4xxxx_pinmap.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxxx_pinmap.h
index b8a5dc9546c..04f177f6ce8 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxxx_pinmap.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_pinmap.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxxx_pinmap.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxxx_pinmap.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxxx_pwr.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_pwr.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g4xxxx_pwr.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxxx_pwr.h
index c5af4b8e157..20bf5247308 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxxx_pwr.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_pwr.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxxx_pwr.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxxx_pwr.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxxx_rcc.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_rcc.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g4xxxx_rcc.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxxx_rcc.h
index 543d369f3eb..6070eeea00f 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxxx_rcc.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_rcc.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxxx_rcc.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxxx_rcc.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxxx_syscfg.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_syscfg.h
similarity index 99%
rename from arch/arm/src/stm32/hardware/stm32g4xxxx_syscfg.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxxx_syscfg.h
index a7fdf99c74b..4de4a00d94e 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxxx_syscfg.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_syscfg.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxxx_syscfg.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxxx_syscfg.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/arch/arm/src/stm32/hardware/stm32g4xxxx_vrefbuf.h 
b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_vrefbuf.h
similarity index 98%
rename from arch/arm/src/stm32/hardware/stm32g4xxxx_vrefbuf.h
rename to arch/arm/src/stm32g4/hardware/stm32g4xxxx_vrefbuf.h
index 5591bfe744a..4b3d532c27f 100644
--- a/arch/arm/src/stm32/hardware/stm32g4xxxx_vrefbuf.h
+++ b/arch/arm/src/stm32g4/hardware/stm32g4xxxx_vrefbuf.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/hardware/stm32g4xxxx_vrefbuf.h
+ * arch/arm/src/stm32g4/hardware/stm32g4xxxx_vrefbuf.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g474re/src/stm32_usbdev.c 
b/arch/arm/src/stm32g4/stm32.h
similarity index 57%
copy from boards/arm/stm32/nucleo-g474re/src/stm32_usbdev.c
copy to arch/arm/src/stm32g4/stm32.h
index 898d118a8e7..07776d68275 100644
--- a/boards/arm/stm32/nucleo-g474re/src/stm32_usbdev.c
+++ b/arch/arm/src/stm32g4/stm32.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g474re/src/stm32_usbdev.c
+ * arch/arm/src/stm32g4/stm32.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -20,40 +20,50 @@
  *
  ****************************************************************************/
 
+#ifndef __ARCH_ARM_SRC_STM32_STM32_H
+#define __ARCH_ARM_SRC_STM32_STM32_H
+
 /****************************************************************************
  * Included Files
  ****************************************************************************/
 
 #include <nuttx/config.h>
-
 #include <sys/types.h>
 #include <stdint.h>
 #include <stdbool.h>
-#include <nuttx/debug.h>
-
-#include <nuttx/usb/usbdev.h>
-#include <nuttx/usb/usbdev_trace.h>
 
 #include "arm_internal.h"
-#include "stm32.h"
-#include "nucleo-g474re.h"
 
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
+/* Peripherals **************************************************************/
 
-/****************************************************************************
- * Name:  stm32_usbsuspend
- *
- * Description:
- *   Board logic must provide the stm32_usbsuspend logic if the USBDEV driver
- *   is used.  This function is called whenever the USB enters or leaves
- *   suspend mode. This is an opportunity for the board logic to shutdown
- *   clocks, power, etc. while the USB is suspended.
- *
- ****************************************************************************/
+#include "chip.h"
+#include "stm32_adc.h"
+#include "stm32_can.h"
+#include "stm32_comp.h"
+#include "stm32_dbgmcu.h"
+#include "stm32_dma.h"
+#include "stm32_dac_m3m4_v1.h"
+#include "stm32_exti.h"
+#include "stm32_flash.h"
+#include "stm32_fmc_m3m4_v1.h"
+#include "stm32_fsmc_m3m4_v1.h"
+#include "stm32_gpio.h"
+#include "stm32_i2c.h"
+#include "stm32_ltdc_m3m4_v1.h"
+#include "stm32_opamp_m3m4_v1.h"
+#include "stm32_pwr.h"
+#include "stm32_rcc.h"
+#include "stm32_rtc.h"
+#include "stm32_sdio_m3m4_v1.h"
+#include "stm32_spi.h"
+#include "stm32_i2s.h"
+#include "stm32_tim.h"
+#include "stm32_uart.h"
+#if defined(CONFIG_USBDEV) && defined(CONFIG_STM32_USB)
+#  include "stm32_usbdev.h"
+#endif
+#include "stm32_wdg.h"
+#include "stm32_lowputc.h"
+#include "stm32_eth_m3m4_v1.h"
 
-void stm32_usbsuspend(struct usbdev_s *dev, bool resume)
-{
-  uinfo("resume: %d\n", resume);
-}
+#endif /* __ARCH_ARM_SRC_STM32_STM32_H */
diff --git a/arch/arm/src/stm32g4/stm32_rcc.c b/arch/arm/src/stm32g4/stm32_rcc.c
new file mode 100644
index 00000000000..49cfab73fb9
--- /dev/null
+++ b/arch/arm/src/stm32g4/stm32_rcc.c
@@ -0,0 +1,234 @@
+/****************************************************************************
+ * arch/arm/src/stm32g4/stm32_rcc.c
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdio.h>
+#include <assert.h>
+#include <nuttx/debug.h>
+
+#include <arch/board/board.h>
+
+#include "arm_internal.h"
+#include "chip.h"
+#include "stm32_gpio.h"
+#include "stm32_rcc.h"
+#include "stm32_rtc.h"
+#include "stm32_flash.h"
+#include "stm32.h"
+#include "stm32_waste.h"
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+static_assert(CONFIG_BOARD_LOOPSPERMSEC != -1,
+              "Configure BOARD_LOOPSPERMSEC to non-default value.");
+
+/* Allow up to 100 milliseconds for the high speed clock to become ready.
+ * that is a very long delay, but if the clock does not become ready we are
+ * hosed anyway.
+ */
+
+#define HSERDY_TIMEOUT (100 * CONFIG_BOARD_LOOPSPERMSEC)
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+/* Include chip-specific clocking initialization logic */
+
+#include "stm32g4xxxx_rcc.c"
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+#if defined(CONFIG_STM32_STM32L15XX)
+#  define STM32_RCC_XXX      STM32_RCC_CSR
+#  define RCC_XXX_YYYRST     RCC_CSR_RTCRST
+#else
+#  define STM32_RCC_XXX      STM32_RCC_BDCR
+#  define RCC_XXX_YYYRST     RCC_BDCR_BDRST
+#endif
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: rcc_resetbkp
+ *
+ * Description:
+ *   The RTC needs to reset the Backup Domain to change RTCSEL and resetting
+ *   the Backup Domain renders to disabling the LSE as consequence.
+ *   In order to avoid resetting the Backup Domain when we already
+ *   configured LSE we will reset the Backup Domain early (here).
+ *
+ * Input Parameters:
+ *   None
+ *
+ * Returned Value:
+ *   None
+ *
+ ****************************************************************************/
+
+#if defined(CONFIG_STM32_RTC) && defined(CONFIG_STM32_PWR) && 
!defined(CONFIG_STM32_STM32F10XX)
+static inline void rcc_resetbkp(void)
+{
+  uint32_t regval;
+
+  /* Check if the RTC is already configured */
+
+  stm32_pwr_initbkp(false);
+
+  regval = getreg32(RTC_MAGIC_REG);
+  if (regval != RTC_MAGIC && regval != RTC_MAGIC_TIME_SET)
+    {
+      stm32_pwr_enablebkp(true);
+
+      /* We might be changing RTCSEL - to ensure such changes work, we must
+       * reset the backup domain (having backed up the RTC_MAGIC token)
+       */
+
+      modifyreg32(STM32_RCC_XXX, 0, RCC_XXX_YYYRST);
+      modifyreg32(STM32_RCC_XXX, RCC_XXX_YYYRST, 0);
+
+      stm32_pwr_enablebkp(false);
+    }
+}
+#else
+#  define rcc_resetbkp()
+#endif
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: stm32_clockconfig
+ *
+ * Description:
+ *   Called to establish the clock settings based on the values in board.h.
+ *   This function (by default) will reset most everything, enable the PLL,
+ *   and enable peripheral clocking for all peripherals enabled in the NuttX
+ *   configuration file.
+ *
+ *   If CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG is defined, then clocking
+ *   will be enabled by an externally provided, board-specific function
+ *   called stm32_board_clockconfig().
+ *
+ * Input Parameters:
+ *   None
+ *
+ * Returned Value:
+ *   None
+ *
+ ****************************************************************************/
+
+void stm32_clockconfig(void)
+{
+  /* Make sure that we are starting in the reset state */
+
+  rcc_reset();
+
+  /* Reset backup domain if appropriate */
+
+  rcc_resetbkp();
+
+#if defined(CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG)
+
+  /* Invoke Board Custom Clock Configuration */
+
+  stm32_board_clockconfig();
+
+#else
+
+  /* Invoke standard, fixed clock configuration based on definitions
+   * in board.h
+   */
+
+  stm32_stdclockconfig();
+
+#endif
+
+  /* Enable peripheral clocking */
+
+  rcc_enableperipherals();
+
+#ifdef CONFIG_STM32_SYSCFG_IOCOMPENSATION
+  /* Enable I/O Compensation */
+
+  stm32_iocompensation();
+#endif
+}
+
+/****************************************************************************
+ * Name: stm32_clockenable
+ *
+ * Description:
+ *   Re-enable the clock and restore the clock settings based on settings
+ *   in board.h. This function is only available to support low-power
+ *   modes of operation:  When re-awakening from deep-sleep modes, it is
+ *   necessary to re-enable/re-start the PLL
+ *
+ *   This functional performs a subset of the operations performed by
+ *   stm32_clockconfig():  It does not reset any devices, and it does not
+ *   reset the currently enabled peripheral clocks.
+ *
+ *   If CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG is defined, then clocking
+ *   will be enabled by an externally provided, board-specific function
+ *   called stm32_board_clockconfig().
+ *
+ * Input Parameters:
+ *   None
+ *
+ * Returned Value:
+ *   None
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_PM
+void stm32_clockenable(void)
+{
+#if defined(CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG)
+
+  /* Invoke Board Custom Clock Configuration */
+
+  stm32_board_clockconfig();
+
+#else
+
+  /* Invoke standard, fixed clock configuration based on definitions
+   * in board.h
+   */
+
+  stm32_stdclockconfig();
+
+#endif
+}
+#endif
diff --git a/arch/arm/src/stm32/stm32g4xxxx_rcc.c 
b/arch/arm/src/stm32g4/stm32g4xxxx_rcc.c
similarity index 99%
rename from arch/arm/src/stm32/stm32g4xxxx_rcc.c
rename to arch/arm/src/stm32g4/stm32g4xxxx_rcc.c
index 8f937465778..f92d785d742 100644
--- a/arch/arm/src/stm32/stm32g4xxxx_rcc.c
+++ b/arch/arm/src/stm32g4/stm32g4xxxx_rcc.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/stm32/stm32g4xxxx_rcc.c
+ * arch/arm/src/stm32g4/stm32g4xxxx_rcc.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt 
b/boards/arm/stm32g4/b-g431b-esc1/CMakeLists.txt
similarity index 95%
copy from boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
copy to boards/arm/stm32g4/b-g431b-esc1/CMakeLists.txt
index f0b7d812e44..c06c5331c11 100644
--- a/boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
+++ b/boards/arm/stm32g4/b-g431b-esc1/CMakeLists.txt
@@ -1,5 +1,5 @@
 # 
##############################################################################
-# boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
+# boards/arm/stm32g4/b-g431b-esc1/CMakeLists.txt
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/b-g431b-esc1/Kconfig 
b/boards/arm/stm32g4/b-g431b-esc1/Kconfig
similarity index 100%
rename from boards/arm/stm32/b-g431b-esc1/Kconfig
rename to boards/arm/stm32g4/b-g431b-esc1/Kconfig
diff --git a/boards/arm/stm32/b-g431b-esc1/configs/can/defconfig 
b/boards/arm/stm32g4/b-g431b-esc1/configs/can/defconfig
similarity index 98%
rename from boards/arm/stm32/b-g431b-esc1/configs/can/defconfig
rename to boards/arm/stm32g4/b-g431b-esc1/configs/can/defconfig
index 17b32fcb9bb..87e330cdcf3 100644
--- a/boards/arm/stm32/b-g431b-esc1/configs/can/defconfig
+++ b/boards/arm/stm32g4/b-g431b-esc1/configs/can/defconfig
@@ -14,7 +14,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="b-g431b-esc1"
 CONFIG_ARCH_BOARD_B_G431B_ESC1=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431C=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/b-g431b-esc1/configs/cansock/defconfig 
b/boards/arm/stm32g4/b-g431b-esc1/configs/cansock/defconfig
similarity index 98%
rename from boards/arm/stm32/b-g431b-esc1/configs/cansock/defconfig
rename to boards/arm/stm32g4/b-g431b-esc1/configs/cansock/defconfig
index 373cdc11f37..320b24936f0 100644
--- a/boards/arm/stm32/b-g431b-esc1/configs/cansock/defconfig
+++ b/boards/arm/stm32g4/b-g431b-esc1/configs/cansock/defconfig
@@ -12,7 +12,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="b-g431b-esc1"
 CONFIG_ARCH_BOARD_B_G431B_ESC1=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431C=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/b-g431b-esc1/configs/foc_b16/defconfig 
b/boards/arm/stm32g4/b-g431b-esc1/configs/foc_b16/defconfig
similarity index 98%
rename from boards/arm/stm32/b-g431b-esc1/configs/foc_b16/defconfig
rename to boards/arm/stm32g4/b-g431b-esc1/configs/foc_b16/defconfig
index a539b4674fc..d24c0ae4314 100644
--- a/boards/arm/stm32/b-g431b-esc1/configs/foc_b16/defconfig
+++ b/boards/arm/stm32g4/b-g431b-esc1/configs/foc_b16/defconfig
@@ -14,7 +14,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="b-g431b-esc1"
 CONFIG_ARCH_BOARD_B_G431B_ESC1=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431C=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/b-g431b-esc1/configs/foc_f32/defconfig 
b/boards/arm/stm32g4/b-g431b-esc1/configs/foc_f32/defconfig
similarity index 98%
rename from boards/arm/stm32/b-g431b-esc1/configs/foc_f32/defconfig
rename to boards/arm/stm32g4/b-g431b-esc1/configs/foc_f32/defconfig
index 83afe8d9abe..b8a719cfc1c 100644
--- a/boards/arm/stm32/b-g431b-esc1/configs/foc_f32/defconfig
+++ b/boards/arm/stm32g4/b-g431b-esc1/configs/foc_f32/defconfig
@@ -14,7 +14,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="b-g431b-esc1"
 CONFIG_ARCH_BOARD_B_G431B_ESC1=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431C=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/b-g431b-esc1/configs/nsh/defconfig 
b/boards/arm/stm32g4/b-g431b-esc1/configs/nsh/defconfig
similarity index 98%
rename from boards/arm/stm32/b-g431b-esc1/configs/nsh/defconfig
rename to boards/arm/stm32g4/b-g431b-esc1/configs/nsh/defconfig
index e90af74b545..89e273fb439 100644
--- a/boards/arm/stm32/b-g431b-esc1/configs/nsh/defconfig
+++ b/boards/arm/stm32g4/b-g431b-esc1/configs/nsh/defconfig
@@ -14,7 +14,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="b-g431b-esc1"
 CONFIG_ARCH_BOARD_B_G431B_ESC1=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431C=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/b-g431b-esc1/include/board.h 
b/boards/arm/stm32g4/b-g431b-esc1/include/board.h
similarity index 99%
rename from boards/arm/stm32/b-g431b-esc1/include/board.h
rename to boards/arm/stm32g4/b-g431b-esc1/include/board.h
index f5568827ce8..006e80f98f3 100644
--- a/boards/arm/stm32/b-g431b-esc1/include/board.h
+++ b/boards/arm/stm32g4/b-g431b-esc1/include/board.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g431b-esc1/include/board.h
+ * boards/arm/stm32g4/b-g431b-esc1/include/board.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g431b-esc1/scripts/Make.defs 
b/boards/arm/stm32g4/b-g431b-esc1/scripts/Make.defs
similarity index 97%
copy from boards/arm/stm32/b-g431b-esc1/scripts/Make.defs
copy to boards/arm/stm32g4/b-g431b-esc1/scripts/Make.defs
index 0a510303baa..79f59cc5dc2 100644
--- a/boards/arm/stm32/b-g431b-esc1/scripts/Make.defs
+++ b/boards/arm/stm32g4/b-g431b-esc1/scripts/Make.defs
@@ -1,5 +1,5 @@
 ############################################################################
-# boards/arm/stm32/b-g431b-esc1/scripts/Make.defs
+# boards/arm/stm32g4/b-g431b-esc1/scripts/Make.defs
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/b-g431b-esc1/scripts/ld.script 
b/boards/arm/stm32g4/b-g431b-esc1/scripts/ld.script
similarity index 98%
rename from boards/arm/stm32/b-g431b-esc1/scripts/ld.script
rename to boards/arm/stm32g4/b-g431b-esc1/scripts/ld.script
index aae24391abf..6eecf3272e4 100644
--- a/boards/arm/stm32/b-g431b-esc1/scripts/ld.script
+++ b/boards/arm/stm32g4/b-g431b-esc1/scripts/ld.script
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g431b-esc1/scripts/ld.script
+ * boards/arm/stm32g4/b-g431b-esc1/scripts/ld.script
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g431b-esc1/src/.gitignore 
b/boards/arm/stm32g4/b-g431b-esc1/src/.gitignore
similarity index 100%
rename from boards/arm/stm32/b-g431b-esc1/src/.gitignore
rename to boards/arm/stm32g4/b-g431b-esc1/src/.gitignore
diff --git a/boards/arm/stm32/b-g431b-esc1/src/CMakeLists.txt 
b/boards/arm/stm32g4/b-g431b-esc1/src/CMakeLists.txt
similarity index 96%
rename from boards/arm/stm32/b-g431b-esc1/src/CMakeLists.txt
rename to boards/arm/stm32g4/b-g431b-esc1/src/CMakeLists.txt
index 76a72b59c7a..3c5362a634c 100644
--- a/boards/arm/stm32/b-g431b-esc1/src/CMakeLists.txt
+++ b/boards/arm/stm32g4/b-g431b-esc1/src/CMakeLists.txt
@@ -1,5 +1,5 @@
 # 
##############################################################################
-# boards/arm/stm32/b-g431b-esc1/src/CMakeLists.txt
+# boards/arm/stm32g4/b-g431b-esc1/src/CMakeLists.txt
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/b-g431b-esc1/src/Make.defs 
b/boards/arm/stm32g4/b-g431b-esc1/src/Make.defs
similarity index 97%
rename from boards/arm/stm32/b-g431b-esc1/src/Make.defs
rename to boards/arm/stm32g4/b-g431b-esc1/src/Make.defs
index 2d49b9a66c9..04209293fc8 100644
--- a/boards/arm/stm32/b-g431b-esc1/src/Make.defs
+++ b/boards/arm/stm32g4/b-g431b-esc1/src/Make.defs
@@ -1,5 +1,5 @@
 ############################################################################
-# boards/arm/stm32/b-g431b-esc1/src/Make.defs
+# boards/arm/stm32g4/b-g431b-esc1/src/Make.defs
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/b-g431b-esc1/src/b-g431b-esc1.h 
b/boards/arm/stm32g4/b-g431b-esc1/src/b-g431b-esc1.h
similarity index 99%
rename from boards/arm/stm32/b-g431b-esc1/src/b-g431b-esc1.h
rename to boards/arm/stm32g4/b-g431b-esc1/src/b-g431b-esc1.h
index 40e7863bd06..708c07fdbd2 100644
--- a/boards/arm/stm32/b-g431b-esc1/src/b-g431b-esc1.h
+++ b/boards/arm/stm32g4/b-g431b-esc1/src/b-g431b-esc1.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g431b-esc1/src/b-g431b-esc1.h
+ * boards/arm/stm32g4/b-g431b-esc1/src/b-g431b-esc1.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g431b-esc1/src/stm32_autoleds.c 
b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_autoleds.c
similarity index 97%
rename from boards/arm/stm32/b-g431b-esc1/src/stm32_autoleds.c
rename to boards/arm/stm32g4/b-g431b-esc1/src/stm32_autoleds.c
index ec5bbf09cf5..23784ea51aa 100644
--- a/boards/arm/stm32/b-g431b-esc1/src/stm32_autoleds.c
+++ b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_autoleds.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g431b-esc1/src/stm32_autoleds.c
+ * boards/arm/stm32g4/b-g431b-esc1/src/stm32_autoleds.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g431b-esc1/src/stm32_boot.c 
b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_boot.c
similarity index 98%
rename from boards/arm/stm32/b-g431b-esc1/src/stm32_boot.c
rename to boards/arm/stm32g4/b-g431b-esc1/src/stm32_boot.c
index 12e9e93bf6e..09acc6b61f6 100644
--- a/boards/arm/stm32/b-g431b-esc1/src/stm32_boot.c
+++ b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_boot.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g431b-esc1/src/stm32_boot.c
+ * boards/arm/stm32g4/b-g431b-esc1/src/stm32_boot.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g431b-esc1/src/stm32_bringup.c 
b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_bringup.c
similarity index 98%
rename from boards/arm/stm32/b-g431b-esc1/src/stm32_bringup.c
rename to boards/arm/stm32g4/b-g431b-esc1/src/stm32_bringup.c
index 3b5cf90e926..8a4aed406f0 100644
--- a/boards/arm/stm32/b-g431b-esc1/src/stm32_bringup.c
+++ b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_bringup.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g431b-esc1/src/stm32_bringup.c
+ * boards/arm/stm32g4/b-g431b-esc1/src/stm32_bringup.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g431b-esc1/src/stm32_buttons.c 
b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_buttons.c
similarity index 98%
rename from boards/arm/stm32/b-g431b-esc1/src/stm32_buttons.c
rename to boards/arm/stm32g4/b-g431b-esc1/src/stm32_buttons.c
index 3e7c93b00f7..ac13875fa0c 100644
--- a/boards/arm/stm32/b-g431b-esc1/src/stm32_buttons.c
+++ b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_buttons.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g431b-esc1/src/stm32_buttons.c
+ * boards/arm/stm32g4/b-g431b-esc1/src/stm32_buttons.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g431b-esc1/src/stm32_can.c 
b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_can.c
similarity index 98%
rename from boards/arm/stm32/b-g431b-esc1/src/stm32_can.c
rename to boards/arm/stm32g4/b-g431b-esc1/src/stm32_can.c
index 5a8c005e9ba..7061003ba90 100644
--- a/boards/arm/stm32/b-g431b-esc1/src/stm32_can.c
+++ b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_can.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g431b-esc1/src/stm32_can.c
+ * boards/arm/stm32g4/b-g431b-esc1/src/stm32_can.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g431b-esc1/src/stm32_cansock.c 
b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_cansock.c
similarity index 97%
rename from boards/arm/stm32/b-g431b-esc1/src/stm32_cansock.c
rename to boards/arm/stm32g4/b-g431b-esc1/src/stm32_cansock.c
index 1841bc9e6cd..eb0d3acfdf2 100644
--- a/boards/arm/stm32/b-g431b-esc1/src/stm32_cansock.c
+++ b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_cansock.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g431b-esc1/src/stm32_cansock.c
+ * boards/arm/stm32g4/b-g431b-esc1/src/stm32_cansock.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g431b-esc1/src/stm32_foc.c 
b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_foc.c
similarity index 99%
rename from boards/arm/stm32/b-g431b-esc1/src/stm32_foc.c
rename to boards/arm/stm32g4/b-g431b-esc1/src/stm32_foc.c
index 6b22e655b38..c20d43a435e 100644
--- a/boards/arm/stm32/b-g431b-esc1/src/stm32_foc.c
+++ b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_foc.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g431b-esc1/src/stm32_foc.c
+ * boards/arm/stm32g4/b-g431b-esc1/src/stm32_foc.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g431b-esc1/src/stm32_userleds.c 
b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_userleds.c
similarity index 97%
rename from boards/arm/stm32/b-g431b-esc1/src/stm32_userleds.c
rename to boards/arm/stm32g4/b-g431b-esc1/src/stm32_userleds.c
index 2606087a8fa..debdfde7e98 100644
--- a/boards/arm/stm32/b-g431b-esc1/src/stm32_userleds.c
+++ b/boards/arm/stm32g4/b-g431b-esc1/src/stm32_userleds.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g431b-esc1/src/stm32_userleds.c
+ * boards/arm/stm32g4/b-g431b-esc1/src/stm32_userleds.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt 
b/boards/arm/stm32g4/b-g474e-dpow1/CMakeLists.txt
similarity index 95%
copy from boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
copy to boards/arm/stm32g4/b-g474e-dpow1/CMakeLists.txt
index f0b7d812e44..d5b7816aff5 100644
--- a/boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
+++ b/boards/arm/stm32g4/b-g474e-dpow1/CMakeLists.txt
@@ -1,5 +1,5 @@
 # 
##############################################################################
-# boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
+# boards/arm/stm32g4/b-g474e-dpow1/CMakeLists.txt
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/b-g474e-dpow1/Kconfig 
b/boards/arm/stm32g4/b-g474e-dpow1/Kconfig
similarity index 100%
rename from boards/arm/stm32/b-g474e-dpow1/Kconfig
rename to boards/arm/stm32g4/b-g474e-dpow1/Kconfig
diff --git a/boards/arm/stm32/b-g474e-dpow1/configs/buckboost/defconfig 
b/boards/arm/stm32g4/b-g474e-dpow1/configs/buckboost/defconfig
similarity index 98%
rename from boards/arm/stm32/b-g474e-dpow1/configs/buckboost/defconfig
rename to boards/arm/stm32g4/b-g474e-dpow1/configs/buckboost/defconfig
index fbccc190546..9bc515466ce 100644
--- a/boards/arm/stm32/b-g474e-dpow1/configs/buckboost/defconfig
+++ b/boards/arm/stm32g4/b-g474e-dpow1/configs/buckboost/defconfig
@@ -12,7 +12,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="b-g474e-dpow1"
 CONFIG_ARCH_BOARD_B_G474E_DPOW1=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G474R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/b-g474e-dpow1/configs/nsh/defconfig 
b/boards/arm/stm32g4/b-g474e-dpow1/configs/nsh/defconfig
similarity index 97%
rename from boards/arm/stm32/b-g474e-dpow1/configs/nsh/defconfig
rename to boards/arm/stm32g4/b-g474e-dpow1/configs/nsh/defconfig
index 4a06eef534f..f2c942f86db 100644
--- a/boards/arm/stm32/b-g474e-dpow1/configs/nsh/defconfig
+++ b/boards/arm/stm32g4/b-g474e-dpow1/configs/nsh/defconfig
@@ -11,7 +11,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="b-g474e-dpow1"
 CONFIG_ARCH_BOARD_B_G474E_DPOW1=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G474R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/b-g474e-dpow1/configs/ostest/defconfig 
b/boards/arm/stm32g4/b-g474e-dpow1/configs/ostest/defconfig
similarity index 97%
rename from boards/arm/stm32/b-g474e-dpow1/configs/ostest/defconfig
rename to boards/arm/stm32g4/b-g474e-dpow1/configs/ostest/defconfig
index f0062bba6a8..de16a9a8cab 100644
--- a/boards/arm/stm32/b-g474e-dpow1/configs/ostest/defconfig
+++ b/boards/arm/stm32g4/b-g474e-dpow1/configs/ostest/defconfig
@@ -11,7 +11,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="b-g474e-dpow1"
 CONFIG_ARCH_BOARD_B_G474E_DPOW1=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G474R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/b-g474e-dpow1/include/board.h 
b/boards/arm/stm32g4/b-g474e-dpow1/include/board.h
similarity index 99%
rename from boards/arm/stm32/b-g474e-dpow1/include/board.h
rename to boards/arm/stm32g4/b-g474e-dpow1/include/board.h
index 03a0e8edd1a..d06e0188bf6 100644
--- a/boards/arm/stm32/b-g474e-dpow1/include/board.h
+++ b/boards/arm/stm32g4/b-g474e-dpow1/include/board.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g474e-dpow1/include/board.h
+ * boards/arm/stm32g4/b-g474e-dpow1/include/board.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431kb/scripts/Make.defs 
b/boards/arm/stm32g4/b-g474e-dpow1/scripts/Make.defs
similarity index 97%
rename from boards/arm/stm32/nucleo-g431kb/scripts/Make.defs
rename to boards/arm/stm32g4/b-g474e-dpow1/scripts/Make.defs
index 569fe825159..a70ca28ceb5 100644
--- a/boards/arm/stm32/nucleo-g431kb/scripts/Make.defs
+++ b/boards/arm/stm32g4/b-g474e-dpow1/scripts/Make.defs
@@ -1,5 +1,5 @@
 ############################################################################
-# boards/arm/stm32/nucleo-g431kb/scripts/Make.defs
+# boards/arm/stm32g4/b-g474e-dpow1/scripts/Make.defs
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/b-g474e-dpow1/scripts/ld.script 
b/boards/arm/stm32g4/b-g474e-dpow1/scripts/ld.script
similarity index 98%
rename from boards/arm/stm32/b-g474e-dpow1/scripts/ld.script
rename to boards/arm/stm32g4/b-g474e-dpow1/scripts/ld.script
index 64c1953f7fc..94b8086bd49 100644
--- a/boards/arm/stm32/b-g474e-dpow1/scripts/ld.script
+++ b/boards/arm/stm32g4/b-g474e-dpow1/scripts/ld.script
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g474e-dpow1/scripts/ld.script
+ * boards/arm/stm32g4/b-g474e-dpow1/scripts/ld.script
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g474e-dpow1/scripts/ld.script.dfu 
b/boards/arm/stm32g4/b-g474e-dpow1/scripts/ld.script.dfu
similarity index 98%
rename from boards/arm/stm32/b-g474e-dpow1/scripts/ld.script.dfu
rename to boards/arm/stm32g4/b-g474e-dpow1/scripts/ld.script.dfu
index d27ca98a144..bef0887a3a8 100644
--- a/boards/arm/stm32/b-g474e-dpow1/scripts/ld.script.dfu
+++ b/boards/arm/stm32g4/b-g474e-dpow1/scripts/ld.script.dfu
@@ -1,5 +1,5 @@
 /****************************************************************************
- *  boards/arm/stm32/b-g474e-dpow1/scripts/ld.script
+ *  boards/arm/stm32g4/b-g474e-dpow1/scripts/ld.script
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g474e-dpow1/src/.gitignore 
b/boards/arm/stm32g4/b-g474e-dpow1/src/.gitignore
similarity index 100%
rename from boards/arm/stm32/b-g474e-dpow1/src/.gitignore
rename to boards/arm/stm32g4/b-g474e-dpow1/src/.gitignore
diff --git a/boards/arm/stm32/b-g474e-dpow1/src/CMakeLists.txt 
b/boards/arm/stm32g4/b-g474e-dpow1/src/CMakeLists.txt
similarity index 96%
rename from boards/arm/stm32/b-g474e-dpow1/src/CMakeLists.txt
rename to boards/arm/stm32g4/b-g474e-dpow1/src/CMakeLists.txt
index 87e3c2b6ee9..5a6c304b0f2 100644
--- a/boards/arm/stm32/b-g474e-dpow1/src/CMakeLists.txt
+++ b/boards/arm/stm32g4/b-g474e-dpow1/src/CMakeLists.txt
@@ -1,5 +1,5 @@
 # 
##############################################################################
-# boards/arm/stm32/b-g474e-dpow1/src/CMakeLists.txt
+# boards/arm/stm32g4/b-g474e-dpow1/src/CMakeLists.txt
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/b-g474e-dpow1/src/Make.defs 
b/boards/arm/stm32g4/b-g474e-dpow1/src/Make.defs
similarity index 96%
rename from boards/arm/stm32/b-g474e-dpow1/src/Make.defs
rename to boards/arm/stm32g4/b-g474e-dpow1/src/Make.defs
index e91f93fd7a5..172dcb8b099 100644
--- a/boards/arm/stm32/b-g474e-dpow1/src/Make.defs
+++ b/boards/arm/stm32g4/b-g474e-dpow1/src/Make.defs
@@ -1,5 +1,5 @@
 ############################################################################
-# boards/arm/stm32/b-g474e-dpow1/src/Make.defs
+# boards/arm/stm32g4/b-g474e-dpow1/src/Make.defs
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/b-g474e-dpow1/src/b-g474e-dpow1.h 
b/boards/arm/stm32g4/b-g474e-dpow1/src/b-g474e-dpow1.h
similarity index 98%
rename from boards/arm/stm32/b-g474e-dpow1/src/b-g474e-dpow1.h
rename to boards/arm/stm32g4/b-g474e-dpow1/src/b-g474e-dpow1.h
index f7c09937e7f..f981e5ed105 100644
--- a/boards/arm/stm32/b-g474e-dpow1/src/b-g474e-dpow1.h
+++ b/boards/arm/stm32g4/b-g474e-dpow1/src/b-g474e-dpow1.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g474e-dpow1/src/b-g474e-dpow1.h
+ * boards/arm/stm32g4/b-g474e-dpow1/src/b-g474e-dpow1.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g474e-dpow1/src/stm32_autoleds.c 
b/boards/arm/stm32g4/b-g474e-dpow1/src/stm32_autoleds.c
similarity index 98%
rename from boards/arm/stm32/b-g474e-dpow1/src/stm32_autoleds.c
rename to boards/arm/stm32g4/b-g474e-dpow1/src/stm32_autoleds.c
index 1591f068d43..41f87f2130b 100644
--- a/boards/arm/stm32/b-g474e-dpow1/src/stm32_autoleds.c
+++ b/boards/arm/stm32g4/b-g474e-dpow1/src/stm32_autoleds.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g474e-dpow1/src/stm32_autoleds.c
+ * boards/arm/stm32g4/b-g474e-dpow1/src/stm32_autoleds.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g474e-dpow1/src/stm32_boot.c 
b/boards/arm/stm32g4/b-g474e-dpow1/src/stm32_boot.c
similarity index 98%
rename from boards/arm/stm32/b-g474e-dpow1/src/stm32_boot.c
rename to boards/arm/stm32g4/b-g474e-dpow1/src/stm32_boot.c
index f901b448b02..a7bbb7138b0 100644
--- a/boards/arm/stm32/b-g474e-dpow1/src/stm32_boot.c
+++ b/boards/arm/stm32g4/b-g474e-dpow1/src/stm32_boot.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g474e-dpow1/src/stm32_boot.c
+ * boards/arm/stm32g4/b-g474e-dpow1/src/stm32_boot.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g474e-dpow1/src/stm32_smps.c 
b/boards/arm/stm32g4/b-g474e-dpow1/src/stm32_smps.c
similarity index 99%
rename from boards/arm/stm32/b-g474e-dpow1/src/stm32_smps.c
rename to boards/arm/stm32g4/b-g474e-dpow1/src/stm32_smps.c
index b2496a63d85..9a51ba29084 100644
--- a/boards/arm/stm32/b-g474e-dpow1/src/stm32_smps.c
+++ b/boards/arm/stm32g4/b-g474e-dpow1/src/stm32_smps.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g474e-dpow1/src/stm32_smps.c
+ * boards/arm/stm32g4/b-g474e-dpow1/src/stm32_smps.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g474e-dpow1/src/stm32_userleds.c 
b/boards/arm/stm32g4/b-g474e-dpow1/src/stm32_userleds.c
similarity index 98%
rename from boards/arm/stm32/b-g474e-dpow1/src/stm32_userleds.c
rename to boards/arm/stm32g4/b-g474e-dpow1/src/stm32_userleds.c
index badccd03daa..c96b7278570 100644
--- a/boards/arm/stm32/b-g474e-dpow1/src/stm32_userleds.c
+++ b/boards/arm/stm32g4/b-g474e-dpow1/src/stm32_userleds.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/b-g474e-dpow1/src/stm32_userleds.c
+ * boards/arm/stm32g4/b-g474e-dpow1/src/stm32_userleds.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt 
b/boards/arm/stm32g4/common/CMakeLists.txt
similarity index 86%
copy from boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
copy to boards/arm/stm32g4/common/CMakeLists.txt
index f0b7d812e44..b3ddb9ace0f 100644
--- a/boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
+++ b/boards/arm/stm32g4/common/CMakeLists.txt
@@ -1,5 +1,5 @@
 # 
##############################################################################
-# boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
+# boards/arm/stm32g4/common/CMakeLists.txt
 #
 # SPDX-License-Identifier: Apache-2.0
 #
@@ -20,4 +20,6 @@
 #
 # 
##############################################################################
 
-add_subdirectory(src)
+if(CONFIG_ARCH_BOARD_COMMON)
+  add_subdirectory(${NUTTX_DIR}/boards/arm/common/stm32 stm32_common)
+endif()
diff --git a/boards/arm/stm32/nucleo-g431kb/Kconfig 
b/boards/arm/stm32g4/common/Kconfig
similarity index 68%
copy from boards/arm/stm32/nucleo-g431kb/Kconfig
copy to boards/arm/stm32g4/common/Kconfig
index cbd7b6a1ef4..5c48f62a025 100644
--- a/boards/arm/stm32/nucleo-g431kb/Kconfig
+++ b/boards/arm/stm32g4/common/Kconfig
@@ -3,6 +3,4 @@
 # see the file kconfig-language.txt in the NuttX tools repository.
 #
 
-if ARCH_BOARD_NUCLEO_G431KB
-
-endif # ARCH_BOARD_NUCLEO_G431KB
+source "boards/arm/common/stm32/Kconfig"
diff --git a/boards/arm/stm32/nucleo-g431kb/src/Make.defs 
b/boards/arm/stm32g4/common/Makefile
similarity index 63%
copy from boards/arm/stm32/nucleo-g431kb/src/Make.defs
copy to boards/arm/stm32g4/common/Makefile
index 7aa1045c6a8..d66ce54147b 100644
--- a/boards/arm/stm32/nucleo-g431kb/src/Make.defs
+++ b/boards/arm/stm32g4/common/Makefile
@@ -1,5 +1,5 @@
-############################################################################
-# boards/arm/stm32/nucleo-g431kb/src/Make.defs
+#############################################################################
+# boards/arm/stm32g4/common/Makefile
 #
 # SPDX-License-Identifier: Apache-2.0
 #
@@ -18,31 +18,21 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 #
-############################################################################
+#############################################################################
 
 include $(TOPDIR)/Make.defs
 
-ASRCS =
-CSRCS = stm32_boot.c stm32_bringup.c
+STM32_BOARD_COMMON_DIR := 
$(TOPDIR)$(DELIM)boards$(DELIM)arm$(DELIM)common$(DELIM)stm32
+STM32_COMMON_SRCDIR := 
$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)common$(DELIM)stm32
 
-ifeq ($(CONFIG_ARCH_LEDS),y)
-CSRCS += stm32_autoleds.c
-else
-CSRCS += stm32_userleds.c
-endif
+include board/Make.defs
+include $(STM32_BOARD_COMMON_DIR)$(DELIM)src$(DELIM)Make.defs
 
-ifeq ($(CONFIG_PWM),y)
-CSRCS += stm32_pwm.c
-endif
-
-ifeq ($(CONFIG_STM32_COMP),y)
-CSRCS += stm32_comp.c
-endif
+DEPPATH += --dep-path board
 
-ifeq ($(CONFIG_STM32_DAC),y)
-CSRCS += stm32_dac.c
-endif
+include $(TOPDIR)/boards/Board.mk
 
-DEPPATH += --dep-path board
-VPATH += :board
-CFLAGS += 
${INCDIR_PREFIX}$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)board
+ARCHSRCDIR = $(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src
+BOARDDIR = $(ARCHSRCDIR)$(DELIM)board
+CFLAGS += ${INCDIR_PREFIX}$(BOARDDIR)$(DELIM)include
+CFLAGS += ${INCDIR_PREFIX}$(STM32_COMMON_SRCDIR)
diff --git a/boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt 
b/boards/arm/stm32g4/nucleo-g431kb/CMakeLists.txt
similarity index 95%
copy from boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
copy to boards/arm/stm32g4/nucleo-g431kb/CMakeLists.txt
index f0b7d812e44..2b117337231 100644
--- a/boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
+++ b/boards/arm/stm32g4/nucleo-g431kb/CMakeLists.txt
@@ -1,5 +1,5 @@
 # 
##############################################################################
-# boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
+# boards/arm/stm32g4/nucleo-g431kb/CMakeLists.txt
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/nucleo-g431kb/Kconfig 
b/boards/arm/stm32g4/nucleo-g431kb/Kconfig
similarity index 100%
rename from boards/arm/stm32/nucleo-g431kb/Kconfig
rename to boards/arm/stm32g4/nucleo-g431kb/Kconfig
diff --git a/boards/arm/stm32/nucleo-g431kb/configs/comp/defconfig 
b/boards/arm/stm32g4/nucleo-g431kb/configs/comp/defconfig
similarity index 97%
rename from boards/arm/stm32/nucleo-g431kb/configs/comp/defconfig
rename to boards/arm/stm32g4/nucleo-g431kb/configs/comp/defconfig
index 19ef6fb3b3a..d47e5c3e774 100644
--- a/boards/arm/stm32/nucleo-g431kb/configs/comp/defconfig
+++ b/boards/arm/stm32g4/nucleo-g431kb/configs/comp/defconfig
@@ -9,7 +9,7 @@ CONFIG_ANALOG=y
 CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="nucleo-g431kb"
 CONFIG_ARCH_BOARD_NUCLEO_G431KB=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431K=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g431kb/configs/nsh/defconfig 
b/boards/arm/stm32g4/nucleo-g431kb/configs/nsh/defconfig
similarity index 97%
rename from boards/arm/stm32/nucleo-g431kb/configs/nsh/defconfig
rename to boards/arm/stm32g4/nucleo-g431kb/configs/nsh/defconfig
index 71d86817a14..e848946ed7e 100644
--- a/boards/arm/stm32/nucleo-g431kb/configs/nsh/defconfig
+++ b/boards/arm/stm32g4/nucleo-g431kb/configs/nsh/defconfig
@@ -13,7 +13,7 @@
 CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="nucleo-g431kb"
 CONFIG_ARCH_BOARD_NUCLEO_G431KB=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431K=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g431kb/configs/pwm/defconfig 
b/boards/arm/stm32g4/nucleo-g431kb/configs/pwm/defconfig
similarity index 97%
rename from boards/arm/stm32/nucleo-g431kb/configs/pwm/defconfig
rename to boards/arm/stm32g4/nucleo-g431kb/configs/pwm/defconfig
index 03c3f4463e2..8fbb0dc6b87 100644
--- a/boards/arm/stm32/nucleo-g431kb/configs/pwm/defconfig
+++ b/boards/arm/stm32g4/nucleo-g431kb/configs/pwm/defconfig
@@ -8,7 +8,7 @@
 CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="nucleo-g431kb"
 CONFIG_ARCH_BOARD_NUCLEO_G431KB=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431K=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g431kb/include/board.h 
b/boards/arm/stm32g4/nucleo-g431kb/include/board.h
similarity index 99%
rename from boards/arm/stm32/nucleo-g431kb/include/board.h
rename to boards/arm/stm32g4/nucleo-g431kb/include/board.h
index c5e339abd03..c3a80f1c312 100644
--- a/boards/arm/stm32/nucleo-g431kb/include/board.h
+++ b/boards/arm/stm32g4/nucleo-g431kb/include/board.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431kb/include/board.h
+ * boards/arm/stm32g4/nucleo-g431kb/include/board.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431rb/scripts/Make.defs 
b/boards/arm/stm32g4/nucleo-g431kb/scripts/Make.defs
similarity index 97%
rename from boards/arm/stm32/nucleo-g431rb/scripts/Make.defs
rename to boards/arm/stm32g4/nucleo-g431kb/scripts/Make.defs
index 43067ac1b19..0018145617a 100644
--- a/boards/arm/stm32/nucleo-g431rb/scripts/Make.defs
+++ b/boards/arm/stm32g4/nucleo-g431kb/scripts/Make.defs
@@ -1,5 +1,5 @@
 ############################################################################
-# boards/arm/stm32/nucleo-g431rb/scripts/Make.defs
+# boards/arm/stm32g4/nucleo-g431kb/scripts/Make.defs
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/nucleo-g431kb/scripts/ld.script 
b/boards/arm/stm32g4/nucleo-g431kb/scripts/ld.script
similarity index 98%
rename from boards/arm/stm32/nucleo-g431kb/scripts/ld.script
rename to boards/arm/stm32g4/nucleo-g431kb/scripts/ld.script
index b7f4d0667e9..4c8eebff5b1 100644
--- a/boards/arm/stm32/nucleo-g431kb/scripts/ld.script
+++ b/boards/arm/stm32g4/nucleo-g431kb/scripts/ld.script
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431kb/scripts/ld.script
+ * boards/arm/stm32g4/nucleo-g431kb/scripts/ld.script
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431kb/src/.gitignore 
b/boards/arm/stm32g4/nucleo-g431kb/src/.gitignore
similarity index 100%
rename from boards/arm/stm32/nucleo-g431kb/src/.gitignore
rename to boards/arm/stm32g4/nucleo-g431kb/src/.gitignore
diff --git a/boards/arm/stm32/nucleo-g431kb/src/CMakeLists.txt 
b/boards/arm/stm32g4/nucleo-g431kb/src/CMakeLists.txt
similarity index 96%
rename from boards/arm/stm32/nucleo-g431kb/src/CMakeLists.txt
rename to boards/arm/stm32g4/nucleo-g431kb/src/CMakeLists.txt
index e45962dfe20..eb079f99567 100644
--- a/boards/arm/stm32/nucleo-g431kb/src/CMakeLists.txt
+++ b/boards/arm/stm32g4/nucleo-g431kb/src/CMakeLists.txt
@@ -1,5 +1,5 @@
 # 
##############################################################################
-# boards/arm/stm32/nucleo-g431kb/src/CMakeLists.txt
+# boards/arm/stm32g4/nucleo-g431kb/src/CMakeLists.txt
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/nucleo-g431kb/src/Make.defs 
b/boards/arm/stm32g4/nucleo-g431kb/src/Make.defs
similarity index 96%
rename from boards/arm/stm32/nucleo-g431kb/src/Make.defs
rename to boards/arm/stm32g4/nucleo-g431kb/src/Make.defs
index 7aa1045c6a8..d0b9afc1629 100644
--- a/boards/arm/stm32/nucleo-g431kb/src/Make.defs
+++ b/boards/arm/stm32g4/nucleo-g431kb/src/Make.defs
@@ -1,5 +1,5 @@
 ############################################################################
-# boards/arm/stm32/nucleo-g431kb/src/Make.defs
+# boards/arm/stm32g4/nucleo-g431kb/src/Make.defs
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/nucleo-g431kb/src/nucleo-g431kb.h 
b/boards/arm/stm32g4/nucleo-g431kb/src/nucleo-g431kb.h
similarity index 98%
rename from boards/arm/stm32/nucleo-g431kb/src/nucleo-g431kb.h
rename to boards/arm/stm32g4/nucleo-g431kb/src/nucleo-g431kb.h
index 147f4c3479d..79f0f56b472 100644
--- a/boards/arm/stm32/nucleo-g431kb/src/nucleo-g431kb.h
+++ b/boards/arm/stm32g4/nucleo-g431kb/src/nucleo-g431kb.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431kb/src/nucleo-g431kb.h
+ * boards/arm/stm32g4/nucleo-g431kb/src/nucleo-g431kb.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431kb/src/stm32_autoleds.c 
b/boards/arm/stm32g4/nucleo-g431kb/src/stm32_autoleds.c
similarity index 97%
rename from boards/arm/stm32/nucleo-g431kb/src/stm32_autoleds.c
rename to boards/arm/stm32g4/nucleo-g431kb/src/stm32_autoleds.c
index fbb97ddcaeb..918b2ad9fbf 100644
--- a/boards/arm/stm32/nucleo-g431kb/src/stm32_autoleds.c
+++ b/boards/arm/stm32g4/nucleo-g431kb/src/stm32_autoleds.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431kb/src/stm32_autoleds.c
+ * boards/arm/stm32g4/nucleo-g431kb/src/stm32_autoleds.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431kb/src/stm32_boot.c 
b/boards/arm/stm32g4/nucleo-g431kb/src/stm32_boot.c
similarity index 98%
rename from boards/arm/stm32/nucleo-g431kb/src/stm32_boot.c
rename to boards/arm/stm32g4/nucleo-g431kb/src/stm32_boot.c
index 4a75293c2de..3b9024b9b1f 100644
--- a/boards/arm/stm32/nucleo-g431kb/src/stm32_boot.c
+++ b/boards/arm/stm32g4/nucleo-g431kb/src/stm32_boot.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431kb/src/stm32_boot.c
+ * boards/arm/stm32g4/nucleo-g431kb/src/stm32_boot.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431kb/src/stm32_bringup.c 
b/boards/arm/stm32g4/nucleo-g431kb/src/stm32_bringup.c
similarity index 98%
rename from boards/arm/stm32/nucleo-g431kb/src/stm32_bringup.c
rename to boards/arm/stm32g4/nucleo-g431kb/src/stm32_bringup.c
index 7def155d655..c20ef2f5cdd 100644
--- a/boards/arm/stm32/nucleo-g431kb/src/stm32_bringup.c
+++ b/boards/arm/stm32g4/nucleo-g431kb/src/stm32_bringup.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431kb/src/stm32_bringup.c
+ * boards/arm/stm32g4/nucleo-g431kb/src/stm32_bringup.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431kb/src/stm32_comp.c 
b/boards/arm/stm32g4/nucleo-g431kb/src/stm32_comp.c
similarity index 98%
rename from boards/arm/stm32/nucleo-g431kb/src/stm32_comp.c
rename to boards/arm/stm32g4/nucleo-g431kb/src/stm32_comp.c
index 077454afccd..17cb1960b99 100644
--- a/boards/arm/stm32/nucleo-g431kb/src/stm32_comp.c
+++ b/boards/arm/stm32g4/nucleo-g431kb/src/stm32_comp.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431kb/src/stm32_comp.c
+ * boards/arm/stm32g4/nucleo-g431kb/src/stm32_comp.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431kb/src/stm32_dac.c 
b/boards/arm/stm32g4/nucleo-g431kb/src/stm32_dac.c
similarity index 98%
rename from boards/arm/stm32/nucleo-g431kb/src/stm32_dac.c
rename to boards/arm/stm32g4/nucleo-g431kb/src/stm32_dac.c
index 97790997116..c67d3d78edf 100644
--- a/boards/arm/stm32/nucleo-g431kb/src/stm32_dac.c
+++ b/boards/arm/stm32g4/nucleo-g431kb/src/stm32_dac.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431kb/src/stm32_dac.c
+ * boards/arm/stm32g4/nucleo-g431kb/src/stm32_dac.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431kb/src/stm32_pwm.c 
b/boards/arm/stm32g4/nucleo-g431kb/src/stm32_pwm.c
similarity index 98%
rename from boards/arm/stm32/nucleo-g431kb/src/stm32_pwm.c
rename to boards/arm/stm32g4/nucleo-g431kb/src/stm32_pwm.c
index 01ae0c92765..b20b3c2dcad 100644
--- a/boards/arm/stm32/nucleo-g431kb/src/stm32_pwm.c
+++ b/boards/arm/stm32g4/nucleo-g431kb/src/stm32_pwm.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431kb/src/stm32_pwm.c
+ * boards/arm/stm32g4/nucleo-g431kb/src/stm32_pwm.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431kb/src/stm32_userleds.c 
b/boards/arm/stm32g4/nucleo-g431kb/src/stm32_userleds.c
similarity index 97%
rename from boards/arm/stm32/nucleo-g431kb/src/stm32_userleds.c
rename to boards/arm/stm32g4/nucleo-g431kb/src/stm32_userleds.c
index 072ae0166ae..2d20146d07e 100644
--- a/boards/arm/stm32/nucleo-g431kb/src/stm32_userleds.c
+++ b/boards/arm/stm32g4/nucleo-g431kb/src/stm32_userleds.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431kb/src/stm32_userleds.c
+ * boards/arm/stm32g4/nucleo-g431kb/src/stm32_userleds.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt 
b/boards/arm/stm32g4/nucleo-g431rb/CMakeLists.txt
similarity index 95%
copy from boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
copy to boards/arm/stm32g4/nucleo-g431rb/CMakeLists.txt
index f0b7d812e44..bc497249c83 100644
--- a/boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
+++ b/boards/arm/stm32g4/nucleo-g431rb/CMakeLists.txt
@@ -1,5 +1,5 @@
 # 
##############################################################################
-# boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
+# boards/arm/stm32g4/nucleo-g431rb/CMakeLists.txt
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/nucleo-g431rb/Kconfig 
b/boards/arm/stm32g4/nucleo-g431rb/Kconfig
similarity index 100%
rename from boards/arm/stm32/nucleo-g431rb/Kconfig
rename to boards/arm/stm32g4/nucleo-g431rb/Kconfig
diff --git a/boards/arm/stm32/nucleo-g431rb/configs/adc/defconfig 
b/boards/arm/stm32g4/nucleo-g431rb/configs/adc/defconfig
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/configs/adc/defconfig
rename to boards/arm/stm32g4/nucleo-g431rb/configs/adc/defconfig
index c275012af8b..2154e927ac4 100644
--- a/boards/arm/stm32/nucleo-g431rb/configs/adc/defconfig
+++ b/boards/arm/stm32g4/nucleo-g431rb/configs/adc/defconfig
@@ -13,7 +13,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="nucleo-g431rb"
 CONFIG_ARCH_BOARD_NUCLEO_G431RB=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g431rb/configs/can/defconfig 
b/boards/arm/stm32g4/nucleo-g431rb/configs/can/defconfig
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/configs/can/defconfig
rename to boards/arm/stm32g4/nucleo-g431rb/configs/can/defconfig
index 164ca565954..2aa1ede955e 100644
--- a/boards/arm/stm32/nucleo-g431rb/configs/can/defconfig
+++ b/boards/arm/stm32g4/nucleo-g431rb/configs/can/defconfig
@@ -14,7 +14,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="nucleo-g431rb"
 CONFIG_ARCH_BOARD_NUCLEO_G431RB=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g431rb/configs/cansock/defconfig 
b/boards/arm/stm32g4/nucleo-g431rb/configs/cansock/defconfig
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/configs/cansock/defconfig
rename to boards/arm/stm32g4/nucleo-g431rb/configs/cansock/defconfig
index 6986192ece8..c139bf6d9b5 100644
--- a/boards/arm/stm32/nucleo-g431rb/configs/cansock/defconfig
+++ b/boards/arm/stm32g4/nucleo-g431rb/configs/cansock/defconfig
@@ -12,7 +12,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="nucleo-g431rb"
 CONFIG_ARCH_BOARD_NUCLEO_G431RB=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g431rb/configs/cordic/defconfig 
b/boards/arm/stm32g4/nucleo-g431rb/configs/cordic/defconfig
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/configs/cordic/defconfig
rename to boards/arm/stm32g4/nucleo-g431rb/configs/cordic/defconfig
index a70cdc98d43..1490159995b 100644
--- a/boards/arm/stm32/nucleo-g431rb/configs/cordic/defconfig
+++ b/boards/arm/stm32g4/nucleo-g431rb/configs/cordic/defconfig
@@ -14,7 +14,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="nucleo-g431rb"
 CONFIG_ARCH_BOARD_NUCLEO_G431RB=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g431rb/configs/ihm16m1_b16/defconfig 
b/boards/arm/stm32g4/nucleo-g431rb/configs/ihm16m1_b16/defconfig
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/configs/ihm16m1_b16/defconfig
rename to boards/arm/stm32g4/nucleo-g431rb/configs/ihm16m1_b16/defconfig
index de716f64e0e..ded5f303e7c 100644
--- a/boards/arm/stm32/nucleo-g431rb/configs/ihm16m1_b16/defconfig
+++ b/boards/arm/stm32g4/nucleo-g431rb/configs/ihm16m1_b16/defconfig
@@ -15,7 +15,7 @@ CONFIG_ARCH_BOARD="nucleo-g431rb"
 CONFIG_ARCH_BOARD_COMMON=y
 CONFIG_ARCH_BOARD_NUCLEO_G431RB=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g431rb/configs/ihm16m1_f32/defconfig 
b/boards/arm/stm32g4/nucleo-g431rb/configs/ihm16m1_f32/defconfig
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/configs/ihm16m1_f32/defconfig
rename to boards/arm/stm32g4/nucleo-g431rb/configs/ihm16m1_f32/defconfig
index 0565f5b91df..d70d9724fe0 100644
--- a/boards/arm/stm32/nucleo-g431rb/configs/ihm16m1_f32/defconfig
+++ b/boards/arm/stm32g4/nucleo-g431rb/configs/ihm16m1_f32/defconfig
@@ -15,7 +15,7 @@ CONFIG_ARCH_BOARD="nucleo-g431rb"
 CONFIG_ARCH_BOARD_COMMON=y
 CONFIG_ARCH_BOARD_NUCLEO_G431RB=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g431rb/configs/nsh/defconfig 
b/boards/arm/stm32g4/nucleo-g431rb/configs/nsh/defconfig
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/configs/nsh/defconfig
rename to boards/arm/stm32g4/nucleo-g431rb/configs/nsh/defconfig
index d86c4e134ce..2741f79a4ff 100644
--- a/boards/arm/stm32/nucleo-g431rb/configs/nsh/defconfig
+++ b/boards/arm/stm32g4/nucleo-g431rb/configs/nsh/defconfig
@@ -14,7 +14,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="nucleo-g431rb"
 CONFIG_ARCH_BOARD_NUCLEO_G431RB=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g431rb/configs/pwm/defconfig 
b/boards/arm/stm32g4/nucleo-g431rb/configs/pwm/defconfig
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/configs/pwm/defconfig
rename to boards/arm/stm32g4/nucleo-g431rb/configs/pwm/defconfig
index 63712349344..7bb17b75b5b 100644
--- a/boards/arm/stm32/nucleo-g431rb/configs/pwm/defconfig
+++ b/boards/arm/stm32g4/nucleo-g431rb/configs/pwm/defconfig
@@ -8,7 +8,7 @@
 CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="nucleo-g431rb"
 CONFIG_ARCH_BOARD_NUCLEO_G431RB=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g431rb/configs/qenco/defconfig 
b/boards/arm/stm32g4/nucleo-g431rb/configs/qenco/defconfig
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/configs/qenco/defconfig
rename to boards/arm/stm32g4/nucleo-g431rb/configs/qenco/defconfig
index 8c11d4f8a59..f593ed1dac3 100644
--- a/boards/arm/stm32/nucleo-g431rb/configs/qenco/defconfig
+++ b/boards/arm/stm32g4/nucleo-g431rb/configs/qenco/defconfig
@@ -15,7 +15,7 @@ CONFIG_ARCH_BOARD="nucleo-g431rb"
 CONFIG_ARCH_BOARD_COMMON=y
 CONFIG_ARCH_BOARD_NUCLEO_G431RB=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G431R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g431rb/include/board.h 
b/boards/arm/stm32g4/nucleo-g431rb/include/board.h
similarity index 99%
rename from boards/arm/stm32/nucleo-g431rb/include/board.h
rename to boards/arm/stm32g4/nucleo-g431rb/include/board.h
index d0276b130af..75cc137c574 100644
--- a/boards/arm/stm32/nucleo-g431rb/include/board.h
+++ b/boards/arm/stm32g4/nucleo-g431rb/include/board.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/include/board.h
+ * boards/arm/stm32g4/nucleo-g431rb/include/board.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g474e-dpow1/scripts/Make.defs 
b/boards/arm/stm32g4/nucleo-g431rb/scripts/Make.defs
similarity index 97%
rename from boards/arm/stm32/b-g474e-dpow1/scripts/Make.defs
rename to boards/arm/stm32g4/nucleo-g431rb/scripts/Make.defs
index 57c27ead5ec..2eb0f2b8463 100644
--- a/boards/arm/stm32/b-g474e-dpow1/scripts/Make.defs
+++ b/boards/arm/stm32g4/nucleo-g431rb/scripts/Make.defs
@@ -1,5 +1,5 @@
 ############################################################################
-# boards/arm/stm32/b-g474e-dpow1/scripts/Make.defs
+# boards/arm/stm32g4/nucleo-g431rb/scripts/Make.defs
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/nucleo-g431rb/scripts/ld.script 
b/boards/arm/stm32g4/nucleo-g431rb/scripts/ld.script
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/scripts/ld.script
rename to boards/arm/stm32g4/nucleo-g431rb/scripts/ld.script
index 75cdcb94d47..bd82a15d578 100644
--- a/boards/arm/stm32/nucleo-g431rb/scripts/ld.script
+++ b/boards/arm/stm32g4/nucleo-g431rb/scripts/ld.script
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/scripts/ld.script
+ * boards/arm/stm32g4/nucleo-g431rb/scripts/ld.script
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431rb/src/.gitignore 
b/boards/arm/stm32g4/nucleo-g431rb/src/.gitignore
similarity index 100%
rename from boards/arm/stm32/nucleo-g431rb/src/.gitignore
rename to boards/arm/stm32g4/nucleo-g431rb/src/.gitignore
diff --git a/boards/arm/stm32/nucleo-g431rb/src/CMakeLists.txt 
b/boards/arm/stm32g4/nucleo-g431rb/src/CMakeLists.txt
similarity index 97%
rename from boards/arm/stm32/nucleo-g431rb/src/CMakeLists.txt
rename to boards/arm/stm32g4/nucleo-g431rb/src/CMakeLists.txt
index f25dfbffa49..21262028d44 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/CMakeLists.txt
+++ b/boards/arm/stm32g4/nucleo-g431rb/src/CMakeLists.txt
@@ -1,5 +1,5 @@
 # 
##############################################################################
-# boards/arm/stm32/nucleo-g431rb/src/CMakeLists.txt
+# boards/arm/stm32g4/nucleo-g431rb/src/CMakeLists.txt
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/nucleo-g431rb/src/Make.defs 
b/boards/arm/stm32g4/nucleo-g431rb/src/Make.defs
similarity index 97%
rename from boards/arm/stm32/nucleo-g431rb/src/Make.defs
rename to boards/arm/stm32g4/nucleo-g431rb/src/Make.defs
index 14403c22700..17328e8d989 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/Make.defs
+++ b/boards/arm/stm32g4/nucleo-g431rb/src/Make.defs
@@ -1,5 +1,5 @@
 ############################################################################
-# boards/arm/stm32/nucleo-g431rb/src/Make.defs
+# boards/arm/stm32g4/nucleo-g431rb/src/Make.defs
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/nucleo-g431rb/src/nucleo-g431rb.h 
b/boards/arm/stm32g4/nucleo-g431rb/src/nucleo-g431rb.h
similarity index 99%
rename from boards/arm/stm32/nucleo-g431rb/src/nucleo-g431rb.h
rename to boards/arm/stm32g4/nucleo-g431rb/src/nucleo-g431rb.h
index a00571f7c2e..c1aab3f25c2 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/nucleo-g431rb.h
+++ b/boards/arm/stm32g4/nucleo-g431rb/src/nucleo-g431rb.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/src/nucleo-g431rb.h
+ * boards/arm/stm32g4/nucleo-g431rb/src/nucleo-g431rb.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431rb/src/stm32_adc.c 
b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_adc.c
similarity index 99%
rename from boards/arm/stm32/nucleo-g431rb/src/stm32_adc.c
rename to boards/arm/stm32g4/nucleo-g431rb/src/stm32_adc.c
index c2b993d18fe..23dcbdf7b6e 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/stm32_adc.c
+++ b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_adc.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/src/stm32_adc.c
+ * boards/arm/stm32g4/nucleo-g431rb/src/stm32_adc.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431rb/src/stm32_autoleds.c 
b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_autoleds.c
similarity index 97%
rename from boards/arm/stm32/nucleo-g431rb/src/stm32_autoleds.c
rename to boards/arm/stm32g4/nucleo-g431rb/src/stm32_autoleds.c
index 4c599539d00..74c7bf61f79 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/stm32_autoleds.c
+++ b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_autoleds.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/src/stm32_autoleds.c
+ * boards/arm/stm32g4/nucleo-g431rb/src/stm32_autoleds.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431rb/src/stm32_boot.c 
b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_boot.c
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/src/stm32_boot.c
rename to boards/arm/stm32g4/nucleo-g431rb/src/stm32_boot.c
index 9cddcb3b093..8f5ac067df9 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/stm32_boot.c
+++ b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_boot.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/src/stm32_boot.c
+ * boards/arm/stm32g4/nucleo-g431rb/src/stm32_boot.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431rb/src/stm32_bringup.c 
b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_bringup.c
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/src/stm32_bringup.c
rename to boards/arm/stm32g4/nucleo-g431rb/src/stm32_bringup.c
index 5eabcf60798..82b3a8be71f 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/stm32_bringup.c
+++ b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_bringup.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/src/stm32_bringup.c
+ * boards/arm/stm32g4/nucleo-g431rb/src/stm32_bringup.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431rb/src/stm32_buttons.c 
b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_buttons.c
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/src/stm32_buttons.c
rename to boards/arm/stm32g4/nucleo-g431rb/src/stm32_buttons.c
index 462f70b091a..f6bf2f0c90f 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/stm32_buttons.c
+++ b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_buttons.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/src/stm32_buttons.c
+ * boards/arm/stm32g4/nucleo-g431rb/src/stm32_buttons.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431rb/src/stm32_can.c 
b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_can.c
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/src/stm32_can.c
rename to boards/arm/stm32g4/nucleo-g431rb/src/stm32_can.c
index 6f777f22c61..5a91c6e2fe0 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/stm32_can.c
+++ b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_can.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/src/stm32_can.c
+ * boards/arm/stm32g4/nucleo-g431rb/src/stm32_can.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431rb/src/stm32_cansock.c 
b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_cansock.c
similarity index 97%
rename from boards/arm/stm32/nucleo-g431rb/src/stm32_cansock.c
rename to boards/arm/stm32g4/nucleo-g431rb/src/stm32_cansock.c
index 72b03dc2324..c76c3ce5b2a 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/stm32_cansock.c
+++ b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_cansock.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/src/stm32_cansock.c
+ * boards/arm/stm32g4/nucleo-g431rb/src/stm32_cansock.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431rb/src/stm32_cordic.c 
b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_cordic.c
similarity index 97%
rename from boards/arm/stm32/nucleo-g431rb/src/stm32_cordic.c
rename to boards/arm/stm32g4/nucleo-g431rb/src/stm32_cordic.c
index aa3a5320176..9318847fd2d 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/stm32_cordic.c
+++ b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_cordic.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/src/stm32_cordic.c
+ * boards/arm/stm32g4/nucleo-g431rb/src/stm32_cordic.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431rb/src/stm32_foc_ihm16m1.c 
b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_foc_ihm16m1.c
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/src/stm32_foc_ihm16m1.c
rename to boards/arm/stm32g4/nucleo-g431rb/src/stm32_foc_ihm16m1.c
index 73316003dd0..bf5f99735eb 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/stm32_foc_ihm16m1.c
+++ b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_foc_ihm16m1.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/src/stm32_foc_ihm16m1.c
+ * boards/arm/stm32g4/nucleo-g431rb/src/stm32_foc_ihm16m1.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431rb/src/stm32_pwm.c 
b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_pwm.c
similarity index 98%
rename from boards/arm/stm32/nucleo-g431rb/src/stm32_pwm.c
rename to boards/arm/stm32g4/nucleo-g431rb/src/stm32_pwm.c
index ce64c50083b..c91702c323e 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/stm32_pwm.c
+++ b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_pwm.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/src/stm32_pwm.c
+ * boards/arm/stm32g4/nucleo-g431rb/src/stm32_pwm.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g431rb/src/stm32_userleds.c 
b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_userleds.c
similarity index 97%
rename from boards/arm/stm32/nucleo-g431rb/src/stm32_userleds.c
rename to boards/arm/stm32g4/nucleo-g431rb/src/stm32_userleds.c
index 43528165fb3..6d6bc7e72b0 100644
--- a/boards/arm/stm32/nucleo-g431rb/src/stm32_userleds.c
+++ b/boards/arm/stm32g4/nucleo-g431rb/src/stm32_userleds.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g431rb/src/stm32_userleds.c
+ * boards/arm/stm32g4/nucleo-g431rb/src/stm32_userleds.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt 
b/boards/arm/stm32g4/nucleo-g474re/CMakeLists.txt
similarity index 95%
rename from boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
rename to boards/arm/stm32g4/nucleo-g474re/CMakeLists.txt
index f0b7d812e44..4f4bba4b7af 100644
--- a/boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
+++ b/boards/arm/stm32g4/nucleo-g474re/CMakeLists.txt
@@ -1,5 +1,5 @@
 # 
##############################################################################
-# boards/arm/stm32/b-g474e-dpow1/CMakeLists.txt
+# boards/arm/stm32g4/nucleo-g474re/CMakeLists.txt
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/nucleo-g474re/Kconfig 
b/boards/arm/stm32g4/nucleo-g474re/Kconfig
similarity index 100%
rename from boards/arm/stm32/nucleo-g474re/Kconfig
rename to boards/arm/stm32g4/nucleo-g474re/Kconfig
diff --git a/boards/arm/stm32/nucleo-g474re/configs/lpuartnsh/defconfig 
b/boards/arm/stm32g4/nucleo-g474re/configs/lpuartnsh/defconfig
similarity index 97%
rename from boards/arm/stm32/nucleo-g474re/configs/lpuartnsh/defconfig
rename to boards/arm/stm32g4/nucleo-g474re/configs/lpuartnsh/defconfig
index 380f216200a..ee2a8c2db94 100644
--- a/boards/arm/stm32/nucleo-g474re/configs/lpuartnsh/defconfig
+++ b/boards/arm/stm32g4/nucleo-g474re/configs/lpuartnsh/defconfig
@@ -11,7 +11,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="nucleo-g474re"
 CONFIG_ARCH_BOARD_NUCLEO_G474RE=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G474R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g474re/configs/nsh/defconfig 
b/boards/arm/stm32g4/nucleo-g474re/configs/nsh/defconfig
similarity index 97%
rename from boards/arm/stm32/nucleo-g474re/configs/nsh/defconfig
rename to boards/arm/stm32g4/nucleo-g474re/configs/nsh/defconfig
index fbcf8585258..6a8c6317f57 100644
--- a/boards/arm/stm32/nucleo-g474re/configs/nsh/defconfig
+++ b/boards/arm/stm32g4/nucleo-g474re/configs/nsh/defconfig
@@ -11,7 +11,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="nucleo-g474re"
 CONFIG_ARCH_BOARD_NUCLEO_G474RE=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G474R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g474re/configs/usbserial/defconfig 
b/boards/arm/stm32g4/nucleo-g474re/configs/usbserial/defconfig
similarity index 98%
rename from boards/arm/stm32/nucleo-g474re/configs/usbserial/defconfig
rename to boards/arm/stm32g4/nucleo-g474re/configs/usbserial/defconfig
index 3dc81656600..405eabc8cdb 100644
--- a/boards/arm/stm32/nucleo-g474re/configs/usbserial/defconfig
+++ b/boards/arm/stm32g4/nucleo-g474re/configs/usbserial/defconfig
@@ -11,7 +11,7 @@ CONFIG_ARCH="arm"
 CONFIG_ARCH_BOARD="nucleo-g474re"
 CONFIG_ARCH_BOARD_NUCLEO_G474RE=y
 CONFIG_ARCH_BUTTONS=y
-CONFIG_ARCH_CHIP="stm32"
+CONFIG_ARCH_CHIP="stm32g4"
 CONFIG_ARCH_CHIP_STM32=y
 CONFIG_ARCH_CHIP_STM32G474R=y
 CONFIG_ARCH_CHIP_STM32G4=y
diff --git a/boards/arm/stm32/nucleo-g474re/include/board.h 
b/boards/arm/stm32g4/nucleo-g474re/include/board.h
similarity index 99%
rename from boards/arm/stm32/nucleo-g474re/include/board.h
rename to boards/arm/stm32g4/nucleo-g474re/include/board.h
index bbc4cf8cf35..8fbf7924c8e 100644
--- a/boards/arm/stm32/nucleo-g474re/include/board.h
+++ b/boards/arm/stm32g4/nucleo-g474re/include/board.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g474re/include/board.h
+ * boards/arm/stm32g4/nucleo-g474re/include/board.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/b-g431b-esc1/scripts/Make.defs 
b/boards/arm/stm32g4/nucleo-g474re/scripts/Make.defs
similarity index 97%
rename from boards/arm/stm32/b-g431b-esc1/scripts/Make.defs
rename to boards/arm/stm32g4/nucleo-g474re/scripts/Make.defs
index 0a510303baa..1ab6247f01c 100644
--- a/boards/arm/stm32/b-g431b-esc1/scripts/Make.defs
+++ b/boards/arm/stm32g4/nucleo-g474re/scripts/Make.defs
@@ -1,5 +1,5 @@
 ############################################################################
-# boards/arm/stm32/b-g431b-esc1/scripts/Make.defs
+# boards/arm/stm32g4/nucleo-g474re/scripts/Make.defs
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/nucleo-g474re/scripts/ld.script 
b/boards/arm/stm32g4/nucleo-g474re/scripts/ld.script
similarity index 98%
rename from boards/arm/stm32/nucleo-g474re/scripts/ld.script
rename to boards/arm/stm32g4/nucleo-g474re/scripts/ld.script
index 6ed340018bc..4aca8670722 100644
--- a/boards/arm/stm32/nucleo-g474re/scripts/ld.script
+++ b/boards/arm/stm32g4/nucleo-g474re/scripts/ld.script
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g474re/scripts/ld.script
+ * boards/arm/stm32g4/nucleo-g474re/scripts/ld.script
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g474re/scripts/ld.script.dfu 
b/boards/arm/stm32g4/nucleo-g474re/scripts/ld.script.dfu
similarity index 98%
rename from boards/arm/stm32/nucleo-g474re/scripts/ld.script.dfu
rename to boards/arm/stm32g4/nucleo-g474re/scripts/ld.script.dfu
index e35b09cec89..152d9a3852f 100644
--- a/boards/arm/stm32/nucleo-g474re/scripts/ld.script.dfu
+++ b/boards/arm/stm32g4/nucleo-g474re/scripts/ld.script.dfu
@@ -1,5 +1,5 @@
 /****************************************************************************
- *  boards/arm/stm32/nucleo-g474re/scripts/ld.script
+ *  boards/arm/stm32g4/nucleo-g474re/scripts/ld.script
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g474re/src/.gitignore 
b/boards/arm/stm32g4/nucleo-g474re/src/.gitignore
similarity index 100%
rename from boards/arm/stm32/nucleo-g474re/src/.gitignore
rename to boards/arm/stm32g4/nucleo-g474re/src/.gitignore
diff --git a/boards/arm/stm32/nucleo-g474re/src/CMakeLists.txt 
b/boards/arm/stm32g4/nucleo-g474re/src/CMakeLists.txt
similarity index 96%
rename from boards/arm/stm32/nucleo-g474re/src/CMakeLists.txt
rename to boards/arm/stm32g4/nucleo-g474re/src/CMakeLists.txt
index 53f5643fc8b..494c3bcb577 100644
--- a/boards/arm/stm32/nucleo-g474re/src/CMakeLists.txt
+++ b/boards/arm/stm32g4/nucleo-g474re/src/CMakeLists.txt
@@ -1,5 +1,5 @@
 # 
##############################################################################
-# boards/arm/stm32/nucleo-g474re/src/CMakeLists.txt
+# boards/arm/stm32g4/nucleo-g474re/src/CMakeLists.txt
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/nucleo-g474re/src/Make.defs 
b/boards/arm/stm32g4/nucleo-g474re/src/Make.defs
similarity index 96%
rename from boards/arm/stm32/nucleo-g474re/src/Make.defs
rename to boards/arm/stm32g4/nucleo-g474re/src/Make.defs
index b27f9af3514..7d2f9725ab0 100644
--- a/boards/arm/stm32/nucleo-g474re/src/Make.defs
+++ b/boards/arm/stm32g4/nucleo-g474re/src/Make.defs
@@ -1,5 +1,5 @@
 ############################################################################
-# boards/arm/stm32/nucleo-g474re/src/Make.defs
+# boards/arm/stm32g4/nucleo-g474re/src/Make.defs
 #
 # SPDX-License-Identifier: Apache-2.0
 #
diff --git a/boards/arm/stm32/nucleo-g474re/src/nucleo-g474re.h 
b/boards/arm/stm32g4/nucleo-g474re/src/nucleo-g474re.h
similarity index 98%
rename from boards/arm/stm32/nucleo-g474re/src/nucleo-g474re.h
rename to boards/arm/stm32g4/nucleo-g474re/src/nucleo-g474re.h
index 3609b90e7e5..e50ff639c45 100644
--- a/boards/arm/stm32/nucleo-g474re/src/nucleo-g474re.h
+++ b/boards/arm/stm32g4/nucleo-g474re/src/nucleo-g474re.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g474re/src/nucleo-g474re.h
+ * boards/arm/stm32g4/nucleo-g474re/src/nucleo-g474re.h
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g474re/src/stm32_autoleds.c 
b/boards/arm/stm32g4/nucleo-g474re/src/stm32_autoleds.c
similarity index 97%
rename from boards/arm/stm32/nucleo-g474re/src/stm32_autoleds.c
rename to boards/arm/stm32g4/nucleo-g474re/src/stm32_autoleds.c
index c06b2fb11b5..28380bf71d7 100644
--- a/boards/arm/stm32/nucleo-g474re/src/stm32_autoleds.c
+++ b/boards/arm/stm32g4/nucleo-g474re/src/stm32_autoleds.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g474re/src/stm32_autoleds.c
+ * boards/arm/stm32g4/nucleo-g474re/src/stm32_autoleds.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g474re/src/stm32_boot.c 
b/boards/arm/stm32g4/nucleo-g474re/src/stm32_boot.c
similarity index 98%
rename from boards/arm/stm32/nucleo-g474re/src/stm32_boot.c
rename to boards/arm/stm32g4/nucleo-g474re/src/stm32_boot.c
index 8f134c1cd9e..9b8eced144d 100644
--- a/boards/arm/stm32/nucleo-g474re/src/stm32_boot.c
+++ b/boards/arm/stm32g4/nucleo-g474re/src/stm32_boot.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g474re/src/stm32_boot.c
+ * boards/arm/stm32g4/nucleo-g474re/src/stm32_boot.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g474re/src/stm32_bringup.c 
b/boards/arm/stm32g4/nucleo-g474re/src/stm32_bringup.c
similarity index 98%
rename from boards/arm/stm32/nucleo-g474re/src/stm32_bringup.c
rename to boards/arm/stm32g4/nucleo-g474re/src/stm32_bringup.c
index bc3c6aa9007..89d86a499fe 100644
--- a/boards/arm/stm32/nucleo-g474re/src/stm32_bringup.c
+++ b/boards/arm/stm32g4/nucleo-g474re/src/stm32_bringup.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g474re/src/stm32_bringup.c
+ * boards/arm/stm32g4/nucleo-g474re/src/stm32_bringup.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g474re/src/stm32_usbdev.c 
b/boards/arm/stm32g4/nucleo-g474re/src/stm32_usbdev.c
similarity index 97%
rename from boards/arm/stm32/nucleo-g474re/src/stm32_usbdev.c
rename to boards/arm/stm32g4/nucleo-g474re/src/stm32_usbdev.c
index 898d118a8e7..389fb718f11 100644
--- a/boards/arm/stm32/nucleo-g474re/src/stm32_usbdev.c
+++ b/boards/arm/stm32g4/nucleo-g474re/src/stm32_usbdev.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g474re/src/stm32_usbdev.c
+ * boards/arm/stm32g4/nucleo-g474re/src/stm32_usbdev.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *
diff --git a/boards/arm/stm32/nucleo-g474re/src/stm32_userleds.c 
b/boards/arm/stm32g4/nucleo-g474re/src/stm32_userleds.c
similarity index 98%
rename from boards/arm/stm32/nucleo-g474re/src/stm32_userleds.c
rename to boards/arm/stm32g4/nucleo-g474re/src/stm32_userleds.c
index 2b7b61b153a..16dcca37aee 100644
--- a/boards/arm/stm32/nucleo-g474re/src/stm32_userleds.c
+++ b/boards/arm/stm32g4/nucleo-g474re/src/stm32_userleds.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32/nucleo-g474re/src/stm32_userleds.c
+ * boards/arm/stm32g4/nucleo-g474re/src/stm32_userleds.c
  *
  * SPDX-License-Identifier: Apache-2.0
  *


Reply via email to