suit based firmware update architecture
play

SUIT-based firmware update architecture Emmanuel Baccelli Kaspar - PowerPoint PPT Presentation

SUIT-based firmware update architecture Emmanuel Baccelli Kaspar Schleiser Koen Zandberg Outline Intro Update architecture overview Device Software Components Bootloader Project Ideas Intro 32/16/8 bit MCU


  1. SUIT-based firmware update architecture Emmanuel Baccelli Kaspar Schleiser Koen Zandberg

  2. Outline • Intro • Update architecture overview • Device Software Components • Bootloader • Project Ideas

  3. Intro • 32/16/8 bit MCU • Open standards • Internet of Things

  4. Intro • RIOT SUIT example: https://git.io/suit-updater • SUIT VM (3.3GB): http://demo-fit.saclay.inria.fr/vms/RIOT-VM.ova • Instructions: https://git.io/suit-hackathon

  5. Update architecture overview Firmware Manager 1. Provide firmware & manifest 2. Notify Device 3. Request Manifest 4.Request firmware Gateway Storage Server Device

  6. Update architecture overview Focus on the storage server • Provides image and and manifest over CoAP

  7. Update architecture overview Management station: • Allows remote firmware management and triggers deployments.

  8. Update architecture overview Node: • Receives manifest trigger over CoAP • Fetches manifest • Fetches firmware update

  9. Device Software Components • Manifest recap • Software component overview • Chosen implementations

  10. Device Software Components SUIT Outer Wrapper Manifest Manifest Version Components COSE authentication Common Fetch & Install

  11. Device Software Components RIOT External libs CBOR SUIT Component CoAP COSE writer Storage Network Crypto library

  12. Device Software Components • SUIT parser • libcose • NanoCBOR

  13. Device Software Components RIOT External libs NanoCBOR suit_v4 Flashwrite Nanocoap libcose MCU Flash Network Crypto library

  14. Device Software Components NanoCBOR • Pull style parser • 600B - 800B decoder • Optimized for parsing known structures https://github.com/bergzand/NanoCBOR

  15. Device Software Components Libcose • Embedded COSE library • Multiple crypto backend support https://github.com/bergzand/libcose

  16. Device Software Components SUIT parser • Based on NanoCBOR • libcose for verification

  17. Device Software Components SUIT parser design • Iterate over the map • Multiple jump table based on map key

  18. Device Software Components Flash layout Header A Header B Bootloader A B

  19. Device Software Components Flash partition writer typedef struct { uint32_t magic_number; /**< Magic number */ uint32_t version; /**< Sequence No */ uint32_t start_addr; /**< Address */ uint32_t chksum; /**< Checksum */ } riotboot_hdr_t;

  20. Bootloader Just another RIOT application 1. Iterate over all headers 2. Determine whether the header is valid 3. Determine highest valid sequence number 4. Boot firmware

  21. Project Ideas • Extend manifest parsing • MCUboot interoperability • Infrastructure improvements

Recommend


More recommend