Skip to content

Commit

Permalink
[nrf fromlist] manifest: Adding nRF Services library
Browse files Browse the repository at this point in the history
WARNING: backported from HWMv2

Upstream PR: zephyrproject-rtos/zephyr#70245

Adding nRF Services library to the hal-nordic repo

Signed-off-by: Rafal Dyla <[email protected]>
(cherry picked from commit 28d4590ce5f078f32e3e85f5cd121c3b1676c74c)
  • Loading branch information
Rafal-Nordic authored and 57300 committed Apr 18, 2024
1 parent fd2551a commit d6e8033
Show file tree
Hide file tree
Showing 19 changed files with 1,456 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
sw1 = &button1;
sw2 = &button2;
sw3 = &button3;
ipc-to-cpusys = &cpuapp_cpusys_ipc;
};

buttons {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@

aliases {
resetinfo = &cpurad_resetinfo;
ipc-to-cpusys = &cpurad_cpusys_ipc;
};
};

Expand Down
1 change: 1 addition & 0 deletions modules/hal_nordic/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ if (CONFIG_NRF_802154_RADIO_DRIVER OR CONFIG_NRF_802154_SERIALIZATION)
endif (CONFIG_NRF_802154_RADIO_DRIVER OR CONFIG_NRF_802154_SERIALIZATION)

add_subdirectory_ifdef(CONFIG_HAS_NRFX nrfx)
add_subdirectory_ifdef(CONFIG_NRF_HAS_NRFS nrfs)

if(CONFIG_NRF_REGTOOL_GENERATE_UICR)
list(APPEND nrf_regtool_components GENERATE:UICR)
Expand Down
1 change: 1 addition & 0 deletions modules/hal_nordic/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -235,5 +235,6 @@ endif # NRF_802154_RADIO_DRIVER || NRF_802154_SERIALIZATION

endmenu # HAS_NORDIC_DRIVERS

rsource "nrfs/Kconfig"
rsource "nrfx/Kconfig"
rsource "Kconfig.nrf_regtool"
41 changes: 41 additions & 0 deletions modules/hal_nordic/nrfs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

zephyr_library()

if(CONFIG_NRFS)
if(NOT DEFINED NRFS_DIR)
set(NRFS_DIR ${ZEPHYR_CURRENT_MODULE_DIR}/nrfs CACHE PATH "nrfs directory")
endif()

set(INC_DIR ${NRFS_DIR}/include)
set(SRC_DIR ${NRFS_DIR}/src)
set(HELPERS_DIR ${NRFS_DIR}/helpers)

zephyr_include_directories(${INC_DIR})
zephyr_include_directories(${INC_DIR}/services)
zephyr_include_directories(${HELPERS_DIR})
zephyr_include_directories(.)
zephyr_include_directories(${CMAKE_CURRENT_SOURCE_DIR}/backends)
zephyr_include_directories_ifdef(CONFIG_NRFS_DVFS_LOCAL_DOMAIN ${CMAKE_CURRENT_SOURCE_DIR}/dvfs)

zephyr_library_sources(${HELPERS_DIR}/dvfs_oppoint.c)

if(CONFIG_NRFS_LOCAL_DOMAIN)
zephyr_library_sources(${SRC_DIR}/internal/nrfs_dispatcher.c)
zephyr_library_sources_ifdef(CONFIG_NRFS_TEMP_SERVICE_ENABLED ${SRC_DIR}/services/nrfs_temp.c)
zephyr_library_sources_ifdef(CONFIG_NRFS_MRAM_SERVICE_ENABLED ${SRC_DIR}/services/nrfs_mram.c)
zephyr_library_sources_ifdef(CONFIG_NRFS_RESET_SERVICE_ENABLED ${SRC_DIR}/services/nrfs_reset.c)
zephyr_library_sources_ifdef(CONFIG_NRFS_VBUS_DETECTOR_SERVICE_ENABLED ${SRC_DIR}/services/nrfs_usb.c)
zephyr_library_sources_ifdef(CONFIG_NRFS_PMIC_SERVICE_ENABLED ${SRC_DIR}/services/nrfs_pmic.c)
zephyr_library_sources_ifdef(CONFIG_NRFS_DVFS_SERVICE_ENABLED ${SRC_DIR}/services/nrfs_dvfs.c)
zephyr_library_sources_ifdef(CONFIG_NRFS_DIAG_SERVICE_ENABLED ${SRC_DIR}/services/nrfs_diag.c)
zephyr_library_sources_ifdef(CONFIG_NRFS_CLOCK_SERVICE_ENABLED ${SRC_DIR}/services/nrfs_clock.c)

