1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/cpu/stm32/Kconfig
MrKevinWeiss 28aed3cb97
cpu/stm32/kconfig: rework clock tree
This splits up the clock configs.
It allows CPU_FAM based file sourcing and also common CPU_FAMs.
The dependancies are also included in wildcards would be used for the CPU_FAM macro.
This should be much more readable.
This also takes into account the HSE speeds in order to match the make/header resolution.
Some hidden symbols were added to make sorting many CPU_SERIES dependencies easier.
2022-11-03 11:37:33 +01:00

88 lines
2.2 KiB
Plaintext

# Copyright (c) 2020 Inria
#
# This file is subject to the terms and conditions of the GNU Lesser
# General Public License v2.1. See the file LICENSE in the top level
# directory for more details.
#
config CPU_STM32
bool
select HAS_CPU_STM32
select HAS_PERIPH_CPUID
select HAS_PERIPH_GPIO
select HAS_PERIPH_GPIO_IRQ
select HAS_PERIPH_TIMER_PERIODIC
select HAS_PERIPH_RTT_OVERFLOW
select HAS_PERIPH_UART_MODECFG
select HAS_PERIPH_UART_NONBLOCKING
# This CPU requires periph_rtc when periph_rtc_mem
select MODULE_PERIPH_RTC if MODULE_PERIPH_RTC_MEM && HAS_PERIPH_RTC
menu "STM32 configuration"
# Common CPU symbol
config CPU
default "stm32" if CPU_STM32
# Definition of specific features
config HAS_CPU_STM32
bool
help
Indicates that a 'stm32' cpu is being used.
config HAS_BOOTLOADER_STM32
bool
help
Indicates that the stm32 bootloader is being used.
config MODULE_BOOTLOADER_STM32
bool "STM32 DFU/UART/SPI bootloader"
depends on HAS_BOOTLOADER_STM32
depends on TEST_KCONFIG
menu "STM32 clock configuration"
depends on CPU_STM32
rsource "kconfigs/Kconfig.clk"
rsource "kconfigs/$(CPU_FAM)/Kconfig.clk"
endmenu
rsource "kconfigs/$(CPU_FAM)/Kconfig"
rsource "kconfigs/$(CPU_FAM)/Kconfig.lines"
rsource "kconfigs/$(CPU_FAM)/Kconfig.models"
choice
prompt "ReaDout Protection level"
default RDP0
help
Set minimum running RDP level.
RDP0 is full debug permissions, RDP1 disables read from Flash but
otherwise leaves debug enabled, RDP2 disables JTAG completely. If
there is a mismatch between desired RDP level here and RDP level
set on the chip, early cpu init will hang. This ensures production
devices with the wrong RDP level, by fault or malace intent, will
not run. See cpu manual for further details on RDP.
depends on (CPU_FAM_F1 || CPU_FAM_F2 || CPU_FAM_F3 || CPU_FAM_F4 || CPU_FAM_F7)
config RDP0
bool "RDP0"
config RDP1
bool "RDP1"
config RDP2
bool "RDP2"
endchoice
if TEST_KCONFIG
rsource "periph/Kconfig"
rsource "stmclk/Kconfig"
rsource "vectors/Kconfig"
endif # TEST_KCONFIG
endmenu
source "$(RIOTCPU)/cortexm_common/Kconfig"