[PATCH 0/8] arm: socfpga: Add Remote System Update (RSU) support

dinesh.maniyam at altera.com dinesh.maniyam at altera.com
Tue Jun 30 08:55:16 CEST 2026


From: Dinesh Maniyam <dinesh.maniyam at altera.com>

This series adds Remote System Update (RSU) support for the Altera (Intel)
SoCFPGA SoC64 family (Stratix 10, Agilex, N5X, Agilex5 and Agilex7m). RSU
lets the application boot from one of several configuration images stored
in QSPI NOR flash and recover to a known-good factory image when an update
fails. The flash layout is described by a Sub-Partition Table (SPT) and a
Configuration Pointer Block (CPB); U-Boot talks to the Secure Device
Manager (SDM) over the mailbox, or via an SMC call when running on top of
Arm Trusted Firmware.

The series is structured as small, individually buildable steps:

  1. mailbox: the RSU SDM mailbox commands (prerequisite).
  2. The core RSU library (session, SPT/CPB handling, QSPI low-level
     backend, SMC client) under arch/arm/mach-socfpga/.
  3. An optional UCLASS_MISC driver-model anchor ("altr,socfpga-rsu") so
     the RSU session lives on a DT node rather than a file-scope variable.
  4. The "rsu" console command plus documentation and a sandbox unit test.
  5. Multiflash support (RSU spread across more than one QSPI device).
  6. SPL multiboot SSBL selection and SSBL fallback.
  7-8. Device-tree wiring: the DM anchor node for every SoC64 family and
     the boot-partition label used by the label-based partition lookup.

The generic env/SPL hooks (env/sf.c, env/fat.c, common/spl/spl_mmc.c) use
weak functions that default to existing behaviour and are only overridden
when CONFIG_SOCFPGA_RSU_MULTIBOOT is enabled, so non-SoCFPGA boards are
unaffected.

Built for all SoC64 defconfigs and verified on the U-Boot CI (world build,
sandbox and qemu test suites all green). checkpatch reports no errors.

Dinesh Maniyam (8):
  arm: socfpga: mailbox: Add RSU mailbox command support
  arm: socfpga: Add Remote System Update (RSU) core library
  misc: socfpga: Add RSU driver-model anchor device
  cmd: socfpga: Add rsu command for Remote System Update
  arm: socfpga: rsu: Add multiflash support
  arm: socfpga: rsu: Add SPL multiboot SSBL selection
  arm: dts: socfpga: rsu: Anchor RSU DM node across SoC64 families
  arm: dts: socfpga: rsu: Label boot partition for label-based lookup

 MAINTAINERS                                   |    6 +
 arch/arm/dts/socfpga_agilex5-u-boot.dtsi      |    4 +
 arch/arm/dts/socfpga_agilex5_socdk.dts        |    2 +-
 arch/arm/dts/socfpga_agilex_socdk-u-boot.dtsi |   16 -
 arch/arm/dts/socfpga_n5x-u-boot.dtsi          |    4 +
 arch/arm/dts/socfpga_soc64_u-boot.dtsi        |    4 +
 .../dts/socfpga_stratix10_socdk-u-boot.dtsi   |    4 +
 arch/arm/mach-socfpga/Kconfig                 |   43 +
 arch/arm/mach-socfpga/Makefile                |   12 +
 .../mach-socfpga/include/mach/mailbox_s10.h   |   16 +
 arch/arm/mach-socfpga/include/mach/rsu.h      |  419 +++
 .../mach-socfpga/include/mach/rsu_flash_if.h  |   96 +
 arch/arm/mach-socfpga/include/mach/rsu_ll.h   |   94 +
 arch/arm/mach-socfpga/include/mach/rsu_misc.h |   65 +
 arch/arm/mach-socfpga/include/mach/rsu_s10.h  |   46 +
 arch/arm/mach-socfpga/include/mach/rsu_smc.h  |   14 +
 arch/arm/mach-socfpga/include/mach/rsu_spl.h  |   14 +
 arch/arm/mach-socfpga/include/mach/smc_s10.h  |   37 +
 .../include/mach/socfpga_rsu_dm.h             |   18 +
 arch/arm/mach-socfpga/mailbox_s10.c           |  141 +
 arch/arm/mach-socfpga/rsu.c                   | 1210 +++++++++
 arch/arm/mach-socfpga/rsu_ll_qspi.c           | 2402 +++++++++++++++++
 arch/arm/mach-socfpga/rsu_misc.c              |  854 ++++++
 arch/arm/mach-socfpga/rsu_s10.c               |  459 ++++
 arch/arm/mach-socfpga/rsu_spl.c               |  388 +++
 arch/arm/mach-socfpga/smc_rsu_s10.c           |  188 ++
 cmd/Kconfig                                   |   11 +
 cmd/Makefile                                  |    1 +
 cmd/socfpga_rsu.c                             | 1048 +++++++
 common/spl/spl_mmc.c                          |   24 +-
 configs/socfpga_agilex5_defconfig             |    2 +-
 configs/socfpga_agilex_defconfig              |    2 +-
 configs/socfpga_n5x_defconfig                 |    2 +
 configs/socfpga_stratix10_defconfig           |    2 +
 .../misc/altr,socfpga-rsu.yaml                |   41 +
 doc/usage/cmd/rsu.rst                         |  208 ++
 drivers/misc/Kconfig                          |   16 +
 drivers/misc/Makefile                         |    1 +
 drivers/misc/socfpga_rsu.c                    |   30 +
 env/fat.c                                     |   64 +-
 env/sf.c                                      |   33 +-
 include/env_internal.h                        |   11 +
 include/rsu_console.h                         |   14 +
 test/cmd/Makefile                             |    1 +
 test/cmd/socfpga_rsu.c                        |   59 +
 45 files changed, 8088 insertions(+), 38 deletions(-)
 create mode 100644 arch/arm/mach-socfpga/include/mach/rsu.h
 create mode 100644 arch/arm/mach-socfpga/include/mach/rsu_flash_if.h
 create mode 100644 arch/arm/mach-socfpga/include/mach/rsu_ll.h
 create mode 100644 arch/arm/mach-socfpga/include/mach/rsu_misc.h
 create mode 100644 arch/arm/mach-socfpga/include/mach/rsu_s10.h
 create mode 100644 arch/arm/mach-socfpga/include/mach/rsu_smc.h
 create mode 100644 arch/arm/mach-socfpga/include/mach/rsu_spl.h
 create mode 100644 arch/arm/mach-socfpga/include/mach/smc_s10.h
 create mode 100644 arch/arm/mach-socfpga/include/mach/socfpga_rsu_dm.h
 create mode 100644 arch/arm/mach-socfpga/rsu.c
 create mode 100644 arch/arm/mach-socfpga/rsu_ll_qspi.c
 create mode 100644 arch/arm/mach-socfpga/rsu_misc.c
 create mode 100644 arch/arm/mach-socfpga/rsu_s10.c
 create mode 100644 arch/arm/mach-socfpga/rsu_spl.c
 create mode 100644 arch/arm/mach-socfpga/smc_rsu_s10.c
 create mode 100644 cmd/socfpga_rsu.c
 create mode 100644 doc/device-tree-bindings/misc/altr,socfpga-rsu.yaml
 create mode 100644 doc/usage/cmd/rsu.rst
 create mode 100644 drivers/misc/socfpga_rsu.c
 create mode 100644 include/rsu_console.h
 create mode 100644 test/cmd/socfpga_rsu.c


base-commit: 77a48fa272161df9b778ffc09af814eec11cddd2
-- 
2.43.7



More information about the U-Boot mailing list