Skip to content

Update to Pico SDK 2.1.1 #10

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 73 commits into
base: zephyr
Choose a base branch
from
Draft

Conversation

ajf58
Copy link
Collaborator

@ajf58 ajf58 commented Mar 22, 2025

Raspberry Pi have updated the SDK to 2.1.1 (release notes at https://github.com/raspberrypi/pico-sdk/releases/tag/2.1.1) .

This PR merges in those changes into hal_rpi_pico.

I will imminently create a matching PR for the main Zephy repo at zephyrproject-rtos/zephyr to take advantage of this, and also some corresponding changes.

kilograham and others added 30 commits November 25, 2024 00:44
* fix errors breaking extra_[cmake_]configs.py
* remove trailing whitespace which is confusing asciidoctor
* fix rp2xxx-specific -> rp2xxx_specific
* add missing xip_cache funcs to the combined docs
* Revert "fix errors breaking extra_[cmake_]configs.py"
* Fix typo in #define name
* Allow optional whitespace at the start of "commented out" config lines

Co-authored-by: Andrew Scheller <andrew.scheller@raspberrypi.com>
* Move rom_data_lookup code into rom_data_lookup_inline

Allows ROM data lookup from FLASH/RAM sensitive code

* Use rom_data_lookup_inline in flash_devinfo_ptr

Fixes bug introduced by raspberrypi#2082 where flash_devinfo_get_cs_size would use rom_data_lookup from flash during a __no_inline_not_in_flash_func
* ta_set_timeout can fail to set an alarm

If alarm_pool_irq_handler takes <1us between handling an alarm and
calling ta_set_timeout then no alarms will be set as it will appear as
if an earlier alarm is already armedi before the target time.

Make sure ta_set_timeout always leaves with an alarm set by checking the
armed status.

Fixes raspberrypi#2118

* ta_disable_irq_handler should unarm its timer
…pi#2150)

* convert windows path delimiter to posix (raspberrypi#2149)

* add explicite variable assignment for intermediate resource name conversion result (raspberrypi#2149)
remove incorrect pool parameter
We need to do this to avoid work_pending being set twice.

Fixes raspberrypi#2101
* Update Clang toolchain used by Bazel

* <time.h> include

* Sort includes

* Use libc timeval definition

* Disable unwinder linking for now

* Link libm
Signed-off-by: eng33 <eng33@waveshare.com>
Co-authored-by: eng33 <eng33@waveshare.com>
* Fix ta_wakes_up_on_or_before

Handle target in the past and running for > 2^32 us.

Fixes raspberrypi#2186

* Add test for ta_wakes_up_on_or_before fix
Address the review comment to fix conditional compilation syntax:
raspberrypi#1795 (review)
* Update cyw43 driver.

Fixes raspberrypi#2153

* Update cyw43 in bazel
* Remove deprecated uses of FetchContent_Populate

Cannot use MakeAvailable as the files shouldn't be added to the build, so instead uses the full signature for FetchContent_Populate

Fixes raspberrypi#2124

* Fix GIT_SUBMODULES_RECURSE for older CMake versions
… faster and hence further on RP2350, breaking a check which was wrong for larger inputs
* update tinyusb to 0.18

* update tinyusb also for bazel
We use a pio and dma to write to the cyw43 chip using spi. Normally you
write an address and then read the data from that address, so the pio
program does does a write then read.

If you just want to write data in the case of uploading firmware we
use the fdebug_tx_stall flag to work out if the pio has stalled waiting
to write more data.

The theory is that this flag will also get set if the bus is busy. So
we mistakenly think a write to cyw43 has completed.

Wait for the dma write to complete before waiting for the pio to stall.

Fixes raspberrypi#2206
* Update btstack

v1.6.2 plus one commit

* Update bazel for btstack

* Build changes for btstack v1.6.2
raspberrypi#2105)

* Release the lock in mbedtls_sha256_free if it was not released already. Requires making pico_sha256_unlock include-able. Fixes raspberrypi#2103.

* addres lock release API comment

* Fix description of pico_sha256_cleanup

---------

Co-authored-by: nils <nils@nils>
Co-authored-by: Peter Harper <peter.harper@raspberrypi.com>
kilograham and others added 26 commits February 12, 2025 09:34
* ci: remove cmake from Windows choco_packages.config as there is already a version in the windows image
* multi-gcc: add GCC 14.2. On RP2040 build for Pico W
* multi_gcc: add host
* support cancellation

---------

Co-authored-by: Liam Fraser <liam@raspberrypi.com>
…pi#2265)

- fix bug: pioasm was spilling bit 5 of arg2 into arg1
- make pio_add_program flip bit 5 of a WAIT GPIO instruction if gpio_base is 16

Note: pioasm will encode only the bits 4-0 of arg2 (the GPIO number), however it does indicate whether
0-15 means 0-15 or 32-47. This can only be fixed up when loading the program, and indeed once the GPIO
base is known. pio_can_add_program and friends already detected the cases where this was impossible
* This includes an FMA issue fix that broke several math functions.
correct outdated comment after 2 lines were deleted, but comment was not

Fixes raspberrypi#2273
…pi#2278)

- Added `sys_jiffies` with weak linking for NO_SYS configuration
…pberrypi#2255)

* update previous fix as 1.0 < clkdiv < 2.0 IS supported on RP2350
Fix Issue raspberrypi#2288
 Correct spelling of boardname
@ajf58
Copy link
Collaborator Author

ajf58 commented Mar 31, 2025

Keeping this as a draft due to raspberrypi#2310 . I think I'll probably skip 2.1.1 and go to 2.1.2, rather than cherry-picking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.