)]}'
{
  "log": [
    {
      "commit": "98a542c1a62fb549ffb5d66a3e5892b06276b670",
      "tree": "a989936fe250b846704f71ab8e7d6771c790a040",
      "parents": [
        "f559ee73d503ebe6729fda1f72f7676ac40a4d74"
      ],
      "author": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Fri Jul 03 00:12:34 2026 -0500"
      },
      "committer": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Fri Jul 03 00:12:34 2026 -0500"
      },
      "message": "SDK 2.3.0 Release\n"
    },
    {
      "commit": "f559ee73d503ebe6729fda1f72f7676ac40a4d74",
      "tree": "6f715a26c00f1b02b8f11ed6980a78f9b9873cd0",
      "parents": [
        "a1a05a5b9cf2d0cc3f04f034ae73533c36132b2f"
      ],
      "author": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Fri Jul 03 00:06:42 2026 -0500"
      },
      "committer": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Fri Jul 03 00:06:42 2026 -0500"
      },
      "message": "move pico_usb_reset into high level APIs section of docs\n"
    },
    {
      "commit": "a1a05a5b9cf2d0cc3f04f034ae73533c36132b2f",
      "tree": "9bc2648071150a4ee02ee6ff94861c093174d0ac",
      "parents": [
        "d7df774365a67a9f773f5f0c3b4c6e999514ec44"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Thu Jul 02 19:42:55 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 13:42:55 2026 -0500"
      },
      "message": "Fix best_effort_wfe_or_timeout (#3057)\n\nFix a hang if called for the first time with an until of 0"
    },
    {
      "commit": "d7df774365a67a9f773f5f0c3b4c6e999514ec44",
      "tree": "e1ffe06fe40c917c00f5b4dc8e68c0bec3b5c207",
      "parents": [
        "b9e3417f4539949334de2fe580360f10b0f8d333"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Thu Jul 02 18:48:13 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 12:48:13 2026 -0500"
      },
      "message": "Improve pico_low_power brief (#3056)"
    },
    {
      "commit": "b9e3417f4539949334de2fe580360f10b0f8d333",
      "tree": "9b50c93e5ebae96982fd9a45ef996a19870ab3b8",
      "parents": [
        "22489fb48d02b3f238763d7c913058a2b788c560"
      ],
      "author": {
        "name": "Liam Fraser",
        "email": "liam@raspberrypi.com",
        "time": "Thu Jul 02 15:46:31 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 09:46:31 2026 -0500"
      },
      "message": "RISC-V: Test whether toolchain has both assembler and compiler support for Zcmp (#3055)\n\n* RISC-V: Update pico_choose_compiler_flags to optionally take a list of test files to compile for a corresponding list of compiler flags. Use this to fix GCC14.1.0 issue where the compiler claims to support zcmp but does not if you actually build a program using zcmp.\n\n* Add comment to pico_riscv_gcc_zcb_zcmp.cmake explaining that it is needed for bootrom builds."
    },
    {
      "commit": "22489fb48d02b3f238763d7c913058a2b788c560",
      "tree": "a171c5609896c35525927eac85d381779e0f0e59",
      "parents": [
        "5145bbac18a5b06ef2a06c25ef968f4bb71020ca"
      ],
      "author": {
        "name": "Luke Wren",
        "email": "luke@raspberrypi.com",
        "time": "Thu Jul 02 14:06:23 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 08:06:23 2026 -0500"
      },
      "message": "Swap buffer write and flush check in stdio_buffered_printer (saves 10 cyc/char) (#3054)"
    },
    {
      "commit": "5145bbac18a5b06ef2a06c25ef968f4bb71020ca",
      "tree": "8ef445910bbb584e337504a832efc89b60d867f0",
      "parents": [
        "09453129516d87140f9459119d9a0a0554dde496"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Thu Jul 02 12:02:15 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 12:02:15 2026 +0100"
      },
      "message": "Tiny typo"
    },
    {
      "commit": "09453129516d87140f9459119d9a0a0554dde496",
      "tree": "5728a71cebcfe36bcef06a190f2dedca4c44467e",
      "parents": [
        "c4e1751d7070bfea44ab1e0a2e961b8793cec5b6"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jul 01 17:29:14 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 17:29:14 2026 -0500"
      },
      "message": "Update to latest versions of the hardware headers (#3050)\n\n* Update RP2040/RP2350 headers/svd\n\n* fixup svd and regen\n\n* fix tinyusb submodule\n\n* Update RP2040 headers\n\n* Update RP2350 headers\n\n---------\n\nCo-authored-by: project_441_bot_5c6b1800afed182cb65afca448902ec9 \u003cproject_441_bot_5c6b1800afed182cb65afca448902ec9@noreply.asic-git.pitowers.org\u003e"
    },
    {
      "commit": "c4e1751d7070bfea44ab1e0a2e961b8793cec5b6",
      "tree": "f64516814abf4d0147ecaafe3458f28bc5890fb3",
      "parents": [
        "bb519f65ad42944bcff46f73c932b7bd233b6452"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Wed Jul 01 19:03:49 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 13:03:49 2026 -0500"
      },
      "message": "Add low_power_set_pins_low_leakage function (#3049)\n\n* Initial attempt at low_power_set_pins_low_leakage\n\n* Add 64-bit version, and add to tests\n\n* Fix compilation\n\n* Update src/rp2_common/pico_low_power/low_power.c\n\n* Set Output Enable Override to Disabled in IO, rather than connecting to SIO\n\n* Fix tests\n\n* Update src/rp2_common/pico_low_power/include/pico/low_power.h\n\n* Update src/rp2_common/pico_low_power/include/pico/low_power.h\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n* Update src/rp2_common/pico_low_power/include/pico/low_power.h\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n* Rename low_power_set_pins_low_leakage to low_power_set_all_pins_low_leakage\n\n* low_power_set_all_pins_low_leakage -\u003e low_power_set_pins_low_leakage_exclude_mask\n\n---------\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e"
    },
    {
      "commit": "bb519f65ad42944bcff46f73c932b7bd233b6452",
      "tree": "4bfdbff33f106c3608efa9ec4875c169ac969e73",
      "parents": [
        "de56e5288e92e2c0ab2c3489cb32b5e82b402f6d"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jul 01 13:02:22 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 13:02:22 2026 -0500"
      },
      "message": "Pico sync sw spinlock fix (#3040)\n\n* Add PICO_SYNC_RP2350_SPINLOCK_WORKAROUND config item to make lock_internal_ helpers aware of spin lock/unlock on same core doing a SEV on RP2350 when using S/W spin locks\n\nThe fix (which is only designed to work with coordinating lock_internal_unclock_with_ functions is to use a single byte sentinel to see if no other spin lock has raced after our own spin-lock, and if not, insert an extra __wfe\n\nNote that it seems to me that a single byte across all cores and locks is sufficient, since we only care that the value changes from our point of view, and changes are monatomic (well module 256 which seems fair for a rare-race). we don\u0027t care about a rare extra wakeup due to another lock\n\n* add more bazel exclusions\n\n* SPINLOCK-\u003eSPIN_LOCK\n\n* bazel fix\n\n* grrr\n\n* fix silly bug; add test for sleep_until\n\n* fix indent\n\n* fix required on RISC-V too"
    },
    {
      "commit": "de56e5288e92e2c0ab2c3489cb32b5e82b402f6d",
      "tree": "e11b50c2b1a59c86f6bd1e8924527a98c57e615a",
      "parents": [
        "476c84ab46665a70672db1f1de4cde8bc8767dd5"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Wed Jul 01 15:56:16 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 15:56:16 2026 +0100"
      },
      "message": "Add DORMANT_CLOCK_SOURCE_RTC option on RP2040 (#3048)\n\n* Add DORMANT_CLOCK_SOURCE_RTC option on RP2040\n\nThis runs RTC from XOSC, which allows going dormant without an external timer, at the expense of higher power consumption\n\n* Switch DORMANT_CLOCK_SOURCE_DEFAULT on RP2040 to DORMANT_CLOCK_SOURCE_RTC\n\nAlso change power consumption figures and re-jig tests to match this"
    },
    {
      "commit": "476c84ab46665a70672db1f1de4cde8bc8767dd5",
      "tree": "c0e002bd116782904f27dedd9edd06764ededfb6",
      "parents": [
        "a7a77b1851491132ab046335c70b85483f076394"
      ],
      "author": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jul 01 09:31:18 2026 -0500"
      },
      "committer": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jul 01 09:31:26 2026 -0500"
      },
      "message": "gate -Wno-analyzer- with GCC build\n"
    },
    {
      "commit": "a7a77b1851491132ab046335c70b85483f076394",
      "tree": "dab8ba29678f2b770303ebc8502c0d9ea112473d",
      "parents": [
        "60533f008ffb6f587da367e3c32bd146027adc1f"
      ],
      "author": {
        "name": "Kat Shann",
        "email": "kat.shann@raspberrypi.com",
        "time": "Wed Jul 01 15:07:56 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 15:07:56 2026 +0100"
      },
      "message": "Style sweep (#3053)\n\n* Fix up how note blocks display. Add initial capital\n\n* Specify RP-series microcontrollers to guard against RP1 erroneously being considered part of the series."
    },
    {
      "commit": "60533f008ffb6f587da367e3c32bd146027adc1f",
      "tree": "335accae723a017146eaa1631b0272f22ac6ed53",
      "parents": [
        "8af65b3467738cbc02b5045edee68f1f40d6b463"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Tue Jun 30 23:36:35 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 17:36:35 2026 -0500"
      },
      "message": "Small doxygen tweak to pico_divider_headers (#3047)"
    },
    {
      "commit": "8af65b3467738cbc02b5045edee68f1f40d6b463",
      "tree": "2e2def5e9137db8cedd9414faf0e37d9b91cd6ba",
      "parents": [
        "1d8c273ba32763245dc8587fc1a37aaeee57b4e3"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Tue Jun 30 16:46:11 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 16:46:11 2026 -0500"
      },
      "message": "sort SVD peripherals alphabetically (#3044)"
    },
    {
      "commit": "1d8c273ba32763245dc8587fc1a37aaeee57b4e3",
      "tree": "851df9091db177f98446f5686e18d98c5027b4c6",
      "parents": [
        "ac290ed3e019e840c38dda611dacf994a79e842f"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Tue Jun 30 10:03:23 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 10:03:23 2026 -0500"
      },
      "message": "Pico default xxx impl (#3033)\n\n* redo all PICO_DEFAULT_XXX_IMPL values so:\n1. they can all be overriden\n2. like pico_set_xxx_impl they expect to prefix pico_xxx_ to form the library name\n3. for backwards compatibility if the value is already prefixed, then the prefix is not added a second time\n\n* allow whitelist of mismatched PICO_CMAKE_CONFIG and PICO_BAZEL_CONFIG options\n\n* fix PICO_CMAKE_CONFIG\n\n* Apply suggestions from code review\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n* Apply suggestions from code review\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n* remove _ from prefix param to pico_fixup_default_impl\n\n* what is different?\n\n* Line-ending fixes\n\n* Fix a few missed renames\n\n---------\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\nCo-authored-by: Andrew Scheller \u003candrew.scheller@raspberrypi.com\u003e\nCo-authored-by: William Vinnicombe \u003cwilliam.vinnicombe@raspberrypi.com\u003e"
    },
    {
      "commit": "ac290ed3e019e840c38dda611dacf994a79e842f",
      "tree": "45fa04665e69c666d649bd2ef288f08dc7fed480",
      "parents": [
        "2a1d5009fee472a6531fb071f37c37fcc3572ab6"
      ],
      "author": {
        "name": "James Smith",
        "email": "james@loopj.com",
        "time": "Tue Jun 30 07:15:43 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 09:15:43 2026 -0500"
      },
      "message": "Use `unsigned int` instead of `uint` in `BINARY_INFO_MAKE_TAG` (#3029)\n\n* Use `unsigned int` instead of `uint` in `BINARY_INFO_MAKE_TAG`\n\n* switch to use exact types for BINARY_INFO_MAKE_TAG\n\n---------\n\nCo-authored-by: Graham Sanderson \u003cgraham.sanderson@raspberrypi.com\u003e"
    },
    {
      "commit": "2a1d5009fee472a6531fb071f37c37fcc3572ab6",
      "tree": "5356fd19bd186a820b30767dde834a8f123b97c3",
      "parents": [
        "f53c43d48af6244e564e2a5b70397b9a3be6ee7b"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Tue Jun 30 15:14:59 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 09:14:59 2026 -0500"
      },
      "message": "Stop using async writes in CYW43 driver for BTStack (#3042)"
    },
    {
      "commit": "f53c43d48af6244e564e2a5b70397b9a3be6ee7b",
      "tree": "ee00aae83a822e0a5264719d497a99db917589fc",
      "parents": [
        "274c6e75004104d90dc5a3b88a89f3a3bb1baf60"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Mon Jun 29 23:21:32 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 17:21:32 2026 -0500"
      },
      "message": "Minor cleanups extra (#3026)\n\n* Add missing words to doxygen in float.h and double.h\n\n* Update tools/check_float_test_names.py to also check function returm-types\n\n* Update tools/check_float_test_names.py to check function argument-types\n\n* Update tools/check_float_test_names.py to check function argument-names"
    },
    {
      "commit": "274c6e75004104d90dc5a3b88a89f3a3bb1baf60",
      "tree": "5d489623e79f253ae3b2db560c83eaedd43339a2",
      "parents": [
        "baec39b820f9a33cf926123ca1d59646ee515dd4"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Mon Jun 29 17:18:18 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 17:18:18 2026 -0500"
      },
      "message": "some minor float test changes from testing llvm-libc (#3043)"
    },
    {
      "commit": "baec39b820f9a33cf926123ca1d59646ee515dd4",
      "tree": "6d416a1ab6348cd0fbcd15e6fa961b931ffcd5b2",
      "parents": [
        "b67863bc4d5b19bf6771acebf547b7b01ccb8d5a"
      ],
      "author": {
        "name": "Prabhu Rajasekaran",
        "email": "prabhukrllvm@gmail.com",
        "time": "Mon Jun 29 10:50:46 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 12:50:46 2026 -0500"
      },
      "message": "Update Clang toolchain used by Bazel (#2879)\n\n* Update Clang toolchain used by Bazel\n\nThe Clang toolchain is updated to a newer revision 9431920bfaee50f4b1552fc01ea081a5c18a5a3b from March 20, 2026.\n\nFixes #2859\n\n* fix checksum"
    },
    {
      "commit": "b67863bc4d5b19bf6771acebf547b7b01ccb8d5a",
      "tree": "0247f94cf8aa26f40079b742ddb2486303e9953a",
      "parents": [
        "13aa377ede7167f6a317e8e5fbf40bab983d6e07"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Mon Jun 29 17:31:12 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 11:31:12 2026 -0500"
      },
      "message": "xTimerDelete in freertos deinit (#3008)\n\n* Don\u0027t clear static memory\n\nIn async_context_freertos_deinit we delete the timer,\nbut the timer task might be running on the other core.\nSo don\u0027t zero static memory as it might be in use.\n\nFixes #2687\n\n* synchronize on freertos timer deletion\n\n---------\n\nCo-authored-by: graham sanderson \u003cgraham.sanderson@raspberrypi.com\u003e"
    },
    {
      "commit": "13aa377ede7167f6a317e8e5fbf40bab983d6e07",
      "tree": "30effa6b0d810d3e55478500551ac6dac0bf1879",
      "parents": [
        "6c495ab4b95e99966728f7e629cb10202bae061e"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Mon Jun 29 11:30:47 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 11:30:47 2026 -0500"
      },
      "message": "add 2 shared irq handlers when using stdio_usb (#3037)\n\n* add 2 shared irq handlers when using stdio_usb\n\nnote i didn\u0027t add a new config option to turn this off, since you can just set PICO_MAX_SHARED_IRQ_HANDLERS if you actually really care\n\n* Apply suggestions from code review\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n---------\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e"
    },
    {
      "commit": "6c495ab4b95e99966728f7e629cb10202bae061e",
      "tree": "62662b362c64a96c7295714e4b62101c0cc54db7",
      "parents": [
        "bd8fca022c6370290a65491cbc3d94aa8e6c49a1"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Mon Jun 29 17:30:00 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 11:30:00 2026 -0500"
      },
      "message": "Small doxygen tweaks (#3038)\n\n* Small doxygen tweaks\n\n* Update src/common/pico_binary_info/include/pico/binary_info/structure.h\n\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e\n\n* Update src/common/pico_binary_info/include/pico/binary_info/structure.h\n\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e\n\n* Ooops, forgot to rename parameter to match updated doxygen\n\n---------\n\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e"
    },
    {
      "commit": "bd8fca022c6370290a65491cbc3d94aa8e6c49a1",
      "tree": "f2735fd7e63094307e8f2c191263e8719ab0b20d",
      "parents": [
        "dc53c94d52a63c5d25cf623bdadd6e97bf36525e"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Mon Jun 29 11:10:05 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 11:10:05 2026 -0500"
      },
      "message": "Fix race condition breaking low power waits when calling best_effort_wfe_or_timeout() from the non-alarm handler core. (#3039)\n\nWhen best_effore_wfe_or_timeout is called from the non-alarm core, there is a potential race, since the adding of the alarm is actually asynchronous (since it happens via IRQ on the other core). since the default alarm pool handler never removes a pending WFE when set, we do not need to add again if we are called in a loop. We simply cache the last value set."
    },
    {
      "commit": "dc53c94d52a63c5d25cf623bdadd6e97bf36525e",
      "tree": "bc5766cc1044407ac5f4147cabe1092f6dcd1e99",
      "parents": [
        "4fb39a35c103d617e4b9440a95ee988510927988"
      ],
      "author": {
        "name": "Edward Hesketh",
        "email": "inbox@edwardh.dev",
        "time": "Sat Jun 27 21:58:55 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 27 15:58:55 2026 -0500"
      },
      "message": "fix incorrect assertions in hardware_pio (#3036)"
    },
    {
      "commit": "4fb39a35c103d617e4b9440a95ee988510927988",
      "tree": "eff49bdef468e417a0fd8a9bbe5e59b41d94b6a3",
      "parents": [
        "fb53c3802096668606399aba8137ca48398a5401"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Sat Jun 27 21:23:33 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 27 15:23:33 2026 -0500"
      },
      "message": "Small comment-tweaks to picoboot.h (#3034)"
    },
    {
      "commit": "fb53c3802096668606399aba8137ca48398a5401",
      "tree": "5fcad281bebcf96068bd113e7771ef43b7de5205",
      "parents": [
        "9d5da1ca93c85bdb78c63c177663df53d901da1e"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Fri Jun 26 10:42:50 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 10:42:50 2026 -0500"
      },
      "message": "set _GTHREAD_USE_COND_INIT_FUNC on GCC for pioasm to work around 15.1 bug (#3032)"
    },
    {
      "commit": "9d5da1ca93c85bdb78c63c177663df53d901da1e",
      "tree": "1e252ef5685c170633499f03f6b73daa97a9ce7c",
      "parents": [
        "a183b84dd0dc75d5ace1b63a1c26344db396e3bf"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Fri Jun 26 15:25:22 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 09:25:22 2026 -0500"
      },
      "message": "Add some rough power consumption values to pico_low_power (#3031)\n\n* Add some rough power consumption values to pico_low_power\n\nAlso add RP2040 needing external clock for dormant to the note\n\nAlso fix incorrect invalid_params_if in low_power_go_dormant\n\n* Unlock VREG before pstate change\n\nUpdate power consumption values based off more measurements and this VREG change\n\n* Add some values for lower power Pstates too"
    },
    {
      "commit": "a183b84dd0dc75d5ace1b63a1c26344db396e3bf",
      "tree": "b1b3c492d75830cf608e7eff62f14854091df0f4",
      "parents": [
        "f4563ce0dd6724fbd946f9e490372458bba743af"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jun 24 12:08:00 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 12:08:00 2026 -0500"
      },
      "message": "Add PICO_MULTICORE_LOCKOUT_BEFORE_CORE1_STARTED (defaults to 1) to allow mutlicore_lockout to work before core 1 is started (#3019)\n\n* Add PICO_MULTICORE_LOCKOUT_BEFORE_CORE1_STARTED (defaults to 1) to allow mutlicore_lockout to work before core 1 is started\n\n* Add multicore_lockout_ready() and add a pico_minimize_runtime to turn off new support to save the extra bit of code needed\n\n* add missing (void)\n\n* comment change\n\n* Fix issues with pico_minimize_runtime\n\nCRT0_FAR_CALLS and MULTICORE_LOCKOUT_BEFORE_CORE1_STARTED hadn\u0027t been implemented correctly (so were always excluded), and THREAD_LOCAL was missing from docs\n\n* add another missing (void)\n\n* Apply suggestions from code review\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n* comment change\n\n* fix typo\n\nCo-authored-by: Andrew Scheller \u003candrew.scheller@raspberrypi.com\u003e\n\n---------\n\nCo-authored-by: William Vinnicombe \u003cwilliam.vinnicombe@raspberrypi.com\u003e\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e\nCo-authored-by: Andrew Scheller \u003candrew.scheller@raspberrypi.com\u003e"
    },
    {
      "commit": "f4563ce0dd6724fbd946f9e490372458bba743af",
      "tree": "c425bf9a0e9adb590932eb29acffc45bd0f32288",
      "parents": [
        "042fa7964fcbb11e5efa7552e9d997a62efcd5b2"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jun 24 10:18:54 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 10:18:54 2026 -0500"
      },
      "message": "add some struct doxygen (#3022)\n\n* add some struct doxygen\n\n* add 2 missing group briefs\n\n* revert accidental btsack change\n\n* fix glaring issues\n\n* Fixups from my comments\n\n* Update src/common/boot_picoboot_headers/include/boot/picoboot.h\n\n* Update src/common/boot_picoboot_headers/include/boot/picoboot.h\n\n---------\n\nCo-authored-by: William Vinnicombe \u003cwilliam.vinnicombe@raspberrypi.com\u003e"
    },
    {
      "commit": "042fa7964fcbb11e5efa7552e9d997a62efcd5b2",
      "tree": "11addb4497da736a8ad67f4bd1e5862de961e34b",
      "parents": [
        "a01fec6053ecb2e988047be540cb745116eaed7b"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Wed Jun 24 15:41:02 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 09:41:02 2026 -0500"
      },
      "message": "Update extern c ignore (#3025)\n\n* Add a --include-list argument\n\nThis allows us to check the exclude list is still valid.\n\n* Add some missing __cplusplus guards\n\n* Update .extern_c_ignore\n\nSee #2865\n\n* Add a github workflow to check extern c guards"
    },
    {
      "commit": "a01fec6053ecb2e988047be540cb745116eaed7b",
      "tree": "5872f0e33a5f559aa04e6d167aa930658ab8cd08",
      "parents": [
        "22d31a8ad1c611146e99b5fc9b8d9dc54c066d08"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jun 24 09:40:34 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 09:40:34 2026 -0500"
      },
      "message": "add pio_set_input_sync_bypass_with_mask and pio_set_input_sync_bypass_with_mask64 (#3024)\n\n* add pio_sm_set_input_sync_bypass_with_mask and pio_sm_set_input_sync_bypass_with_mask64\n\n* revert changes to check_pio_pin_mask* as they are part of public API; albeit the sm parameter is pretty meaniingless\n\n* bypass_values -\u003e bypass_enables\n\n* Fix function names\n\nAnd use the new function in the cyw43 pio implementation.\n\n* Second attempt at fixing the new function names\n\nLose the \"sm\"?\n\n---------\n\nCo-authored-by: Peter Harper \u003cpeter.harper@raspberrypi.com\u003e"
    },
    {
      "commit": "22d31a8ad1c611146e99b5fc9b8d9dc54c066d08",
      "tree": "b49b3feab104e162354003cb287d0923bfc15b2a",
      "parents": [
        "9e79881fec6cbf7650a1e258641f50104dcd4e87"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Wed Jun 24 15:39:56 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 09:39:56 2026 -0500"
      },
      "message": "Add BLOCK_DEVICE_PARTITION_ID define in bootrom_constants.h (#3015)\n\n* Add BLOCK_DEVICE_PARTITION_ID define in bootrom_constants.h\n\n* BLOCK_DEVICE_PARTITION_ID -\u003e BLOCK_DEVICE_DEFAULT_PARTITION_ID"
    },
    {
      "commit": "9e79881fec6cbf7650a1e258641f50104dcd4e87",
      "tree": "3b45b167f2eb48909283ec79a6925d22c23f14bc",
      "parents": [
        "9a3bde3eede9aac1d32610e9bd4e3f687b83bc9b"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Tue Jun 23 14:24:38 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 08:24:38 2026 -0500"
      },
      "message": "Flash functions in PICO_NO_FLASH binaries (#2759)\n\n* Flash functions in PICO_NO_FLASH binaries\n\nWe assume that PICO_NO_FLASH binaries means the device does not have\na flash chip. But it\u0027s possible that you want a ram binary AND want\nto use the unique flash id functionality.\n\nAdd PICO_INCLUDE_FLASH_ID_FUNCTIONS to force the inclusion of these\nflash functions in ram binaries.\n\nFixes #2796\n\n* Change the name of the config\n\nTo PICO_ALWAYS_INCLUDE_FLASH_ID_FUNCTIONS."
    },
    {
      "commit": "9a3bde3eede9aac1d32610e9bd4e3f687b83bc9b",
      "tree": "1a0719530860acd2f65dfe70fa9b8427d0633f6a",
      "parents": [
        "76b9ca3aa129b02457712092aff75f429676a916"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Tue Jun 23 08:22:47 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 08:22:47 2026 -0500"
      },
      "message": "minor cleanup (#3021)\n\n* minor cleanup\n\n* Update src/rp2_common/pico_double/include/pico/double.h\n\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e\n\n* fixes from review\n\n---------\n\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e"
    },
    {
      "commit": "76b9ca3aa129b02457712092aff75f429676a916",
      "tree": "3f2beb79dadadda17a1ad8c00e78606c2378d8b4",
      "parents": [
        "da570746c1344b6c6426bfc31c21e580d48cc897"
      ],
      "author": {
        "name": "Andrii Anoshyn",
        "email": "116808454+anoshyn@users.noreply.github.com",
        "time": "Tue Jun 23 16:22:28 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 08:22:28 2026 -0500"
      },
      "message": "hardware_pio: clarify pio_sm_restart docs (PC, running state, what gets cleared) (#2945)\n\nThe previous doxygen claimed pio_sm_restart() clears \"the ISR, shift\ncounters, clock divider counter, pin write flags, delay counter, latched\nEXEC instruction, and IRQ wait condition\". That list mixed up a few\nthings and was missing the points users actually trip over (per #2844):\n\n- The clock divider counter is NOT cleared by SM_RESTART; that requires\n  CLKDIV_RESTART (pio_sm_clkdiv_restart).\n- \"ISR\" was ambiguous (the input shift register vs interrupt service\n  routine); spell it out.\n- The function name ends in \"_restart\" but the SM\u0027s enable/running state\n  is not affected; SM_RESTART only clears internal bookkeeping.\n- The program counter is not affected either (the issue\u0027s main ask).\n\nRewrite both pio_sm_restart and pio_restart_sm_mask doxygen to track the\nauthoritative wording from the RP2040/RP2350 PIO_CTRL.SM_RESTART field\ndescriptions: list exactly what is cleared (input/output shift counters,\ninput shift register contents, delay counter, waiting-on-IRQ state,\nstalled SMx_INSTR / OUT|MOV EXEC instruction, OUT_STICKY pin writes) and\nexactly what is preserved (enable state, PC, output shift register, X/Y\nscratch). Point readers at pio_sm_clkdiv_restart and pio_sm_exec for the\noperations they may have expected this function to perform.\n\nAlso fix the @param description on pio_restart_sm_mask, which previously\nsaid \"modify the enabled state of\" - that function doesn\u0027t touch the\nenable bits.\n\nDoxygen build verified locally: no new warnings, cross-references to\npio_sm_set_enabled / pio_sm_clkdiv_restart / pio_sm_exec resolve, and\nthe rendered HTML reads cleanly.\n\nFixes #2844."
    },
    {
      "commit": "da570746c1344b6c6426bfc31c21e580d48cc897",
      "tree": "5102c3e4dbc13caa43e35d2279c1e57ffeee1fc3",
      "parents": [
        "3445d5d7e16e2695e61722f960fd53cd0d1f7cbd"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Tue Jun 23 14:22:00 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 08:22:00 2026 -0500"
      },
      "message": "Fixup tests for hardware (#3023)\n\n* Print PASSED from pico_xip_sram_test\n\n* Sleep after GPIO init\n\nShould help with hwtests"
    },
    {
      "commit": "3445d5d7e16e2695e61722f960fd53cd0d1f7cbd",
      "tree": "08e819e95717b5e5355200dedec214d0a44cb969",
      "parents": [
        "7db5fb52517a51a71edab214f5d4a2b07b382ff3"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Mon Jun 22 14:43:32 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 08:43:32 2026 -0500"
      },
      "message": "Add a script to check for missing extern_c guards (#3003)\n\nFixes #2865"
    },
    {
      "commit": "7db5fb52517a51a71edab214f5d4a2b07b382ff3",
      "tree": "5d18786cb920a03b2b742129a4dabfcdd2666767",
      "parents": [
        "3ebd10c84a23a1664033a01b1b9ff47afccd95df"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Fri Jun 19 22:53:29 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 16:53:29 2026 -0500"
      },
      "message": "Allow response to be specified in makefsdata script (#3000)\n\n* Allow response to be changed in makefsdata script\n\nCurrently the response contents are hardcoded.\nThis prevents using the makefsdata script to implement a captive\nportal where we have to send a redirect when a 404 result would be\nreturned.\n\nWhen loading file contents, look for a file with the same name with\na \"response\" extension and use its contents for the response.\n\nWe can then use this for the access point example which can then be\nsimplified.\n\nFixes #2646\n\n* Change .hdr file to .response\n\nOnly return on zero contents if a .response file is found.\n\n* Apply suggestion from @lurch\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n---------\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e"
    },
    {
      "commit": "3ebd10c84a23a1664033a01b1b9ff47afccd95df",
      "tree": "3b8c91dd899b7400ec7eb5dc78ceedc34596984e",
      "parents": [
        "cda80c0a95c5591e33d1aa5c7ffef7c7191e9eaa"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Fri Jun 19 22:52:26 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 16:52:26 2026 -0500"
      },
      "message": "Fixups for packaged no_flash and xip_ram binaries (#3012)\n\n* Add tests of improved picotool packaging\n\n* Move section_xip_ram and sections_psram before data in linker scripts\n\nInitialised data must come before uninitialised, so section_xip_ram must come before section_persistent_data\n\nNeither of these place anything in SRAM for default binaries, so this doesn\u0027t change the ram_vector_table location\n\n* Update memmap annotations\n\n* Fix debugger start for XIP_RAM binaries\n\nThese require a smaller window size, so pass LENGTH(RAM) from the linker script instead of (SRAM_END - SRAM_BASE)\n\n* Add hashing and signing test to check squashing is working for those\n\n* Fix guards around some xip_sram test binaries\n\n* Switch to new section_no_flash_end.incl for calculating ram window start and size, and add to Risc-V"
    },
    {
      "commit": "cda80c0a95c5591e33d1aa5c7ffef7c7191e9eaa",
      "tree": "a871f6c626c84c69275e1d425e4e6902a45cc548",
      "parents": [
        "f9adf5491938b346ae78da37f5f7ae1b08758951"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Fri Jun 19 16:24:07 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 10:24:07 2026 -0500"
      },
      "message": "Update to btstack v1.8.2 (#2996)\n\n* Update btstack to v1.8.2\n\n* Update bazel for new btstack version"
    },
    {
      "commit": "f9adf5491938b346ae78da37f5f7ae1b08758951",
      "tree": "e96772efc2e1e8cebce5b5e07d274f46d8d8dce5",
      "parents": [
        "5be44290896a620ff77129e71ac0fa7e4661cd05"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Fri Jun 19 07:47:15 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 07:47:15 2026 -0500"
      },
      "message": "RP2350 bootrom rom_reboot()does not actually reboot for delay_ms of 0, so call it with 1 instead (#3018)"
    },
    {
      "commit": "5be44290896a620ff77129e71ac0fa7e4661cd05",
      "tree": "16acb240fa1e7a494f3122c9b1cb6fb618720890",
      "parents": [
        "719894608f9c1ff0ebffd9225856bb06dc7d2926"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Thu Jun 18 14:42:14 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 14:42:14 2026 -0500"
      },
      "message": "fix -fanalyzer warnings (from Arm GCC 14.2/15 at least) (#3013)\n\n* fix -fanalyzer warnings (from Arm GCC 14.2/15 at least) - don\u0027t plan to fix false positives from earlier versions\n\n* suppress false positive fanalyzer warning that only shows up in release mode"
    },
    {
      "commit": "719894608f9c1ff0ebffd9225856bb06dc7d2926",
      "tree": "288b45b521c7db3fde7af360f3ae48a17f661fd2",
      "parents": [
        "036e07c086fe0cd12902cb646935ea8db128d23f"
      ],
      "author": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jun 17 18:04:03 2026 -0500"
      },
      "committer": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jun 17 18:04:03 2026 -0500"
      },
      "message": "fix compiler warnings\n"
    },
    {
      "commit": "036e07c086fe0cd12902cb646935ea8db128d23f",
      "tree": "3fa351d785a1534ae37e97673e852b0aa1a92bc0",
      "parents": [
        "b4134e980fa3e5ba84371bbfd4e40d3f95b5504a"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jun 17 17:23:35 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 17:23:35 2026 -0500"
      },
      "message": "clarify pio_sm_set_config use of pinhi (#2993)"
    },
    {
      "commit": "b4134e980fa3e5ba84371bbfd4e40d3f95b5504a",
      "tree": "281a253539f994e32fa24eba569c9353b70f92ec",
      "parents": [
        "aaccadac5bd14468b25bfaadb9689962c7adf80d"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jun 17 17:08:12 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 17:08:12 2026 -0500"
      },
      "message": "fix PIO gpio compatibility checks, docs and simplify/optimize implementation (#2989)\n\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e"
    },
    {
      "commit": "aaccadac5bd14468b25bfaadb9689962c7adf80d",
      "tree": "87d05c68179e55226adb3a3d5dc9ee8e5cc6e54a",
      "parents": [
        "5d1efda5855ffb575e5d035eb0071cc8274ebc40"
      ],
      "author": {
        "name": "DeepPG",
        "email": "92751452+DeepPG@users.noreply.github.com",
        "time": "Thu Jun 18 00:11:51 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 16:11:51 2026 -0500"
      },
      "message": "Fix duplicate wrapper defintion in pico_mem_ops (#3010)\n\nFix duplicated wrapper definition\n\nFixed BUILD.bazel and CMakeLists.txt from duplicated wrapper definition of __clzsi2"
    },
    {
      "commit": "5d1efda5855ffb575e5d035eb0071cc8274ebc40",
      "tree": "f8ece279250f5f8e68b5480d038c77ed8153bcb0",
      "parents": [
        "3b7afccd6915c132e7365533b4c378727d881c03"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Wed Jun 17 22:08:25 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 16:08:25 2026 -0500"
      },
      "message": "Fix btstack flash bank in partitions (#3017)\n\n* Writes are untranslated, so reads should be too"
    },
    {
      "commit": "3b7afccd6915c132e7365533b4c378727d881c03",
      "tree": "be3143e6ece7ebf7b4c29bc3c0a14c19ed4c2048",
      "parents": [
        "4b8cd81025cb7f734272bed645df33104b04f207"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jun 17 16:07:27 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 16:07:27 2026 -0500"
      },
      "message": "add .gitattributes for LF line endings, and fixup content (#3016)\n\n* add .gitattributes for LF line endings, and fixup content\n\n* oops - missed .gitattributes"
    },
    {
      "commit": "4b8cd81025cb7f734272bed645df33104b04f207",
      "tree": "f15ea73900a025c0c154818523997e6b4b44be88",
      "parents": [
        "07f6013b125f708eca79e157a26e22df676c7ffb"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jun 17 09:41:59 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 09:41:59 2026 -0500"
      },
      "message": "remove nosys.specs from main build as pico_libc_interface provides syscalls (#3014)\n\n* remove nosys.specs from main build as pico_libc_interface provides syscalls\n\n* actually remove it from boot_stage2 too, as it is clearly unnecessary as they were all guarded by PICO_LIBC not PICO_CLIB so were not included anyway of late"
    },
    {
      "commit": "07f6013b125f708eca79e157a26e22df676c7ffb",
      "tree": "42fff05a65708b68d6299c8b71afaf199a0d32ae",
      "parents": [
        "a6c7fb258db7828ee95fdae3e2134179a958ff64"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Wed Jun 17 06:10:55 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 00:10:55 2026 -0500"
      },
      "message": "Test for powman_set_debug_power_request_ignored (#3005)\n\nFixes #2824"
    },
    {
      "commit": "a6c7fb258db7828ee95fdae3e2134179a958ff64",
      "tree": "8454afb26480750c7fd53eed4481b2b071e510cb",
      "parents": [
        "0e8af25f9219d1607e80117cdfb4b0a6a6aada75"
      ],
      "author": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Tue Jun 16 23:27:20 2026 -0500"
      },
      "committer": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jun 17 00:00:50 2026 -0500"
      },
      "message": "fix compiler warning\n"
    },
    {
      "commit": "0e8af25f9219d1607e80117cdfb4b0a6a6aada75",
      "tree": "8a00a0687582109b0e5010d71d9eb33c8c4fd98e",
      "parents": [
        "127ed2e7f32627f88e4a282e96296ef8e539aa0e"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Wed Jun 17 05:31:07 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 23:31:07 2026 -0500"
      },
      "message": "Remove unecessary bits from pad_checksum (now just called pad), and fixup references and comments (#3011)\n\nShould now describe what actually happens with boot2 on RP2350\n\nAlso add a kitchen sink variant with PICO_EMBED_XIP_SETUP\u003d1 to check it still works"
    },
    {
      "commit": "127ed2e7f32627f88e4a282e96296ef8e539aa0e",
      "tree": "37eeaa459a513ba89df3e3ddd4e0158e145b608e",
      "parents": [
        "82418f42a1bc7db94ea81f603e05f0061b553c40"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Tue Jun 16 01:52:56 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 19:52:56 2026 -0500"
      },
      "message": "Add clock_configure_mhz function (#2244)\n\n* Add clock_configure_mhz\n\nTrades off accuracy (only gets to +/- 1MHz) for reduced code size as it doesn\u0027t need 64 bit division\n\n* Review fixup\n\nFixup for dividers 1.0-2.0 on RP2040\n\nImprove docs\n\n* Update src/rp2_common/hardware_clocks/include/hardware/clocks.h\n\n* Add return to doxygen\n\n* Take uint32_t, and add explicit check that it fits in CLOCKS_CLK_GPOUT0_DIV_INT_BITS\n\nThis is because it could technically take up to 24-bits on RP2040 as the DIV_INT_BITS is larger, although it\u0027s unlikely anyone would need \u003e65535MHz\n\n* Tidy up `// Store the configured frequency` comments\n\nThe storing actually happens in `clock_configure_internal`"
    },
    {
      "commit": "82418f42a1bc7db94ea81f603e05f0061b553c40",
      "tree": "34fce042f9a26ae45e015f0fbe7f0361ee62e8ed",
      "parents": [
        "b6c1dbf2b47037cbe83643373b6dc677e64f7e26"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Tue Jun 16 01:42:49 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 19:42:49 2026 -0500"
      },
      "message": "Update mbedtls to 3.6.6 (#2997)\n\n* Update mbedtls to 3.6.6\n\n* Update mbedtls version in Bazel"
    },
    {
      "commit": "b6c1dbf2b47037cbe83643373b6dc677e64f7e26",
      "tree": "59fe595d8526c03f9fe4cbf6f66e686da4e90ca9",
      "parents": [
        "19203cd8000664e3fc87740f7f739427e9e9e129"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Tue Jun 16 00:55:53 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 18:55:53 2026 -0500"
      },
      "message": "Update cyw43-driver (#3006)\n\n* Update cyw43-driver\n\nJust uses the latest from main.\nFixes #2729\n\n* Update cyw43 version in Bazel"
    },
    {
      "commit": "19203cd8000664e3fc87740f7f739427e9e9e129",
      "tree": "4e717d8c7a78a465502e8dc00fbaf0f9b77c697a",
      "parents": [
        "42b7969b0321534d8195e0caa3b062ef1ed8d1f6"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Tue Jun 16 00:55:12 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 18:55:12 2026 -0500"
      },
      "message": "Add weak powman_timer_get_lposc_calib_freq function (#3004)\n\n* Add weak powman_timer_get_lposc_calib_freq function\n\nBy default this reads from valid OTP if PICO_POWMAN_CALIBRATE_LPOSC_FROM_OTP is set (like before), but it is weak so can be overridden by the user (eg to use frequency_count_khz instead)\n\nThe existing behaviour of powman_timer_set_1khz_tick_source_lposc is unchanged, other than the addition of ignoring out-of-range OTP values on RP2350\n\n* Add LPOSC_MIN_EXPECTED_HZ and LPOSC_MAX_EXPECTED_HZ defines"
    },
    {
      "commit": "42b7969b0321534d8195e0caa3b062ef1ed8d1f6",
      "tree": "527458dfc58a96e025600fd9dc177149a641812e",
      "parents": [
        "c776dee2db4968e138e8a70d7527bf29992afd0b"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Tue Jun 16 00:52:41 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 18:52:41 2026 -0500"
      },
      "message": "cyw43_tcpip_link_status when not using lwip (#3007)\n\nThis function is implemented by cyw43_driver using lwip to determine\nwhen the link is up and an IP address has been assigned.\n\nIf you are not using lwip you get a link error as it\u0027s used in\ncyw43_arch_wifi_connect_bssid_until\n\nAs with other cyw43 lwip functions we need a weak implementation that\npanics as we expect the app to provide their own implementation if\nnot using lwip.\n\nFixes #2704"
    },
    {
      "commit": "c776dee2db4968e138e8a70d7527bf29992afd0b",
      "tree": "c23275d706298ac87d5a0b39c620bcbd29f9969a",
      "parents": [
        "bb6d5349fa4b71ea8332c50f87cbabef24297ad1"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Tue Jun 16 00:46:14 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 18:46:14 2026 -0500"
      },
      "message": "Minor fix to status_led error handling (#3009)\n\nReturn false if async_context_threadsafe_background_init fails.\n\nFixes #2672"
    },
    {
      "commit": "bb6d5349fa4b71ea8332c50f87cbabef24297ad1",
      "tree": "91159e5b7737aa0f0d3476900557758eb293ef22",
      "parents": [
        "f784804f67208cbbaa3640fc26ad03eced4fd9a7"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Wed Jun 10 16:17:45 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 10:17:45 2026 -0500"
      },
      "message": "Add justifications for missing `PICO_BAZEL_CONFIG` and `PICO_CMAKE_CONFIG` entries (#2875)\n\n* Add justifications for missing `PICO_BAZEL_CONFIG` and `PICO_CMAKE_CONFIG` entries\n\nThis means compare_build_systems.py doesn\u0027t raise any more warnings\n\n* Add PICO_NO_CMSE to bazel, and update from latest develop\n\n* Use fix from @lurch to ignore commented CMake config options"
    },
    {
      "commit": "f784804f67208cbbaa3640fc26ad03eced4fd9a7",
      "tree": "986469d73236f34e70ebd7355255b75a093524d0",
      "parents": [
        "f78b3b5b97fb6558f7fe3b42cbaea9fc7001deab"
      ],
      "author": {
        "name": "kripton",
        "email": "kripton@kripserver.net",
        "time": "Wed Jun 10 17:10:03 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 10:10:03 2026 -0500"
      },
      "message": "fix: Add missing block_cipher.c to pico_mbedtls (#2883)\n\n* fix: Add missing block_cipher.c to pico_mbedtls\n\n* feat: mbedtls: Only include block_cipher.c if it exists (v3.6.0 onwards)"
    },
    {
      "commit": "f78b3b5b97fb6558f7fe3b42cbaea9fc7001deab",
      "tree": "c8dd9e80243e50e5e5a76c126f912172a9823fd5",
      "parents": [
        "6f8055f3c475d904cd5afdf5affe5482ce236252"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Wed Jun 10 16:09:14 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 10:09:14 2026 -0500"
      },
      "message": "Fix sections.h doxygen (#2983)\n\n* Fix sections.h doxygen\n\nWas missing docs for __time_critical_func and __persistent_data, and picking up PICO_NOT_IN_FLASH_PLACEMENT instead of __not_in_flash\n\nI believe the Doxyfile.in changes are fine, because the docs are always in the .h file but the function name wrapped in __time_critical_func etc is in the .c file\n\n* Add PICO_COMBINED_DOCS to some defines, to choose which is picked"
    },
    {
      "commit": "6f8055f3c475d904cd5afdf5affe5482ce236252",
      "tree": "e70104ab73c59906f394bf18bff0d47c4b1b548f",
      "parents": [
        "7e3784f8b6e501ba38795fd908f474c00fc32094"
      ],
      "author": {
        "name": "Carl Hamilton",
        "email": "carl@mousetrap.com",
        "time": "Wed Jun 10 07:58:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 09:58:34 2026 -0500"
      },
      "message": "Add a board definition for the RP Debug Probe (#2940)\n\n* Add a board definition for the RP Debug Probe\n\nThis minimal configuration will (hopefully) allow the Raspberry Pi Debug\nProbe firmware to be configured and built using the SDK\u0027s board\nidentification and configuration framework.\n\n* Add defines for each Debug Probe LED.\n\nThese board-specific defines will make it easier for clients (e.g. the\ndebug probe firmware) to properly configure all of the board\u0027s LEDs."
    },
    {
      "commit": "7e3784f8b6e501ba38795fd908f474c00fc32094",
      "tree": "08f0805ec3d43c8b9848e809097137f32a6777e8",
      "parents": [
        "b73974837896baaacce6a3edbb3273ade9f5826e"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Tue Jun 09 10:07:48 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 10:07:48 2026 -0500"
      },
      "message": "fix compiler warnings (#2987)"
    },
    {
      "commit": "b73974837896baaacce6a3edbb3273ade9f5826e",
      "tree": "371bcf3c76cc3b746283120bdd5a0fcb58ca89ed",
      "parents": [
        "2376a350378270e8ed9eaeaeebd53906ee891887"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Tue Jun 09 16:07:18 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 10:07:18 2026 -0500"
      },
      "message": "More doxygen fixups (#2995)\n\n* Fix what shows up in pico_low_power doxygen\n\n* Fix some documented example code in unique_id.h\n\n* Fix inclusion boot_lock.h functions"
    },
    {
      "commit": "2376a350378270e8ed9eaeaeebd53906ee891887",
      "tree": "6c5d1fad81e892713e3380739366597562a6696c",
      "parents": [
        "6cd11405d40194de9913c1c5cfcf707085590cc1"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Mon Jun 08 18:35:49 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 12:35:49 2026 -0500"
      },
      "message": "Small clarifications to the PIO \"pinhi\" code (#2991)"
    },
    {
      "commit": "6cd11405d40194de9913c1c5cfcf707085590cc1",
      "tree": "ac839e076afc801acb37b13fa5911577667d94ca",
      "parents": [
        "5685e7c778398302f597e02153e0c337d4916798"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Mon Jun 08 17:32:03 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 11:32:03 2026 -0500"
      },
      "message": "Various small doxygen fixups (#2992)"
    },
    {
      "commit": "5685e7c778398302f597e02153e0c337d4916798",
      "tree": "fb8daa623d6e2decc48fcb261e1ffc7b3a2f6799",
      "parents": [
        "b5ac27727a6406acce29191504dd68f145a10fa2"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Mon Jun 08 17:29:07 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 11:29:07 2026 -0500"
      },
      "message": "Fix mask-validation for the multi_mask PIO functions (#2981)"
    },
    {
      "commit": "b5ac27727a6406acce29191504dd68f145a10fa2",
      "tree": "3c16f012760179b671e5a28f98e49b41f538ddd8",
      "parents": [
        "6685d000650bd509407014a79c25d200c163355d"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Fri Jun 05 17:25:01 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 17:25:01 2026 +0100"
      },
      "message": "Fix stdio_usb_deinit in debug builds (#2984)\n\nWas unclaiming the spin_lock before `critical_section_deinit` tried to unclaim it again, triggering an assertion failure"
    },
    {
      "commit": "6685d000650bd509407014a79c25d200c163355d",
      "tree": "1efc8a4018843ad920d7de3ef62e94c2411827f1",
      "parents": [
        "aed44f57877b7e8ed986f2e3028a39974e83a09b"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jun 03 12:53:20 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 12:53:20 2026 -0500"
      },
      "message": "Some cleanup of C++ support and fix GCC 6 builds (#2979)\n\n* Some cleanup of C++ support and fix GCC 6 builds\n\n* -nostartfiles is now always applied on GCC\n* currently no fini stuff is not called, but C++ code may be included in fini_array (we are probably wasting space; we may want to elide that and/or allow for fini execution)\n* GCC 6 seems to have been broken for some time, as it was using a non thumb/v6m set of libraries (compiled but hardfaulted on execution)\n* llvm libc C++ support seemed a bit behind the times, but now seems to work ok (added atomic guard code for static initializers too)\n* ^ actually it works fine except when built from bazel in which case we get unsatisfied link errors with new/delete for std::vector\n\n* _fini should just return not bkpt\n\n* review comment and fix bazel\n\n* hacky workaround for check_configs\n\n* add kitchen_sink_cpp_no_flash to bazel build\n\n* remove PICO_CONFIG for PICO_CXX_ENABLE_EXCEPTIONS since it is really not supposed to be defined by user\n\n* Apply suggestions from code review\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n* Apply suggestions from code review\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n* why\n\n---------\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e"
    },
    {
      "commit": "aed44f57877b7e8ed986f2e3028a39974e83a09b",
      "tree": "a2ff394296f8d94c574517fab2a29ea9444c2010",
      "parents": [
        "5aa4bd6f8211cce1b4af2bffdede73a1a3aed8b1"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jun 03 12:22:52 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 12:22:52 2026 -0500"
      },
      "message": "resolve inconsistent use of PCIO_PIO_VERSION \u003e 0 and PICO_PIO_USE_GPIO_BASE (#2977)"
    },
    {
      "commit": "5aa4bd6f8211cce1b4af2bffdede73a1a3aed8b1",
      "tree": "b8eb54d4d11e357aeffb8d23b724a9b9ad46ac0b",
      "parents": [
        "3d63b1d721e72104e630a4af4e2e8917fbc4cc5d"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Wed Jun 03 18:21:43 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 12:21:43 2026 -0500"
      },
      "message": "Add support for using XIP cache as SRAM (#2932)\n\n* Separate linker scripts out into include files\n\nAllows for much simpler custom linker scripts\n\n* Add customisable heap location, with pico_set_linker_script_var function\n\n* Add kitchen sink test of custom linker scripts\n\n* Separate out rp2_common and platform-specific linker script sections\n\n* More de-duplication\n\n* Make overriding ram locations simpler\n\n* Make it possible to reference default locations in pico_set_linker_script_var variables\n\nMeans that CMake doesn\u0027t need to know the default memory addresses for different platforms\n\n* Add pico_add_linker_script_override_path to make overriding individual files easier\n\nRestructured so that it includes the platform-specific files before common ones, so common ones can be overridden\n\n* Add simple overlay demo\n\n* Add scripts to bazel build\n\nUse new include_linker_script_dir and use_linker_script_file functions to add the linker arguments\n\n* Move linker scripts out of crt0\n\nBreaking change for Bazel builds using different binary types, instead of setting PICO_DEFAULT_LINKER_SCRIPT to eg `//src/rp2_common/pico_crt0:no_flash_linker_script` it is now `//src/rp2_common/pico_standard_link:no_flash_linker_script`\n\n* Make rp2350 text sections the default\n\nTreat rp2040 layout (boot2 instead of embedded blocks) as the outlier\n\n* Rename scripts include directories to standard_scripts and platform_scripts\n\n* Move and add example to Bazel docs for changing linker scripts\n\n* Add cc_library load to new bazel files\n\n* Add excludes.ld files for default memmap\n\nAllows overriding what to exclude from .text/.rodata and put in .data\n\n* Put mem functions in SRAM\n\nThese were being placed in Flash due to a missing space, and also are under libc on some compilers\n\n* Rename standard_scripts and platform_scripts to script_include\n\n* Move pico_platform_link stuff into pico_plaftorm\n\n* Remove rigidity from linker include paths\n\nAdd PICO_LINKER_SCRIPT_INCLUDE_DIRS and PICO_LINKER_DEFAULT_LOCATIONS_PATH, instead of hardcoded paths under PICO_LINKER_SCRIPT_PATH\n\nAlso improve pico_set_linker_script_var and pico_add_linker_script_override_path to better utilise generator expressions\n\n* Rename all linker scripts intended to be included to .incl\n\nRequired changes to the way bazel views these files\n\n* Separate into section_... files which do only contain one section, and sections_... which contain multiple\n\nOnly exceptions are section_..._data and section_bss, as these contain data/bss and tdata/tbss - these are kept together as they are treated as a single section\n\n* Add section_extra files to make adding extra sections simpler\n\n* Fix comments, and add some more extra files\n\n* Add generated override files - currently unused, but can be overridden in the future by CMake/bazel functions\n\n* pico_add_linker_script_override_path can now be called after target_link_libraries, as it uses generator expressions\n\nAlso add more checks to kitchen_sink\n\n* Add extra post_platform_end sections\n\nIntended for platform specific overrides, whereas post_end is for cross-platform overrides, similar to section_end vs section_platform_end\n\n* review fixups\n\n* Save/restore XIP cache state around flash functions\n\n* Fix PICO_USE_SW_SPIN_LOCKS\u003d0 on RP2350\n\nUse spinlock IDs that are unaffected by E2\n\n* Working XIP SRAM binaries\n\n* Change implementation to use pico_use_xip_sram_for_time_critical instead of new binary types\n\nAdds pico_include_in_generated_section to fill section_generated_... files with lists of include files,\nand pico_set_compile_definition to allow setting the same definition multiple times on a target without getting warnings\n\n* Add some CMake function docs\n\n* Fix bazel and RP2350 build\n\nHas missed setting PICO_CRT0_PIN_XIP_SRAM\n\n* Fix bazel build\n\nOrdering of transistions matters\n\n* Improve new __time_critical_func description\n\nSpecial treatment is no longer in the future\n\n* Add pico_test, and improve SRAM thrashing\n\n* fix bazel build\n\n* fixup merge\n\n* Move memory_xip_ram.incl to match location in other PRs\n\n* Review fixups\n\nPlace RAM_SECTION_NAME in .time_critical.text\n\nTypo in __time_critical_func description\n\n* fixup merge\n\n* review fixup\n\n* add memmap_xip_ram.cmake\n\n* some minor cleanup\n\n* Doesn\u0027t require data copy for no_flash use_xip_cache_as_ram on RP2040\n\nThe code is still loaded before boot on rp2040, so doesn\u0027t need copying\n\n* remove copy-paste typo\n\n* Fixes for compatibility with low power\n\nSkip low power unpinning when PICO_USE_XIP_CACHE_AS_RAM is set\n\nTake xip_ram as argument to pico_set_persistent_data_loc, to allow placing normally instead of specifying address\n\nAdd pico_critical_xip_sram_test_low_power test to check usin xip_ram for both works\n\n* Improve pico_set_persistent_data_loc description\n\n* add () inside #define\n\n* Update memory_extra.incl examples\n\nPSRAM and xip_ram are now supported by default\n\n* Improve binary type generator expressions\n\nUse PICO_DEFAULT_BINARY_TYPE in the generator expressions, to remove need for PICO_NO_FLASH etc, and fixup the legacy variable handling to that effect\n\nNow throws an error if both PICO_DEFAULT_BINARY_TYPE and one of PICO_NO_FLASH etc are specified - just use PICO_DEFAULT_BINARY_TYPE\n\n* Refactor to place functions using compile definitions instead of linker script injections\n\nThis adds section_xip_ram.incl into every linker script, and provides the __in_xip_ram macro to put stuff there\n\n__time_critical_func then uses the PICO_TIME_CRITICAL_PLACEMENT define to select where to place code, so that can be overriden to be __in_xip_ram to place time critical functions in xip_ram\n\nAlso works for placing time critical functions in scratch x/y\n\n* pico_use_xip_cache_as_sram -\u003e pico_use_xip_cache_as_ram for consistency\n\nAlso re-add note to pico_place_time_critical_functions not to use xip_ram for flash binaries\n\n* fix bazel linting\n\n* remove memory_aliases_xip_ram_only\n\nnow identical to memory_aliases_no_flash\n\n* Re-arrange sections.h to be clearer what everything does\n\nAll `__in_xxx` macros place directly into linker sections, which are located in the relevant memory\n\n`__scratch_x` and `__scratch_y` are kept as aliases to `__in_scratch_x` and `__in_scratch_y`\n\n`__not_in_flash` is placed using `PICO_NOT_IN_FLASH_PLACEMENT` which defaults to `__in_ram`, and the same for `__time_critical_func`, so they can be placed separately\n\npico_place_time_critical_functions -\u003e pico_set_time_critical_placement, and add pico_set_not_in_flash_placement\n\n* Make memmap_xip_ram.incl include memmap_no_flash.incl\n\nRemoves the ability to override XIP_RAM_ORIGIN and XIP_RAM_LENGTH (to prevent duplicate includes, which Clang doesn\u0027t like), but that is fine\n\n* Fixup bazel build\n\nNote that the xip_ram binary type still doesn\u0027t work in bazel, as the bazel build doesn\u0027t fit in xip_ram\n\n* fix bazel buildifier checks\n\n---------\n\nCo-authored-by: graham sanderson \u003cgraham.sanderson@raspberrypi.com\u003e"
    },
    {
      "commit": "3d63b1d721e72104e630a4af4e2e8917fbc4cc5d",
      "tree": "f51b7ecd25fba49279ca31363b94c1bcd8036c9f",
      "parents": [
        "314d918a734976c8363688f287314e149ac12d8f"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jun 03 12:17:50 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 12:17:50 2026 -0500"
      },
      "message": "RP2350A-A2 USB BOOT activity LED workaround (#2971)\n\n* Add docs and optional work around to rom_reset_usb_boot* for RP2350A2 QFN60 Arm to reboot into RISC-V when acitivity LED is requested\nAlso renamed rp2040_rom_version rp2350_rom_version for consistency (it doesn\u0027t appear to be used)\n\n* remove changes from previous version of the fix\n\n* reorder if\n\n* oops\n\n* Apply suggestions from code review\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e\n\n* reference correct errata\n\n* Switch bootrom.h back to LF\n\n* Apply suggestions from code review\n\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n* Rename PICO_BOOTROM_WORKAROUND_A2_ACTIVITY_LED_BUG-\u003ePICO_BOOTROM_WORKAROUND_RP2350_A2_ACTIVITY_LED_BUG and default it to 1 on RP2350\n\n* Apply suggestions from code review\n\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e\n\n---------\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e\nCo-authored-by: William Vinnicombe \u003cwilliam.vinnicombe@raspberrypi.com\u003e"
    },
    {
      "commit": "314d918a734976c8363688f287314e149ac12d8f",
      "tree": "0d916ab83ad3b257a39dd428f438402c103e3911",
      "parents": [
        "bbee6ea630f31a871f0a5baa1e48d6edbf4a376f"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Wed Jun 03 17:59:17 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 11:59:17 2026 -0500"
      },
      "message": "Fix queue.h line endings (#2980)"
    },
    {
      "commit": "bbee6ea630f31a871f0a5baa1e48d6edbf4a376f",
      "tree": "ffccc9015f0f73547a97ddc570b5eaef54ed43f8",
      "parents": [
        "24c1c535f825c40da72b32506f1dd3d2ee403cb9"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Jun 03 11:51:16 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 11:51:16 2026 -0500"
      },
      "message": "make queue_init return a bool success (#2978)\n\n* make queue_init return a bool success\n\n* Apply suggestions from code review\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n* tweak comment\n\n---------\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e"
    },
    {
      "commit": "24c1c535f825c40da72b32506f1dd3d2ee403cb9",
      "tree": "7673ae9b5ae7af2c70d4804933d1706e494198f0",
      "parents": [
        "19028dba4b1d886f32523e3d362398acf432a472"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Tue Jun 02 15:09:46 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 09:09:46 2026 -0500"
      },
      "message": "Add crt0 support for booting no_flash binaries using the bootrom (#2972)\n\n* Add crt0 support for running through the bootrom when using no_flash binaries with a debugger\n\nThis allows using load_maps to load code under the debugger (eg xip_sram pinning, or copying around stuff)\n\nEnable this by default - minimal code size impact on Arm (0x4) as it would need to setup RCP and SP otherwise, but more on Risc-V (0x2a)\n\n* Arm size reductions\n\nNow slightly smaller than it was before (0x8)\n\n* further reduction\n\n* Apply suggestions from code review\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n* Just use movs for BOOTROM_VTABLE_OFFSET\n\n* remove j _reset_handler, as it just falls through\n\n* review fixups\n\nstm -\u003e stmia\n\nPICO_CRT0_ALWAYS_RESET_THROUGH_BOOTROM -\u003e PICO_CRT0_DEBUG_ENTRY_RESETS_VIA_BOOTROM, and only use that variable in #if\n\n---------\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e"
    },
    {
      "commit": "19028dba4b1d886f32523e3d362398acf432a472",
      "tree": "eadff3d8bc8bc75930dc0c4536a5243772a1a5f0",
      "parents": [
        "8eb64dd9bf72753db366413e9be8c1ba6473197f"
      ],
      "author": {
        "name": "Andrii Anoshyn",
        "email": "116808454+anoshyn@users.noreply.github.com",
        "time": "Mon Jun 01 21:22:19 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 13:22:19 2026 -0500"
      },
      "message": "Fix incorrect doc for stdio_put_string (#2943)\n\n* Fix incorrect doc for stdio_put_string\n\nThe doxygen for stdio_put_string read \"This method returns as soon as\ninput is available, but more characters may be returned up to the end\nof the buffer.\" That text was copy-pasted from an input-reading helper\n(e.g. stdio_get_until); stdio_put_string is output-only and never\nreturns early on its own.\n\nRewrite to match what the implementation actually does and trim the\nprose so it no longer restates the \\param descriptions: a one-line\nbrief, plus two short sentences covering only what isn\u0027t in the params\n(writes the buffer in full, may block under driver back-pressure). The\n\\param/\\return lines pick up the len \u003d\u003d -1 strlen convention and the\nreturn-0 path when PICO_STDIO_IGNORE_NESTED_STDOUT is set.\n\nFixes #2818.\n\n* Update stdio.h\n\n---------\n\nCo-authored-by: Graham Sanderson \u003cgraham.sanderson@raspberrypi.com\u003e"
    },
    {
      "commit": "8eb64dd9bf72753db366413e9be8c1ba6473197f",
      "tree": "32ecdf10851a4b3efa6a0a85a4e52a3dc0b5b2cc",
      "parents": [
        "9056e815f2cdd9d2c451d2c95064397e4c1431fd"
      ],
      "author": {
        "name": "Andrii Anoshyn",
        "email": "116808454+anoshyn@users.noreply.github.com",
        "time": "Mon Jun 01 21:17:43 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 13:17:43 2026 -0500"
      },
      "message": "hardware_pio: document struct pio_program (#2686) (#2967)\n\n* hardware_pio: document struct pio_program (#2686)\n\nstruct pio_program is a common parameter throughout the PIO API but had\nno doxygen, and its fields (origin, pio_version, used_gpio_ranges) are\nnot self-explanatory. Add a brief for the struct and per-member \\ref\ndescriptions, including the meaning of the used_gpio_ranges bitmap and\nthe pio_version / GPIO-base compatibility checks.\n\nDocumentation only; no functional change.\n\nCloses #2686.\n\n* small tweak\n\n---------\n\nCo-authored-by: Graham Sanderson \u003cgraham.sanderson@raspberrypi.com\u003e"
    },
    {
      "commit": "9056e815f2cdd9d2c451d2c95064397e4c1431fd",
      "tree": "07481c4f13ea607208b786cd9bcbae1e5b506426",
      "parents": [
        "d02b2e45a9c1cb0523421884ea0dd453adc4919c"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Mon Jun 01 13:15:40 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 13:15:40 2026 -0500"
      },
      "message": "fix divmod_?32?32_unsafe on RP2040 (#2976)\n\n* fix divmod_?32?32_unsafe on RP2040 (split them out into separate functions too), add/cleanup/fixup test"
    },
    {
      "commit": "d02b2e45a9c1cb0523421884ea0dd453adc4919c",
      "tree": "c7e9a42f07700cc3da9c4c7a04f24d93186cbde3",
      "parents": [
        "653c73904b7109d41023bd876a01876233b5409d"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Thu May 28 15:55:12 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 09:55:12 2026 -0500"
      },
      "message": "Parse included board files for pico_cmake_set declarations (#2968)\n\n* Parse included board files for pico_cmake_set declarations\n\n* Handle recursive includes by keeping track of which files have been included\n\n* fixup recursive include handling\n\n* Remove unnecessary escapes"
    },
    {
      "commit": "653c73904b7109d41023bd876a01876233b5409d",
      "tree": "055c15bafd6f1053f6dea1494713983620dead2a",
      "parents": [
        "cd05d209a9cabe1c2b5e64b4a12beec995c03bc6"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Thu May 28 15:54:23 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 09:54:23 2026 -0500"
      },
      "message": "Support different pin-number ranges for CYW43 compared to RP2040/RP2350 (#2970)\n\nThe GPIOs connected via CYW43 have a much smaller range of valid values\nthan the GPIOs connected directly to RP2040/RP2350. This change updates\ncheck_board_header.py to take that into account (whilst checking that\nCYW43_WL_GPIO_COUNT is also set)."
    },
    {
      "commit": "cd05d209a9cabe1c2b5e64b4a12beec995c03bc6",
      "tree": "702d9c4668db87c0cb0563ba7b01796ac2556dd1",
      "parents": [
        "6763a69d9d349ea1c2e09d9ff60428f081ffbc1c"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Thu May 28 15:52:57 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 09:52:57 2026 -0500"
      },
      "message": "Add library for reset interface (#2629)\n\n* Allow use of reset interface with custom descriptors\n\n* Fix pico_config assertion error\n\n* Create separate library for reset interface\n\n* Move pico_usb_reset_interface library into separate folder\n\n* Fix bazel build\n\n* Move ms_os_20_desc into header\n\n* CFG_TUD_VENDOR isn\u0027t actually used\n\n* Add documentation to usb_reset_interface.h\n\n* Change #if PICO_ON_DEVICE -\u003e #if LIB_PICO_USB_RESET_INTERFACE\n\nCleaner way of separating the usb_reset_interface.h header\n\n* Rename publically accessible functions\n\n* Move LIB_PICO_USB_RESET_INTERFACE only headers into separate files\n\n* Make new usb_reset_interface_device header so old usb_reset_interface header remains the same\n\n* Review fixups\n\npico_usb_reset_... -\u003e usb_reset_...\n\nPICO_STDIO_USB_RESET_INCLUDE_APP_DRIVER_CB -\u003e PICO_STDIO_USB_RESET_INCLUDE_DEFAULT_APP_DRIVER_CB\n\nAdd to docs/index.h\n\n* Remove STDIO from defines\n\nInclude backwards compatibility with old define names\n\nAlso fix bazel build\n\n* Merge pico_stdio_usb: fix overlap between activity-LED GPIO and active_low bit (#2947)\n\ncommit 97ed432d39da36146ea423ad7b0a175b3add1590\nAuthor: Graham Sanderson \u003cgraham.sanderson@raspberrypi.com\u003e\nDate:   Tue May 19 17:37:03 2026 -0500\n\n    grr\n\ncommit 90c5d5a023f5d0ae38efbb47b1a4b7efe289abb3\nAuthor: Graham Sanderson \u003cgraham.sanderson@raspberrypi.com\u003e\nDate:   Tue May 19 17:36:27 2026 -0500\n\n    missing ) in comment\n\ncommit 082e45980f52cfef103ac92700868d3bd8614020\nAuthor: Graham Sanderson \u003cgraham.sanderson@raspberrypi.com\u003e\nDate:   Tue May 19 17:35:37 2026 -0500\n\n    Re-arrange bit patterns to be more backwards compatible\n\ncommit e2436165ad8d1cd286afc577efbda62bf253febb\nAuthor: Andrii Anoshyn \u003canoshyn.andrii@gmail.com\u003e\nDate:   Sat May 16 14:29:23 2026 +0300\n\n    pico_stdio_usb: fix overlap between activity-LED GPIO and active_low bit\n\n    The bootsel reset USB control transfer encodes the activity-LED GPIO in\n    wValue. The current layout reads:\n\n      if (request-\u003ewValue \u0026 0x100) {\n          gpio \u003d request-\u003ewValue \u003e\u003e 9u;\n      }\n      active_low \u003d request-\u003ewValue \u0026 0x200;\n\n    Bit 9 (0x200) is the active_low flag, but `gpio \u003d wValue \u003e\u003e 9` also\n    makes bit 9 the low bit of the extracted GPIO number. As a result:\n    - Any odd-numbered activity-LED GPIO is silently flagged active_low.\n    - Any client wanting active_low has the GPIO number\u0027s low bit forced.\n\n    The active_low line was added in commit 5a988894 (\\\"add\n    rom_reset_usb_boot_extra which supports \u003e32 pins and ACTIVE_LOW\\\") on\n    top of the original \\\"gpio \u003d wValue \u003e\u003e 9\\\" encoding from commit 383e88ea,\n    without shifting the gpio over by an extra bit to make room. See #2713.\n\n    Shift the GPIO extraction to (wValue \u003e\u003e 10) so bit 9 is reserved for\n    active_low alone. The resulting GPIO field is 6 bits (0-63), enough\n    for RP2040 (30 GPIOs) and RP2350 (48 GPIOs). The canonical client\n    (picotool) only sends wValue\u003ddisable_mask with bits 0-1 set, so this\n    does not change any in-tree behavior; the change is only visible to\n    out-of-tree clients that build wValue with the GPIO-specified bit set.\n\n    Fixes #2713.\n\n* fix search \u0026 replace typo\n\n* Rename library to pico_usb_reset, and move headers into rp2_common\n\n* Fix bazel build, and remove some unnecessary backwards compatibility for new defines\n\n* fix bazel formatting\n\n* Reorder pico_config defines\n\nPlace vendor interface defines after PICO_ENABLE_USB_RESET_VIA_VENDOR_INTERFACE, and bootsel defines after PICO_USB_RESET_SUPPORT_RESET_TO_BOOTSEL\n\n* Mention that active_low is ignored on RP2040\n\n* Make wValue parsing better match the comment"
    },
    {
      "commit": "6763a69d9d349ea1c2e09d9ff60428f081ffbc1c",
      "tree": "4efcd74974fbdaaf455b117ed06c1c3913313345",
      "parents": [
        "00c78098329be4ff44c0e8a8324db8f7a21bbb98"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Tue May 26 16:53:43 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 16:53:43 2026 -0500"
      },
      "message": "pio_encoding fixes + added PICO_PIO_VERSION to platform_defs.h (#2958)\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e"
    },
    {
      "commit": "00c78098329be4ff44c0e8a8324db8f7a21bbb98",
      "tree": "90e695d5eded5fac380a5d71bab358b25d96b4c6",
      "parents": [
        "e0847546efb9e2a56a75c922334c27367c42b2bb"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Tue May 26 22:34:19 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 16:34:19 2026 -0500"
      },
      "message": "Fix flash_cs_force (#2969)"
    },
    {
      "commit": "e0847546efb9e2a56a75c922334c27367c42b2bb",
      "tree": "91841965f56e3953c632e3df318ab63550f39640",
      "parents": [
        "a785551800d22485725787bbb79a977bf8bda06e"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Fri May 22 14:42:35 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 08:42:35 2026 -0500"
      },
      "message": "Fix PICO_USE_SW_SPIN_LOCKS\u003d0 on RP2350 (#2645)\n\nUse spinlock IDs that are unaffected by E2"
    },
    {
      "commit": "a785551800d22485725787bbb79a977bf8bda06e",
      "tree": "f87517e9fc0844b6ffc3827c24b6e8279e7c4c51",
      "parents": [
        "77dad24ca389f84d2a16899440743b7184a9f2f6"
      ],
      "author": {
        "name": "qqqlab",
        "email": "46283638+qqqlab@users.noreply.github.com",
        "time": "Fri May 22 01:12:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 18:12:30 2026 -0500"
      },
      "message": "pio_claim_free_sm_and_add_program_for_gpio_range does not clean up claimed state machines (#2792)\n\n\nCo-authored-by: Graham Sanderson \u003cgraham.sanderson@gmail.com\u003e\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e"
    },
    {
      "commit": "77dad24ca389f84d2a16899440743b7184a9f2f6",
      "tree": "efe19c9f214da1a03eacfc5e9fbcd7419269d43c",
      "parents": [
        "3d8af1eccf8f6ea01ef8d5a4d6951b50864d9ea0"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Thu May 21 19:06:51 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 13:06:51 2026 -0500"
      },
      "message": "Add linker dependencies on included scripts (#2966)\n\n* Add linker dependencies on included scripts\n\nAll targets will depend on the scripts for the default binary type, and then calling `pico_set_binary_type` will make that target depend on those scripts too\n\nIt\u0027s not possible to remove the default dependencies, as those are set on pico_standard_link\n\n* Add dependencies to pico_add_linker_script_override_path\n\nThe ideal use is passing explicit FILES to it, but you can also pass GLOB_FILES which adds overhead on every build as it has to re-glob\n\n* Fix function params"
    },
    {
      "commit": "3d8af1eccf8f6ea01ef8d5a4d6951b50864d9ea0",
      "tree": "a753a9aa55fa56ff2cdb50e01cbf83e169ae5a11",
      "parents": [
        "3193fae8973096e2034e8032363cb422c80fb122"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Thu May 21 12:50:52 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 12:50:52 2026 +0100"
      },
      "message": "Fix from_ms_since_boot / from_us_since_boot mixup (#2965)"
    },
    {
      "commit": "3193fae8973096e2034e8032363cb422c80fb122",
      "tree": "611b0bac769e1f7935a1ecbe8652cb55d13b7be5",
      "parents": [
        "42ca6d9a507a7811a45210e8c2f3166ccde31205"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Thu May 21 12:38:59 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 12:38:59 2026 +0100"
      },
      "message": "Add PSRAM support (#2919)\n\nSupports enabling PSRAM by injecting a function that runs when restoring QMI CS1 settings\n\nThis will always run runtime_init_setup_psram function when hardware_psram is linked\n\nIf PICO_PSRAM_SIZE_BYTES and PICO_AUTO_DETECT_PSRAM_SIZE are both 0 or undefined, it will only initialise when flash_devinfo is already setup (eg with OTP)\n\nAlso setup to bus fault with too small PSRAM, add kitchen sink test for those bus faults, and don\u0027t trigger those bus faults in runtime_init_setup_psram\n\n* Add psram_check_address to check if psram variable can be used\n\nAlso fix no_flash binaries, and the tiny_psram test\n\n* Add psram_or_malloc and psram_or_free\n\nThese will either statically allocate in psram, or malloc if the static allocation is not in available psram. Sections are sorted, so the group can be used to set priority.\n\n* Tweak check_board_header.py to also validate the PSRAM settings (#2924)\n\n* Fix low power compilation issue with clang\n\nClang was trying to place persistent_data in PSRAM at the relevant address (eg 0x200xxxxx), and then complaining that it overflowed\n\nFix is to add `\u003e XXX` to the end, to explicitly put it in RAM/XIP_RAM\n\n* Allow PICO_CONFIG type\u003dlist\n\nCopied from extract_cmake_configs.py\n\n* Fix tlsX_not_needed_marker into RAM\n\nWithout this, tlsX_not_needed_marker gets placed in PSRAM for some reason, which then doesn\u0027t fit if PSRAM_SIZE_BYTES is 0\n---------\n\nCo-authored-by: Andrew Scheller \u003candrew.scheller@raspberrypi.com\u003e\nCo-authored-by: graham sanderson \u003cgraham.sanderson@raspberrypi.com\u003e"
    },
    {
      "commit": "42ca6d9a507a7811a45210e8c2f3166ccde31205",
      "tree": "5e0d6d7c15200c3447fc53714181a6f281484582",
      "parents": [
        "4c6ea0cd98a9be6e4c057444dd2f6c41588f1a70"
      ],
      "author": {
        "name": "Andrii Anoshyn",
        "email": "116808454+anoshyn@users.noreply.github.com",
        "time": "Thu May 21 13:41:42 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 11:41:42 2026 +0100"
      },
      "message": "pico_btstack: include GATT basename in custom-target name so the same target can consume multiple .gatt files (#2951)\n\npico_btstack_make_gatt_header() built its internal custom-target name as\n\"${TARGET_LIB}_gatt_header\", which collides on the second call with the\nsame TARGET_LIB. Configure fails with:\n\n    add_custom_target cannot create target \"${TARGET_LIB}_gatt_header\"\n    because another target with the same name already exists.\n\nThis prevents a single executable / library from owning more than one\n.gatt file - exactly the use case in #2829.\n\nDisambiguate the per-invocation target name by including the .gatt\nfile\u0027s base name (already extracted into GATT_NAME a few lines above).\nGATT_BINARY_DIR and the include directory added via\ntarget_include_directories are derived from TARGET_GATT, so each .gatt\nfile also gets its own output directory.\n\nVerified by an out-of-tree consumer that calls\npico_btstack_make_gatt_header(target PRIVATE a.gatt) and again with\nb.gatt. On origin/develop, configure fails with the duplicate-target\nmessage above; on this branch, both gatt_double_a_gatt_header and\ngatt_double_b_gatt_header build successfully and produce distinct\ntest.h files containing the respective .gatt content.\n\nFixes #2829."
    },
    {
      "commit": "4c6ea0cd98a9be6e4c057444dd2f6c41588f1a70",
      "tree": "3210fbd7dcf1c7d072e8eb433bb5b2f09703ea93",
      "parents": [
        "7ca922b8965a549d40d81172a5d0ba0cee331011"
      ],
      "author": {
        "name": "Andrii Anoshyn",
        "email": "116808454+anoshyn@users.noreply.github.com",
        "time": "Thu May 21 13:40:54 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 11:40:54 2026 +0100"
      },
      "message": "pico_btstack: use PICO_BTSTACK_PATH for compile_gatt.py (#2950)\n\npico_btstack_make_gatt_header() was invoking\n${PICO_SDK_PATH}/lib/btstack/tool/compile_gatt.py instead of\n${PICO_BTSTACK_PATH}/tool/compile_gatt.py. When a user supplies an\nout-of-tree BTstack via -DPICO_BTSTACK_PATH\u003d..., everything else in\nsrc/rp2_common/pico_btstack/CMakeLists.txt resolves through\nPICO_BTSTACK_PATH correctly, but the GATT-compile invocation kept\nrunning the bundled (and possibly stale) script from\nPICO_SDK_PATH/lib/btstack/tool.\n\nSwitch to the same variable the rest of the file already uses. In the\ndefault case PICO_BTSTACK_PATH is set to ${PICO_SDK_PATH}/lib/btstack\n(line 9) so this is a no-op; in the override case it picks up the\nuser-specified tree as intended.\n\nFixes #2901."
    },
    {
      "commit": "7ca922b8965a549d40d81172a5d0ba0cee331011",
      "tree": "a33297bcb5c572d8e83603544a515e2cea54d0e9",
      "parents": [
        "6b9a3375e17e2aba6adb20b536ac43c270101ae7"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed May 20 17:30:33 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 17:30:33 2026 -0500"
      },
      "message": "Fix pico_status_led CRLF and missing `from_us_since_boot` which broke tests on some compilers (#2963)\n\n* fix crlf on status-led.c\n\n* add missing from_us_since_boot"
    },
    {
      "commit": "6b9a3375e17e2aba6adb20b536ac43c270101ae7",
      "tree": "8a941ebab21fef741b1a918aeafbf3daab7a011e",
      "parents": [
        "11737aea3da5a9303e0d04821b5f23175fbc238c"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed May 20 17:23:47 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 17:23:47 2026 -0500"
      },
      "message": "Add support for LLVM Embedded Toolchain for Arm 21 (#2956)\n\n* Add support for LLVM Embedded Toolchain for Arm 21.1.1 (which has re-orged headers and libraries)\n* fix llvm_libc debug build bug in passing\n\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e"
    },
    {
      "commit": "11737aea3da5a9303e0d04821b5f23175fbc238c",
      "tree": "6b9e0c4bfa5d3edf0419d10ab19b7c9afd21d9a5",
      "parents": [
        "2cdadce615fbae55b3fb5a76926b23beb1a8ced9"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed May 20 16:15:45 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 16:15:45 2026 -0500"
      },
      "message": "Fix rapid changes to colored_status_led (#2938)\n\n* WS2812 style LEDs require a reset time before setting the color again. prior to this fix, setting color/on/off\nin rapid succession would just send the updated values \"down the string\"\n\nWhilst it would be nice to have the PIO program take care of updating the latest FIFO value after the\nrelevant delay, that costs a fair amount of PIO instrution space, so I have decided to \"fix\"\nthe issue on the CPU side.\n\nSince the delays in question are non trivial (e.g. 50us), i\u0027ve decided not to have the call block,  but instead\nset a timer when necessary (using the default alarm pool) - if that isn\u0027t available or the alarm add fails,\nthen the caller blocks instead.\n\nNote the implementation uses a spin lock, because it needs to work with multicore, but also to be fair\nyou might expect to be able to set an LED from an IRQ\n\n* PICO_CONFIG fix\n\n* Apply suggestions from code review\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n* - change reset delay to 100us\n- actually include the color setting time in the caluclation\n- split out non alarm pool code for clarity\n- fix cleanup code and return value from set_ws2812 (we guess if we are deferring!)\n\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e\nCo-authored-by: Graham Sanderson \u003cgraham.sanderson@gmail.com\u003e"
    },
    {
      "commit": "2cdadce615fbae55b3fb5a76926b23beb1a8ced9",
      "tree": "8c1fa73adfeae1a22beff3f9c8ab96bb0efa3b87",
      "parents": [
        "5ab18cdbe25257239caf9a3cb286781d3ab9c365"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Wed May 20 22:15:02 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 16:15:02 2026 -0500"
      },
      "message": "Update tools/check_board_header.py to check more \u0027PIN\u0027 defines (#2959)\n\nIt now checks e.g. CYW43_DEFAULT_PIN_WL_DATA_OUT which it wasn\u0027t doing before\nAlso update it to parse \u0027#define FOO 24u\u0027 as an integer"
    },
    {
      "commit": "5ab18cdbe25257239caf9a3cb286781d3ab9c365",
      "tree": "bd305d4215af8c225cf9c99c86a391b92fc28b64",
      "parents": [
        "0c44a889a2eb1e2e2037bbc3e249474ced309da1"
      ],
      "author": {
        "name": "Josip Šimun Kuči",
        "email": "131808461+JosipKuci@users.noreply.github.com",
        "time": "Wed May 20 23:00:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 16:00:54 2026 -0500"
      },
      "message": "Add Soldered NULA Ethernet W55RP20 Board definition (#2954)\n\n* Add board definition for Soldered NULA Max RP2350 board\n\n* Fix wrong communication port mapping\n\n* Add user button and hdmi pin defines\n\n* Use right default UART port\n\n* Add board definition for the Soldered NULA Ethernet W55RP20 Board\n\n* Add defines for internal SPI\n\n- Add defines for the internal SPI between the rp2040 and W5500 chips and warn user not to use them\n- Small comment fix\n\n* Change naming scheme for internal W5500 SPI pins\n\n* Add clearer ethernet pin usage\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e\n\n---------\n\nCo-authored-by: Andrew Scheller \u003clurch@durge.org\u003e"
    },
    {
      "commit": "0c44a889a2eb1e2e2037bbc3e249474ced309da1",
      "tree": "a6712d4ff59d3653cd802c48e3e33253569ecc52",
      "parents": [
        "60a0698e59a4c80a82f273898e5cc727c64e2953"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed May 20 16:00:17 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 16:00:17 2026 -0500"
      },
      "message": "Add detection of newlib vs picolibc if not specified (#2935)\n\n* Add detection of newlib vs picolibc if not specified\n\n* fix search order to be newlib then picolibc for autodetect"
    },
    {
      "commit": "60a0698e59a4c80a82f273898e5cc727c64e2953",
      "tree": "e7d2bcaff8d9380177156b0a7ddd7bf0b7a3f96e",
      "parents": [
        "b0fb2c6a55fd71c12d35578ea35a377e86d96c71"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Wed May 20 21:58:21 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 15:58:21 2026 -0500"
      },
      "message": "Fix comment-typo in bootrom.h (#2960)"
    },
    {
      "commit": "b0fb2c6a55fd71c12d35578ea35a377e86d96c71",
      "tree": "9772d8d2341949ea4e80e4476fb367e738c64284",
      "parents": [
        "2fef1e0ca8185bb5373037c0bbe7530bbf928572"
      ],
      "author": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Tue May 19 15:44:43 2026 -0500"
      },
      "committer": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Tue May 19 15:44:43 2026 -0500"
      },
      "message": "fix bad static_assert\n"
    }
  ],
  "next": "2fef1e0ca8185bb5373037c0bbe7530bbf928572"
}
