Releases: tock/elf2tab
0.12.0: Better handling of unusual ELFs
The major change in this release is support for handling ELF files where the first segment starts before the start of flash. In these cases, the first actual valid section starts at the start of flash, but elf2tab must ignore the data in the start of the segment before this section. Note, this only affects ELFs compiled for a fixed address in flash.
This release also adds support for the _flash_origin
symbol which allows the linker to communicate explicitly to elf2tab the address where flash starts. This is only used for fixed address apps.
Other changes:
- Use
.pk8
files for private keys as this seems to be more cross-platform. - Support
0xabc
numbers for storage permissions on the command line. - Ensure riscv binaries are multiples of 4 bytes.
- Update the dependency versions.
Support Credentials
The major addition in this release of elf2tab is support for footers and credentials. elf2tab can reserve space for footers and generate credentials when TBFs are created.
Other changes:
- Update to v0.7.x of elf crate
- Re-write the elf parsing logic to use segments and sections rather than our own heuristics
- Add support for tbf_protected_region_size ELF-file symbol to set per-elf protected region size
Fix Fixed Address Calculation for Arbitrary Section Names
Pull #49 for the 0.10.x release.
Restore Cargo.lock
This release is functionally equivalent to 0.10.0 but restores the Cargo.lock file which was accidentally deleted for that release.
Minor updates, parallel Tock 2.1 release
This release includes:
- Convert to lib+bin crate
- Fix to persistent ACL length calculation
- Make arm address handling more robust
- Fix entry point calculation when padding present
- Support for elf2tab creating OTBN apps with multiple entry points
- Add
--supported-boards
flag
Support tbf files with architecture tags
Updates in this release include:
- support for elf files tagged with an architecture parameter, which fixes libtock-rs support for fixed-position ARM apps
- automatic detection of stack size based on the .stack section in application binaries, if present
- support for persistent access control IDs
Updates to padding support
Updates in this release include:
- Only ARM apps are padded to a power-of-2 length.
- If there are gaps between sections in the .elf those are respected in the TBF binary.
Include kernel compatibility and permissions information
This release adds the flags --kernel-major
and --kernel-minor
so that apps can be compiled with information about the kernel version they require.
This also adds --permissions
flag to encode what syscall drivers the app should have access to.
Support Fixed Address Apps
This release adds support for .elf files compiled without PIC support that are instead must be loaded at very specific addresses. elf2tab now does much better parsing of the .elf file to try to determine if fixed addresses are intended or not, and if so, includes those addresses in the TBF headers for that TBF. elf2tab also now tries to estimate how large of a protected region to include in the TBF so that both the starting address of the app and the fixed address of the app binary are likely to work.
This release also:
- Updates to 2018 edition of Rust.
- Better parses the .elf file to measure how much memory the app requires.
Add --deterministic, CLI updates
- Add
--deterministic
flag. - Update CLI and help output.
- Misc fixes.