DFU distributor for Network core firmware

Hello.

I am developing using nRF5340DK and nRF Connect SDK v2.8.0.
I want to create a DFU distributor that updates both Application core firmware and Network core firmware.
But I think this sample program is not supported Network core firmware.
I checked Application core firmware update with this sample.

samples/bluetooth/mesh/mesh_dfu/distributor

I have some questions.

  • Are there any existing tickets related to this? I have not been found.
  • I think the following changes are needed. What else is needed?
    • main.c
      • Add a "struct bt_mesh_blob_io_flash" instance for Network core firmware.
    • dfu_dist.c
      • Add a "struct bt_mesh_blob_io_flash" instance pointer for Network core firmware.
      • Switch a response pointer from "fw_core_type".
        dfd_srv_recv(), dfd_srv_send().
    • dfu_target.c
      • Add "struct bt_mesh_blob_io_flash" instance pointer for Network core firmware.
      • Switch a response pointer from "fw_core_type".
        dfu_start(), dfu_recover().
      • Add a check logic for Network core firmware.
        dfu_meta_check().
    • mesh_dfu_metadata.py
      • Generate a metadata for Network core firmware.

Thanks for reading.

Parents
  • Add a question.

    • Is it possible to simultaneous updates?
      I sent the command using the J-Link RTT Viewer.
      The "dfd receivers-add" commnad can not assign different firmware index to the same address.

      mesh models dfd receivers-add <Addr>,<FwIdx>[;<Addr>,<FwIdx>]...
      Failure
      00> mesh models dfd receivers-add 0x0287,0;0x0287,1
      00> {"status": 0, "target_cnt": 1}
      00> rtt:~$ [03:06:32.161,621] <dbg> bt_mesh_dfd_srv: bt_mesh_dfd_srv_receiver_add: Added receiver 0x0287 img: 0

      Success
      00> mesh models dfd receivers-add 0x0287,0;0x0288,1
      00> {"status": 0, "target_cnt": 2}
      00> rtt:~$ [03:07:03.272,094] <dbg> bt_mesh_dfd_srv: bt_mesh_dfd_srv_receiver_add: Added receiver 0x0287 img: 0
      00> rtt:~$ [03:07:03.272,155] <dbg> bt_mesh_dfd_srv: bt_mesh_dfd_srv_receiver_add: Added receiver 0x0288 img: 1


      I think that I have to download both Application core firmware and Network core firmware before applying it, is that correct?
      But the DFD Server can not download the next firmware until it has completed applying the previous firmware.
      Please give me some ideas on the correct procedure.
Reply
  • Add a question.

    • Is it possible to simultaneous updates?
      I sent the command using the J-Link RTT Viewer.
      The "dfd receivers-add" commnad can not assign different firmware index to the same address.

      mesh models dfd receivers-add <Addr>,<FwIdx>[;<Addr>,<FwIdx>]...
      Failure
      00> mesh models dfd receivers-add 0x0287,0;0x0287,1
      00> {"status": 0, "target_cnt": 1}
      00> rtt:~$ [03:06:32.161,621] <dbg> bt_mesh_dfd_srv: bt_mesh_dfd_srv_receiver_add: Added receiver 0x0287 img: 0

      Success
      00> mesh models dfd receivers-add 0x0287,0;0x0288,1
      00> {"status": 0, "target_cnt": 2}
      00> rtt:~$ [03:07:03.272,094] <dbg> bt_mesh_dfd_srv: bt_mesh_dfd_srv_receiver_add: Added receiver 0x0287 img: 0
      00> rtt:~$ [03:07:03.272,155] <dbg> bt_mesh_dfd_srv: bt_mesh_dfd_srv_receiver_add: Added receiver 0x0288 img: 1


      I think that I have to download both Application core firmware and Network core firmware before applying it, is that correct?
      But the DFD Server can not download the next firmware until it has completed applying the previous firmware.
      Please give me some ideas on the correct procedure.
Children
No Data
Related