diff --git a/arch/arm/src/nrf53/CMakeLists.txt b/arch/arm/src/nrf53/CMakeLists.txt new file mode 100644 index 0000000000..a77e337244 --- /dev/null +++ b/arch/arm/src/nrf53/CMakeLists.txt @@ -0,0 +1,165 @@ +############################################################################ +# arch/arm/src/nrf53/CMakeLists.txt +# +# 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. +# +############################################################################ + +set(SRCS + nrf53_start.c + nrf53_clockconfig.c + nrf53_irq.c + nrf53_utils.c + nrf53_allocateheap.c + nrf53_lowputc.c + nrf53_gpio.c + nrf53_uid.c) + +if(CONFIG_NRF53_SYSTIMER_SYSTICK) + list(APPEND SRCS nrf53_systick.c) +endif() + +if(CONFIG_NRF53_SYSTIMER_RTC) + list(APPEND SRCS nrf53_tickless_rtc.c) +endif() + +if(CONFIG_NRF53_APPCORE) + list(APPEND SRCS nrf53_oscconfig.c nrf53_cpunet.c) +endif() + +if(CONFIG_NRF53_PROGMEM) + list(APPEND SRCS nrf53_flash.c) +endif() + +if(NOT CONFIG_ARCH_IDLE_CUSTOM) + list(APPEND SRCS nrf53_idle.c) +endif() + +if(CONFIG_NRF53_GPIOTE) + list(APPEND SRCS nrf53_gpiote.c) +endif() + +if(CONFIG_NRF53_UART) + list(APPEND SRCS nrf53_serial.c) +endif() + +if(CONFIG_NRF53_IPC) + list(APPEND SRCS nrf53_ipc.c) +endif() + +if(CONFIG_NRF53_RPTUN) + list(APPEND SRCS nrf53_rptun.c) +endif() + +if(CONFIG_NRF53_SPI_MASTER) + list(APPEND SRCS nrf53_spi.c) +endif() + +if(CONFIG_NRF53_I2C_MASTER) + list(APPEND SRCS nrf53_i2c.c) +endif() + +if(CONFIG_NRF53_TIMER) + list(APPEND SRCS nrf53_tim.c) + + if(CONFIG_TIMER) + list(APPEND SRCS nrf53_tim_lowerhalf.c) + endif() +endif() + +if(CONFIG_NRF53_RTC) + list(APPEND SRCS nrf53_rtc.c) +endif() + +if(CONFIG_NRF53_PWM) + list(APPEND SRCS nrf53_pwm.c) +endif() + +if(CONFIG_NRF53_SAADC) + list(APPEND SRCS nrf53_adc.c) +endif() + +if(CONFIG_PM) + list(APPEND SRCS nrf53_pminitialize.c) +endif() + +if(CONFIG_USBDEV) + list(APPEND SRCS nrf53_usbd.c) +endif() + +if(CONFIG_NRF53_QSPI) + list(APPEND SRCS nrf53_qspi.c) +endif() + +if(CONFIG_NRF53_SOFTDEVICE_CONTROLLER) + +set(NRFXLIB_VER "2.3.0") +set(NRFXLIB_URL "https://github.com/nrfconnect/sdk-nrfxlib/archive") + +if(NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/sdk-nrfxlib) + FetchContent_Declare( + sdk-nrfxlib + DOWNLOAD_NAME "sdk-nrfxlib-v${NRFXLIB_VER}.tar.gz" + DOWNLOAD_DIR ${CMAKE_CURRENT_LIST_DIR} + URL "${NRFXLIB_URL}/v${NRFXLIB_VER}.tar.gz" + SOURCE_DIR + ${CMAKE_CURRENT_LIST_DIR}/sdk-nrfxlib + BINARY_DIR + ${CMAKE_BINARY_DIR}/arch/sdk-nrfxlib + CONFIGURE_COMMAND + "" + BUILD_COMMAND + "" + INSTALL_COMMAND + "" + TEST_COMMAND + "" + DOWNLOAD_NO_PROGRESS true + TIMEOUT 30) + + FetchContent_GetProperties(sdk-nrfxlib) + + if(NOT sdk-nrfxlib_POPULATED) + FetchContent_Populate(sdk-nrfxlib) + endif() +endif() + +set(NRFXLIB_DIR "${NUTTX_CHIP_ABS_DIR}/sdk-nrfxlib") + +target_include_directories(arch PRIVATE ${NUTTX_CHIP_ABS_DIR}/sdc) +target_include_directories(arch PRIVATE ${NRFXLIB_DIR}/mpsl/include) +target_include_directories(arch PRIVATE ${NRFXLIB_DIR}/softdevice_controller/include) + +list(APPEND SRCS nrf53_sdc.c) + +add_compile_options(-DNRF53_SERIES) + +if(CONFIG_ARCH_FPU) + set(NRFXLIB_LIB_VARIANT hard-float) +else () + set(NRFXLIB_LIB_VARIANT soft-float) +endif() + +set(SOFTDEVICE_LIB_VARIANT libsoftdevice_controller_multirole.a) + +target_link_libraries(arch + ${NRFXLIB_DIR}/mpsl/lib/cortex-m33+nodsp/${NRFXLIB_LIB_VARIANT}/libmpsl.a) +target_link_libraries(arch + ${NRFXLIB_DIR}/softdevice_controller/lib/cortex-m33+nodsp/${NRFXLIB_LIB_VARIANT}/${SOFTDEVICE_LIB_VARIANT}) + +endif() + +target_sources(arch PRIVATE ${SRCS}) diff --git a/boards/arm/nrf53/common/CMakeLists.txt b/boards/arm/nrf53/common/CMakeLists.txt new file mode 100644 index 0000000000..b42be3bbd8 --- /dev/null +++ b/boards/arm/nrf53/common/CMakeLists.txt @@ -0,0 +1,22 @@ +############################################################################ +# boards/arm/nrf53/common/CMakeLists.txt +# +# 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. +# +############################################################################ + +add_subdirectory(src) +target_include_directories(board PRIVATE include) diff --git a/boards/arm/nrf53/common/src/CMakeLists.txt b/boards/arm/nrf53/common/src/CMakeLists.txt new file mode 100644 index 0000000000..e8dfce1417 --- /dev/null +++ b/boards/arm/nrf53/common/src/CMakeLists.txt @@ -0,0 +1,37 @@ +############################################################################ +# boards/arm/nrf53/common/src/CMakeLists.txt +# +# 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. +# +############################################################################ + +if(CONFIG_ARCH_BOARD_COMMON) + +if(CONFIG_NRF53_TIMER) + list(APPEND SRCS nrf53_timer.c) +endif() + +if(CONFIG_BOARDCTL_BOOT_IMAGE) + list(APPEND SRCS nrf53_boot_image.c) +endif() + +if(CONFIG_NRF53_PROGMEM) + list(APPEND SRCS nrf53_progmem.c) +endif() + +target_sources(board PRIVATE ${SRCS}) + +endif() diff --git a/boards/arm/nrf53/nrf5340-audio-dk/CMakeLists.txt b/boards/arm/nrf53/nrf5340-audio-dk/CMakeLists.txt new file mode 100644 index 0000000000..b3c3e6767d --- /dev/null +++ b/boards/arm/nrf53/nrf5340-audio-dk/CMakeLists.txt @@ -0,0 +1,21 @@ +# ############################################################################## +# boards/arm/nrf53/nrf5340-audio-dk/CMakeLists.txt +# +# 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. +# +# ############################################################################## + +add_subdirectory(src) diff --git a/boards/arm/nrf53/nrf5340-audio-dk/src/CMakeLists.txt b/boards/arm/nrf53/nrf5340-audio-dk/src/CMakeLists.txt new file mode 100644 index 0000000000..b33c3fec5e --- /dev/null +++ b/boards/arm/nrf53/nrf5340-audio-dk/src/CMakeLists.txt @@ -0,0 +1,47 @@ +############################################################################ +# boards/arm/nrf53/nrf5340-audio-dk/src/CMakeLists.txt +# +# 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. +# +############################################################################ + +set(SRCS nrf53_boot.c nrf53_bringup.c) + +if(CONFIG_BOARDCTL) + list(APPEND SRCS nrf53_appinit.c) +endif() + +if(CONFIG_ARCH_LEDS) + list(APPEND SRCS nrf53_autoleds.c) +else() + list(APPEND SRCS nrf53_userleds.c) +endif() + +target_sources(board PRIVATE ${SRCS}) + +if(CONFIG_ARCH_BOARD_COMMON) + if(CONFIG_ARCH_CHIP_NRF5340_CPUAPP) + set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_COMMON_DIR}/scripts/flash_app.ld") + else() + set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_COMMON_DIR}/scripts/flash_net.ld") + endif() +else() + if(CONFIG_ARCH_CHIP_NRF5340_CPUAPP) + set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/flash_app.ld") + else() + set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/flash_net.ld") + endif() +endif() diff --git a/boards/arm/nrf53/nrf5340-dk/CMakeLists.txt b/boards/arm/nrf53/nrf5340-dk/CMakeLists.txt new file mode 100644 index 0000000000..3a9bbe8fbc --- /dev/null +++ b/boards/arm/nrf53/nrf5340-dk/CMakeLists.txt @@ -0,0 +1,21 @@ +# ############################################################################## +# boards/arm/nrf53/nrf5340-dk/CMakeLists.txt +# +# 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. +# +# ############################################################################## + +add_subdirectory(src) diff --git a/boards/arm/nrf53/nrf5340-dk/src/CMakeLists.txt b/boards/arm/nrf53/nrf5340-dk/src/CMakeLists.txt new file mode 100644 index 0000000000..f4844fad4b --- /dev/null +++ b/boards/arm/nrf53/nrf5340-dk/src/CMakeLists.txt @@ -0,0 +1,75 @@ +############################################################################ +# boards/arm/nrf53/nrf5340-dk/src/CMakeLists.txt +# +# 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. +# +############################################################################ + +set(SRCS nrf53_boot.c nrf53_bringup.c) + +if(CONFIG_BOARDCTL) + list(APPEND SRCS nrf53_appinit.c) +endif() + +if(CONFIG_NRF53_APPCORE) + list(APPEND SRCS nrf53_cpunet_boot.c) +endif() + +if(CONFIG_ARCH_LEDS) + list(APPEND SRCS nrf53_autoleds.c) +else() + list(APPEND SRCS nrf53_userleds.c) +endif() + +if(CONFIG_ARCH_BUTTONS) + list(APPEND SRCS nrf53_buttons.c) +endif() + +if(CONFIG_PWM) + list(APPEND SRCS nrf53_pwm.c) +endif() + +if(CONFIG_ADC) + list(APPEND SRCS nrf53_adc.c) +endif() + +if(CONFIG_USBDEV) + list(APPEND SRCS nrf53_usb.c) +endif() + +if(CONFIG_USBDEV_COMPOSITE) + list(APPEND SRCS nrf53_composite.c) +endif() + +if(CONFIG_NRF53_QSPI) + list(APPEND SRCS nrf53_mx25.c) +endif() + +target_sources(board PRIVATE ${SRCS}) + +if(CONFIG_ARCH_BOARD_COMMON) + if(CONFIG_ARCH_CHIP_NRF5340_CPUAPP) + set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_COMMON_DIR}/scripts/flash_app.ld") + else() + set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_COMMON_DIR}/scripts/flash_net.ld") + endif() +else() + if(CONFIG_ARCH_CHIP_NRF5340_CPUAPP) + set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/flash_app.ld") + else() + set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/flash_net.ld") + endif() +endif() diff --git a/boards/arm/nrf53/thingy53/CMakeLists.txt b/boards/arm/nrf53/thingy53/CMakeLists.txt new file mode 100644 index 0000000000..f7fbe60a1d --- /dev/null +++ b/boards/arm/nrf53/thingy53/CMakeLists.txt @@ -0,0 +1,21 @@ +# ############################################################################## +# boards/arm/nrf53/thingy53/CMakeLists.txt +# +# 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. +# +# ############################################################################## + +add_subdirectory(src) diff --git a/boards/arm/nrf53/thingy53/src/CMakeLists.txt b/boards/arm/nrf53/thingy53/src/CMakeLists.txt new file mode 100644 index 0000000000..005e2049c6 --- /dev/null +++ b/boards/arm/nrf53/thingy53/src/CMakeLists.txt @@ -0,0 +1,63 @@ +############################################################################ +# boards/arm/nrf53/thingy53/src/CMakeLists.txt +# +# 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. +# +############################################################################ + +set(SRCS nrf53_boot.c nrf53_bringup.c) + +if(CONFIG_BOARDCTL) + list(APPEND SRCS nrf53_appinit.c) +endif() + +if(CONFIG_ARCH_LEDS) + list(APPEND SRCS nrf53_autoleds.c) +else() + list(APPEND SRCS nrf53_userleds.c) +endif() + +if(CONFIG_NRF53_APPCORE) + list(APPEND SRCS nrf53_cpunet_boot.c) +endif() + +if(CONFIG_ARCH_BUTTONS) + list(APPEND SRCS nrf53_buttons.c) +endif() + +if(CONFIG_USBDEV) + list(APPEND SRCS nrf53_usb.c) +endif() + +if(CONFIG_USBDEV_COMPOSITE) + list(APPEND SRCS nrf53_composite.c) +endif() + +target_sources(board PRIVATE ${SRCS}) + +if(CONFIG_ARCH_BOARD_COMMON) + if(CONFIG_ARCH_CHIP_NRF5340_CPUAPP) + set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_COMMON_DIR}/scripts/flash_app.ld") + else() + set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_COMMON_DIR}/scripts/flash_net.ld") + endif() +else() + if(CONFIG_ARCH_CHIP_NRF5340_CPUAPP) + set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/flash_app.ld") + else() + set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/flash_net.ld") + endif() +endif()