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

Support for Raspberry Pi Pico v2 #2917

Closed
3 tasks done
slaff opened this issue Nov 26, 2024 · 13 comments
Closed
3 tasks done

Support for Raspberry Pi Pico v2 #2917

slaff opened this issue Nov 26, 2024 · 13 comments
Milestone

Comments

@slaff
Copy link
Contributor

slaff commented Nov 26, 2024

The new Raspberry Pi Pico v2 seems to come with Wireless capabilities (Bluetooth and WiFi). This ticket is created to gather the requirements needed to port Sming for Pi Pico v2.

@slaff
Copy link
Contributor Author

slaff commented Nov 26, 2024

@mikee47 any idea how much effort it will be to port to Pico V2 with wireless?

@mikee47
Copy link
Contributor

mikee47 commented Nov 26, 2024

The Pico2-w uses the same cyw43 chip for wifi/bluetooth. I haven't looked at bluetooth for the pico-w so I'd set that aside for now.

We'll need to update the pico SDK to v2.1.0 (currently using 1.5.1). That's mostly straightforward except for patching the cyw43 driver stuff - I haven't looked at it for a while but the main reason for the patching is for flexible cyw43 firmware loading.

So getting it to compile, then testing with pico-w, then with pico-w2. I'll order up a few for testing.

@slaff
Copy link
Contributor Author

slaff commented Nov 26, 2024

I'll order up a few for testing.

If you want please, keep the bill(s) and I will reimburse you via OpenCollective.

@mikee47
Copy link
Contributor

mikee47 commented Nov 26, 2024

@slaff Got an invoice, how best to get it to you?

@mikee47
Copy link
Contributor

mikee47 commented Nov 26, 2024

I think I've had enough of esp32 for the time being. I'll take a look at updating the pico SDK for a pico-w.

@slaff
Copy link
Contributor Author

slaff commented Nov 26, 2024

Got an invoice, how best to get it to you?

Check your mike AT sillyhouse.net email

@slaff slaff added this to the 6.0.0 milestone Nov 27, 2024
@mikee47
Copy link
Contributor

mikee47 commented Nov 27, 2024

My intention is that building for the RP2350 family, including pico-2 or 2w, would be made using SMING_SOC=rp2350.

I note from the datasheet that the RP2350 has an A and B variant, the latter bringing out additional I/O. The SDK expects either PICO_RP2350A or PICO_RP2350B to be defined. The B variant is currently only defined for the 'hellbender' board.

I'll put the full set of pins in pindefs for now.

There's also the RP2354 with in-package flash, but it's a separate die so functionally equivalent to RP2350 with external 2MiB flash chip.

@mikee47
Copy link
Contributor

mikee47 commented Nov 27, 2024

The other fun thing about the RP2350 is the configurable core architecture (ARM or RISCV). Let's start with ARM as the default, then we can add support for PICO_RISCV=1 to select the other one.

@mikee47
Copy link
Contributor

mikee47 commented Nov 28, 2024

The RP2350 is significantly improved over the RP2040 with (optional) support for partition tables. In addition it deals with configuring core architectures (ARM/RISC-V) depending on the selected firmware image.

This means we should be able to integrate full partition table support for these devices.

Requires picotool for linking. There's a separate Sming Component for that which is out of date, not really necessary for rp2040.

Separate PR for that I'm thinking.

@mikee47
Copy link
Contributor

mikee47 commented Nov 28, 2024

Pre-built picotool (and pioasm) available as part of SDK tools here https://github.com/raspberrypi/pico-sdk-tools/releases
Could use those instead of building, but they're very small utilities so building would be my preference. Main issue is Windows of course.

@mikee47
Copy link
Contributor

mikee47 commented Nov 28, 2024

The RP* microcontrollers are all flashed via USB so I find an additional USB/UART adapter for debugging, etc. is necessary.

RP2350 has a UART boot mode, described as a minimal interface for bootstrapping a flashless RP2350 from another microcontroller.

I thought this might offer a way to develop with a single serial port, but this mode uses QSPI SD2/3 pins so not useable on most dev. boards. It's a little like the slave SDIO boot mode of the Esp8266.

@mikee47
Copy link
Contributor

mikee47 commented Nov 28, 2024

@slaff Do you have any rp* devices yourself?

@slaff
Copy link
Contributor Author

slaff commented Nov 28, 2024

Do you have any rp* devices yourself?

Not at the moment. Have to see if I can buy one and get it delivered quickly in Germany.

@slaff slaff closed this as completed Dec 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants