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
There is no content yet.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. 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.