Lines Matching full:the
6 The Firmware Update Server model implements the Target node functionality of the
7 :ref:`bluetooth_mesh_dfu` subsystem. It extends the :ref:`bluetooth_mesh_blob_srv`, which it uses to
8 receive the firmware image binary from the Distributor node.
10 Together with the extended BLOB Transfer Server model, the Firmware Update Server model implements
11 all the required functionality for receiving firmware updates over the mesh network, but does not
12 provide any functionality for storing, applying or verifying the images.
17 The Firmware Update Server holds a list of all the updatable firmware images on the device. The full
18 list shall be passed to the server through the ``_imgs`` parameter in
19 :c:macro:`BT_MESH_DFU_SRV_INIT`, and must be populated before the Bluetooth Mesh subsystem is
20 started. Each firmware image in the image list must be independently updatable, and should have its
24 firmware update capabilities could have three entries in the firmware image list, each with their
30 The Firmware Update Server model uses a BLOB Transfer Server model on the same element to transfer
31 the binary image. The interaction between the Firmware Update Server, BLOB Transfer Server and
43 The transfer check is an optional pre-transfer check the application can perform on incoming
44 firmware image metadata. The Firmware Update Server performs the transfer check by calling the
47 The result of the transfer check is a pass/fail status return and the expected
48 :c:enum:`bt_mesh_dfu_effect`. The DFU effect return parameter will be communicated back to the
49 Distributor, and should indicate what effect the firmware update will have on the mesh state of the
57 If the transfer will cause the device to change its Composition Data or become
58 unprovisioned, this should be communicated through the effect parameter of the metadata check.
60 When the transfer will cause the Composition Data to change, and the
61 :ref:`bluetooth_mesh_models_rpr_srv` is supported, the Composition Data of the new firmware image
62 will be represented by Composition Data Pages 128, 129, and 130. The Models Metadata of the new
64 and Models Metadata Page 0, will represent the Composition Data and the Models Metadata of the old
65 firmware image until the device is reprovisioned with Node Provisioning Protocol Interface (NPPI)
66 procedures using the :ref:`bluetooth_mesh_models_rpr_cli`.
68 The application must call functions :c:func:`bt_mesh_comp_change_prepare` and
69 :c:func:`bt_mesh_models_metadata_change_prepare` to store the existing Composition Data and Models
70 Metadata pages before booting into the firmware with the updated Composition Data and Models
71 Metadata. The old Composition Data will then be loaded into Composition Data Pages 0, 1 and 2,
72 while the Composition Data in the new firmware will be loaded into Composition Data Pages 128, 129
73 and 130. The Models Metadata for the old image will be loaded into Models Metadata Page 0, and the
74 Models Metadata for the new image will be loaded into Models Metadata Page 128.
78 * It is not possible to change the Composition Data of the device and keep the device provisioned
79 and working with the old firmware after the new firmware image is applied.
84 The Start procedure prepares the application for the incoming transfer. It'll contain information
85 about which image is being updated, as well as the update metadata.
87 The Firmware Update Server :c:member:`start <bt_mesh_dfu_srv_cb.start>` callback must return a
88 pointer to the BLOB Writer the BLOB Transfer Server will send the BLOB to.
93 After the setup stage, the Firmware Update Server prepares the BLOB Transfer Server for the incoming
94 transfer. The entire firmware image is transferred to the BLOB Transfer Server, which passes the
97 At the end of the BLOB transfer, the Firmware Update Server calls its
103 After the BLOB transfer has finished, the application should verify the image in any way it can to
104 ensure that it is ready for being applied. Once the image has been verified, the application calls
107 If the image can't be verified, the application calls :c:func:`bt_mesh_dfu_srv_rejected`.
109 Applying the image
112 Finally, if the image was verified, the Distributor may instruct the Firmware Update Server to apply
113 the transfer. This is communicated to the application through the :c:member:`apply
114 <bt_mesh_dfu_srv_cb.apply>` callback. The application should swap the image and start running with
115 the new firmware. The firmware image table should be updated to reflect the new firmware ID of the
118 When the transfer applies to the mesh application itself, the device might have to reboot as part of
119 the swap. This restart can be performed from inside the apply callback, or done asynchronously.
120 After booting up with the new firmware, the firmware image table should be updated before the
123 The Distributor will read out the firmware image table to confirm that the transfer was successfully
124 applied. If the metadata check indicated that the device would become unprovisioned, the Target node