Skip to content

Commit cc4a985

Browse files
committed
soc: rp2350: Add initial support for the Raspberry Pi RP2350
RP2350 is Raspberry Pi's newest SoC. From the datasheet: "RP2350 is a new family of microcontrollers from Raspberry Pi that offers significant enhancements over RP2040. Key features include: • Dual Cortex-M33 or Hazard3 processors at 150 MHz • 520 kB on-chip SRAM, in 10 independent banks • 8 kB of one-time-programmable storage (OTP) • Up to 16 MB of external QSPI flash/PSRAM via dedicated QSPI bus ... " This commit introduces some changes to support the existing RP2040 and what is describe by Raspberry Pi as the "RP2350 family". Currently there are 4 published products in the family: RP2350A, RP2350B, RP2354A, and RP2354A. Within Zephyr's taxonomy, split the configuration as follows: Family: Raspberry Pi Pico. This contains all RP2XXX SoCs, SoC Series: RP2040 and RP2350. SoC: RP2040 and, for now, just the RP2350A, which is present on the Pico 2, where the A suffix indicates QFN-60 package type. This structure is reflected in `soc/raspberrypi/soc.yml`, and somewhat assumes that there won't be a RP2050, for example, as a RP2040 with more RAM. This is foundation work ahead of introducing support for Raspberry Pi's Pico 2 board, which is fitted with a RP2350A and 4MB of flash. Signed-off-by: Andrew Featherstone <andrew.featherstone@gmail.com> Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
1 parent 122784d commit cc4a985

File tree

29 files changed

+655
-39
lines changed

29 files changed

+655
-39
lines changed

Kconfig.zephyr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -793,7 +793,7 @@ config BUILD_OUTPUT_UF2_FAMILY_ID
793793
default "0xada52840" if SOC_NRF52840_QIAA
794794
default "0x4fb2d5bd" if SOC_SERIES_IMXRT10XX || SOC_SERIES_IMXRT11XX
795795
default "0x2abc77ec" if SOC_SERIES_LPC55XXX
796-
default "0xe48bff56" if SOC_SERIES_RP2XXX
796+
default "0xe48bff56" if SOC_SERIES_RP2040
797797
default "0x68ed2b88" if SOC_SERIES_SAMD21
798798
default "0x55114460" if SOC_SERIES_SAMD51
799799
default "0x647824b6" if SOC_SERIES_STM32F0X

drivers/hwinfo/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ config HWINFO_IMXRT
130130
config HWINFO_RPI_PICO
131131
bool "Raspberry Pi Pico hwinfo driver"
132132
default y
133-
depends on SOC_SERIES_RP2XXX
133+
depends on SOC_FAMILY_RPI_PICO
134134
select HWINFO_HAS_DRIVER
135135
select PICOSDK_USE_FLASH
136136
help

dts/arm/raspberrypi/rpi_pico/m33.dtsi

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* Copyright (c) 2024 Andrew Featherstone
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include <arm/armv8-m.dtsi>
8+
9+
/* Model in the device tree a Cortex-M33 core being 'plugged' into each
10+
* 'socket' within the SoC. Within the datasheet these are core 0 and core 1.
11+
*/
12+
&cpu0 {
13+
compatible = "arm,cortex-m33";
14+
};
15+
16+
&cpu1 {
17+
compatible = "arm,cortex-m33";
18+
};
19+
20+
&nvic {
21+
arm,num-irq-priority-bits = <4>;
22+
};

0 commit comments

Comments
 (0)