Skip to content
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

Update pico SDK to v2.1.0 with RP2350 support #2918

Merged
merged 20 commits into from
Dec 2, 2024

Conversation

mikee47
Copy link
Contributor

@mikee47 mikee47 commented Nov 27, 2024

As per #2917 this PR updates pico SDK to latest with support for the RP2350 devices.

TODO:

  • Update SDK to latest v2.1.0, test on basic pico device
  • Update cyw43 firmware and patch to support compressed firmware loading, test on pico-w
  • Add basic support for rp2350 SOC
  • Complete flashmem_get_info(): RP2350 has different flash interface
  • Complete RtcClass implementation: SDK hardware/rtc not supported for RP2350
  • Update documentation
  • Regression test on RP2040 hardware
  • Test on RP2350 hardware
  • Test USB library. Update tinyusb to latest master branch
  • Update picotool, use to implement flash reading, etc.
  • Run through HostTests
  • Builds are much bigger for rp2040 than previously. Find out why.

@mikee47 mikee47 marked this pull request as draft November 27, 2024 12:41
Copy link

what-the-diff bot commented Nov 27, 2024

PR Summary

  • Update of component.mk and SDK interfaces
    The 'component.mk' file has been updated to include new functionality for initializing system runtimes. Additionally, coding improvements were made in the SDK to enable initialization of various data types such as double and float.

  • Addition of new mk files for hardware components
    New mk files for a variety of hardware components have been included. These files improve runtime initialization functions for multiple hardware components, such as boot lock and sync spin lock, among others.

  • Revision and linkage in CMakeLists.txt
    Changes reflecting the updated SDK interfaces have been made in the CMakeLists.txt file. Additionally, new hardware components have been added to further optimize the linking process.

  • Modification and optimization of cyw43 related source files
    The cyw43 related source files have been modified to improve firmware loading processes. This refinement includes the introduction of chunk handling for storage and optimizations in resource download handling.

  • Enhancements in debug logs and firmware verification
    Debug logs have been added and firmware verification procedures have been improved in the CYW43 functions. This change enriches troubleshooting capabilities and ensures better firmware quality checks.

  • Memory Mapping Definition Update
    Memory mapping definitions have been updated to support the adjustments made in the SDK. Moreover, these updates allow for support of a new section in memory mapping, thereby enabling more enhanced memory management.

  • Addition of new makefiles
    New makefiles such as 'pico_runtime.mk', 'pico_runtime_init.mk', 'pico_sync.mk' and 'pico_time.mk' have been added to enhance runtime initialization functions and to offer better mutex support and alarm pool management.

  • Removal of obsolete function and introduction of new function
    The obsolete function 'check_sys_clock_khz' has been removed to streamline code for clock management. Meanwhile, a new function 'cyw43_storage_get_chunksize' has been introduced to improve the management of storage chunks.

  • Updated build.mk for better Pico hardware compatibility
    The 'build.mk' file has been updated with new preprocessor definitions related to Pico hardware. This improves compatibility and offers more configuration options during the build process.

@slaff slaff mentioned this pull request Nov 27, 2024
3 tasks
@slaff slaff added this to the 6.0.0 milestone Nov 27, 2024
@mikee47 mikee47 force-pushed the feature/pico-sdk-2.1 branch 2 times, most recently from 99dc2b2 to 60efc4a Compare November 27, 2024 20:40
@mikee47 mikee47 changed the title Update pico SDK to v2.1.0 and add support for RP2350 Update pico SDK to v2.1.0 with RP2350 support Nov 27, 2024
@mikee47 mikee47 force-pushed the feature/pico-sdk-2.1 branch 5 times, most recently from 18704d1 to 15cebe7 Compare November 29, 2024 15:00
@mikee47 mikee47 marked this pull request as ready for review November 29, 2024 15:01
@slaff
Copy link
Contributor

slaff commented Nov 29, 2024

@mikee47 is this PR ready for merging?

@mikee47
Copy link
Contributor Author

mikee47 commented Nov 29, 2024

@slaff Yes, all the basic stuff seems to work OK.

@mikee47 mikee47 force-pushed the feature/pico-sdk-2.1 branch from 15cebe7 to 986f64d Compare November 29, 2024 22:04
@mikee47 mikee47 force-pushed the feature/pico-sdk-2.1 branch from 986f64d to 7027791 Compare November 29, 2024 22:50
@mikee47
Copy link
Contributor Author

mikee47 commented Nov 30, 2024

Hold for now - found a bug in the RTC, doesn't call settimeofday

@mikee47 mikee47 closed this Nov 30, 2024
@mikee47 mikee47 reopened this Nov 30, 2024
@mikee47
Copy link
Contributor Author

mikee47 commented Nov 30, 2024

OK, if this passes CI tests should be fine to merge.

Link pico.a using `whole-archive` option.
Simplifies linking hugely since we don't need to track down stuff which might get discarded.
That includes standard binary info, which is now present - `make picotool CMD='info -a'`
@mikee47 mikee47 force-pushed the feature/pico-sdk-2.1 branch from c814dff to 1f6d076 Compare November 30, 2024 10:58
Using standard allocation implementations pulls in RTTI and exception code
@slaff slaff merged commit 5e50be4 into SmingHub:develop Dec 2, 2024
35 checks passed
@mikee47 mikee47 deleted the feature/pico-sdk-2.1 branch December 13, 2024 11:08
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.

2 participants