diff --git a/arch/arm/src/nrf91/CMakeLists.txt b/arch/arm/src/nrf91/CMakeLists.txt new file mode 100644 index 00000000000..41526879104 --- /dev/null +++ b/arch/arm/src/nrf91/CMakeLists.txt @@ -0,0 +1,150 @@ +############################################################################ +# arch/arm/src/nrf91/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 + nrf91_start.c + nrf91_clockconfig.c + nrf91_irq.c + nrf91_utils.c + nrf91_allocateheap.c + nrf91_lowputc.c + nrf91_gpio.c + nrf91_uid.c + nrf91_spu.c + nrf91_errata.c) + +if(CONFIG_NRF91_SYSTIMER_SYSTICK) + list(APPEND SRCS nrf91_systick.c) +endif() + +if(CONFIG_NRF91_SYSTIMER_RTC) + list(APPEND SRCS nrf91_tickless_rtc.c) +endif() + +if(CONFIG_NRF91_PROGMEM) + list(APPEND SRCS nrf91_flash.c) +endif() + +if(NOT CONFIG_ARCH_IDLE_CUSTOM) + list(APPEND SRCS nrf91_idle.c) +endif() + +if(CONFIG_NRF91_GPIOTE) + list(APPEND SRCS nrf91_gpiote.c) +endif() + +if(CONFIG_NRF91_UART) + list(APPEND SRCS nrf91_serial.c) +endif() + +if(CONFIG_NRF91_SPI_MASTER) + list(APPEND SRCS nrf91_spi.c) +endif() + +if(CONFIG_NRF91_I2C_MASTER) + list(APPEND SRCS nrf91_i2c.c) +endif() + +if(CONFIG_NRF91_TIMER) + list(APPEND SRCS nrf91_tim.c) + + if(CONFIG_TIMER) + list(APPEND SRCS nrf91_tim_lowerhalf.c) + endif() +endif() + +if(CONFIG_NRF91_RTC) + list(APPEND SRCS nrf91_rtc.c) +endif() + +if(CONFIG_NRF91_PWM) + list(APPEND SRCS nrf91_pwm.c) +endif() + +if(CONFIG_NRF91_SAADC) + list(APPEND SRCS nrf91_adc.c) +endif() + +if(CONFIG_PM) + list(APPEND SRCS nrf91_pminitialize.c) +endif() + +if(CONFIG_NRF91_MODEM) + +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 ${NRFXLIB_DIR}/nrf_modem/include) + +list(APPEND SRCS nrf53_modem.c nrf53_modem_os.c nrf53_nrfx_ipc.c) + +if(CONFIG_NRF91_MODEM_AT) + list(APPEND SRCS nrf91_modem_at.c) +endif() + +if(CONFIG_ARCH_FPU) + set(NRFXLIB_LIB_VARIANT hard-float) +else () + set(NRFXLIB_LIB_VARIANT soft-float) +endif() + +if(CONFIG_NRF91_MODEM_LOG) + set(MODEM_LIB_VARIANT libmodem_log.a) +else() + set(MODEM_LIB_VARIANT libmodem_log.a) +endif() + +target_link_libraries(arch + ${NRFXLIB_DIR}/nrf_modem/lib/cortex-m33+nodsp/${NRFXLIB_LIB_VARIANT}/${MODEM_LIB_VARIANT}) + +endif() + +target_sources(arch PRIVATE ${SRCS}) diff --git a/boards/arm/nrf91/common/CMakeLists.txt b/boards/arm/nrf91/common/CMakeLists.txt new file mode 100644 index 00000000000..9f9b95e1c61 --- /dev/null +++ b/boards/arm/nrf91/common/CMakeLists.txt @@ -0,0 +1,22 @@ +############################################################################ +# boards/arm/nrf91/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/nrf91/common/src/CMakeLists.txt b/boards/arm/nrf91/common/src/CMakeLists.txt new file mode 100644 index 00000000000..2c21fb05af7 --- /dev/null +++ b/boards/arm/nrf91/common/src/CMakeLists.txt @@ -0,0 +1,37 @@ +############################################################################ +# boards/arm/nrf91/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_NRF91_TIMER) + list(APPEND SRCS nrf91_timer.c) +endif() + +if(CONFIG_BOARDCTL_BOOT_IMAGE) + list(APPEND SRCS nrf91_boot_image.c) +endif() + +if(CONFIG_NRF91_PROGMEM) + list(APPEND SRCS nrf91_progmem.c) +endif() + +target_sources(board PRIVATE ${SRCS}) + +endif() diff --git a/boards/arm/nrf91/nrf9160-dk/CMakeLists.txt b/boards/arm/nrf91/nrf9160-dk/CMakeLists.txt new file mode 100644 index 00000000000..a8c8d85e060 --- /dev/null +++ b/boards/arm/nrf91/nrf9160-dk/CMakeLists.txt @@ -0,0 +1,21 @@ +# ############################################################################## +# boards/arm/nrf91/nrf9160-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/nrf91/nrf9160-dk/src/CMakeLists.txt b/boards/arm/nrf91/nrf9160-dk/src/CMakeLists.txt new file mode 100644 index 00000000000..752ff5e10f1 --- /dev/null +++ b/boards/arm/nrf91/nrf9160-dk/src/CMakeLists.txt @@ -0,0 +1,43 @@ +############################################################################ +# boards/arm/nrf91/nrf9160-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 nrf91_boot.c nrf91_bringup.c) + +if(CONFIG_BOARDCTL) + list(APPEND SRCS nrf91_appinit.c) +endif() + +if(CONFIG_ARCH_LEDS) + list(APPEND SRCS nrf91_autoleds.c) +else() + list(APPEND SRCS nrf91_userleds.c) +endif() + +if(CONFIG_ARCH_BUTTONS) + list(APPEND SRCS nrf91_buttons.c) +endif() + +target_sources(board PRIVATE ${SRCS}) + +if(CONFIG_ARCH_BOARD_COMMON) + set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_COMMON_DIR}/scripts/flash_app.ld") +else() + set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/flash_app.ld") +endif()