1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/cpu
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
..
arm7_common cpu/arm7_common: drop cyclic include 2022-12-13 15:55:17 +01:00
atmega32u4 cpu/atmega_common: implement periph/gpio_ll{,_irq} 2022-05-02 14:44:55 +02:00
atmega128rfa1 cpu/atmega_common: implement periph/gpio_ll{,_irq} 2022-05-02 14:44:55 +02:00
atmega256rfr2 cpu/atmega_common: implement periph/gpio_ll{,_irq} 2022-05-02 14:44:55 +02:00
atmega328p cpu/atmega_common: implement periph/gpio_ll{,_irq} 2022-05-02 14:44:55 +02:00
atmega1281 cpu/atmega_common: implement periph/gpio_ll{,_irq} 2022-05-02 14:44:55 +02:00
atmega1284p cpu/atmega_common: implement periph/gpio_ll{,_irq} 2022-05-02 14:44:55 +02:00
atmega2560 cpu/atmega_common: implement periph/gpio_ll{,_irq} 2022-05-02 14:44:55 +02:00
atmega_common core/lib: Add macros/utils.h header 2023-01-07 09:47:44 +01:00
atxmega Merge pull request #18619 from maribu/core/mutex/cleanup 2022-10-03 10:58:07 +02:00
avr8_common Merge #18763 2023-01-14 22:41:37 +00:00
cc26x0_cc13x0 cpu: call early_init() 2023-01-08 22:26:12 +01:00
cc26x2_cc13x2 cpu: call early_init() 2023-01-08 22:26:12 +01:00
cc26xx_cc13xx boards/common/cc26xx_cc13xx: Fix flashing with upstream OpenOCD 2023-01-10 22:39:35 +01:00
cc2538 cpu: call early_init() 2023-01-08 22:26:12 +01:00
cortexm_common cpu/common_cortex: handling RIOTBOOT_LEN for tinyusb_dfu 2023-01-15 18:09:55 +01:00
efm32 cpu: call early_init() 2023-01-08 22:26:12 +01:00
esp32 cpu/esp32: improve initialization of UART pins 2023-01-14 14:38:18 +01:00
esp8266 cpu: call early_init() 2023-01-08 22:26:12 +01:00
esp_common cpu/esp32: don't initialize the UART pins if already initialized 2023-01-14 14:38:18 +01:00
fe310 cpu: call early_init() 2023-01-08 22:26:12 +01:00
gd32v Merge #18459 #18724 #19081 #19082 #19136 2023-01-13 13:50:55 +00:00
kinetis cpu: call early_init() 2023-01-08 22:26:12 +01:00
lm4f120 cpu: call early_init() 2023-01-08 22:26:12 +01:00
lpc23xx cpu: call early_init() 2023-01-08 22:26:12 +01:00
lpc1768 cpu: call early_init() 2023-01-08 22:26:12 +01:00
msp430_common cpu: call early_init() 2023-01-08 22:26:12 +01:00
msp430fxyz cpu/msp430: add Kconfig 2021-12-02 16:33:19 +01:00
native Merge #18459 #18724 #19081 #19082 #19136 2023-01-13 13:50:55 +00:00
nrf5x_common cpu/nrf5x_common: Implement timer_set() 2022-12-23 14:48:08 +01:00
nrf51 cpu: call early_init() 2023-01-08 22:26:12 +01:00
nrf52 Merge #19010 #19149 2023-01-15 23:31:00 +00:00
nrf9160 cpu: call early_init() 2023-01-08 22:26:12 +01:00
qn908x cpu: call early_init() 2023-01-08 22:26:12 +01:00
riscv_common cpu/riscv_common/periph_timer: Fix timer_clear() 2023-01-09 00:08:59 +01:00
rpx0xx cpu: call early_init() 2023-01-08 22:26:12 +01:00
sam0_common core/lib: Add macros/utils.h header 2023-01-07 09:47:44 +01:00
sam3 cpu: call early_init() 2023-01-08 22:26:12 +01:00
sam_common cpu/sam_common: make use of cortexm.ld 2022-09-23 15:55:12 +02:00
samd5x cpu: call early_init() 2023-01-08 22:26:12 +01:00
samd21 cpu: call early_init() 2023-01-08 22:26:12 +01:00
saml1x cpu: call early_init() 2023-01-08 22:26:12 +01:00
saml21 cpu: call early_init() 2023-01-08 22:26:12 +01:00
stellaris_common cpu: do not locally export compilation variables 2019-08-29 10:35:53 +02:00
stm32 cpu: call early_init() 2023-01-08 22:26:12 +01:00
doc.txt docs/doxygen : Add CPU section 2021-07-09 10:47:42 +02:00
Kconfig treewide: change Kconfig prefix for module symbols 2020-08-31 09:57:28 +02:00