Skip to content

Releases: tock/elf2tab

0.12.0: Better handling of unusual ELFs

05 Oct 14:47
140b630
Compare
Choose a tag to compare

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

21 Jul 17:06
204a199
Compare
Choose a tag to compare

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

09 Sep 18:57
d725e8f
Compare
Choose a tag to compare

Restore Cargo.lock

08 Sep 16:33
1569e6a
Compare
Choose a tag to compare

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

05 Sep 16:06
bdc14ea
Compare
Choose a tag to compare

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

11 Apr 20:17
Compare
Choose a tag to compare

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

01 Sep 17:14
1f5b0f6
Compare
Choose a tag to compare

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

30 Jul 15:50
8eb28e4
Compare
Choose a tag to compare

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

20 Jul 14:55
ea76eac
Compare
Choose a tag to compare

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

08 May 21:15
d78021b
Compare
Choose a tag to compare
  • Add --deterministic flag.
  • Update CLI and help output.
  • Misc fixes.