leaps_fw_update_xfer
Should be called repeatedly after leaps_fw_update_start to transfer firmware data chunks until all the firmware is transferred. Returns status “ok” if the data chunk was processed successfully or an error. The error is indicated by status other than “ok”. The reasons for failed firmware update are:
internal error
invalid parameter - e.g. data chunk with zero length, or corrupted data
not permitted - not started yet or the whole update process has failed
checksum error - corrupted data received or the checksum value provided at the start of the update by the leaps_fw_update_start and the checksum calculated by the module at the end does not match
The size and the offset of the data that has been already processed byd q the firmware update procedure so far are returned as a response on each call to leaps_fw_update_xfer until the update finishes.
offset: ? 32-bit integer ? (* Offset of the total firmware data.*)
data: ? from 4 up to 240 bytes ? (Firmware data chunk.)
offset: ? 32-bit integer ? (Offset of data that need to be written next by leaps_fw_update_xfer)
size: ? 32-bit integer ? (Size of firmware data chunk that need to be written by leaps_fw_update_xfer)
Example
TLV Request |
|||
---|---|---|---|
Type |
Length |
Value |
|
offset |
data chunk |
||
0x3F |
0x24 |
0x00 0x00 0x00 0x00 |
0xA5 0xA5 0xA5 0xA5 0xA5 0xA5 0xA5 0xA5 …. 0xA5 0xA5 0xA5 0xA5 |
Type 0x3F (63 dec) means command leaps_fw_update_xfer
TLV response |
||||||
---|---|---|---|---|---|---|
Type |
Length |
Value |
Type |
Length |
Value |
|
offset |
size |
|||||
0x40 |
0x01 |
0x04 |
0x7E |
0x08 |
0x00 0x00 0x00 0x00 |
0x00 0x10 0x00 0x00 |
Type 0x40 means status code
Type 0x7E (126 dec) means firmware data request