27 | | * Host application must send an Init-Chunk-Message: FF 07 F0 FA FF 00 nch ncl chk, where nch:ncl - is a 16 bit number indicating number of the firmware chunks |
| 27 | * Host application must send an Init-Chunk-Message: FF 0B F0 FA FF 00 vh vl nch s2 s1 ncl chk, where: |
| 28 | * vh:vl - major and minor version numbers of the new firmware |
| 29 | * nch:ncl - is a 16 bit number indicating number of the firmware chunks |
| 30 | * s2:s1 - 16 bit seed number (can be any random number) |
| 31 | |
| 32 | * OpenBM acknowledge each chunk (incl. init chunk) with a message: F0 07 FF FB cnh cnl s2 s1 chk, where: |
| 33 | * cnh:chl - last received chunk number, so indicating that this chunk was written well |
| 34 | * s2:sl - seed number received in the init chunk "xor"ed with the 16bit sum of the chunk written to the flash |
| 35 | |
| 36 | * Host application send now firmware chunks. The chunk size should be either 32, 64 or 128 bytes, FF len F0 FA FF cnh cnl c1 c2 .. cn chk, where: |
| 37 | * cnh:cnl - number of the chunk, this number should be increasing with every chunk (so no random access here is possible!) |
| 38 | * c1:cn - chunk of firmware data |
| 39 | |
| 40 | * Every chunk is acknowledged by OpenBM device. If acknowledge was wrong, host application should stop transmitting. |
| 41 | |
| 42 | * Transmission is stopped when either last chunk was received (bootloader will jump to application) or when a "Stop"-chunk received: FF 06 F0 FA FF FF FF chk |