1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/sys
bors[bot] 9ff9704fe5
Merge #19010 #19149
19010: bootloaders/riotboot: add tinyUSB DFU support r=benpicco a=gschorcht

### Contribution description

This PR provides
- the tinyUSB DFU and DFU Runtime support and
- the `riotboot_tinyusb_dfu` bootloader that uses the tinyUSB DFU mode to flash new application images.

~This PR includes PR #18983 for now to be compilable.~

### Testing procedure

1. Use any board that supports the `riotboot´ and `tinyusb_device` features and flash the bootloader first, for example
   ```
   BOARD=nucleo-f767zi make -C bootloaders/riotboot_tinyusb_dfu flash
   ```
   and check that the `riotboot_tinyusb_dfu` bootloader is in DFU mode:
   ```
   dfu-util --list
   ```
3. Flash a first application using the following command:
    ```
   FEATURES_REQUIRED=riotboot USEMODULE=tinyusb_dfu BOARD=nucleo-f767zi \
   make -C tests/saul PROGRAMMER=dfu-util riotboot/flash-slot0
   ```
   and check that the application starts and is seen as upgradable:
   ```
   dfu-util --list
   ```
4. Restart the node in bootloader DFU mode by:
   ```
   dfu-util -e
   ```
   Flash a second application, for example
   ```
   FEATURES_REQUIRED=riotboot USEMODULE=tinyusb_dfu BOARD=nucleo-f767zi \
   make -C tests/shell PROGRAMMER=dfu-util riotboot/flash-slot1
   ```
   and check that the second application starts and is seen as upgradable:
   ```
   dfu-util --list
   ```
   
### Issues/PRs references

~Depends on PR #18983~

19149: SECURITY: Describe that declassification is an option r=benpicco a=chrysn

### Contribution description

Our security policy does not contain provisions for the case when what is reported is not what we consider an actual security issue. As it is described now, everything reported through security@ would go through the full treatment, including a point release.

I'm not sure it belongs into the text itself (as it's more about how security reporters interact with the project than internals), but declassification should IMO be backed at least by 3 maintainers, and no strong NACK.

### Issues/PRs references

#19141 followed that procedure after some chat on it on the maintainers channel. (In the discussion, I proposed declassification, with 2.5 people supporting it and one "I was about to, but can we be sure nobody is using it?" voice).

Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
Co-authored-by: chrysn <chrysn@fsfe.org>
2023-01-15 23:31:00 +00:00
..
analog_util sys/analog_util/dac_util: fix truncation bug 2022-12-09 13:58:12 -05:00
app_metadata
arduino codespell: fix remaining issues 2022-09-16 14:00:35 +02:00
auto_init sys/preprocessor: add Kconfig file 2022-10-17 10:38:14 +02:00
base64
benchmark sys/benchmark: fix divide by zero if runs < 1000 2022-02-08 12:52:48 +01:00
bhp sys/bhp_msg: add IPC based Bottom Half Processor 2022-08-19 12:01:30 +02:00
bitfield sys/bitfield: add bf_popcnt() 2022-11-10 23:44:50 +01:00
bloom
bus sys/bus: model Kconfig 2022-03-11 09:24:12 +01:00
can core/lib: Add macros/utils.h header 2023-01-07 09:47:44 +01:00
cb_mux
checksum sys/checksum: add CRC-16 implementation without lookup table 2022-10-06 17:43:20 +02:00
chunked_ringbuffer sys/chunked_ringbuffer: model in Kconfig 2022-03-04 09:35:50 +01:00
clif sys/clif: Fixing out of bounds read under certain conditions 2022-10-26 13:44:01 +02:00
color
congure congure_abe: initial import of TCP ABE congestion control 2022-10-17 16:44:39 +02:00
cpp11-compat sys/cpp11-compat: Fix kconfig model 2022-08-16 10:57:26 +02:00
cpp_new_delete sys: remove -std=c++11 2022-01-13 17:50:59 +01:00
crypto sys/crypto: remove deprecated CIPHER_AES_128 2022-01-07 11:14:10 +01:00
cxx_ctor_guards doc: Improve C++ documentation 2021-12-15 18:58:23 +01:00
debug_irq_disable cpu/cortexm_common: measure time spent with IRQ disabled 2022-11-24 21:27:20 +01:00
div
ecc treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
eepreg
embunit
entropy_source
event sys/event: ensure that a queue has a waiter before waiting for flags 2022-04-14 17:10:24 +02:00
evtimer sys/evtimer: use now returned by set 2021-12-14 13:24:29 +01:00
fido2 fido2/ctap: uncrustify files 2022-09-23 16:42:52 +02:00
fmt sys/fmt: add print_bytes_hex() 2022-11-15 22:05:42 +01:00
frac
fs vfs: drop unused abs_path parameter 2022-09-29 22:01:37 +02:00
fuzzing sys/fuzzing: fix compilation with NDEBUG 2021-12-09 16:44:19 +01:00
hashes core/lib: Add macros/utils.h header 2023-01-07 09:47:44 +01:00
include Merge #17066 2023-01-15 18:17:00 +00:00
iolist sys/iolist: introduce iolist_to_buffer() 2022-05-02 23:23:52 +02:00
isrpipe sys/isrpipe: add isrpipe_write 2021-12-07 13:00:58 +01:00
libc sys/string_utils: add strscpy() 2022-09-26 19:06:46 +02:00
log_color sys/log_color: guard from compiling for esp 2022-10-12 13:45:29 +02:00
log_printfnoformat sys/log: modularize log into log_color and log_printfnoformat 2022-10-12 12:21:29 +02:00
luid
malloc_thread_safe sys/malloc_tracing: add module to trace dyn memory management 2022-11-15 12:59:46 +01:00
matstat
memarray
mineplex
net Merge #18459 #18724 #19081 #19082 #19136 2023-01-13 13:50:55 +00:00
newlib_syscalls_default cpu/mips: Remove all mips 2022-09-27 13:42:37 +02:00
od sys/od/kconfig: add od_string 2022-03-11 09:20:24 +01:00
oneway-malloc
phydat sys/phydat: fix phydat_to_json dim precondition 2022-05-19 07:29:51 +02:00
picolibc_syscalls_default sys/picolibc_syscalls_default: make stdin and stderr strong refs 2021-10-20 11:21:57 +02:00
pipe
pm_layered sys/pm_layered: pm_get_blocker = instead of memcopy -ease readability 2022-11-04 16:59:48 +01:00
posix treewide: fix typos found by recent codespell 2022-11-24 14:53:48 +01:00
preprocessor sys/preprocessor: add Kconfig file 2022-10-17 10:38:14 +02:00
progress_bar sys/progress_bar: add Konfig configuration 2021-04-07 12:05:00 +02:00
ps schedstatistics: Convert to ztimer 2021-12-07 16:31:15 +01:00
puf_sram sys/puf_sram: cleanup header 2022-12-05 16:13:21 +01:00
random random: use void * in random_bytes() 2022-07-26 19:46:14 +02:00
riotboot sys/riotboot: add tinyUSB DFU support 2023-01-15 18:09:55 +01:00
rtc_utils sys: move rtc utility functions to their own module 2021-12-20 13:04:20 +01:00
rust_riotmodules rust_riotmodules: pub use instead of extern crate 2022-07-10 21:27:13 +02:00
rust_riotmodules_standalone rust: Update dependencies 2022-10-04 00:28:46 +02:00
saul_reg drivers/saul: use const qualifier for data to write 2022-05-23 08:35:27 +02:00
sched_round_robin sys/sched_round_robin: Add a round robin scheduler module 2021-11-11 13:18:52 +01:00
schedstatistics schedstatistics: Convert to ztimer 2021-12-07 16:31:15 +01:00
sema sys/sema: use sema_ztimer64 to implement old sema api 2022-03-10 14:19:44 +01:00
sema_inv
senml sys/senml: add SenML modules 2022-02-11 12:38:21 +01:00
seq
shell shell/rtc: Fix out of bounds access; document error behavior 2023-01-13 16:14:48 +01:00
shell_lock sys/shell_lock: add telnet support 2022-06-08 13:01:23 +02:00
ssp
stdio_nimble core/init: call vfs_bind_stdio() in early_init() 2023-01-08 22:26:13 +01:00
stdio_null Merge #18459 #18724 #19081 #19082 #19136 2023-01-13 13:50:55 +00:00
stdio_rtt core/init: call vfs_bind_stdio() in early_init() 2023-01-08 22:26:13 +01:00
stdio_semihosting core/init: call vfs_bind_stdio() in early_init() 2023-01-08 22:26:13 +01:00
stdio_uart core/init: call vfs_bind_stdio() in early_init() 2023-01-08 22:26:13 +01:00
stdio_udp sys/stdio_udp: add stdio over UDP 2023-01-13 11:08:22 +01:00
suit Merge #18459 #18724 #19081 #19082 #19136 2023-01-13 13:50:55 +00:00
test_utils core/lib: Add macros/utils.h header 2023-01-07 09:47:44 +01:00
timex
tiny_strerror sys/tiny_strerror: add missing error codes 2023-01-12 08:39:30 +01:00
trace treewide: make all modules use Kconfig ZTIMER_USEC indirection 2022-03-17 14:33:07 +01:00
trickle sys/trickle: migrate to ZTIMER_MSEC 2021-06-14 09:04:25 +02:00
tsrb sys/tsrb: add peek functions 2021-11-24 17:54:44 +01:00
universal_address
uri_parser sys/uri_parser: fixing potential out of bounds read when consuming ports 2022-12-05 15:41:33 +01:00
usb core/init: call vfs_bind_stdio() in early_init() 2023-01-08 22:26:13 +01:00
usb_board_reset pkg/tinyusb: board reset feature moved 2023-01-03 10:05:54 +01:00
ut_process ut_process: add ; after DEBUG() 2021-12-09 11:20:44 +01:00
uuid
vfs vfs: drop unused abs_path parameter 2022-09-29 22:01:37 +02:00
vfs_util sys/vfs_util: bugfix rec. delete, rel. components 2022-08-30 17:53:36 +02:00
xtimer sys/xtimer: switch default backend to ztimer 2022-03-18 08:23:00 +01:00
zptr
ztimer ztimer: introduce ztimer_mutex_unlock_after() 2023-01-13 00:08:55 +01:00
ztimer64 sys/ztimer64: properly clear timer on removal 2022-03-01 11:03:10 +01:00
doc.txt
Kconfig debug_irq_disable: add module to debug time spent in irq_disable 2022-11-24 21:27:20 +01:00
Kconfig.newlib sys/syscalls: add libc_gettimeofday 2022-03-24 11:36:49 +01:00
Kconfig.picolibc sys/libc: model Kconfig 2021-10-01 11:26:15 +02:00
Kconfig.stdio cpu/esp32: add stdio_usb_serial_jtag 2023-01-09 00:51:27 +01:00
Makefile sys/preprocessor: add preprocessor module 2022-10-17 10:38:14 +02:00
Makefile.dep Merge #19010 #19149 2023-01-15 23:31:00 +00:00
Makefile.include sys: add tinyusb_dfu and riotboot_tinyusb_dfu to makefiles 2023-01-15 18:09:55 +01:00