Expand description
Host-side library to interact with and provision NXP LPC55 devices.
Additionally, a command-line tool lpc55
is implemented, so far
it can list all properties via lpc55 info
, and read out memory
(with some restrictions).
For instance lpc55 read-memory $((0x9DE00)) $((7*512)) -o output.bin
extracts the PFR (protected flash region) of an unlocked device.
The grand goal is to have an easily configurable cargo
subcommand
which allows creating and flashing SB2.1 (secure binary) files from
regular ELF files, signed via a PKCS#11 backend.
§But why?!
Vendor tools blhost
and elftosb
are semi-open source, officially
they are BSD-licensed, but code is only available behind a login screen.
pyMBoot is instructive but in Python (and a bit buggy in parts).
There is also the somehow underadvertised https://github.com/NXPmicro/spsdk.
Re-exports§
pub use bootloader::protocol::Error as ProtocolError;
pub use bootloader::Error as BootloaderError;
pub use bootloader::Bootloader;
pub use bootloader::UuidSelectable;
pub use uuid;
Modules§
- The bootloader interface
- NXP’s CRC32 and AES-CTR algorithms
- HTTP server interface to this crate’s functionality
- Abstraction allowing use of either PKCS1 PEM file or PKCS11 keys for signing data.
- The protected flash area (PFR) as Rust types
- Generator and parser for signed firmware and SB (secure binary) files