Skip to content

Commit 8473ff6

Browse files
authored
Merge pull request #331 from adafruit/minor-update
Minor update
2 parents 836c8dc + 5f99d53 commit 8473ff6

File tree

11 files changed

+98
-116
lines changed

11 files changed

+98
-116
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@
33
*By completing this PR sufficiently, you help us to review this Pull Request quicker and also help improve the quality of Release Notes*
44

55
- [ ] Please provide specific title of the PR describing the change
6-
- [ ] Please provide related links (*eg. Issue which will be closed by this Pull Request*)
76
- [ ] If you are adding an new boards, please make sure
87
- [ ] Provide link to your allocated VID/PID if applicable
9-
- [ ] Add your board to [action ci](/.github/workflows) in correct workflow and alphabet order for release binary
108
- [ ] `UF2_BOARD_ID` in your board.h follow correct format from [uf2 specs](https://github.com/microsoft/uf2#files-exposed-by-bootloaders)
119

1210
*This checklist items that are not applicable to your PR can be deleted.*

.github/workflows/githubci.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,6 @@ jobs:
3333
matrix:
3434
board: ${{ fromJSON(needs.set-matrix.outputs.matrix) }}
3535
steps:
36-
- name: Setup Python
37-
uses: actions/setup-python@v5
38-
with:
39-
python-version: '3.x'
40-
4136
- name: Checkout Code
4237
uses: actions/checkout@v4
4338
with:

CMakeLists.txt

Lines changed: 73 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_LIST_DIR}/cmake/toolchain/arm_${TOOLCHA
2525

2626
project(Adafruit_nRF52_Bootloader C ASM)
2727

28-
set(NRFX ${CMAKE_CURRENT_LIST_DIR}/lib/nrfx)
29-
set(SDK11 ${CMAKE_CURRENT_LIST_DIR}/lib/sdk11/components)
30-
set(SDK ${CMAKE_CURRENT_LIST_DIR}/lib/sdk/components)
31-
set(SOFTDEVICE ${CMAKE_CURRENT_LIST_DIR}/lib/softdevice)
32-
set(TUSB ${CMAKE_CURRENT_LIST_DIR}/lib/tinyusb/src)
28+
set(NRFX_DIR ${CMAKE_CURRENT_LIST_DIR}/lib/nrfx)
29+
set(SDK11_DIR ${CMAKE_CURRENT_LIST_DIR}/lib/sdk11/components)
30+
set(SDK_DIR ${CMAKE_CURRENT_LIST_DIR}/lib/sdk/components)
31+
set(SOFTDEVICE_DIR ${CMAKE_CURRENT_LIST_DIR}/lib/softdevice)
32+
set(TINYUSB_DIR ${CMAKE_CURRENT_LIST_DIR}/lib/tinyusb/src)
3333

3434
set(UF2CONV_PY ${CMAKE_CURRENT_LIST_DIR}/lib/uf2/utils/uf2conv.py)
3535
set(UF2_FAMILY_ID_BOOTLOADER 0xd663823c)
@@ -42,10 +42,14 @@ add_executable(bootloader)
4242

4343
# SD_VERSION can be overwritten by board.cmake
4444
if(NOT DEFINED SD_VERSION)
45-
set(SD_VERSION 6.1.1)
45+
if(MCU_VARIANT STREQUAL "nrf52833")
46+
set(SD_VERSION 7.3.0)
47+
else()
48+
set(SD_VERSION 6.1.1)
49+
endif()
4650
endif ()
4751

48-
set(MBR_HEX ${SOFTDEVICE}/mbr/hex/mbr_nrf52_2.4.1_mbr.hex)
52+
set(MBR_HEX ${SOFTDEVICE_DIR}/mbr/hex/mbr_nrf52_2.4.1_mbr.hex)
4953

5054
target_sources(bootloader PUBLIC
5155
# src
@@ -57,63 +61,63 @@ target_sources(bootloader PUBLIC
5761
src/images.c
5862
src/boards/boards.c
5963
# nrfx
60-
${NRFX}/drivers/src/nrfx_power.c
61-
${NRFX}/drivers/src/nrfx_nvmc.c
62-
${NRFX}/mdk/system_${MCU_VARIANT}.c
64+
${NRFX_DIR}/drivers/src/nrfx_power.c
65+
${NRFX_DIR}/drivers/src/nrfx_nvmc.c
66+
${NRFX_DIR}/mdk/system_${MCU_VARIANT}.c
6367
# sdk 11
64-
${SDK11}/libraries/bootloader_dfu/bootloader.c
65-
${SDK11}/libraries/bootloader_dfu/bootloader_settings.c
66-
${SDK11}/libraries/bootloader_dfu/bootloader_util.c
67-
${SDK11}/libraries/bootloader_dfu/dfu_transport_serial.c
68-
${SDK11}/libraries/bootloader_dfu/dfu_transport_ble.c
69-
${SDK11}/libraries/bootloader_dfu/dfu_single_bank.c
70-
${SDK11}/ble/ble_services/ble_dfu/ble_dfu.c
71-
${SDK11}/ble/ble_services/ble_dis/ble_dis.c
72-
${SDK11}/drivers_nrf/pstorage/pstorage_raw.c
68+
${SDK11_DIR}/libraries/bootloader_dfu/bootloader.c
69+
${SDK11_DIR}/libraries/bootloader_dfu/bootloader_settings.c
70+
${SDK11_DIR}/libraries/bootloader_dfu/bootloader_util.c
71+
${SDK11_DIR}/libraries/bootloader_dfu/dfu_transport_serial.c
72+
${SDK11_DIR}/libraries/bootloader_dfu/dfu_transport_ble.c
73+
${SDK11_DIR}/libraries/bootloader_dfu/dfu_single_bank.c
74+
${SDK11_DIR}/ble/ble_services/ble_dfu/ble_dfu.c
75+
${SDK11_DIR}/ble/ble_services/ble_dis/ble_dis.c
76+
${SDK11_DIR}/drivers_nrf/pstorage/pstorage_raw.c
7377
# latest sdk
74-
${SDK}/libraries/timer/app_timer.c
75-
${SDK}/libraries/scheduler/app_scheduler.c
76-
${SDK}/libraries/util/app_error.c
77-
${SDK}/libraries/util/app_util_platform.c
78-
${SDK}/libraries/crc16/crc16.c
79-
${SDK}/libraries/hci/hci_mem_pool.c
80-
${SDK}/libraries/hci/hci_slip.c
81-
${SDK}/libraries/hci/hci_transport.c
82-
${SDK}/libraries/util/nrf_assert.c
78+
${SDK_DIR}/libraries/timer/app_timer.c
79+
${SDK_DIR}/libraries/scheduler/app_scheduler.c
80+
${SDK_DIR}/libraries/util/app_error.c
81+
${SDK_DIR}/libraries/util/app_util_platform.c
82+
${SDK_DIR}/libraries/crc16/crc16.c
83+
${SDK_DIR}/libraries/hci/hci_mem_pool.c
84+
${SDK_DIR}/libraries/hci/hci_slip.c
85+
${SDK_DIR}/libraries/hci/hci_transport.c
86+
${SDK_DIR}/libraries/util/nrf_assert.c
8387
# ASM
84-
${NRFX}/mdk/gcc_startup_${MCU_VARIANT}.S
88+
${NRFX_DIR}/mdk/gcc_startup_${MCU_VARIANT}.S
8589
)
8690
target_include_directories(bootloader PUBLIC
8791
src
8892
src/boards
8993
src/boards/${BOARD}
9094
src/cmsis/include
9195
src/usb
92-
${TUSB}
96+
${TINYUSB_DIR}
9397
# nrfx
94-
${NRFX}
95-
${NRFX}/mdk
96-
${NRFX}/hal
97-
${NRFX}/drivers/include
98-
${NRFX}/drivers/src
98+
${NRFX_DIR}
99+
${NRFX_DIR}/mdk
100+
${NRFX_DIR}/hal
101+
${NRFX_DIR}/drivers/include
102+
${NRFX_DIR}/drivers/src
99103
# sdk 11 for cdc/ble dfu
100-
${SDK11}/libraries/bootloader_dfu
101-
${SDK11}/libraries/bootloader_dfu/hci_transport
102-
${SDK11}/drivers_nrf/pstorage
103-
${SDK11}/ble/common
104-
${SDK11}/ble/ble_services/ble_dfu
105-
${SDK11}/ble/ble_services/ble_dis
104+
${SDK11_DIR}/libraries/bootloader_dfu
105+
${SDK11_DIR}/libraries/bootloader_dfu/hci_transport
106+
${SDK11_DIR}/drivers_nrf/pstorage
107+
${SDK11_DIR}/ble/common
108+
${SDK11_DIR}/ble/ble_services/ble_dfu
109+
${SDK11_DIR}/ble/ble_services/ble_dis
106110
# later sdk with updated drivers
107-
${SDK}/libraries/timer
108-
${SDK}/libraries/scheduler
109-
${SDK}/libraries/crc16
110-
${SDK}/libraries/util
111-
${SDK}/libraries/hci/config
112-
${SDK}/libraries/hci
113-
${SDK}/libraries/uart
114-
${SDK}/drivers_nrf/delay
111+
${SDK_DIR}/libraries/timer
112+
${SDK_DIR}/libraries/scheduler
113+
${SDK_DIR}/libraries/crc16
114+
${SDK_DIR}/libraries/util
115+
${SDK_DIR}/libraries/hci/config
116+
${SDK_DIR}/libraries/hci
117+
${SDK_DIR}/libraries/uart
118+
${SDK_DIR}/drivers_nrf/delay
115119
# Softdevice
116-
${SOFTDEVICE}/mbr/headers
120+
${SOFTDEVICE_DIR}/mbr/headers
117121
)
118122

119123
# Debug option
@@ -145,7 +149,7 @@ endif ()
145149

146150
target_link_options(bootloader PUBLIC
147151
"LINKER:--script=${LD_FILE}"
148-
-L${NRFX}/mdk
152+
-L${NRFX_DIR}/mdk
149153
--specs=nosys.specs --specs=nano.specs
150154
)
151155
target_compile_options(bootloader PUBLIC
@@ -181,14 +185,14 @@ endif ()
181185
if (MCU_VARIANT STREQUAL "nrf52")
182186
# UART transport
183187
target_sources(bootloader PUBLIC
184-
${SDK}/libraries/uart/app_uart.c
185-
${SDK}/drivers_nrf/uart/nrf_drv_uart.c
186-
${SDK}/drivers_nrf/common/nrf_drv_common.c
188+
${SDK_DIR}/libraries/uart/app_uart.c
189+
${SDK_DIR}/drivers_nrf/uart/nrf_drv_uart.c
190+
${SDK_DIR}/drivers_nrf/common/nrf_drv_common.c
187191
)
188192
target_include_directories(bootloader PUBLIC
189-
${SDK11}/libraries/util
190-
${SDK}/drivers_nrf/common
191-
${SDK}/drivers_nrf/uart
193+
${SDK11_DIR}/libraries/util
194+
${SDK_DIR}/drivers_nrf/common
195+
${SDK_DIR}/drivers_nrf/uart
192196
)
193197
else ()
194198
# USB transport
@@ -199,13 +203,13 @@ else ()
199203
src/usb/usb_desc.c
200204
src/usb/uf2/ghostfat.c
201205
# TinyUSB
202-
${TUSB}/portable/nordic/nrf5x/dcd_nrf5x.c
203-
${TUSB}/common/tusb_fifo.c
204-
${TUSB}/device/usbd.c
205-
${TUSB}/device/usbd_control.c
206-
${TUSB}/class/cdc/cdc_device.c
207-
${TUSB}/class/msc/msc_device.c
208-
${TUSB}/tusb.c
206+
${TINYUSB_DIR}/portable/nordic/nrf5x/dcd_nrf5x.c
207+
${TINYUSB_DIR}/common/tusb_fifo.c
208+
${TINYUSB_DIR}/device/usbd.c
209+
${TINYUSB_DIR}/device/usbd_control.c
210+
${TINYUSB_DIR}/class/cdc/cdc_device.c
211+
${TINYUSB_DIR}/class/msc/msc_device.c
212+
${TINYUSB_DIR}/tusb.c
209213
)
210214
endif ()
211215

@@ -222,10 +226,6 @@ if (MCU_VARIANT STREQUAL "nrf52")
222226
NRF52832_XXAA
223227
S132
224228
)
225-
target_include_directories(bootloader PUBLIC
226-
${SOFTDEVICE}/s132_nrf52_6.1.1/s132_nrf52_6.1.1_API/include
227-
)
228-
229229
elseif (MCU_VARIANT STREQUAL "nrf52833")
230230
set(SD_NAME s140)
231231
set(DFU_DEV_REV 52833)
@@ -234,10 +234,6 @@ elseif (MCU_VARIANT STREQUAL "nrf52833")
234234
NRF52833_XXAA
235235
S140
236236
)
237-
target_include_directories(bootloader PUBLIC
238-
${SOFTDEVICE}/s140_nrf52_6.1.1/s140_nrf52_6.1.1_API/include
239-
)
240-
241237
elseif (MCU_VARIANT STREQUAL "nrf52840")
242238
set(SD_NAME s140)
243239
set(DFU_DEV_REV 52840)
@@ -247,16 +243,16 @@ elseif (MCU_VARIANT STREQUAL "nrf52840")
247243
NRF52840_XXAA
248244
S140
249245
)
250-
target_include_directories(bootloader PUBLIC
251-
${SOFTDEVICE}/s140_nrf52_6.1.1/s140_nrf52_6.1.1_API/include
252-
)
253-
254246
else ()
255247
message(FATAL_ERROR "MCU_VARIANT ${MCU_VARIANT} is unknown")
256248
endif ()
257249

