fwupd/plugins/nordic-hid
Denis Pynkin 4fbe1c58c7 plugins/nordic-hid: added initial version
The plugin is using Nordic Semiconductor HID config channel to perform
devices update directly atteched via USB and BLE.
Current implementation supports FW images compatible with the nRF Secure
Immutable Bootloader.
This version has been tested with nRF52840-DK board.

Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
Signed-off-by: Ricardo Cañuelo <ricardo.canuelo@collabora.com>
Signed-off-by: Richard Hughes <richard@hughsie.com>
2021-12-07 08:19:29 +00:00
..
tests plugins/nordic-hid: added initial version 2021-12-07 08:19:29 +00:00
fu-nordic-hid-archive.c plugins/nordic-hid: added initial version 2021-12-07 08:19:29 +00:00
fu-nordic-hid-archive.h plugins/nordic-hid: added initial version 2021-12-07 08:19:29 +00:00
fu-nordic-hid-cfg-channel.c plugins/nordic-hid: added initial version 2021-12-07 08:19:29 +00:00
fu-nordic-hid-cfg-channel.h plugins/nordic-hid: added initial version 2021-12-07 08:19:29 +00:00
fu-nordic-hid-firmware-b0.c plugins/nordic-hid: added initial version 2021-12-07 08:19:29 +00:00
fu-nordic-hid-firmware-b0.h plugins/nordic-hid: added initial version 2021-12-07 08:19:29 +00:00
fu-plugin-nordic-hid.c plugins/nordic-hid: added initial version 2021-12-07 08:19:29 +00:00
meson.build plugins/nordic-hid: added initial version 2021-12-07 08:19:29 +00:00
nordic-hid.quirk plugins/nordic-hid: added initial version 2021-12-07 08:19:29 +00:00
README.md plugins/nordic-hid: added initial version 2021-12-07 08:19:29 +00:00

Nordic Semiconductor HID

Introduction

This plugin is able flash the firmware on:

  • nRF52-Desktop: nrf52840dk development kit

The plugin is using Nordic Semiconductor HID config channel to perform devices update.

Firmware Format

The cabinet file contains ZIP archive prepared by Nordic Semiconductor. This ZIP archive includes 2 signed image blobs for the target device, one firmware blob per application slot, and the manifest.json file with the metadata description. At the moment only nRF Secure Immutable Bootloader aka "B0" is supported and tested.

This plugin supports the following protocol ID:

  • "Nordic HID Config Channel"

GUID Generation

For GUID generation the standard HIDRAW DeviceInstanceId values are used with the addition of the target board and bootloader name:

  • HIDRAW\VEN_1915&DEV_52DE&BOARD_nrf52840dk&BL_B0 -> 22952036-c346-5755-9646-7bf766b28922
  • HIDRAW\VEN_1915&DEV_52DE&BOARD_nrf52840dk&BL_MCUBOOT -> 43b38427-fdf5-5400-a23c-f3eb7ea00e7c

Update Behavior

The firmware is deployed when the device is in normal runtime mode, and the device will reset when the new firmware has been written.

Vendor ID Security

The vendor ID is set from the HID vendor ID, in this instance set to HIDRAW:0x1915.

External Interface Access

This plugin requires ioctl HIDIOCSFEATURE and HIDIOCGFEATURE access.