Hi Bhargav,

> This series adds initial U-Boot support for the Raspberry Pi Pico 2 board
> and its RP2350 SoC, only the dual-core Cortex-M33 support is added.

It would be useful to give a bigger overview of *why* this is
happening? Is it used to boot Linux, some other OS? How can I test the
wider ecosystem that this functionality provides?

> Sent as an RFC to get feedback on the overall approach before polishing
> further.
>
> Status as of this RFC:
>
>   - UART1 console works; UART0 is not usable yet. Need to investigate.
>   - Boot-tested on both Pico 2 and Pico 2 W boards.
>   - `make sandbox_defconfig` passes with patches applied.
>   - This series selects CPU_V7M for RP2350. RP2350's Cortex-M33 core is
>     Armv8-M since there is no CPU_V8M support in U-Boot yet. Is CPU_V7M
>     acceptable as a starting point with CPU_V8M as a later follow-up?
>   - RP2350 has no device tree in mainline Linux yet, so patch 2
>     hand-writes rp2350.dtsi / rp2350-pico2.dts locally, and
>     rpi_pico2_defconfig uses CONFIG_OF_EMBED rather than
>     CONFIG_OF_UPSTREAM.

Has it been sent to a list upstream for review? Is there a timeline
for that to happen?

>   - board/raspberrypi/pico2/ is added alongside the existing, unrelated
>     BCM283x Raspberry Pi boards under board/raspberrypi/. Is this
>     directory placement acceptable given the SoC is unrelated, or should
>     it live elsewhere?

It doesn't matter the relationship between SoCs, they're related
because of the vendor. EG toradex is a board vendor that uses SoCs
from a number of vendors.

>   - Some functions and structures such as `struct rp2350_clocks_regs` is
>     defined but not yet used.
>   - misc_init_r() sets a fixed value for the "serial#" environment
>     variable. This runs after relocation, so a successful env_set() here
>     confirms env works post-relocation.
>
> Flashing procedure used for testing:
>
>     picotool uf2 convert u-boot.bin u-boot.uf2 --family rp2350-arm-s --offset 
> 0x10000000
>     picotool load u-boot.uf2 -v -x
>
> Bootlog:
>
>     U-Boot 2026.04-rc3-00070-gbabf6d42fec7-dirty (Jun 23 2026 - 01:55:20 
> +0530)
>
>     CPU:   Raspberry Pi RP2350
>     Model: Raspberry Pi Pico 2
>     DRAM:  520 KiB
>     Core:  5 devices, 5 uclasses, devicetree: embed
>     MMC:
>     Loading Environment from nowhere... OK
>     In:    serial@40078000
>     Out:   serial@40078000
>     Err:   serial@40078000
>     RP2350>
>
> Bhargav Das (3):
>   arm: Add RP2350 architecture support
>   arm: dts: Add RP2350 device tree
>   board: raspberrypi: Add Pico 2 support
>
>  arch/arm/Kconfig                          |   7 +
>  arch/arm/Makefile                         |   2 +
>  arch/arm/dts/Makefile                     |   1 +
>  arch/arm/dts/rp2350-pico2.dts             |  30 +++
>  arch/arm/dts/rp2350.dtsi                  |  32 +++
>  arch/arm/include/asm/arch-rp2xxx/rp2350.h | 307 ++++++++++++++++++++++
>  arch/arm/mach-rp2xxx/Kconfig              |  58 ++++
>  arch/arm/mach-rp2xxx/Makefile             |   4 +
>  arch/arm/mach-rp2xxx/image_def.S          |  23 ++
>  arch/arm/mach-rp2xxx/rp2350.c             | 261 ++++++++++++++++++
>  arch/arm/mach-rp2xxx/u-boot.lds           |  94 +++++++
>  board/raspberrypi/pico2/Kconfig           |  15 ++
>  board/raspberrypi/pico2/MAINTAINERS       |   9 +
>  board/raspberrypi/pico2/Makefile          |   3 +
>  board/raspberrypi/pico2/pico2.c           |  83 ++++++
>  configs/rpi_pico2_defconfig               |  29 ++
>  include/configs/rpi_pico2.h               |  48 ++++
>  17 files changed, 1006 insertions(+)
>  create mode 100644 arch/arm/dts/rp2350-pico2.dts
>  create mode 100644 arch/arm/dts/rp2350.dtsi
>  create mode 100644 arch/arm/include/asm/arch-rp2xxx/rp2350.h
>  create mode 100644 arch/arm/mach-rp2xxx/Kconfig
>  create mode 100644 arch/arm/mach-rp2xxx/Makefile
>  create mode 100644 arch/arm/mach-rp2xxx/image_def.S
>  create mode 100644 arch/arm/mach-rp2xxx/rp2350.c
>  create mode 100644 arch/arm/mach-rp2xxx/u-boot.lds
>  create mode 100644 board/raspberrypi/pico2/Kconfig
>  create mode 100644 board/raspberrypi/pico2/MAINTAINERS
>  create mode 100644 board/raspberrypi/pico2/Makefile
>  create mode 100644 board/raspberrypi/pico2/pico2.c
>  create mode 100644 configs/rpi_pico2_defconfig
>  create mode 100644 include/configs/rpi_pico2.h
>
> --
> 2.43.0
>

Reply via email to