258250
set(SD_FILENAME ${SD_NAME}_nrf52_${SD_VERSION})
259-
set(SD_HEX ${SOFTDEVICE}/${SD_FILENAME}/${SD_FILENAME}_softdevice.hex)
251+
set(SD_HEX ${SOFTDEVICE_DIR}/${SD_FILENAME}/${SD_FILENAME}_softdevice.hex)
252+
253+
target_include_directories(bootloader PUBLIC
254+
${SOFTDEVICE_DIR}/${SD_FILENAME}/${SD_FILENAME}_API/include
255+
)
260256

261257
if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
262258
target_compile_definitions(bootloader PUBLIC DFU_APP_DATA_RESERVED=${DFU_APP_DATA_RESERVED})

Makefile

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
# local customization
1111
-include Makefile.user
1212

13+
# Board specific
14+
-include src/boards/$(BOARD)/board.mk
15+
1316
SDK_PATH = lib/sdk/components
1417
SDK11_PATH = lib/sdk11/components
1518
TUSB_PATH = lib/tinyusb/src
@@ -18,7 +21,11 @@ SD_PATH = lib/softdevice/$(SD_FILENAME)
1821

1922
# SD_VERSION can be overwritten by board.mk
2023
ifndef SD_VERSION
21-
SD_VERSION = 6.1.1
24+
ifeq ($(MCU_SUB_VARIANT),nrf52833)
25+
SD_VERSION = 7.3.0
26+
else
27+
SD_VERSION = 6.1.1
28+
endif
2229
endif
2330

