Skip to content

Releases: raspberrypi/picotool

2.2.0-a4

14 Aug 16:48

Choose a tag to compare

Update to add support for RP2350 A3 and A4 chip info to version 2.2.0

This adds support to display the correct chip revision when using picotool info --debug or picotool info -a with an RP2350 A3 or A4 chip

2.2.0

29 Jul 11:29

Choose a tag to compare

Updates to coincide with SDK 2.2.0. Includes minor improvements and bug fixes

Highlights are listed below, or you can see the full list of individual commits here, and the full list of resolved issues here.

New Features

  • Added support for creating self-decrypting binaries to picotool encrypt
  • Added support to picotool otp dump to dump to a BIN file, and also to dump from a JSON file - this allows conversion from an OTP JSON file to a BIN file with picotool otp dump otp.json --output otp.bin

Breaking Changes

  • picotool encrypt now requires an IV Salt file to be passed in addition to the AES Key file

Notable Improvements

  • Sped up the picotool info command further for unhashed/unsigned binaries
  • Sped up picotool save, picotool verify and picotool load
  • README.md has been rearranged with a separate BUILDING.md file
  • picotool now plugs alignment holes in signed/encrypted binaries, to prevent failures when performing signature checks/decryption on uninitialised memory

Authors

Thanks to the following for their contributions:

Alexey Vazhnov,
Andrew Scheller,
Armando Montanez,
Graham Sanderson,
Hector Dearman,
jan200101,
Julian Mitchell,
William Vinnicombe

2.1.1

18 Feb 19:50

Choose a tag to compare

Updates to coincide with SDK 2.1.1; includes minor improvements and bug fixes

Notable Improvements

  • Sped up the coprodis command which was very slow for large files on some platforms
  • Sped up the info command by caching data read from the device

Authors

Thanks to the following for their contributions:

David Dyck,
Eric Mueller,
Graham Sanderson,
Willian Vinnicombe,
Luke Wren

2.1.0

25 Nov 06:37

Choose a tag to compare

Updates to coincide with SDK 2.1.0; includes new features and numerous bug fixes

Miscellaneous Changes

  • Added partition table; and otp permissions, whitelabel, contents and settings JSON schemas
  • Moved example json files into json folder, with schemas in json/schemas
  • All commands now require 0x before hexadecimal family IDs

Changes to Existing Commands

  • config
    • Fixed to work with packaged binaries
  • coprodis
    • Fixed to not drop the last instruction and the rest of the file
  • info
    • Fixed display of GPIO functions for GPIO >= 32
    • Fixed to work with packaged binaries
    • Fixed to work with multi-family UF2s
    • New option -m displays all metadata blocks
  • load
    • Support loading into PSRAM (CS1) on RP2350
  • otp list
    • Field descriptions are now shown if a single field is selected, or if thew new -f, --field-descriptions option is used
  • otp load
    • Fix bug which meant only 4 bytes were loaded when loading from a binary file (rare)
  • otp set
    • Added -s, --set-bits option to OR value into a raw row
  • reboot
    • Allow force reboot of a device with third party VID/PID from application firmware into bootloader with:

      picotool reboot --vid 0x32ac --pid 0x001f -f -u
      
    • Always print serial number when unable to find a device with specific serial number after reboot

  • save
    • Added -v, --verify option to verify saved contents
    • Added --family option to specify family ID when saving to UF2
  • seal
    • Support UF2 input files

New Commands

  • erase
    • Erases all or a sub-set (range/partition) of flash

v2.0.0

08 Aug 15:00

Choose a tag to compare

Major Update for SDK 2.0.0 and RP2350

Existing Commands

RP2040

  • Functionality is unchanged

RP2350 specific changes

  • load
    • Offset now valid for ELF and UF2 files on RP2350 - but this should only be used for putting packaged SRAM binaries into flash
    • Defaults to doing the same as a UF2 drag & drop, with detection of UF2 family for ELF and BIN files
  • info
    • Displays info on the embedded block for RP2350
    • Displays information for binaries in partitions too
  • reboot
    • Added -cpu option on RP2350 to switch archtectures
    • Added diagnostic partition option on RP2350.

New commands

See the RP2350 Datasheet "Bootrom Concepts" section for context around these new commands

  • config - Allows reading and changing of modifiable binary info
  • encrypt - Creates an encrypted binary, for use with the enc_bootloader example or similar
  • seal - Used to sign/hash binaries
  • link - Combined multiple binaries into one - see universal examples
  • otp - RP2350 OTP access functionality
    • list - List OTP rows
    • get - Read OTP rows
    • set - Write OTP rows
    • load - Load a JSON or BIN file into OTP
    • dump - Dump the OTP contents as hex
    • permissions - Runs a binary on the device to configure OTP page locks
    • white-label - USB "white-labeling"
  • partition - RP2350 Partition table functionality
    • create - Create a partition table from JSON
    • info - Display the partition table stored on a device
  • uf2 - UF2 related functionality
    • info - Display information about the last (failed) UF2 download on RP2350
    • convert - Replaces ELF2UF2 from the SDK; used to convert a bin/elf file to a UF2 file
  • coprodis - Disassemble RP2350 coprocessor instructions in an existing disassembly file

v1.1.2

14 Jun 02:57

Choose a tag to compare

Small release with one bug fix to allow specifying 0 for --bus, and some minor documentation edits.

Thanks to the following for their contributions:

Andrew Scheller
XDeschuyteneer

v1.1.1

10 Feb 15:15

Choose a tag to compare

  • Add --update option to load command to skip unchanged flash sectors (speed improvement).
  • A number of minor bug fixes and documentation improvements.
  • Support non contiguous flash ELF/UF2 which were written incorrectly before (and yet still passed verify due to another bug).

Thanks to the following for their contributions:

akhil harihar
birdybro
David Grayson
Jeff Hastings
Jan Niehusmann
mbrunnen
Rich Lane

v1.1.0

02 Nov 02:42
55fd880

Choose a tag to compare

V1.1.0 updates

* Add version command
* Fix parsing of ELF where the program header does not directly follow the file header
* Add install-ability via `cmake install`
* Incorporate slightly modified Win32 libusb find helpers
* Add ability to access device using stdio_usb
* Add -n option to load to avoid overwriting existing program
* Add -f/-F option to force reset a cooperative RP2040 board that isnt in BOOTSEL mode
* Add a sudo suggestion when can't connect on linux/macos

Minor updates

15 May 15:57
a49dc0b

Choose a tag to compare

Tagging release as requested