)]}'
{
  "log": [
    {
      "commit": "079c6f39023649b154152db30f1d781e884879bc",
      "tree": "a4487352ef08c68881294e5bafa2b46e7efcbc61",
      "parents": [
        "8b0d07edfd93b2365f012ee79894f88b0e1ebacb"
      ],
      "author": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Fri Sep 04 17:35:09 2026 -0500"
      },
      "committer": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Fri Sep 04 17:35:16 2026 -0500"
      },
      "message": "SDK 2.3.1 Release\n"
    },
    {
      "commit": "8b0d07edfd93b2365f012ee79894f88b0e1ebacb",
      "tree": "eb23a6ba975542418824f111cba7c30aff306733",
      "parents": [
        "962571d51a7f1501f063ed756b99ab5495d783bb"
      ],
      "author": {
        "name": "Philip Howard",
        "email": "github@gadgetoid.com",
        "time": "Fri Sep 04 22:46:59 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 15:46:59 2026 -0500"
      },
      "message": "Add Pimoroni board headers (#3161)\n\n* Add board definition for Pimoroni Tufty 2040\n\n* Add board definition for Pimoroni Tiny FX\n\n* Add board definition for Pimoroni Yukon\n\n* Add board definition for Pimoroni Yukon W\n\n* Add board definition for Pimoroni Explorer\n\n* Add board definition for Pimoroni Plasma 2350 W\n\n* Add board definition for Pimoroni Presto\n\n* Add board definition for Pimoroni Tufty 2350\n\n* Add board definition for Pimoroni Badger 2350\n\n* Add board definition for Pimoroni Blinky 2350\n\n* Add board definition for Pimoroni Pico LiPo 2\n\n* Add board definition for Pimoroni Pico LiPo 2XL W\n\n* Split Pimoroni Tiny FX W board definition from Pimoroni Tiny FX\n\n* Update Pimoroni Yukon board definition\n\n* Correct pins and defaults in the new Pimoroni board definitions\n\n---------\n\nCo-authored-by: ZodiusInfuser \u003cchris@pimoroni.com\u003e"
    },
    {
      "commit": "962571d51a7f1501f063ed756b99ab5495d783bb",
      "tree": "6aa0d913472eafbf738045c8a33fa32694fa692a",
      "parents": [
        "966be8159760a2543cdf671470c3beaeb7cba112"
      ],
      "author": {
        "name": "Eric Helgeson",
        "email": "erichelgeson@gmail.com",
        "time": "Fri Sep 04 15:46:44 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 15:46:44 2026 -0500"
      },
      "message": "sha256: don\u0027t truncate the padded bit length to 32 bits (#3177)\n\nuser_data_size is size_t, so user_data_size * 8 wraps at 512 MiB and the\nmessage length appended to the final block is wrong."
    },
    {
      "commit": "966be8159760a2543cdf671470c3beaeb7cba112",
      "tree": "15a2250a1b1e483f8441d054b833c56f65de1daf",
      "parents": [
        "2f4ad74286f01f41b321b6ab67d978f146ec8b6b"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Fri Sep 04 12:06:02 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 12:06:02 2026 -0500"
      },
      "message": "Revert change of __time_critical to __no_inline (#3169)\n\n* don\u0027t force noinline on __time_critical_func\n\n* fix comment\n\n* more comment fixes\n\n* add __no_inline_time_critical_func, and update comments\n\n* Use __no_inline_time_critical_func in critical xip_sram test\n\n---------\n\nCo-authored-by: William Vinnicombe \u003cwilliam.vinnicombe@raspberrypi.com\u003e"
    },
    {
      "commit": "2f4ad74286f01f41b321b6ab67d978f146ec8b6b",
      "tree": "daa3546a3f43173aa4eef168e97a3b5af4195199",
      "parents": [
        "1d928957a4a95e1274782be5bb30059641d0b28d"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Fri Sep 04 09:27:17 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 09:27:17 2026 -0500"
      },
      "message": "temp workaround for failed build with no PICO_DEFAULT_UART (#3171)\n\n* temp workaround for failed build with no PICO_DEFAULT_UART\n\n* Mark local_keep_enabled __unused\n\n---------\n\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e"
    },
    {
      "commit": "1d928957a4a95e1274782be5bb30059641d0b28d",
      "tree": "8936f6045776603f9eae336b6906920ebc84e807",
      "parents": [
        "b686c89e28448c647b77cb4981aff144cbc62774"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Thu Sep 03 21:12:01 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 15:12:01 2026 -0500"
      },
      "message": "Fix check for suppress_tinyusb_warnings (#3170)"
    },
    {
      "commit": "b686c89e28448c647b77cb4981aff144cbc62774",
      "tree": "b55c17b87c3ece66e4e513daa75634066d7ab3cb",
      "parents": [
        "bb9d08d58a094ce7ba12d7e2ac6698f5d45b437a"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Thu Sep 03 11:25:45 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 11:25:45 2026 -0500"
      },
      "message": "disable pico_unaligned_string_test on google llvm \u003c 21 since it doesnt compile (#3168)"
    },
    {
      "commit": "bb9d08d58a094ce7ba12d7e2ac6698f5d45b437a",
      "tree": "93e4f5585d25669c3f9274b77115c33b27495fec",
      "parents": [
        "559e8478e794348a5ce49f48ab4ef2278fca0f5f"
      ],
      "author": {
        "name": "Alex U",
        "email": "62066709+ItsJupiter21@users.noreply.github.com",
        "time": "Thu Sep 03 17:12:29 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 09:12:29 2026 -0500"
      },
      "message": "add cytron motion 2350 pro board  (#3154)\n\n* add motion 2350 pro\n\n* Motion 2350 pro add buzzer pin"
    },
    {
      "commit": "559e8478e794348a5ce49f48ab4ef2278fca0f5f",
      "tree": "b6cc2689bfe6673438995b874b235b5aa1f25b46",
      "parents": [
        "be8c146fbd10234e6477353111dfe2419cb7ff8d"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Sep 02 13:57:14 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 13:57:14 2026 -0500"
      },
      "message": "Rename poorly named constants in the lock_core/spin_lock workarounds, and add some more tests (#3164)\n\n* Rename PICO_SPIN_LOCK_UNLOCK_CAUSES_SEV to PICO_EXCLUSIVE_ACCESS_SETS_OWN_EVENT\nRename PICO_SYNC_RP2350_SPIN_LOCK_WORKAROUND to PICO_SYNC_EXCLUSIVE_ACCESS_EVENT_WORKAROUND\nAdd some more sync tests\n\n* fix regression in test impl\n\n* Apply suggestion from @lurch\n\nCo-authored-by: Andrew Scheller \u003candrew.scheller@raspberrypi.com\u003e\n\n---------\n\nCo-authored-by: Andrew Scheller \u003candrew.scheller@raspberrypi.com\u003e"
    },
    {
      "commit": "be8c146fbd10234e6477353111dfe2419cb7ff8d",
      "tree": "03fd812c5b60fa3b92cebe084f2903db160b2901",
      "parents": [
        "72bb3e82919a83cb1865547878a109da95f5a50c"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Sep 02 13:53:24 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 13:53:24 2026 -0500"
      },
      "message": "Various fixes to co-exist with newest TinyUSB (#3163)\n\n* Latest TinyUSB does not provide suppresss_tinyusb_warnings() so define an empty one if that\u0027s the case"
    },
    {
      "commit": "72bb3e82919a83cb1865547878a109da95f5a50c",
      "tree": "03c5336713ea283f9994e21e5e3a4953175896f7",
      "parents": [
        "891748c3e7d17522b66a7a3ac56de83ebf753a54"
      ],
      "author": {
        "name": "Chris Burton",
        "email": "Chris@8086.net",
        "time": "Wed Sep 02 19:13:48 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 13:13:48 2026 -0500"
      },
      "message": "Add board header for Waveshare Core2350B (PSRAM 0MB (Core2350B0) / 2MB (Core2350B1) / 8MB (Core2350B2)). (#3166)"
    },
    {
      "commit": "891748c3e7d17522b66a7a3ac56de83ebf753a54",
      "tree": "20921629e4cd0f5f25a33147292ca05d416dcede",
      "parents": [
        "59cc6b0b93d7f533fa768a5ea8bd1fcdb14a6fe8"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Tue Sep 01 17:25:51 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 11:25:51 2026 -0500"
      },
      "message": "Fix race in RP2040 low_power_test_timers_gpio (#3156)\n\n* Fix race in RP2040 low_power_test_timers_gpio\n\nFix race in external_sleep_timer which would put the pin low after waking up, so there would be no edge when it gets put low again\n\n* Fix pre-existing typo"
    },
    {
      "commit": "59cc6b0b93d7f533fa768a5ea8bd1fcdb14a6fe8",
      "tree": "4e604f1ebcffa23c6d70668c578464604b4b40cd",
      "parents": [
        "ab8cf1e53069dda0e7bb454d54432e5aca684af2"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Tue Sep 01 11:22:24 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 11:22:24 2026 -0500"
      },
      "message": "Ignore PICO_HARD_FLOAT_ABI\u003d1 on RP2040 with warning; add PICO_NO_HARD_FLOAT_ABI_WARNING to suppress (#3162)\n\n* Ignore PICO_HARD_FLOAT_ABI\u003d1 on RP2040 with warning. Add PICO_NO_HARD_FLOAT_ABI_WARNING to suppress warning"
    },
    {
      "commit": "ab8cf1e53069dda0e7bb454d54432e5aca684af2",
      "tree": "b28d2269422b9647e54949e1b61bb8636bffd197",
      "parents": [
        "b9e9ea51fbfc42bc636714584f587e1a6bad8d7e"
      ],
      "author": {
        "name": "Dmitry",
        "email": "45711841+darkdi@users.noreply.github.com",
        "time": "Tue Sep 01 19:20:18 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 11:20:18 2026 -0500"
      },
      "message": "Fix \\param names in interp_get_base and riscv_timer_set_mtimecmp (#3165)\n\nCo-authored-by: Dmitry Rantovov \u003crantovov5@gmail.com\u003e"
    },
    {
      "commit": "b9e9ea51fbfc42bc636714584f587e1a6bad8d7e",
      "tree": "0a38e541deb7cd97f95c8d622e35c22f6bbd5989",
      "parents": [
        "d0d58ec5c0eebaf264b1b37b96a5c60029c5a07d"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Fri Aug 28 22:13:40 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 16:13:40 2026 -0500"
      },
      "message": "Fix pio_encoding_test on RP2040 (#3158)"
    },
    {
      "commit": "d0d58ec5c0eebaf264b1b37b96a5c60029c5a07d",
      "tree": "8176762cc3d900e7fde64260ce493d6212aace03",
      "parents": [
        "fae43f3d43aa7db388ea2dd55fbfedd149105b55"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Mon Aug 24 13:04:11 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 24 13:04:11 2026 +0100"
      },
      "message": "Return from pico_unaligned_string_test (#3155)\n\nAll tests should end with the normal exit (which is a breakpoint) for the CI to work correctly, but this ended in an infinite loop instead so failed CI"
    },
    {
      "commit": "fae43f3d43aa7db388ea2dd55fbfedd149105b55",
      "tree": "39c1c2e7ff94190c8c9c2ed6ac4dbb3a824db374",
      "parents": [
        "bef1bdd17444d8b73e30049c5dc6c842319f6251"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Fri Aug 21 16:12:47 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 16:12:47 2026 -0500"
      },
      "message": "Don\u0027t copy/paste code into sync/time test cases (#3151)\n\n* add blocked_waiter_wakeup() to time/sync primitives. rework test-cases to use vs copy/paste\nfixel bazel compile flags. add PICO_PLATFORM_TEST_HEADER for test injections\n* pass timed_out variable to blocked_waiter_wakeup\n* add missing bazel srcs"
    },
    {
      "commit": "bef1bdd17444d8b73e30049c5dc6c842319f6251",
      "tree": "a44a950b84e57bfd4bf133e5991b6628e2b2de1b",
      "parents": [
        "b9268e57c5650fa65a5d7707f535000adb327275"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Fri Aug 21 22:06:21 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 16:06:21 2026 -0500"
      },
      "message": "Validate core_mask param in doorbell functions (#3142)"
    },
    {
      "commit": "b9268e57c5650fa65a5d7707f535000adb327275",
      "tree": "5aff97b7a8140a34e67cd60b1c80b9abe29bd31b",
      "parents": [
        "6e3b6888e567c8e09c3ec31d9f1aef000b247a35"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Fri Aug 21 22:04:27 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 16:04:27 2026 -0500"
      },
      "message": "Add support for configuring XOSC FREQ_RANGE (#3152)\n\n* Add support for configuring XOSC FREQ_RANGE\n\nAdd PICO_XOSC_FREQ_RANGE_MAX config for non-RP2040 chips -\ndefaults to XOSC_HZ / 1000000, but can be configured higher (e.g. to select the 40-100MHz range for a 50MHz crystal)\n\nRP2040 only has one range, so this config is not defined\n\n* Use MHZ instead of 1000000\n\n* Add min/max to XOSC_HZ PICO_CONFIG"
    },
    {
      "commit": "6e3b6888e567c8e09c3ec31d9f1aef000b247a35",
      "tree": "7603b833f8cc2743ee3d31281626878b3bd7ebe4",
      "parents": [
        "726b78e064a7d0cdd03ed0f7b1830280ba96a6b0"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Fri Aug 21 15:55:33 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 15:55:33 2026 -0500"
      },
      "message": "Add -ftls-model\u003dlocal-exec to embedded builds (#3149)\n\nAdd -ftls-model\u003dlocal-exec to all embedded builds (saves unnecessary indirections via .got)"
    },
    {
      "commit": "726b78e064a7d0cdd03ed0f7b1830280ba96a6b0",
      "tree": "5299a5c2c960e636b2c11b5a39eb133ba1ba5b02",
      "parents": [
        "c604fab39f0371e1efb3fb50ddc7bd4df70b76b4"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Thu Aug 20 17:11:20 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 17:11:20 2026 -0500"
      },
      "message": "some comment cleanup (#3150)\n\n* some comment cleanup\n\n* Rewrite LLM-generated doxygen in normal English. Fix multiline comment in spinlock header which conflated addresses and lock numbers.\n\n---------\n\nCo-authored-by: Luke Wren \u003cwren6991@gmail.com\u003e"
    },
    {
      "commit": "c604fab39f0371e1efb3fb50ddc7bd4df70b76b4",
      "tree": "ffec0fc95a320426bf0216c1bd31cdbb071f8ef4",
      "parents": [
        "48a5de2ddec1b7859ac59388cd8d024ef4161825"
      ],
      "author": {
        "name": "Sai Asish Y",
        "email": "say.apm35@gmail.com",
        "time": "Wed Aug 19 18:04:31 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 20:04:31 2026 -0500"
      },
      "message": "Add Doxygen documentation for rom_get_boot_random (#3087)\n\n\nSigned-off-by: Sai Asish Y \u003csay.apm35@gmail.com\u003e\nCo-authored-by: Graham Sanderson \u003cgraham.sanderson@raspberrypi.com\u003e"
    },
    {
      "commit": "48a5de2ddec1b7859ac59388cd8d024ef4161825",
      "tree": "b1921adde80e99b30cf0d8fe39866231690d8b25",
      "parents": [
        "65b731be61b99a75afce5f61f410ede1a7b63bdb"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Aug 19 18:21:41 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 18:21:41 2026 -0500"
      },
      "message": "Combined sleep fixes (#3127)\n\nMultiple pico_sync/pico_time related fixes, comments and new tests for both bare-metal SDK, and RTOS integration\n\n* Add PICO_SYNC_RP2350_SPIN_LOCK_WORKAROUND define, and fix lock_internal_ functions to workaround issues \n  with RP2350 and s/w spin locks\n* Add PICO_TIME_USE_SLEEP_NOTIFIER which, if unset, will use bare __sev() and __wfe() instead\n  of lock_internal_ functions on a dummy spin_lock to handle notifications. This is simpler, avoids\n  the RP2350 s/w spinlock issue, but would be inappropriate for use with an RTOS since __wfe() would\n  not yield. This defaults to 1 if any of the lock_internal_ functions are overridden (which they aren\u0027t in the\n  bare SDK)\n* Add LOCK_INTERNAL_SPIN_UNLOCK_WITH_NOTIFY_WAKES_ALL which defaults to 1 unless any of the \n  lock_internal_ functions are overridden. The original contract in lock_core.h expected that \n  a lock_internal_spin_unlock_with_notify() would wake all waiters, but the FreeRTOS ports already violate\n  this constraint under certain race conditions. When the value is 0, the primitives such as a semaphore where\n  multiple waiters might be awoken use the new lock_internal_spin_unlock_maybe_notify() macro to potentially\n  wake up more waiters.\n* re-arm the ta_timer before processing cancellations (fix invariant violation and #2706)\n* Assert alarm_pool_destroy() is called on the pool\u0027s own core, and say so\n* fix wrong cleanup order in ta_disable_irq_handler\n* Distinguish pico_time_test/pico_time_test_sw, and rename pico_sync_test_hw to pico_sync_test\n* pico_sync_test: run every section on both cores\n* Add short_sleep_test\n* Add sync_interop_test for sdk and sdk/rtos interaction tests of pico_sync and pico_time\n* Add freertos_sync_alias_test. Note this looks for an issue with event bit aliasing which has not yet been reproduced - possibly due to luck in the FreeRTOS implementation, but kept in case the problem does arise due to future changes\n* Fix host implementation/tests\n\nUnrelated changes, included here:\n* let PICOTEST_CHECK take printf arguments\n* add PICO_PLATFORM_STRING define set by CMake build from PICO_PLATFORM\n\nCo-authored-by: Luke Wren \u003cluke@raspberrypi.com\u003e"
    },
    {
      "commit": "65b731be61b99a75afce5f61f410ede1a7b63bdb",
      "tree": "66d917b2087d4e1f55f8b040114167d36e1636e7",
      "parents": [
        "9d75558454a7e675c63f64e1548bef1e7a23be46"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Wed Aug 19 22:33:47 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 16:33:47 2026 -0500"
      },
      "message": "Disable the powman alarm wakeup after waking up (#3135)\n\n* Add low_power_test_timers_gpio\n\nShould fail\n\n* Disable the powman alarm wakeup after waking up\n\nFix aon_timer_disable_alarm to undo aon_timer_enable_alarm entirely\n\nAdd aon_timer_disable_alarm after waking from dormant, and powman_disable_all_wakeups after waking from pstate\n\nFixes #3115\n\n* Fix Bazel checks\n\n* Add print when sending wake up"
    },
    {
      "commit": "9d75558454a7e675c63f64e1548bef1e7a23be46",
      "tree": "27d0aa87913a9a390a24935eff114d1379dc8211",
      "parents": [
        "f9f615683442bd2d88c9501562b8e71761f90d89"
      ],
      "author": {
        "name": "Josip Šimun Kuči",
        "email": "131808461+JosipKuci@users.noreply.github.com",
        "time": "Wed Aug 19 23:33:18 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 16:33:18 2026 -0500"
      },
      "message": "Add board definition for Soldered NULA Node RP2040 (#3129)\n\nNew board header with pin definitions, board detection define, and WS2812 LED defines."
    },
    {
      "commit": "f9f615683442bd2d88c9501562b8e71761f90d89",
      "tree": "9eb922f56c3198aa00502370628acc971a7fdcd4",
      "parents": [
        "2620960d6948ddd456db9877ab1889d4c5d1705b"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Wed Aug 19 22:32:55 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 16:32:55 2026 -0500"
      },
      "message": "Test for unaligned access in newlibc functions. (#3134)\n\n* Test for unaligned access in newlibc functions.\n\nThis can be used to verify that the riscv compiler is behaving correctly\n\n* fix bazel build for pico_unaligned_string_test\n\n* Fixes for pico_unaligned_string_test cmake"
    },
    {
      "commit": "2620960d6948ddd456db9877ab1889d4c5d1705b",
      "tree": "58d926300fca6920b1ae2c91e1574abf66e96db2",
      "parents": [
        "f0c99a401b3cb3fadf967794891aa274976aa9ca"
      ],
      "author": {
        "name": "Spencer",
        "email": "sburris@posteo.net",
        "time": "Wed Aug 19 15:32:13 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 16:32:13 2026 -0500"
      },
      "message": "Docs: fix typo in type name (#3147)\n\nuin64 -\u003e uint64"
    },
    {
      "commit": "f0c99a401b3cb3fadf967794891aa274976aa9ca",
      "tree": "d742c6b084b8d87190d1b12176cdfd5e72e5a8e3",
      "parents": [
        "6dd24e7a8a2719388559a7e1170537516f6d9b4b"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Wed Aug 19 22:31:44 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 16:31:44 2026 -0500"
      },
      "message": "Add source file missing from btstack.BUILD (#3145)\n\nThese files are in the cmake but missing from bazel."
    },
    {
      "commit": "6dd24e7a8a2719388559a7e1170537516f6d9b4b",
      "tree": "9d7c700f778514ab32eb9ae8a78a8fdf11868dd5",
      "parents": [
        "e41bfe8714211eedb44b495b944e8d9e2db19739"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Tue Aug 18 18:30:02 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 18:30:02 2026 +0100"
      },
      "message": "riscv: restore sp correctly in __unhandled_exception (#3138)\n\nThe exception prologue does `addi sp, sp, -64` before saving registers, and\nthe normal return path undoes it with `addi sp, sp, 64`. __unhandled_exception\ninstead applied -64 a second time, leaving sp 128 bytes below the foreground\nstack pointer rather than restored.\n\nFixes #3137"
    },
    {
      "commit": "e41bfe8714211eedb44b495b944e8d9e2db19739",
      "tree": "b37044f92115fc3cd97974a46b96bc5c8dbab715",
      "parents": [
        "c5409651d9cc5ec6d89425354bb0118e244441cf"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Tue Aug 18 16:27:46 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 16:27:46 2026 +0100"
      },
      "message": "Pass -mstrict-align to Risc-V builds by default (#3132)\n\nGCC shouldn\u0027t generate misaligned code anyway, as it is marked as slow by the default tune, but add this to ensure __riscv_misaligned_avoid is set in builds as well"
    },
    {
      "commit": "c5409651d9cc5ec6d89425354bb0118e244441cf",
      "tree": "0e0f2f09e2df3bc9f12d69795750dfc56ae63043",
      "parents": [
        "a1335524139dee68de8b5a6e102e77787d2b85dd"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Tue Aug 18 15:58:20 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 09:58:20 2026 -0500"
      },
      "message": "Update btstack for bonding fix (#3144)\n\n* Update BTstack\n\nFixes an issue affecting bonding.\n\n* Update BTstack version for Bazel"
    },
    {
      "commit": "a1335524139dee68de8b5a6e102e77787d2b85dd",
      "tree": "fe46b1565cef7060e0f5c58c84c9dbfbd6f7fcb4",
      "parents": [
        "8c70e27a0cdf6062effff3c9a1c8bd7f061d94da"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Tue Aug 18 15:56:25 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 09:56:25 2026 -0500"
      },
      "message": "Fix a couple of SMPS typos (#3130)"
    },
    {
      "commit": "8c70e27a0cdf6062effff3c9a1c8bd7f061d94da",
      "tree": "5c9ff528df604e085b59cde67b157ef1d371f03c",
      "parents": [
        "81c31b9fcd847bdb9770a49ad37866c7cd5e5ce1"
      ],
      "author": {
        "name": "Aaron Jones",
        "email": "me@aaronmdjones.net",
        "time": "Tue Aug 18 14:52:35 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 09:52:35 2026 -0500"
      },
      "message": "Correct description for doorbell functions (#3140)\n\nAlso correct the documentation about a possible return value\n\nSigned-off-by: Aaron Jones \u003cme@aaronmdjones.net\u003e"
    },
    {
      "commit": "81c31b9fcd847bdb9770a49ad37866c7cd5e5ce1",
      "tree": "c50345958da1e2697c5f5121afb4c397208a94dc",
      "parents": [
        "3383fb1e12c89587dab77a2d71d22ffdee1470e5"
      ],
      "author": {
        "name": "fink-at-trmc-dk",
        "email": "71097536+fink-at-trmc-dk@users.noreply.github.com",
        "time": "Tue Aug 18 16:24:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 09:24:11 2026 -0500"
      },
      "message": "Add psa_crypto_random.c to CMakeLists.txt (#3082)"
    },
    {
      "commit": "3383fb1e12c89587dab77a2d71d22ffdee1470e5",
      "tree": "13b4b37daa3a9992d05e64ed3da4c2d1ff7b5c9a",
      "parents": [
        "a1d2c172d2845fdc2b876346ddc694a2847be6f4"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Fri Aug 14 14:18:29 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 14:18:29 2026 +0100"
      },
      "message": "Fix multi GCC (#3133)\n\n* Add concurrency to cancel in progress runs on new commits to same branch\n\n* multi-gcc: Split into quick job and exhaustive job. Add new compilers\n\n* multi-gcc: update rp2040 minimum gcc version to 8 as Pico W is broken on gcc6 and gcc7\n\n* Change minimum version of Pico W to gcc8 and add more riscv compilers\n\n---------\n\nCo-authored-by: Liam Fraser \u003cliam@raspberrypi.com\u003e"
    },
    {
      "commit": "a1d2c172d2845fdc2b876346ddc694a2847be6f4",
      "tree": "a14d443c3633e44b2a09a24e2f8db6fb811d4db6",
      "parents": [
        "8b3707d5b674e97e4881bffc00f9fcffb249c78e"
      ],
      "author": {
        "name": "Numan Can İpekçi",
        "email": "37977336+numancan@users.noreply.github.com",
        "time": "Fri Aug 14 01:18:27 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 17:18:27 2026 -0500"
      },
      "message": "Fix async_context core_num/worker affinity mismatch under FreeRTOS SMP (#3083)\n\nasync_context_freertos_init() sampled the current core twice: once for\ncore_num at the top of the function, and again after creating the\nsemaphores, timer and task to pick the worker\u0027s affinity. An unpinned\ncaller can migrate cores between the two samples, so core_num and the\nworker\u0027s actual affinity could disagree, tripping\nassert(get_core_num() \u003d\u003d async_context_core_num(...)) in\ncyw43_driver.c (and silently misreporting the core in NDEBUG builds).\n\nResolve the worker\u0027s core exactly once, set core_num from it, and\ncreate the worker task already pinned to that core using\nxTaskCreate[Static]AffinitySet (as pico_flash already does). This also\nremoves the window where the freshly created task could briefly run on\nan arbitrary core before a later vTaskCoreAffinitySet() took effect.\n\nFixes #3080"
    },
    {
      "commit": "8b3707d5b674e97e4881bffc00f9fcffb249c78e",
      "tree": "061298c0e7c6d0d942ecb4974882b3fad989b56a",
      "parents": [
        "7f6ae57f1662f7b1f29a788c96012a7d9208973a"
      ],
      "author": {
        "name": "Prabhu Rajasekaran",
        "email": "prabhukrllvm@gmail.com",
        "time": "Wed Aug 12 17:36:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 19:36:27 2026 -0500"
      },
      "message": "Include .got sections (#3065)\n\nIf any of the libraries linked against is built as position independent\ncode, weak undefined symbols and comdat symbols may have GOT\nrelocations. We observed this in the LLVM runtime libraries\n(libc.a/libm.a) but this behavior is not specific to Clang/LLVM\ntoolchains. Including the GOT sections into the data section to handle\nthem gracefully.\n\n* Move got section addtion to section_default_data.incl -- tested against clang toolchain (current and upcoming) in pico2 ARM core.\n\nCo-authored-by: Petr Hosek \u003cphosek@google.com\u003e\nCo-authored-by: Luke Wren \u003cwren6991@gmail.com\u003e"
    },
    {
      "commit": "7f6ae57f1662f7b1f29a788c96012a7d9208973a",
      "tree": "3980f7efe08e35d7a6fb7b3a3aeccd8a58b9427d",
      "parents": [
        "2116357ce529f6b638af568ac44d5dbc3becb5e8"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Wed Aug 12 19:35:10 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 19:35:10 2026 -0500"
      },
      "message": "Extract configs speedup (#3117)\n\n* don\u0027t scan CMake build trees in the config/build-define extractors\n\nAll three extractors walk the whole repo from the root (CI passes \".\"), with no\npruning, so a source tree containing CMake build directories rescans generated\ncopies of the very files being scanned. On a tree with 59 configured build\ndirectories this took extract_build_defines.py from 1.4s to 76s.\n\nSkip any directory containing CMakeCache.txt. Output is unchanged.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n* don\u0027t scan lib/ in the config/build-define extractors\n\nlib/ contains only third-party submodules (btstack, cyw43-driver, lwip, mbedtls,\ntinyusb), none of which use the PICO_CONFIG/PICO_BUILD_DEFINE/PICO_CMAKE_CONFIG\ncomment markers, but they account for 6445 of the 8011 .c/.h/.S files\nextract_configs.py was reading. Output is unchanged.\n\nThe check is anchored on the scanned root, so it skips only the top-level lib/;\na nested one would still be scanned.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: Claude Opus 5 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "2116357ce529f6b638af568ac44d5dbc3becb5e8",
      "tree": "4a208f9cd67e6ccf4e49e13800c59eca60d910e6",
      "parents": [
        "7185302ee7a587a41995c4daab586fa887917adf"
      ],
      "author": {
        "name": "Rik",
        "email": "rik@justanotherelectronicsblog.com",
        "time": "Thu Aug 13 02:34:37 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 19:34:37 2026 -0500"
      },
      "message": "Rp2350 bellsnwhistles (#3122)\n\n* Added initial board file for rp2350_bellsnwhistles\n\n* Added HSTX and SD pins\n\n* fix in SD/HSTX pins\n\n* Fixed review comments\n\n* Whoops, forgot the indent\n\n---------\n\nCo-authored-by: riktw \u003criktw@justanotherelectronicsblog.com\u003e"
    },
    {
      "commit": "7185302ee7a587a41995c4daab586fa887917adf",
      "tree": "cd53a477b86d918ef823f0591182d8a3c268fcae",
      "parents": [
        "77282788794202bfd418f92d96c9ab548c6da855"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Tue Aug 11 17:31:10 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 17:31:10 2026 -0500"
      },
      "message": "fix pio_encode_mov in release mode (#3072)\n\n* fix pio_encode_mov in release mode\n\n* remove debugging printf\n\n* Update test/pio_encoding_test/pio_encoding_test.c\n\nCo-authored-by: Andrew Scheller \u003candrew.scheller@raspberrypi.com\u003e\n\n---------\n\nCo-authored-by: Andrew Scheller \u003candrew.scheller@raspberrypi.com\u003e"
    },
    {
      "commit": "77282788794202bfd418f92d96c9ab548c6da855",
      "tree": "355504601f2b64b79ab0b460afaba54c36222fa6",
      "parents": [
        "896579aba5b7e0678b1323f0488436df451d94af"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Tue Aug 11 23:26:23 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 17:26:23 2026 -0500"
      },
      "message": "Update BTStack (#3123)\n\n* Update BTStack\n\nCYW43 correctly reports itself as \u0027synchronous transport\u0027,\nbut BlueKitchen have re-worked the logic for synchronized\nto better match the one for async in a string of commits after\nthe 1.8.2 release.\n\nFixes #3114\n\n* Udate BTStack version in Bazel"
    },
    {
      "commit": "896579aba5b7e0678b1323f0488436df451d94af",
      "tree": "8015a5c95c1d9c0c97fb87be3c8ed9f79506220d",
      "parents": [
        "6a368987b7bd4627d3d6d126fabaa7495991041f"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Tue Aug 11 23:25:08 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 17:25:08 2026 -0500"
      },
      "message": "Fix linker script comment about placing memcpy in RAM (#3125)"
    },
    {
      "commit": "6a368987b7bd4627d3d6d126fabaa7495991041f",
      "tree": "878f1865cf0f553e8280838fe3906f4d485f052a",
      "parents": [
        "fb152bacdfb273787601f7f3ea73454fd252ada1"
      ],
      "author": {
        "name": "Ralle Palaveev",
        "email": "90763847+rallepalaveev@users.noreply.github.com",
        "time": "Sun Aug 09 02:17:15 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 18:17:15 2026 -0500"
      },
      "message": "Add files via upload (#3103)"
    },
    {
      "commit": "fb152bacdfb273787601f7f3ea73454fd252ada1",
      "tree": "bfae05bcd8fefa6adb6a3a4aeca8eb557b803657",
      "parents": [
        "e521d30cd6f5107aec85d5b38d564ef476c7932d"
      ],
      "author": {
        "name": "Darrian",
        "email": "rikkuness@gmail.com",
        "time": "Sun Aug 09 00:16:44 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 18:16:44 2026 -0500"
      },
      "message": "Added board def for Adafruit Metro RP2350 (#3105)\n\n* Addd board def for Adafruit Metro RP2350\n\n* added metro rp2350 board specific pin defs\n\n* applied suggestions as per comment in #3105\n\n* added ADAFRUIT_METRO_SD_CARD_DETECT_PIN to PICO_SD_CARD_DETECT_PIN as per comment in #3105\n\n* added additional SD pins as per comments in #3105"
    },
    {
      "commit": "e521d30cd6f5107aec85d5b38d564ef476c7932d",
      "tree": "708bee12f3f46bd57fd7f5d731feea03c600e0e7",
      "parents": [
        "a335eb3e4656a922aa9689614565844547506235"
      ],
      "author": {
        "name": "Peter Harper",
        "email": "77111776+peterharperuk@users.noreply.github.com",
        "time": "Sun Aug 09 00:15:34 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 18:15:34 2026 -0500"
      },
      "message": "Set HEAP_LOC when persistent data is above heap (#3109)\n\nFixes #3108"
    },
    {
      "commit": "a335eb3e4656a922aa9689614565844547506235",
      "tree": "a916eab5ef16ed3a195a439e9a9845145c38d8af",
      "parents": [
        "5637f446006aa311eb21416296b868493cfbff1d"
      ],
      "author": {
        "name": "Ryan Draves",
        "email": "19778373+RyanDraves@users.noreply.github.com",
        "time": "Wed Jul 29 10:35:51 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 11:35:51 2026 -0500"
      },
      "message": "[Bazel] Fix USB dependencies, __init__.py creation (#3098)"
    },
    {
      "commit": "5637f446006aa311eb21416296b868493cfbff1d",
      "tree": "eea42efbe65f32c4498982cc4042724bfccb157f",
      "parents": [
        "07c852ec7bf101fdeecb7ea2d15e2eea9dbb97c7"
      ],
      "author": {
        "name": "Liam Howatt",
        "email": "30486941+liamHowatt@users.noreply.github.com",
        "time": "Wed Jul 29 12:28:51 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 11:28:51 2026 -0500"
      },
      "message": "`sem_init` `initial_permits` parameter doc comment minor correction (#3085)\n\n* sem_init initial_permits doc comment minor correction\n\n* say available rather than released"
    },
    {
      "commit": "07c852ec7bf101fdeecb7ea2d15e2eea9dbb97c7",
      "tree": "7f150444ce2fc20a44342c4f0af16cbde0aa0138",
      "parents": [
        "2fa7db2adaf01fb30c85e610dcb4837ef8cbc0fb"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Wed Jul 29 17:28:18 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 11:28:18 2026 -0500"
      },
      "message": "Add RP2350-only flash functions to Doxygen output (#3088)"
    },
    {
      "commit": "2fa7db2adaf01fb30c85e610dcb4837ef8cbc0fb",
      "tree": "30088d2825d601559f131eb3151253a036b50236",
      "parents": [
        "8e5d01c468d7ad77c4a86305f8d5b09ea241279a"
      ],
      "author": {
        "name": "Numan Can İpekçi",
        "email": "37977336+numancan@users.noreply.github.com",
        "time": "Tue Jul 28 19:53:14 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 11:53:14 2026 -0500"
      },
      "message": "pico_lwip: restore lwip_context on re-init (#3097)\n\nlwip_freertos_deinit() clears lwip_context, but lwip_freertos_init() only assigns it inside the !done_lwip_init branch, so a second init leaves it NULL and pico_lwip_custom_lock_tcpip_core() blocks forever.\n\nFixes #3096"
    },
    {
      "commit": "8e5d01c468d7ad77c4a86305f8d5b09ea241279a",
      "tree": "b1ddf99cb260f20f905e2bca5fb2ff299e13504b",
      "parents": [
        "e7994aa66315c27f2cd1846b1eb7be8843dd42e1"
      ],
      "author": {
        "name": "Andrew Scheller",
        "email": "andrew.scheller@raspberrypi.com",
        "time": "Tue Jul 28 17:51:14 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 11:51:14 2026 -0500"
      },
      "message": "Allow PICO_RP2350_A2_SUPPORTED to be set to 0, for boards exclusively using RP2350_A4 (#3100)"
    },
    {
      "commit": "e7994aa66315c27f2cd1846b1eb7be8843dd42e1",
      "tree": "06d05293fc772c60eb7bc065cacd2080c0d5aed8",
      "parents": [
        "fa9e2e39477b8ab29f34f50f21114b5926b4a085"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Mon Jul 27 21:24:43 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 15:24:43 2026 -0500"
      },
      "message": "Don\u0027t place libc.a in RAM (#3075)\n\n* Don\u0027t place libc.a in RAM\n\n* Don\u0027t place mem functions in RAM either\n\nThis reverts to the pre-2.3.0 behaviour\n\nCo-authored-by: will-v-pi \u003c108662275+will-v-pi@users.noreply.github.com\u003e"
    },
    {
      "commit": "fa9e2e39477b8ab29f34f50f21114b5926b4a085",
      "tree": "84e2e6d471f60d8ea2a8e74193b961d8c0257d8a",
      "parents": [
        "dcaf9c45fbd2cd9b1581d36ff93f0936381a646e"
      ],
      "author": {
        "name": "Earle F. Philhower, III",
        "email": "earlephilhower@yahoo.com",
        "time": "Mon Jul 27 13:17:26 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 15:17:26 2026 -0500"
      },
      "message": "Update timer_get_instance to use __unused parameter (#3091)\n\nFixes https://github.com/raspberrypi/pico-sdk/issues/3090"
    },
    {
      "commit": "dcaf9c45fbd2cd9b1581d36ff93f0936381a646e",
      "tree": "c757e2d0f1efc9f0b155beab4d8cbb35e1769251",
      "parents": [
        "000ce5247c15bdc96380cbf2fc86fa858d7a2382"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Thu Jul 16 15:55:05 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 16 15:55:05 2026 +0100"
      },
      "message": "Don\u0027t use s0 in Risc-V zcmp test compile (#3076)\n\nThe riscv_zcmp_test.c file currently fails to compile with any compilers, resulting in `pico_riscv_gcc` always falling through to the non-zcmp arch string\n\nThe fix is to change the registers used to `s1` and `s2` instead"
    },
    {
      "commit": "000ce5247c15bdc96380cbf2fc86fa858d7a2382",
      "tree": "cd1fb7e4d8b0660b40ca2fd6ffbd67966b941b11",
      "parents": [
        "920024f31a4b706ee6333937eaf994216e2e8203"
      ],
      "author": {
        "name": "will-v-pi",
        "email": "108662275+will-v-pi@users.noreply.github.com",
        "time": "Tue Jul 14 23:21:29 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 17:21:29 2026 -0500"
      },
      "message": "Pass --platform to picotool (#3071)\n\nThe --platform argument was added in 2.2.0-a4, so should be fine to pass now that 2.3.0 is required by the SDK\n\nFixes raspberrypi/picotool#339"
    },
    {
      "commit": "920024f31a4b706ee6333937eaf994216e2e8203",
      "tree": "3de527ae06a9d25f9cd333bec71ea453fd4cd9aa",
      "parents": [
        "b67d676950520dffbcabbe19d20a1ff958d68747"
      ],
      "author": {
        "name": "Prabhu Rajasekaran",
        "email": "prabhukr@google.com",
        "time": "Tue Jul 14 15:19:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 17:19:34 2026 -0500"
      },
      "message": "Bazel build path bug fix (#3067)\n\nThe src/rp2_common/pico_usb_reset_interface was renamed to\nsrc/rp2_common/pico_usb_reset but it was not reflected in the bazel\nbuild file. This patch addresses it."
    },
    {
      "commit": "b67d676950520dffbcabbe19d20a1ff958d68747",
      "tree": "a5dddbeaa862a7e6b5e13738811a4beacd68ae31",
      "parents": [
        "9c9deed2e4ef1c0e45c158a218329048626a2ba4"
      ],
      "author": {
        "name": "Old-Ding",
        "email": "35417409+Old-Ding@users.noreply.github.com",
        "time": "Wed Jul 15 06:19:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 17:19:18 2026 -0500"
      },
      "message": "Use raw regex strings in Python tools (#3061)\n\nPrefix regex literals with r/rf where the pattern value is unchanged so Python does not emit invalid escape sequence SyntaxWarnings.\n\nSigned-off-by: Old-Ding \u003c35417409+Old-Ding@users.noreply.github.com\u003e"
    },
    {
      "commit": "9c9deed2e4ef1c0e45c158a218329048626a2ba4",
      "tree": "bb210566904bfcb6e6f0e2acbfa2bf464951d947",
      "parents": [
        "02de9956584832abaffe900635ec616e9af6737e"
      ],
      "author": {
        "name": "Graham Sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Tue Jul 14 17:19:00 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 17:19:00 2026 -0500"
      },
      "message": "fixup low_power_test to work with pins \u003e 32 (#3058)"
    },
    {
      "commit": "02de9956584832abaffe900635ec616e9af6737e",
      "tree": "949fb402ad6dbe80bad78803862b6a65734d0451",
      "parents": [
        "2d699d219f3cdbdd1b1e8bba5cbdddd0f72f3ab4"
      ],
      "author": {
        "name": "Luke Wren",
        "email": "luke@raspberrypi.com",
        "time": "Mon Jul 13 18:38:57 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 12:38:57 2026 -0500"
      },
      "message": "Add irq_is_pending() accessor for checking IRQ line state from foregr… (#3069)\n\n* Add irq_is_pending() accessor for checking IRQ line state from foreground code.\n\n* Use scalar nvic_hw-\u003eispr member on RP2040"
    },
    {
      "commit": "2d699d219f3cdbdd1b1e8bba5cbdddd0f72f3ab4",
      "tree": "eeb22bf23641892853083ee66069f1df01b03c16",
      "parents": [
        "98a542c1a62fb549ffb5d66a3e5892b06276b670"
      ],
      "author": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Fri Jul 03 09:29:00 2026 -0500"
      },
      "committer": {
        "name": "graham sanderson",
        "email": "graham.sanderson@raspberrypi.com",
        "time": "Fri Jul 03 09:29:00 2026 -0500"
      },
      "message": "start 2.3.1 development\n"
    },
    {
      "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"
    }
  ],
  "next": "cda80c0a95c5591e33d1aa5c7ffef7c7191e9eaa"
}
