replace unlzma.c with pure Rust implementation #1
Labels
No Milestone
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: M-Labs/artiq-zynq#1
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Doesn't need to be LZMA.
There are lots of Rust compression crates but it is difficult to find a good one.
Brotli is not appropriate due to 120KB static dictionary of words that are not applicable to binary data.
LZMA compression is not good enough and the Zynq OCM tends to overflow when Rust performance optimizations are turned on.
The other compression algorithms available in the Linux kernel (bz2, inflate, lz4, lzo, xz, zstd) perform the same or worse than lzma on the runtime binary, so I guess we have to abandon the idea of the self-extractible OCM firmware.