Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

write flash packet: data length field inconsistency #1

Open
qrp73 opened this issue May 11, 2024 · 2 comments
Open

write flash packet: data length field inconsistency #1

qrp73 opened this issue May 11, 2024 · 2 comments

Comments

@qrp73
Copy link

qrp73 commented May 11, 2024

I'm analyze source code and found some strange inconsistency.

Your uvtool utility uses write flash packet with data length fields 0x01,0x00, see this line:

const length_msb = 0x01;

// the length is fixed to 0x100 bytes
    const length_msb = 0x01;
    const length_lsb = 0x00;

    return new Uint8Array([0x19, 0x5, 0xc, 0x1, <...>, length_msb, length_lsb, 0x0, 0x0, ...data]); 

But k5prog flasher uses this packet with length in reversed order 0x00,0x01, see this line: https://github.com/sq5bpf/k5prog/blob/241ab18b61f6d8933fecf60643fe94322fbf4198/k5prog.c#L698

len=UVK5_FLASH_BLOCKSIZE=0x100;

writeflash[12]=len&0xff;
writeflash[13]=(len>>8)&0xff;

Could you please help to understand what is going on here? And which version is correct?
Thanks

@steve8x8
Copy link

Isn't this whosmatt#41 (awaiting merge here)?

@qrp73
Copy link
Author

qrp73 commented Jul 26, 2024

I analyzed official updater code and it appears that both variants are incorrect, see packet structure here for details: https://github.com/qrp73/K5TOOL/blob/main/Packets/PacketFlashWriteReq.cs

K5TOOL now has fixed packet structure to be compatible with official updater.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants