-
Notifications
You must be signed in to change notification settings - Fork 918
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
machine/rp2350: add support * add linker scripts for rp2350 * add bootloader * begin melding rp2040 and rp2350 APIs * add UART * add rp2350 boot patching * Fix RP2350 memory layout (#4626) * Remove rp2040-style second stage bootloader. * Add 'minimum viable' IMAGE_DEF embedded block * Create a pico2 specific target * Implement rp2350 init, clock, and uart support * Merge rp2 reset code back together * Separate chip-specific clock definitions * Clear pad isolation bit on rp2350 * Init UART in rp2350 runtime * Correct usb/serial initialization order * Implement jump-to-bootloader * test: add pico2 to smoketests --------- Signed-off-by: deadprogram <[email protected]> Co-authored-by: Matthew Mets <[email protected]> Co-authored-by: Matt Mets <[email protected]> Co-authored-by: deadprogram <[email protected]>
- Loading branch information
1 parent
0d13e61
commit 37f35f8
Showing
33 changed files
with
1,349 additions
and
294 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -37,5 +37,9 @@ test.exe | |
test.gba | ||
test.hex | ||
test.nro | ||
test.uf2 | ||
test.wasm | ||
wasm.wasm | ||
|
||
*.uf2 | ||
*.elf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
//go:build pico2 | ||
|
||
package machine | ||
|
||
// GPIO pins | ||
const ( | ||
GP0 Pin = GPIO0 | ||
GP1 Pin = GPIO1 | ||
GP2 Pin = GPIO2 | ||
GP3 Pin = GPIO3 | ||
GP4 Pin = GPIO4 | ||
GP5 Pin = GPIO5 | ||
GP6 Pin = GPIO6 | ||
GP7 Pin = GPIO7 | ||
GP8 Pin = GPIO8 | ||
GP9 Pin = GPIO9 | ||
GP10 Pin = GPIO10 | ||
GP11 Pin = GPIO11 | ||
GP12 Pin = GPIO12 | ||
GP13 Pin = GPIO13 | ||
GP14 Pin = GPIO14 | ||
GP15 Pin = GPIO15 | ||
GP16 Pin = GPIO16 | ||
GP17 Pin = GPIO17 | ||
GP18 Pin = GPIO18 | ||
GP19 Pin = GPIO19 | ||
GP20 Pin = GPIO20 | ||
GP21 Pin = GPIO21 | ||
GP22 Pin = GPIO22 | ||
GP26 Pin = GPIO26 | ||
GP27 Pin = GPIO27 | ||
GP28 Pin = GPIO28 | ||
|
||
// Onboard LED | ||
LED Pin = GPIO25 | ||
|
||
// Onboard crystal oscillator frequency, in MHz. | ||
xoscFreq = 12 // MHz | ||
) | ||
|
||
// I2C Default pins on Raspberry Pico. | ||
const ( | ||
I2C0_SDA_PIN = GP4 | ||
I2C0_SCL_PIN = GP5 | ||
|
||
I2C1_SDA_PIN = GP2 | ||
I2C1_SCL_PIN = GP3 | ||
) | ||
|
||
// SPI default pins | ||
const ( | ||
// Default Serial Clock Bus 0 for SPI communications | ||
SPI0_SCK_PIN = GPIO18 | ||
// Default Serial Out Bus 0 for SPI communications | ||
SPI0_SDO_PIN = GPIO19 // Tx | ||
// Default Serial In Bus 0 for SPI communications | ||
SPI0_SDI_PIN = GPIO16 // Rx | ||
|
||
// Default Serial Clock Bus 1 for SPI communications | ||
SPI1_SCK_PIN = GPIO10 | ||
// Default Serial Out Bus 1 for SPI communications | ||
SPI1_SDO_PIN = GPIO11 // Tx | ||
// Default Serial In Bus 1 for SPI communications | ||
SPI1_SDI_PIN = GPIO12 // Rx | ||
) | ||
|
||
// UART pins | ||
const ( | ||
UART0_TX_PIN = GPIO0 | ||
UART0_RX_PIN = GPIO1 | ||
UART1_TX_PIN = GPIO8 | ||
UART1_RX_PIN = GPIO9 | ||
UART_TX_PIN = UART0_TX_PIN | ||
UART_RX_PIN = UART0_RX_PIN | ||
) | ||
|
||
var DefaultUART = UART0 | ||
|
||
// USB identifiers | ||
const ( | ||
usb_STRING_PRODUCT = "Pico2" | ||
usb_STRING_MANUFACTURER = "Raspberry Pi" | ||
) | ||
|
||
var ( | ||
usb_VID uint16 = 0x2E8A | ||
usb_PID uint16 = 0x000A | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.