Merge pull request #16909 from leandrolanzieri/pr/cpu/riscv/model_kconfig
cpu/riscv: model Kconfig
This commit is contained in:
commit
93bff48538
2
.murdock
2
.murdock
@ -9,11 +9,13 @@
|
|||||||
|
|
||||||
: ${TEST_KCONFIG_BOARDS_AVAILABLE:="
|
: ${TEST_KCONFIG_BOARDS_AVAILABLE:="
|
||||||
dwm1001
|
dwm1001
|
||||||
|
hifive1
|
||||||
native
|
native
|
||||||
nrf52840dk
|
nrf52840dk
|
||||||
nucleo-f103rb
|
nucleo-f103rb
|
||||||
remote-revb
|
remote-revb
|
||||||
samr21-xpro
|
samr21-xpro
|
||||||
|
seeedstudio-gd32
|
||||||
"}
|
"}
|
||||||
|
|
||||||
: ${TEST_KCONFIG_ENFORCE_APP_GROUPS:="
|
: ${TEST_KCONFIG_ENFORCE_APP_GROUPS:="
|
||||||
|
|||||||
@ -18,6 +18,10 @@ config CPU_FAM_FE310
|
|||||||
select HAS_PERIPH_RTT_SET_COUNTER
|
select HAS_PERIPH_RTT_SET_COUNTER
|
||||||
select HAS_PERIPH_WDT
|
select HAS_PERIPH_WDT
|
||||||
|
|
||||||
|
select MODULE_PERIPH_PLIC if TEST_KCONFIG
|
||||||
|
select MODULE_PERIPH_CORETIMER if MODULE_PERIPH_TIMER && HAS_PERIPH_CORETIMER
|
||||||
|
select MODULE_PERIPH_RTT if MODULE_PERIPH_RTC && HAS_PERIPH_RTT
|
||||||
|
|
||||||
config CPU_MODEL_FE310_G000
|
config CPU_MODEL_FE310_G000
|
||||||
bool
|
bool
|
||||||
select CPU_FAM_FE310
|
select CPU_FAM_FE310
|
||||||
@ -46,5 +50,7 @@ config CPU_CORE
|
|||||||
default "rv32imac" if CPU_CORE_RV32IMAC
|
default "rv32imac" if CPU_CORE_RV32IMAC
|
||||||
|
|
||||||
rsource "Kconfig.clk"
|
rsource "Kconfig.clk"
|
||||||
|
rsource "periph/Kconfig"
|
||||||
|
rsource "vendor/Kconfig"
|
||||||
|
|
||||||
source "$(RIOTCPU)/riscv_common/Kconfig"
|
source "$(RIOTCPU)/riscv_common/Kconfig"
|
||||||
|
|||||||
12
cpu/fe310/periph/Kconfig
Normal file
12
cpu/fe310/periph/Kconfig
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Copyright (c) 2021 HAW Hamburg
|
||||||
|
#
|
||||||
|
# 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 MODULE_PERIPH
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
fe310 common peripheral code.
|
||||||
13
cpu/fe310/vendor/Kconfig
vendored
Normal file
13
cpu/fe310/vendor/Kconfig
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Copyright (c) 2021 HAW Hamburg
|
||||||
|
#
|
||||||
|
# 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 MODULE_SIFIVE_DRIVERS_FE310
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
depends on CPU_FAM_FE310
|
||||||
|
help
|
||||||
|
sifive drivers for fe310.
|
||||||
@ -18,6 +18,9 @@ config CPU_FAM_GD32V
|
|||||||
select HAS_PERIPH_TIMER_PERIODIC
|
select HAS_PERIPH_TIMER_PERIODIC
|
||||||
select HAS_PERIPH_WDT
|
select HAS_PERIPH_WDT
|
||||||
|
|
||||||
|
select MODULE_PERIPH_CLIC if TEST_KCONFIG
|
||||||
|
select MODULE_PERIPH_WDT if MODULE_PERIPH_PM && HAS_PERIPH_WDT
|
||||||
|
|
||||||
config CPU_MODEL_GD32VF103VBT6
|
config CPU_MODEL_GD32VF103VBT6
|
||||||
bool
|
bool
|
||||||
select CPU_FAM_GD32V
|
select CPU_FAM_GD32V
|
||||||
@ -40,4 +43,6 @@ config CPU
|
|||||||
config CPU_CORE
|
config CPU_CORE
|
||||||
default "rv32imac" if CPU_CORE_RV32IMAC
|
default "rv32imac" if CPU_CORE_RV32IMAC
|
||||||
|
|
||||||
|
rsource "periph/Kconfig"
|
||||||
|
|
||||||
source "$(RIOTCPU)/riscv_common/Kconfig"
|
source "$(RIOTCPU)/riscv_common/Kconfig"
|
||||||
|
|||||||
10
cpu/gd32v/periph/Kconfig
Normal file
10
cpu/gd32v/periph/Kconfig
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Copyright (c) 2021 HAW Hamburg
|
||||||
|
#
|
||||||
|
# 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 MODULE_PERIPH
|
||||||
|
bool
|
||||||
|
default y
|
||||||
@ -12,9 +12,11 @@ config CPU_ARCH_RISCV
|
|||||||
select HAS_NEWLIB
|
select HAS_NEWLIB
|
||||||
select HAS_PERIPH_CORETIMER
|
select HAS_PERIPH_CORETIMER
|
||||||
select HAS_PICOLIBC if '$(RIOT_CI_BUILD)' != '1'
|
select HAS_PICOLIBC if '$(RIOT_CI_BUILD)' != '1'
|
||||||
select MODULE_MALLOC_THREAD_SAFE if TEST_KCONFIG
|
|
||||||
select HAS_SSP
|
select HAS_SSP
|
||||||
|
|
||||||
|
select MODULE_MALLOC_THREAD_SAFE if TEST_KCONFIG
|
||||||
|
imply MODULE_NEWLIB_NANO
|
||||||
|
|
||||||
config CPU_CORE_RV32IMAC
|
config CPU_CORE_RV32IMAC
|
||||||
bool
|
bool
|
||||||
select CPU_ARCH_RISCV
|
select CPU_ARCH_RISCV
|
||||||
@ -28,3 +30,17 @@ config HAS_ARCH_RISCV
|
|||||||
|
|
||||||
config CPU_ARCH
|
config CPU_ARCH
|
||||||
default "rv32" if CPU_CORE_RV32IMAC
|
default "rv32" if CPU_CORE_RV32IMAC
|
||||||
|
|
||||||
|
config MODULE_RISCV_COMMON
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
depends on TEST_KCONFIG && CPU_ARCH_RISCV
|
||||||
|
select MODULE_MALLOC_THREAD_SAFE
|
||||||
|
help
|
||||||
|
Common code for RISC-V architecture.
|
||||||
|
|
||||||
|
rsource "periph/Kconfig"
|
||||||
|
|
||||||
|
choice LIBC_IMPLEMENTATION
|
||||||
|
default MODULE_NEWLIB
|
||||||
|
endchoice
|
||||||
|
|||||||
35
cpu/riscv_common/periph/Kconfig
Normal file
35
cpu/riscv_common/periph/Kconfig
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# Copyright (c) 2021 HAW Hamburg
|
||||||
|
#
|
||||||
|
# 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 MODULE_RISCV_COMMON_PERIPH
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
depends on TEST_KCONFIG && CPU_ARCH_RISCV
|
||||||
|
help
|
||||||
|
Common peripheral code for RISC-V architecture.
|
||||||
|
|
||||||
|
if MODULE_RISCV_COMMON_PERIPH
|
||||||
|
|
||||||
|
config MODULE_PERIPH_CLIC
|
||||||
|
bool
|
||||||
|
depends on HAS_PERIPH_CLIC
|
||||||
|
help
|
||||||
|
Core-Local interrupt controller driver.
|
||||||
|
|
||||||
|
config MODULE_PERIPH_CORETIMER
|
||||||
|
bool
|
||||||
|
depends on HAS_PERIPH_CORETIMER
|
||||||
|
help
|
||||||
|
Low-level timer driver based on the Core-local Interrupt (CLINT)
|
||||||
|
|
||||||
|
config MODULE_PERIPH_PLIC
|
||||||
|
bool
|
||||||
|
depends on HAS_PERIPH_PLIC
|
||||||
|
help
|
||||||
|
Platform-Level interrupt controller driver.
|
||||||
|
|
||||||
|
endif # MODULE_RISCV_COMMON_PERIPH
|
||||||
@ -15,6 +15,9 @@ ifneq (,$(filter periph_init, $(USEMODULE)))
|
|||||||
periph_init% \
|
periph_init% \
|
||||||
periph_common \
|
periph_common \
|
||||||
periph_rtc_rtt \
|
periph_rtc_rtt \
|
||||||
|
periph_clic \
|
||||||
|
periph_coretimer \
|
||||||
|
periph_plic
|
||||||
#
|
#
|
||||||
PERIPH_MODULES := $(filter-out $(PERIPH_IGNORE_MODULES),\
|
PERIPH_MODULES := $(filter-out $(PERIPH_IGNORE_MODULES),\
|
||||||
$(filter periph_%,$(USEMODULE)))
|
$(filter periph_%,$(USEMODULE)))
|
||||||
|
|||||||
23
sys/Kconfig
23
sys/Kconfig
@ -30,13 +30,34 @@ rsource "frac/Kconfig"
|
|||||||
rsource "hashes/Kconfig"
|
rsource "hashes/Kconfig"
|
||||||
rsource "iolist/Kconfig"
|
rsource "iolist/Kconfig"
|
||||||
rsource "isrpipe/Kconfig"
|
rsource "isrpipe/Kconfig"
|
||||||
|
|
||||||
|
menu "Libc"
|
||||||
|
|
||||||
|
choice LIBC_IMPLEMENTATION
|
||||||
|
bool "Libc implementation"
|
||||||
|
depends on TEST_KCONFIG
|
||||||
|
|
||||||
|
config MODULE_NEWLIB
|
||||||
|
bool "NewLib"
|
||||||
|
depends on HAS_NEWLIB
|
||||||
|
|
||||||
|
config MODULE_PICOLIBC
|
||||||
|
bool "Picolibc"
|
||||||
|
depends on HAS_PICOLIBC
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
rsource "Kconfig.newlib"
|
||||||
|
rsource "Kconfig.picolibc"
|
||||||
|
|
||||||
|
endmenu # Libc
|
||||||
|
|
||||||
rsource "luid/Kconfig"
|
rsource "luid/Kconfig"
|
||||||
rsource "malloc_thread_safe/Kconfig"
|
rsource "malloc_thread_safe/Kconfig"
|
||||||
rsource "matstat/Kconfig"
|
rsource "matstat/Kconfig"
|
||||||
rsource "memarray/Kconfig"
|
rsource "memarray/Kconfig"
|
||||||
rsource "mineplex/Kconfig"
|
rsource "mineplex/Kconfig"
|
||||||
rsource "net/Kconfig"
|
rsource "net/Kconfig"
|
||||||
rsource "Kconfig.newlib"
|
|
||||||
rsource "Kconfig.stdio"
|
rsource "Kconfig.stdio"
|
||||||
rsource "od/Kconfig"
|
rsource "od/Kconfig"
|
||||||
rsource "posix/Kconfig"
|
rsource "posix/Kconfig"
|
||||||
|
|||||||
@ -5,10 +5,6 @@
|
|||||||
# directory for more details.
|
# directory for more details.
|
||||||
#
|
#
|
||||||
|
|
||||||
menuconfig MODULE_NEWLIB
|
|
||||||
bool "NewLib"
|
|
||||||
depends on TEST_KCONFIG
|
|
||||||
|
|
||||||
if MODULE_NEWLIB
|
if MODULE_NEWLIB
|
||||||
|
|
||||||
config MODULE_NEWLIB_NANO
|
config MODULE_NEWLIB_NANO
|
||||||
@ -18,9 +14,11 @@ config MODULE_NEWLIB_GNU_SOURCE
|
|||||||
bool "NewLib GNU source"
|
bool "NewLib GNU source"
|
||||||
|
|
||||||
config MODULE_NEWLIB_SYSCALLS_DEFAULT
|
config MODULE_NEWLIB_SYSCALLS_DEFAULT
|
||||||
bool "NewLib Syscalls default implementation"
|
bool
|
||||||
default y
|
default y
|
||||||
depends on !HAVE_CUSTOM_NEWLIB_SYSCALLS
|
depends on !HAVE_CUSTOM_NEWLIB_SYSCALLS
|
||||||
|
help
|
||||||
|
Default implementation of newlib system calls.
|
||||||
|
|
||||||
endif # MODULE_NEWLIB
|
endif # MODULE_NEWLIB
|
||||||
|
|
||||||
|
|||||||
29
sys/Kconfig.picolibc
Normal file
29
sys/Kconfig.picolibc
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# Copyright (c) 2021 HAW Hamburg
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
if MODULE_PICOLIBC
|
||||||
|
|
||||||
|
config PICOLIBC_STDOUT_BUFFERED
|
||||||
|
bool "Buffered standard output"
|
||||||
|
default USE_STDOUT_BUFFERED
|
||||||
|
help
|
||||||
|
Say y to use buffering in the standard output, usually good for modules that benefit from
|
||||||
|
sending out buffers in larger chunks.
|
||||||
|
|
||||||
|
config MODULE_PICOLIBC_SYSCALLS_DEFAULT
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
depends on !HAVE_CUSTOM_PICOLIBC_SYSCALLS
|
||||||
|
help
|
||||||
|
Default implementation of picolibc system calls.
|
||||||
|
|
||||||
|
endif # MODULE_PICOLIBC
|
||||||
|
|
||||||
|
config HAVE_CUSTOM_PICOLIB_SYSCALLS
|
||||||
|
bool
|
||||||
|
help
|
||||||
|
Indicates that a custom picolibc syscalls implementation is present.
|
||||||
@ -18,6 +18,7 @@ choice
|
|||||||
config MODULE_SLIPDEV_STDIO
|
config MODULE_SLIPDEV_STDIO
|
||||||
bool "SLIP network device"
|
bool "SLIP network device"
|
||||||
depends on MODULE_SLIPDEV
|
depends on MODULE_SLIPDEV
|
||||||
|
select USE_STDOUT_BUFFERED
|
||||||
select MODULE_ISRPIPE
|
select MODULE_ISRPIPE
|
||||||
|
|
||||||
config MODULE_STDIO_NULL
|
config MODULE_STDIO_NULL
|
||||||
@ -50,4 +51,9 @@ config MODULE_STDIO_UART_RX
|
|||||||
config MODULE_PRINTF_FLOAT
|
config MODULE_PRINTF_FLOAT
|
||||||
bool "Float support in printf"
|
bool "Float support in printf"
|
||||||
|
|
||||||
|
config USE_STDOUT_BUFFERED
|
||||||
|
bool
|
||||||
|
help
|
||||||
|
Select this to prefer buffered standard output if provided by the implementation.
|
||||||
|
|
||||||
endmenu # Standard Input/Output (STDIO)
|
endmenu # Standard Input/Output (STDIO)
|
||||||
|
|||||||
@ -108,3 +108,27 @@ ifneq (,$(filter ztimer_msec,$(USEMODULE)))
|
|||||||
USEMODULE += ztimer_periph_timer
|
USEMODULE += ztimer_periph_timer
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq (,$(filter ztimer_sec,$(USEMODULE)))
|
||||||
|
USEMODULE += ztimer
|
||||||
|
# try to use RTC unless we are on native, as it is based on xtimer it is
|
||||||
|
# actually buggy
|
||||||
|
ifeq (,$(filter native,$(BOARD)))
|
||||||
|
FEATURES_OPTIONAL += periph_rtc
|
||||||
|
endif
|
||||||
|
# HACK: see above
|
||||||
|
include $(RIOTMAKE)/features_check.inc.mk
|
||||||
|
ifneq (,$(filter periph_rtc,$(FEATURES_USED)))
|
||||||
|
USEMODULE += ztimer_periph_rtc
|
||||||
|
else
|
||||||
|
# if there is no RTC try to use RTT
|
||||||
|
FEATURES_OPTIONAL += periph_rtt
|
||||||
|
# HACK: see above
|
||||||
|
include $(RIOTMAKE)/features_check.inc.mk
|
||||||
|
ifneq (,$(filter periph_rtt,$(FEATURES_USED)))
|
||||||
|
USEMODULE += ztimer_periph_rtt
|
||||||
|
else
|
||||||
|
USEMODULE += ztimer_periph_timer
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user