Hi,
one error for CPU_STM32MP215Fxx value....
On 2/3/26 17:49, Patrice Chotard wrote:
STM32MP21 application processors (STM32 MPUs) based on a single
Arm Cortex®-A35 core running up to 1.5 GHz and Cortex®-M33 core
running at 300 MHz.
It is pin-compatible with the STM32MP2 series in the VFBGA361
10×10 mm package: the STM32MP21 uses a subset of the STM32MP23
pinout, which itself is a subset of the STM32MP25.
More details available here :
https://www.st.com/en/microcontrollers-microprocessors/stm32mp2-series.html
Signed-off-by: Patrice Chotard <[email protected]>
---
arch/arm/mach-stm32mp/Kconfig | 27 ++++
arch/arm/mach-stm32mp/Kconfig.21x | 37 +++++
arch/arm/mach-stm32mp/Makefile | 3 +-
arch/arm/mach-stm32mp/include/mach/stm32.h | 12 +-
arch/arm/mach-stm32mp/include/mach/sys_proto.h | 22 +++
arch/arm/mach-stm32mp/stm32mp2/Makefile | 1 +
arch/arm/mach-stm32mp/stm32mp2/arm64-mmu.c | 2 +
arch/arm/mach-stm32mp/stm32mp2/cpu.c | 2 +
arch/arm/mach-stm32mp/stm32mp2/rifsc.c | 1 +
arch/arm/mach-stm32mp/stm32mp2/stm32mp21x.c | 192 +++++++++++++++++++++++++
board/st/common/Kconfig | 2 +-
board/st/stm32mp2/Kconfig | 14 ++
configs/stm32mp21_defconfig | 78 ++++++++++
include/configs/stm32mp21_common.h | 126 ++++++++++++++++
include/configs/stm32mp21_st_common.h | 51 +++++++
15 files changed, 564 insertions(+), 6 deletions(-)
....
diff --git a/arch/arm/mach-stm32mp/include/mach/stm32.h b/arch/arm/mach-stm32mp/include/mach/stm32.h
index 90f06a052d3..7f349f3b68d 100644
--- a/arch/arm/mach-stm32mp/include/mach/stm32.h
+++ b/arch/arm/mach-stm32mp/include/mach/stm32.h
@@ -165,16 +165,20 @@ enum forced_boot_mode {
#endif /* __ASSEMBLY__ */
#endif /* CONFIG_STM32MP15X || CONFIG_STM32MP13X */
-#if defined(CONFIG_STM32MP23X) || defined(CONFIG_STM32MP25X)
+#if defined(CONFIG_STM32MP21X) || defined(CONFIG_STM32MP23X) ||
defined(CONFIG_STM32MP25X)
#define STM32_USART2_BASE 0x400E0000
#define STM32_USART3_BASE 0x400F0000
#define STM32_UART4_BASE 0x40100000
#define STM32_UART5_BASE 0x40110000
#define STM32_USART6_BASE 0x40220000
+#ifdef CONFIG_STM32MP25X
#define STM32_UART9_BASE 0x402C0000
+#endif
#define STM32_USART1_BASE 0x40330000
#define STM32_UART7_BASE 0x40370000
+#ifdef CONFIG_STM32MP25X
#define STM32_UART8_BASE 0x40380000
+#endif
#define STM32_RCC_BASE 0x44200000
#define STM32_TAMP_BASE 0x46010000
#define STM32_SDMMC1_BASE 0x48220000
@@ -194,7 +198,7 @@ enum forced_boot_mode {
#define TAMP_FWU_BOOT_IDX_MASK GENMASK(3, 0)
#define TAMP_FWU_BOOT_IDX_OFFSET 0
-#endif /* defined(CONFIG_STM32MP23X) || defined(CONFIG_STM32MP25X) */
+#endif /* defined(CONFIG_STM32MP21X) || defined(CONFIG_STM32MP23X) ||
defined(CONFIG_STM32MP25X) */
/* offset used for BSEC driver: misc_read and misc_write */
#define STM32_BSEC_SHADOW_OFFSET 0x0
@@ -218,14 +222,14 @@ enum forced_boot_mode {
#define BSEC_OTP_MAC 57
#define BSEC_OTP_BOARD 60
#endif
-#if defined(CONFIG_STM32MP23X) || defined(CONFIG_STM32MP25X)
+#if defined(CONFIG_STM32MP21X) || defined(CONFIG_STM32MP23X) ||
defined(CONFIG_STM32MP25X)
#define BSEC_OTP_SERIAL 5
#define BSEC_OTP_RPN 9
#define BSEC_OTP_REVID 102
#define BSEC_OTP_PKG 122
#define BSEC_OTP_BOARD 246
#define BSEC_OTP_MAC 247
-#endif /* defined(CONFIG_STM32MP23X) || defined(CONFIG_STM32MP25X) */
+#endif /* defined(CONFIG_STM32MP21X) || defined(CONFIG_STM32MP23X) ||
defined(CONFIG_STM32MP25X) */
#ifndef __ASSEMBLY__
#include <asm/types.h>
diff --git a/arch/arm/mach-stm32mp/include/mach/sys_proto.h
b/arch/arm/mach-stm32mp/include/mach/sys_proto.h
index 2a4837184fc..47a6db79bca 100644
--- a/arch/arm/mach-stm32mp/include/mach/sys_proto.h
+++ b/arch/arm/mach-stm32mp/include/mach/sys_proto.h
@@ -30,6 +30,20 @@
#define CPU_STM32MP131Fxx 0x05010EC8
#define CPU_STM32MP131Dxx 0x05010EC9
+/* ID for STM32MP21x = Device Part Number (RPN) (bit31:0) */
+#define CPU_STM32MP211Axx 0x40073E7D
+#define CPU_STM32MP211Cxx 0x0007307D
+#define CPU_STM32MP211Dxx 0xC0073E7D
+#define CPU_STM32MP211Fxx 0x8007307D
+#define CPU_STM32MP213Axx 0x40073E1D
+#define CPU_STM32MP213Cxx 0x0007301D
+#define CPU_STM32MP213Dxx 0xC0073E1D
+#define CPU_STM32MP213Fxx 0x8007301D
+#define CPU_STM32MP215Axx 0x40033E0D
+#define CPU_STM32MP215Cxx 0x0003300D
+#define CPU_STM32MP215Dxx 0xC0033E0D
+#define CPU_STM32MP215Fxx 0x80
Strange value this part number, I assume:
#define CPU_STM32MP215Fxx 0x8003300D
+CPU_STM32MP215Fxx
/* ID for STM32MP23x = Device Part Number (RPN) (bit31:0) */
#define CPU_STM32MP235Cxx 0x00082182
#define CPU_STM32MP233Cxx 0x000B318E
@@ -67,6 +81,7 @@ u32 get_cpu_type(void);
#define CPU_DEV_STM32MP15 0x500
#define CPU_DEV_STM32MP13 0x501
+#define CPU_DEV_STM32MP21 0x503
#define CPU_DEV_STM32MP23 0x505
#define CPU_DEV_STM32MP25 0x505
@@ -102,6 +117,13 @@ u32 get_cpu_package(void);
#define STM32MP15_PKG_AD_TFBGA257 1
#define STM32MP15_PKG_UNKNOWN 0
+/* package used for STM32MP21x */
+#define STM32MP21_PKG_CUSTOM 0
+#define STM32MP21_PKG_AL_VFBGA361 1
+#define STM32MP21_PKG_AN_VFBGA273 3
+#define STM32MP21_PKG_AO_VFBGA225 4
+#define STM32MP21_PKG_AM_TFBGA289 5
+
/* package used for STM32MP23x */
#define STM32MP23_PKG_CUSTOM 0
#define STM32MP23_PKG_AL_VFBGA361 1
with the proposal for the define CPU_STM32MP215Fxx
Reviewed-by: Patrick Delaunay <[email protected]>
Thanks
Patrick