Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package picotool for openSUSE:Factory checked in at 2023-07-26 13:24:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/picotool (Old) and /work/SRC/openSUSE:Factory/.picotool.new.15225 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "picotool" Wed Jul 26 13:24:07 2023 rev:10 rq:1100630 version:1.1.2 Changes: -------- --- /work/SRC/openSUSE:Factory/picotool/picotool.changes 2023-02-20 17:46:39.623705034 +0100 +++ /work/SRC/openSUSE:Factory/.picotool.new.15225/picotool.changes 2023-07-26 13:25:13.120461244 +0200 @@ -1,0 +2,8 @@ +Tue Jul 25 13:20:17 UTC 2023 - Andrea Manzini <andrea.manz...@suse.com> + +- update to 1.1.2: + * Small release with one bug fix to allow specifying 0 for --bus, and some minor documentation edits. + +- bump SDK to latest 1.5.1 to support newer boards + +------------------------------------------------------------------- Old: ---- pico-sdk-1.3.0.tar.gz picotool-1.1.1.tar.gz New: ---- pico-sdk-1.5.1.tar.gz picotool-1.1.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ picotool.spec ++++++ --- /var/tmp/diff_new_pack.fFwWPI/_old 2023-07-26 13:25:13.688464672 +0200 +++ /var/tmp/diff_new_pack.fFwWPI/_new 2023-07-26 13:25:13.696464720 +0200 @@ -16,10 +16,10 @@ # -%define sdk_version 1.3.0 +%define sdk_version 1.5.1 Name: picotool URL: https://github.com/raspberrypi/picotool -Version: 1.1.1 +Version: 1.1.2 Release: 0 Summary: Tool to inspect RP2040 binaries License: BSD-3-Clause @@ -34,7 +34,7 @@ Picotool is a tool for inspecting RP2040 binaries, and interacting with RP2040 devices when they are in BOOTSEL mode. %prep -%setup -q -a 1 +%autosetup -a 1 %build %cmake -DPICO_SDK_PATH="../pico-sdk-%{sdk_version}" ++++++ pico-sdk-1.3.0.tar.gz -> pico-sdk-1.5.1.tar.gz ++++++ ++++ 85439 lines of diff (skipped) ++++++ picotool-1.1.1.tar.gz -> picotool-1.1.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picotool-1.1.1/CMakeLists.txt new/picotool-1.1.2/CMakeLists.txt --- old/picotool-1.1.1/CMakeLists.txt 2023-02-10 15:49:19.000000000 +0100 +++ new/picotool-1.1.2/CMakeLists.txt 2023-06-13 23:30:20.000000000 +0200 @@ -40,7 +40,7 @@ add_subdirectory(${PICO_SDK_PATH}/src/host/pico_platform pico_platform) add_executable(picotool main.cpp) - set(PICOTOOL_VERSION 1.1.1) + set(PICOTOOL_VERSION 1.1.2) set(SYSTEM_VERSION "${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION}") set(COMPILER_INFO "${CMAKE_C_COMPILER_ID}-${CMAKE_C_COMPILER_VERSION}, ${CMAKE_BUILD_TYPE}") target_compile_definitions(picotool PRIVATE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picotool-1.1.1/README.md new/picotool-1.1.2/README.md --- old/picotool-1.1.1/README.md 2023-02-10 15:49:19.000000000 +0100 +++ new/picotool-1.1.2/README.md 2023-06-13 23:30:20.000000000 +0200 @@ -69,7 +69,7 @@ PICOTOOL: Tool for interacting with a RP2040 device in BOOTSEL mode, or with a RP2040 binary -SYNOPSYS: +SYNOPSIS: picotool info [-b] [-p] [-d] [-l] [-a] [--bus <bus>] [--address <addr>] [-f] [-F] picotool info [-b] [-p] [-d] [-l] [-a] <filename> [-t <type>] picotool load [-n] [-N] [-u] [-v] [-x] <filename> [-t <type>] [-o <offset>] [--bus <bus>] [--address <addr>] [-f] [-F] @@ -110,7 +110,7 @@ Display information from the target device(s) or file. Without any arguments, this will display basic information for all connected RP2040 devices in BOOTSEL mode -SYNOPSYS: +SYNOPSIS: picotool info [-b] [-p] [-d] [-l] [-a] [--bus <bus>] [--address <addr>] [-f] [-F] picotool info [-b] [-p] [-d] [-l] [-a] <filename> [-t <type>] @@ -145,7 +145,6 @@ The file name -t <type> Specify file type (uf2 | elf | bin) explicitly, ignoring file extension - ``` Note the -f arguments vary slightly for Windows vs macOS / Unix platforms. @@ -209,6 +208,63 @@ build date: Dec 31 2020 ``` +## load + +Load allows you to write data from a file into flash + +```text +$ picotool help load +LOAD: + Load the program / memory range stored in a file onto the device. + +SYNOPSIS: + picotool load [-n] [-N] [-u] [-v] [-x] <filename> [-t <type>] [-o <offset>] [--bus <bus>] [--address <addr>] [-f] [-F] + +OPTIONS: + Post load actions + -n, --no-overwrite + When writing flash data, do not overwrite an existing program in flash. If picotool cannot determine the size/presence + of the program in flash, the command fails + -N, --no-overwrite-unsafe + When writing flash data, do not overwrite an existing program in flash. If picotool cannot determine the size/presence + of the program in flash, the load continues anyway + -u, --update + Skip writing flash sectors that already contain identical data + -v, --verify + Verify the data was written correctly + -x, --execute + Attempt to execute the downloaded file as a program after the load + File to load from + <filename> + The file name + -t <type> + Specify file type (uf2 | elf | bin) explicitly, ignoring file extension + BIN file options + -o, --offset + Specify the load address for a BIN file + <offset> + Load offset (memory address; default 0x10000000) + Target device selection + --bus <bus> + Filter devices by USB bus number + --address <addr> + Filter devices by USB device address + -f, --force + Force a device not in BOOTSEL mode but running compatible code to reset so the command can be executed. After executing + the command (unless the command itself is a 'reboot') the device will be rebooted back to application mode + -F, --force-no-reboot + Force a device not in BOOTSEL mode but running compatible code to reset so the command can be executed. After executing + the command (unless the command itself is a 'reboot') the device will be left connected and accessible to picotool, but + without the RPI-RP2 drive mounted +``` + +e.g. + +```text +$ picotool load blink.uf2 +Loading into Flash: [==============================] 100% +``` + ## save Save allows you to save a range of memory or a program or the whole of flash from the device to a BIN file or a UF2 file @@ -218,7 +274,7 @@ SAVE: Save the program / memory stored in flash on the device to a file. -SYNOPSYS: +SYNOPSIS: picotool save [-p] [--bus <bus>] [--address <addr>] [-f] [-F] <filename> [-t <type>] picotool save -a [--bus <bus>] [--address <addr>] [-f] [-F] <filename> [-t <type>] picotool save -r <from> <to> [--bus <bus>] [--address <addr>] [-f] [-F] <filename> [-t <type>] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picotool-1.1.1/main.cpp new/picotool-1.1.2/main.cpp --- old/picotool-1.1.1/main.cpp 2023-02-10 15:49:19.000000000 +0100 +++ new/picotool-1.1.2/main.cpp 2023-06-13 23:30:20.000000000 +0200 @@ -294,7 +294,7 @@ auto device_selection = ( - (option("--bus") & integer("bus").min_value(1).max_value(255).set(settings.bus) + (option("--bus") & integer("bus").min_value(0).max_value(255).set(settings.bus) .if_missing([] { return "missing bus number"; })) % "Filter devices by USB bus number" + (option("--address") & integer("addr").min_value(1).max_value(127).set(settings.address) .if_missing([] { return "missing address"; })) % "Filter devices by USB device address" @@ -563,7 +563,7 @@ } } if (!no_synopsis) { - section_header("SYNOPSYS"); + section_header("SYNOPSIS"); for (auto &s : synopsis) { fos.first_column(tab); fos.hanging_indent((int)tool_name.length() + tab); @@ -1017,7 +1017,8 @@ break; } } - return string(v.data(), length);} + return string(v.data(), length); +} struct bi_visitor_base { void visit(memory_access& access, const binary_info_header& hdr) { @@ -1567,7 +1568,7 @@ } for(const auto& item : info) { fos.first_column(1); - fos << (item.first + ":");; + fos << (item.first + ":"); fos.first_column(1 + tab); fos << (item.second + "\n"); } @@ -1920,7 +1921,7 @@ for (uint32_t base = mem_range.from; base < mem_range.to && ok; base += batch_size) { uint32_t this_batch = std::min(mem_range.to - base, batch_size); // note we pass zero_fill = true in case the file has holes, but this does - // mean that the verification will fail if those holes are not filed with zeros + // mean that the verification will fail if those holes are not filled with zeros // on the device file_access.read_into_vector(base, this_batch, file_buf, true); raw_access.read_into_vector(base, this_batch, device_buf); @@ -1992,7 +1993,7 @@ for(uint32_t base = mem_range.from; base < mem_range.to && ok; base += batch_size) { uint32_t this_batch = std::min(mem_range.to - base, batch_size); // note we pass zero_fill = true in case the file has holes, but this does - // mean that the verification will fail if those holes are not filed with zeros + // mean that the verification will fail if those holes are not filled with zeros // on the device file_access.read_into_vector(base, this_batch, file_buf, true); raw_access.read_into_vector(base, this_batch, device_buf);