if(CONFIG_NRFS_DIAG_SERVICE_ENABLED)
message(WARNING "This service is for Nordic Semiconductor INTERNAL purposes ONLY. Use it with caution due to risk of hardware damage!")
endif()
endif()
zephyr_sources_ifdef(CONFIG_NRFS_BACKEND_IPC_SERVICE backends/nrfs_backend_ipc_service.c)
add_subdirectory_ifdef(CONFIG_NRFS_DVFS_LOCAL_DOMAIN dvfs)
endif()
125 changes: 125 additions & 0 deletions modules/hal_nordic/nrfs/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config NRF_HAS_NRFS
bool

config NRFS_HAS_CLOCK_SERVICE
bool

config NRFS_HAS_CONST_LATENCY_SERVICE
bool

config NRFS_HAS_DIAG_SERVICE
bool

config NRFS_HAS_DVFS_SERVICE
bool

config NRFS_HAS_MRAM_SERVICE
bool

config NRFS_HAS_PMIC_SERVICE
bool

config NRFS_HAS_RESET_SERVICE
bool

config NRFS_HAS_TEMP_SERVICE
bool

config NRFS_HAS_VBUS_DETECTOR_SERVICE
bool

menu "nRF Services"
depends on NRF_HAS_NRFS

config NRFS
bool "nRF Services Support"
select NRFS_LOCAL_DOMAIN if (SOC_NRF54H20_CPUAPP || SOC_NRF54H20_CPURAD)
depends on NRF_HAS_NRFS
help
This option enables the nRF Services library

config NRFS_LOCAL_DOMAIN
bool "nRF Services Local Domain Support"
select NRFS_BACKEND_IPC_SERVICE
help
This option enables the nRF Services Local Domain libraries

config NRFS_BACKEND_IPC_SERVICE
bool "IPC service backend for NRFS"
depends on NRFS
select IPC_SERVICE
select IPC_SERVICE_BACKEND_ICMSG
select MBOX
select EVENTS
select REBOOT
help
This option enables transport protocol for the NRFS

config NRFS_DVFS_LOCAL_DOMAIN
bool "Local domain that supports DVFS"
depends on NRFS
depends on NRFS_LOCAL_DOMAIN
depends on SOC_NRF54H20_CPUAPP
default y if NRFS_DVFS_SERVICE_ENABLED


menu "Enabled Services"
depends on NRFS
module = NRFS
module-str = nRF-Services
source "subsys/logging/Kconfig.template.log_config"

config NRFS_RESET_SERVICE_ENABLED
bool "Reset service"
depends on NRFS_HAS_RESET_SERVICE
default n

config NRFS_MRAM_SERVICE_ENABLED
bool "MRAM latency service"
depends on NRFS_HAS_MRAM_SERVICE
default y

config NRFS_TEMP_SERVICE_ENABLED
bool "Temperature service"
depends on NRFS_HAS_TEMP_SERVICE
default y

config NRFS_VBUS_DETECTOR_SERVICE_ENABLED
bool "VBUS detector for the USB peripheral"
depends on NRFS_HAS_VBUS_DETECTOR_SERVICE
default y

config NRFS_CONST_LATENCY_SERVICE_ENABLED
bool "DPPI constant latency service"
depends on NRFS_HAS_CONST_LATENCY_SERVICE
default y

config NRFS_PMIC_SERVICE_ENABLED
bool "PMIC service"
depends on NRFS_HAS_PMIC_SERVICE
default n

config NRFS_DVFS_SERVICE_ENABLED
bool "DVFS service"
depends on NRFS_HAS_DVFS_SERVICE
default y if SOC_NRF54H20_CPUAPP
default n

config NRFS_DIAG_SERVICE_ENABLED
bool "System Diagnostics service (only for development purposes)"
depends on NRFS_HAS_DIAG_SERVICE
default n

config NRFS_CLOCK_SERVICE_ENABLED
bool "Clock service"
depends on NRFS_HAS_CLOCK_SERVICE
default y
endmenu

rsource "backends/Kconfig"
rsource "dvfs/Kconfig"

endmenu
28 changes: 28 additions & 0 deletions modules/hal_nordic/nrfs/backends/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0


menu "NRFS backend settings"
depends on NRFS
module = NRFS_BACKEND
module-str = NRFS backend
source "subsys/logging/Kconfig.template.log_config"

config NRFS_BACKEND_IPC_SERVICE_LITE_INIT_PRIO
int "Initialization priority for NRFS IPC backend"
default 51
help
This should be higher than priority of other divers/subsystems
used by NRFS backend. For example MBOX_INIT_PRIORITY which is 50.

config NRFS_MAX_BACKEND_PACKET_SIZE
int "Maximum IPC data packet size in bytes"
range 8 128
default 32

config NRFS_BACKEND_TX_MSG_QUEUE_SIZE
int "Size of TX buffer message queue size"
range 1 16
default 8

endmenu
Loading

0 comments on commit d6e8033

Please sign in to comment.