2431
SD_FILENAME = $(SD_NAME)_nrf52_$(SD_VERSION)
@@ -89,25 +96,10 @@ endif
8996
BMP_PORT ?= $(shell ls -1 /dev/cu.usbmodem????????1 | head -1)
9097
GDB_BMP = $(GDB) -ex 'target extended-remote $(BMP_PORT)' -ex 'monitor swdp_scan' -ex 'attach 1'
9198

92-
#---------------------------------
93-
# Select the board to build
94-
#---------------------------------
95-
# Note: whitespace is not allowed in the filenames... it WILL break this part of the script
96-
BOARD_LIST = $(sort $(filter-out boards.h boards.c,$(notdir $(wildcard src/boards/*))))
97-
98-
ifeq ($(filter $(BOARD),$(BOARD_LIST)),)
99-
$(info You must provide a BOARD parameter with 'BOARD='. Supported boards are:)
100-
$(foreach b,$(BOARD_LIST),$(info - $(b)))
101-
$(error Invalid BOARD specified)
102-
endif
103-
10499
# Build directory
105100
BUILD = _build/build-$(BOARD)
106101
BIN = _bin/$(BOARD)
107102

108-
# Board specific
109-
-include src/boards/$(BOARD)/board.mk
110-
111103
# MCU_SUB_VARIANT can be nrf52 (nrf52832), nrf52833, nrf52840
112104
ifeq ($(MCU_SUB_VARIANT),nrf52)
113105
SD_NAME = s132

src/boards/particle_argon/board.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@
5757
// USB
5858
//--------------------------------------------------------------------+
5959

60-
// Shared VID/PID with Feather nRF52840, will be disabled for building in the future
60+
// Shared VID/PID with pca10056
6161
#define USB_DESC_VID 0x239A
62-
#define USB_DESC_UF2_PID 0x0029
63-
#define USB_DESC_CDC_ONLY_PID 0x0029
62+
#define USB_DESC_UF2_PID 0x00DA
63+
#define USB_DESC_CDC_ONLY_PID 0x00DA
6464

6565
#define UF2_PRODUCT_NAME "Particle Argon"
6666
#define UF2_VOLUME_LABEL "ARGONBOOT "

src/boards/particle_boron/board.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@
5757
// USB
5858
//--------------------------------------------------------------------+
5959

60-
// Shared VID/PID with Feather nRF52840, will be disabled for building in the future
60+
// Shared VID/PID with pca10056
6161
#define USB_DESC_VID 0x239A
62-
#define USB_DESC_UF2_PID 0x0029
63-
#define USB_DESC_CDC_ONLY_PID 0x0029
62+
#define USB_DESC_UF2_PID 0x00DA
63+
#define USB_DESC_CDC_ONLY_PID 0x00DA
6464

6565
#define UF2_PRODUCT_NAME "Particle Boron"
6666
#define UF2_VOLUME_LABEL "BORONBOOT "

src/boards/particle_xenon/board.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@
5757
// USB
5858
//--------------------------------------------------------------------+
5959

60-
// Shared VID/PID with Feather nRF52840, will be disabled for building in the future
60+
// Shared VID/PID with pca10056
6161
#define USB_DESC_VID 0x239A
62-
#define USB_DESC_UF2_PID 0x0029
63-
#define USB_DESC_CDC_ONLY_PID 0x0029
62+
#define USB_DESC_UF2_PID 0x00DA
63+
#define USB_DESC_CDC_ONLY_PID 0x00DA
6464

6565
#define UF2_PRODUCT_NAME "Particle Xenon"
6666
#define UF2_VOLUME_LABEL "XENONBOOT "

src/boards/pca10056/board.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@
5353

5454
// Shared VID/PID with Feather nRF52840, will be disabled for building in the future
5555
#define USB_DESC_VID 0x239A
56-
#define USB_DESC_UF2_PID 0x0029
57-
#define USB_DESC_CDC_ONLY_PID 0x0029
56+
#define USB_DESC_UF2_PID 0x00DA
57+
#define USB_DESC_CDC_ONLY_PID 0x00DA
5858

5959
#define UF2_PRODUCT_NAME "Nordic nRF52840 DK"
6060
#define UF2_BOARD_ID "nRF52840-pca10056-v1"

src/boards/pca10100/board.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
set(MCU_VARIANT nrf52833)

src/boards/pca10100/board.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,12 @@
5050
//--------------------------------------------------------------------+
5151
// USB
5252
//--------------------------------------------------------------------+
53-
#define USB_DESC_VID 0x1915
54-
#define USB_DESC_UF2_PID 0x521F
55-
#define USB_DESC_CDC_ONLY_PID 0x521F
53+
#define USB_DESC_VID 0x239A
54+
#define USB_DESC_UF2_PID 0x00D8
55+
#define USB_DESC_CDC_ONLY_PID 0x00D8
5656

5757
#define UF2_PRODUCT_NAME "Nordic nRF52833 DK"
58+
#define UF2_VOLUME_LABEL "NRF833BOOT"
5859
#define UF2_BOARD_ID "nRF52833-pca10100-v1"
5960
#define UF2_INDEX_URL "https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52833-DK"
6061

0 commit comments

Comments
 (0)