diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 90bc10883..cd5619a44 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -156,5 +156,5 @@ jobs: - name: Build run: | - west -v build -b pca10056 -d examples/device/cdc_msc/build examples/device/cdc_msc -- -DRTOS=zephyr - west -v build -b pca10056 -d examples/device/msc_dual_lun/build examples/device/msc_dual_lun -- -DRTOS=zephyr + west build -b pca10056 -d examples/device/cdc_msc/build examples/device/cdc_msc -- -DRTOS=zephyr + west build -b pca10056 -d examples/device/msc_dual_lun/build examples/device/msc_dual_lun -- -DRTOS=zephyr diff --git a/hw/bsp/family_support.cmake b/hw/bsp/family_support.cmake index 1725f0de6..ccf07f21f 100644 --- a/hw/bsp/family_support.cmake +++ b/hw/bsp/family_support.cmake @@ -79,12 +79,6 @@ if (NOT NO_WARN_RWX_SEGMENTS_SUPPORTED) set(NO_WARN_RWX_SEGMENTS_SUPPORTED 1) endif() -if (RTOS STREQUAL zephyr) - set(BOARD_ROOT ${TOP}/hw/bsp/${FAMILY}) - cmake_print_variables(BOARD_ROOT BOARD) - find_package(Zephyr REQUIRED HINTS ${TOP}/zephyr) -endif () - #------------------------------------------------------------- # Functions #------------------------------------------------------------- @@ -604,7 +598,6 @@ function(family_flash_msp430flasher TARGET) ) endfunction() - function(family_flash_uniflash TARGET) if (NOT DEFINED DSLITE) set(DSLITE dslite.sh) @@ -637,3 +630,12 @@ endif () # save it in case of re-inclusion set(FAMILY_MCUS ${FAMILY_MCUS} CACHE INTERNAL "") + +#---------------------------------- +# Zephyr +#---------------------------------- +if (RTOS STREQUAL zephyr) + set(BOARD_ROOT ${TOP}/hw/bsp/${FAMILY}) + set(ZEPHYR_BOARD_ALIASES ${CMAKE_CURRENT_LIST_DIR}/zephyr_board_aliases.cmake) + find_package(Zephyr REQUIRED HINTS ${TOP}/zephyr) +endif () diff --git a/hw/bsp/nrf/boards/pca10056/zephyr/Kconfig.pca10056 b/hw/bsp/nrf/boards/pca10056/zephyr/Kconfig.pca10056 deleted file mode 100644 index a4d9619b3..000000000 --- a/hw/bsp/nrf/boards/pca10056/zephyr/Kconfig.pca10056 +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (c) 2022 Zephyr Project members and individual contributors -# SPDX-License-Identifier: Apache-2.0 - -config BOARD_PCA10056 - select SOC_NRF52840_QIAA diff --git a/hw/bsp/nrf/boards/pca10056/zephyr/board.yml b/hw/bsp/nrf/boards/pca10056/zephyr/board.yml deleted file mode 100644 index e45a33365..000000000 --- a/hw/bsp/nrf/boards/pca10056/zephyr/board.yml +++ /dev/null @@ -1,6 +0,0 @@ -board: - name: pca10056 - full_name: nRF52840 DK - vendor: nordic - socs: - - name: nrf52840 diff --git a/hw/bsp/nrf/boards/pca10056/zephyr/pca10056_nrf52840-pinctrl.dtsi b/hw/bsp/nrf/boards/pca10056/zephyr/pca10056_nrf52840-pinctrl.dtsi deleted file mode 100644 index 779d0d518..000000000 --- a/hw/bsp/nrf/boards/pca10056/zephyr/pca10056_nrf52840-pinctrl.dtsi +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright (c) 2022 Nordic Semiconductor - * SPDX-License-Identifier: Apache-2.0 - */ - -&pinctrl { - uart0_default: uart0_default { - group1 { - psels = , - ; - }; - group2 { - psels = , - ; - bias-pull-up; - }; - }; - - uart0_sleep: uart0_sleep { - group1 { - psels = , - , - , - ; - low-power-enable; - }; - }; - - uart1_default: uart1_default { - group1 { - psels = ; - bias-pull-up; - }; - group2 { - psels = ; - }; - }; - - uart1_sleep: uart1_sleep { - group1 { - psels = , - ; - low-power-enable; - }; - }; - - i2c0_default: i2c0_default { - group1 { - psels = , - ; - }; - }; - - i2c0_sleep: i2c0_sleep { - group1 { - psels = , - ; - low-power-enable; - }; - }; - - i2c1_default: i2c1_default { - group1 { - psels = , - ; - }; - }; - - i2c1_sleep: i2c1_sleep { - group1 { - psels = , - ; - low-power-enable; - }; - }; - - pwm0_default: pwm0_default { - group1 { - psels = ; - nordic,invert; - }; - }; - - pwm0_sleep: pwm0_sleep { - group1 { - psels = ; - low-power-enable; - }; - }; - - spi0_default: spi0_default { - group1 { - psels = , - , - ; - }; - }; - - spi0_sleep: spi0_sleep { - group1 { - psels = , - , - ; - low-power-enable; - }; - }; - - spi1_default: spi1_default { - group1 { - psels = , - , - ; - }; - }; - - spi1_sleep: spi1_sleep { - group1 { - psels = , - , - ; - low-power-enable; - }; - }; - - spi2_default: spi2_default { - group1 { - psels = , - , - ; - }; - }; - - spi2_sleep: spi2_sleep { - group1 { - psels = , - , - ; - low-power-enable; - }; - }; - - qspi_default: qspi_default { - group1 { - psels = , - , - , - , - , - ; - nordic,drive-mode = ; - }; - }; - - qspi_sleep: qspi_sleep { - group1 { - psels = , - , - , - , - ; - low-power-enable; - }; - group2 { - psels = ; - low-power-enable; - bias-pull-up; - }; - }; - - spi3_default: spi3_default { - group1 { - psels = , - , - ; - }; - }; - - spi3_sleep: spi3_sleep { - group1 { - psels = , - , - ; - low-power-enable; - }; - }; - -}; diff --git a/hw/bsp/nrf/boards/pca10056/zephyr/pca10056_nrf52840.dts b/hw/bsp/nrf/boards/pca10056/zephyr/pca10056_nrf52840.dts deleted file mode 100644 index d7c9266d2..000000000 --- a/hw/bsp/nrf/boards/pca10056/zephyr/pca10056_nrf52840.dts +++ /dev/null @@ -1,278 +0,0 @@ -/* - * Copyright (c) 2017 Linaro Limited - * - * SPDX-License-Identifier: Apache-2.0 - */ - -/dts-v1/; -#include -#include -#include "pca10056_nrf52840-pinctrl.dtsi" -#include - -/ { - model = "Nordic nRF52840 DK NRF52840"; - compatible = "nordic,nrf52840-dk-nrf52840"; - - chosen { - zephyr,console = &uart0; - zephyr,shell-uart = &uart0; - zephyr,uart-mcumgr = &uart0; - zephyr,bt-mon-uart = &uart0; - zephyr,bt-c2h-uart = &uart0; - zephyr,ieee802154 = &ieee802154; - }; - - leds { - compatible = "gpio-leds"; - led0: led_0 { - gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; - label = "Green LED 0"; - }; - led1: led_1 { - gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; - label = "Green LED 1"; - }; - led2: led_2 { - gpios = <&gpio0 15 GPIO_ACTIVE_LOW>; - label = "Green LED 2"; - }; - led3: led_3 { - gpios = <&gpio0 16 GPIO_ACTIVE_LOW>; - label = "Green LED 3"; - }; - }; - - pwmleds { - compatible = "pwm-leds"; - pwm_led0: pwm_led_0 { - pwms = <&pwm0 0 PWM_MSEC(20) PWM_POLARITY_INVERTED>; - }; - }; - - buttons { - compatible = "gpio-keys"; - button0: button_0 { - gpios = <&gpio0 11 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; - label = "Push button switch 0"; - zephyr,code = ; - }; - button1: button_1 { - gpios = <&gpio0 12 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; - label = "Push button switch 1"; - zephyr,code = ; - }; - button2: button_2 { - gpios = <&gpio0 24 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; - label = "Push button switch 2"; - zephyr,code = ; - }; - button3: button_3 { - gpios = <&gpio0 25 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; - label = "Push button switch 3"; - zephyr,code = ; - }; - }; - - arduino_header: connector { - compatible = "arduino-header-r3"; - #gpio-cells = <2>; - gpio-map-mask = <0xffffffff 0xffffffc0>; - gpio-map-pass-thru = <0 0x3f>; - gpio-map = <0 0 &gpio0 3 0>, /* A0 */ - <1 0 &gpio0 4 0>, /* A1 */ - <2 0 &gpio0 28 0>, /* A2 */ - <3 0 &gpio0 29 0>, /* A3 */ - <4 0 &gpio0 30 0>, /* A4 */ - <5 0 &gpio0 31 0>, /* A5 */ - <6 0 &gpio1 1 0>, /* D0 */ - <7 0 &gpio1 2 0>, /* D1 */ - <8 0 &gpio1 3 0>, /* D2 */ - <9 0 &gpio1 4 0>, /* D3 */ - <10 0 &gpio1 5 0>, /* D4 */ - <11 0 &gpio1 6 0>, /* D5 */ - <12 0 &gpio1 7 0>, /* D6 */ - <13 0 &gpio1 8 0>, /* D7 */ - <14 0 &gpio1 10 0>, /* D8 */ - <15 0 &gpio1 11 0>, /* D9 */ - <16 0 &gpio1 12 0>, /* D10 */ - <17 0 &gpio1 13 0>, /* D11 */ - <18 0 &gpio1 14 0>, /* D12 */ - <19 0 &gpio1 15 0>, /* D13 */ - <20 0 &gpio0 26 0>, /* D14 */ - <21 0 &gpio0 27 0>; /* D15 */ - }; - - arduino_adc: analog-connector { - compatible = "arduino,uno-adc"; - #io-channel-cells = <1>; - io-channel-map = <0 &adc 1>, /* A0 = P0.3 = AIN1 */ - <1 &adc 2>, /* A1 = P0.4 = AIN2 */ - <2 &adc 4>, /* A2 = P0.28 = AIN4 */ - <3 &adc 5>, /* A3 = P0.29 = AIN5 */ - <4 &adc 6>, /* A4 = P0.30 = AIN6 */ - <5 &adc 7>; /* A5 = P0.31 = AIN7 */ - }; - - /* These aliases are provided for compatibility with samples */ - aliases { - led0 = &led0; - led1 = &led1; - led2 = &led2; - led3 = &led3; - pwm-led0 = &pwm_led0; - sw0 = &button0; - sw1 = &button1; - sw2 = &button2; - sw3 = &button3; - bootloader-led0 = &led0; - mcuboot-button0 = &button0; - mcuboot-led0 = &led0; - watchdog0 = &wdt0; - }; -}; - -®0 { - status = "okay"; -}; - -®1 { - regulator-initial-mode = ; -}; - -&adc { - status = "okay"; -}; - -&uicr { - gpio-as-nreset; -}; - -&gpiote { - status = "okay"; -}; - -&gpio0 { - status = "okay"; - gpio-reserved-ranges = <0 2>, <6 1>, <8 3>, <17 7>; - gpio-line-names = "XL1", "XL2", "AREF", "A0", "A1", "RTS", "TXD", - "CTS", "RXD", "NFC1", "NFC2", "BUTTON1", "BUTTON2", "LED1", - "LED2", "LED3", "LED4", "QSPI CS", "RESET", "QSPI CLK", - "QSPI DIO0", "QSPI DIO1", "QSPI DIO2", "QSPI DIO3","BUTTON3", - "BUTTON4", "SDA", "SCL", "A2", "A3", "A4", "A5"; -}; - -&gpio1 { - status = "okay"; - gpio-line-names = "", "D0", "D1", "D2", "D3", "D4", "D5", "D6", - "D7", "", "D8", "D9", "D10", "D11", "D12", "D13"; -}; - -&uart0 { - compatible = "nordic,nrf-uarte"; - status = "okay"; - current-speed = <115200>; - pinctrl-0 = <&uart0_default>; - pinctrl-1 = <&uart0_sleep>; - pinctrl-names = "default", "sleep"; -}; - -arduino_serial: &uart1 { - current-speed = <115200>; - pinctrl-0 = <&uart1_default>; - pinctrl-1 = <&uart1_sleep>; - pinctrl-names = "default", "sleep"; -}; - -arduino_i2c: &i2c0 { - compatible = "nordic,nrf-twi"; - status = "okay"; - pinctrl-0 = <&i2c0_default>; - pinctrl-1 = <&i2c0_sleep>; - pinctrl-names = "default", "sleep"; -}; - -&i2c1 { - compatible = "nordic,nrf-twi"; - /* Cannot be used together with spi1. */ - /* status = "okay"; */ - pinctrl-0 = <&i2c1_default>; - pinctrl-1 = <&i2c1_sleep>; - pinctrl-names = "default", "sleep"; -}; - -&pwm0 { - status = "okay"; - pinctrl-0 = <&pwm0_default>; - pinctrl-1 = <&pwm0_sleep>; - pinctrl-names = "default", "sleep"; -}; - -&spi0 { - compatible = "nordic,nrf-spi"; - /* Cannot be used together with i2c0. */ - /* status = "okay"; */ - pinctrl-0 = <&spi0_default>; - pinctrl-1 = <&spi0_sleep>; - pinctrl-names = "default", "sleep"; -}; - -&spi1 { - compatible = "nordic,nrf-spi"; - status = "okay"; - pinctrl-0 = <&spi1_default>; - pinctrl-1 = <&spi1_sleep>; - pinctrl-names = "default", "sleep"; -}; - -&spi2 { - compatible = "nordic,nrf-spi"; - status = "disabled"; - pinctrl-0 = <&spi2_default>; - pinctrl-1 = <&spi2_sleep>; - pinctrl-names = "default", "sleep"; -}; - -&qspi { - status = "okay"; - pinctrl-0 = <&qspi_default>; - pinctrl-1 = <&qspi_sleep>; - pinctrl-names = "default", "sleep"; - mx25r64: mx25r6435f@0 { - compatible = "nordic,qspi-nor"; - reg = <0>; - /* MX25R64 supports only pp and pp4io */ - writeoc = "pp4io"; - /* MX25R64 supports all readoc options */ - readoc = "read4io"; - sck-frequency = <8000000>; - jedec-id = [c2 28 17]; - sfdp-bfp = [ - e5 20 f1 ff ff ff ff 03 44 eb 08 6b 08 3b 04 bb - ee ff ff ff ff ff 00 ff ff ff 00 ff 0c 20 0f 52 - 10 d8 00 ff 23 72 f5 00 82 ed 04 cc 44 83 68 44 - 30 b0 30 b0 f7 c4 d5 5c 00 be 29 ff f0 d0 ff ff - ]; - size = <67108864>; - has-dpd; - t-enter-dpd = <10000>; - t-exit-dpd = <35000>; - }; -}; - -arduino_spi: &spi3 { - status = "okay"; - cs-gpios = <&arduino_header 16 GPIO_ACTIVE_LOW>; /* D10 */ - pinctrl-0 = <&spi3_default>; - pinctrl-1 = <&spi3_sleep>; - pinctrl-names = "default", "sleep"; -}; - -&ieee802154 { - status = "okay"; -}; - -zephyr_udc0: &usbd { - compatible = "nordic,nrf-usbd"; - status = "okay"; -}; diff --git a/hw/bsp/nrf/boards/pca10056/zephyr/pca10056_nrf52840.yaml b/hw/bsp/nrf/boards/pca10056/zephyr/pca10056_nrf52840.yaml deleted file mode 100644 index 74b077dce..000000000 --- a/hw/bsp/nrf/boards/pca10056/zephyr/pca10056_nrf52840.yaml +++ /dev/null @@ -1,28 +0,0 @@ -identifier: pca10056/nrf52840 -name: nRF52840-DK-NRF52840 -type: mcu -arch: arm -ram: 256 -flash: 1024 -toolchain: - - zephyr - - gnuarmemb - - xtools -supported: - - adc - - arduino_gpio - - arduino_i2c - - arduino_serial - - arduino_spi - - ble - - counter - - gpio - - i2c - - i2s - - pwm - - spi - - usb_device - - usbd - - watchdog - - netif:openthread -vendor: nordic diff --git a/hw/bsp/nrf/family.cmake b/hw/bsp/nrf/family.cmake index 2d2a12e7e..f4c9bd63f 100644 --- a/hw/bsp/nrf/family.cmake +++ b/hw/bsp/nrf/family.cmake @@ -130,6 +130,10 @@ function(family_configure_example TARGET RTOS) ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../../ ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/boards/${BOARD} ) + if (RTOS STREQUAL zephyr AND DEFINED BOARD_ALIAS AND NOT BOARD STREQUAL BOARD_ALIAS) + target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/boards/${BOARD_ALIAS}) + endif () + # Add TinyUSB target and port source family_add_tinyusb(${TARGET} OPT_MCU_NRF5X) diff --git a/hw/bsp/nrf/boards/pca10056/board_aliases.cmake b/hw/bsp/zephyr_board_aliases.cmake similarity index 100% rename from hw/bsp/nrf/boards/pca10056/board_aliases.cmake rename to hw/bsp/zephyr_board_aliases.cmake