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

suit based firmware update architecture
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

SUIT-based firmware update architecture

Emmanuel Baccelli Kaspar Schleiser Koen Zandberg

slide-2
SLIDE 2

Outline

  • Intro
  • Update architecture overview
  • Device Software Components
  • Bootloader
  • Project Ideas
slide-3
SLIDE 3

Intro

  • 32/16/8 bit MCU
  • Open standards
  • Internet of Things
slide-4
SLIDE 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
slide-5
SLIDE 5

Update architecture overview

Storage Server

  • 1. Provide firmware

& manifest

Gateway

  • 2. Notify Device

Firmware Manager

  • 3. Request Manifest

4.Request firmware

Device

slide-6
SLIDE 6

Update architecture overview

Focus on the storage server

  • Provides image and and manifest over CoAP
slide-7
SLIDE 7

Update architecture overview

Management station:

  • Allows remote firmware management and triggers

deployments.

slide-8
SLIDE 8

Update architecture overview

Node:

  • Receives manifest trigger over CoAP
  • Fetches manifest
  • Fetches firmware update
slide-9
SLIDE 9

Device Software Components

  • Manifest recap
  • Software component overview
  • Chosen implementations
slide-10
SLIDE 10

Device Software Components

SUIT Outer Wrapper COSE authentication Manifest Components Manifest Version Common Fetch & Install

slide-11
SLIDE 11

Device Software Components

RIOT CoAP SUIT Component writer Network CBOR COSE Crypto library Storage External libs

slide-12
SLIDE 12

Device Software Components

  • SUIT parser
  • libcose
  • NanoCBOR
slide-13
SLIDE 13

Device Software Components

RIOT Nanocoap suit_v4 Flashwrite Network NanoCBOR libcose Crypto library MCU Flash External libs

slide-14
SLIDE 14

Device Software Components

NanoCBOR

  • Pull style parser
  • 600B - 800B decoder
  • Optimized for parsing known structures

https://github.com/bergzand/NanoCBOR

slide-15
SLIDE 15

Device Software Components

Libcose

  • Embedded COSE library
  • Multiple crypto backend support

https://github.com/bergzand/libcose

slide-16
SLIDE 16

Device Software Components

SUIT parser

  • Based on NanoCBOR
  • libcose for verification
slide-17
SLIDE 17

Device Software Components

SUIT parser design

  • Iterate over the map
  • Multiple jump table based on map key
slide-18
SLIDE 18

Device Software Components

Flash layout

A Bootloader Header A B Header B

slide-19
SLIDE 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;

slide-20
SLIDE 20
slide-21
SLIDE 21

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
slide-22
SLIDE 22

Project Ideas

  • Extend manifest parsing
  • MCUboot interoperability
  • Infrastructure improvements