From 5dba9d3f5be912e174d9e49e6be145f11ab7bb04 Mon Sep 17 00:00:00 2001 From: Marco Casaroli Date: Sat, 25 Jul 2026 13:56:32 +0200 Subject: [PATCH] boards/rp23xx: Add a xipfs configuration and name the NXFLAT tools. A configuration for the Pimoroni Pico Plus 2 that mounts xipfs on the flash MTD and builds everything that exercises it: the test suite with fault injection, the xipfs command, and the NXFLAT execute-in-place demo. Building an NXFLAT module needs mknxflat and ldnxflat, so name them in the rp23xx board Make.defs files, which already carry the rest of the NXFLAT flags but not these. Assisted-by: Claude Code:claude-opus-5 Signed-off-by: Marco Casaroli --- .../configs/xipfs/defconfig | 54 +++++++++++++++++++ .../pimoroni-pico-2-plus/scripts/Make.defs | 3 ++ .../raspberrypi-pico-2/scripts/Make.defs | 3 ++ .../arm/rp23xx/xiao-rp2350/scripts/Make.defs | 3 ++ 4 files changed, 63 insertions(+) create mode 100644 boards/arm/rp23xx/pimoroni-pico-2-plus/configs/xipfs/defconfig diff --git a/boards/arm/rp23xx/pimoroni-pico-2-plus/configs/xipfs/defconfig b/boards/arm/rp23xx/pimoroni-pico-2-plus/configs/xipfs/defconfig new file mode 100644 index 00000000000..d1876a5ba47 --- /dev/null +++ b/boards/arm/rp23xx/pimoroni-pico-2-plus/configs/xipfs/defconfig @@ -0,0 +1,54 @@ +# +# This file is autogenerated: PLEASE DO NOT EDIT IT. +# +# You can use "make menuconfig" to make any modifications to the installed .config file. +# You can then do "make savedefconfig" to generate a new defconfig file that includes your +# modifications. +# +# CONFIG_NSH_ARGCAT is not set +# CONFIG_NSH_CMDOPT_HEXDUMP is not set +# CONFIG_NSH_DISABLE_DATE is not set +# CONFIG_NSH_DISABLE_LOSMART is not set +# CONFIG_STANDARD_SERIAL is not set +CONFIG_ARCH="arm" +CONFIG_ARCH_BOARD="pimoroni-pico-2-plus" +CONFIG_ARCH_BOARD_COMMON=y +CONFIG_ARCH_BOARD_PIMORONI_PICO_2_PLUS=y +CONFIG_ARCH_CHIP="rp23xx" +CONFIG_ARCH_CHIP_RP23XX=y +CONFIG_ARCH_RAMVECTORS=y +CONFIG_ARCH_STACKDUMP=y +CONFIG_BOARDCTL_RESET=y +CONFIG_BOARD_LOOPSPERMSEC=10450 +CONFIG_BUILTIN=y +CONFIG_DEBUG_FULLOPT=y +CONFIG_DEBUG_SYMBOLS=y +CONFIG_DISABLE_POSIX_TIMERS=y +CONFIG_EXAMPLES_HELLO=y +CONFIG_EXAMPLES_NXFLATXIP=y +CONFIG_FS_PROCFS=y +CONFIG_FS_PROCFS_REGISTER=y +CONFIG_FS_XIPFS=y +CONFIG_FS_XIPFS_FAULT_INJECT=y +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_LIBC_EXECFUNCS=y +CONFIG_MTD=y +CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6 +CONFIG_NSH_BUILTIN_APPS=y +CONFIG_NSH_READLINE=y +CONFIG_NXFLAT=y +CONFIG_RAM_SIZE=532480 +CONFIG_RAM_START=0x20000000 +CONFIG_READLINE_CMD_HISTORY=y +CONFIG_RP23XX_FLASH_MTD=y +CONFIG_RR_INTERVAL=200 +CONFIG_SCHED_WAITPID=y +CONFIG_START_DAY=9 +CONFIG_START_MONTH=2 +CONFIG_START_YEAR=2021 +CONFIG_SYSLOG_CONSOLE=y +CONFIG_SYSTEM_NSH=y +CONFIG_SYSTEM_XIPFS=y +CONFIG_TESTING_FS_XIPFS=y +CONFIG_TESTING_FS_XIPFS_MTD="/dev/rpflash" +CONFIG_UART0_SERIAL_CONSOLE=y diff --git a/boards/arm/rp23xx/pimoroni-pico-2-plus/scripts/Make.defs b/boards/arm/rp23xx/pimoroni-pico-2-plus/scripts/Make.defs index 8772d6efc31..fa4bfae9c51 100644 --- a/boards/arm/rp23xx/pimoroni-pico-2-plus/scripts/Make.defs +++ b/boards/arm/rp23xx/pimoroni-pico-2-plus/scripts/Make.defs @@ -38,6 +38,9 @@ CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) AFLAGS := $(CFLAGS) -D__ASSEMBLY__ +MKNXFLAT = mknxflat +LDNXFLAT = ldnxflat + NXFLATLDFLAGS1 = -r -d -warn-common NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections LDNXFLATFLAGS = -e main -s 2048 diff --git a/boards/arm/rp23xx/raspberrypi-pico-2/scripts/Make.defs b/boards/arm/rp23xx/raspberrypi-pico-2/scripts/Make.defs index 3a74f74f100..c50a89026bc 100644 --- a/boards/arm/rp23xx/raspberrypi-pico-2/scripts/Make.defs +++ b/boards/arm/rp23xx/raspberrypi-pico-2/scripts/Make.defs @@ -38,6 +38,9 @@ CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) AFLAGS := $(CFLAGS) -D__ASSEMBLY__ +MKNXFLAT = mknxflat +LDNXFLAT = ldnxflat + NXFLATLDFLAGS1 = -r -d -warn-common NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections LDNXFLATFLAGS = -e main -s 2048 diff --git a/boards/arm/rp23xx/xiao-rp2350/scripts/Make.defs b/boards/arm/rp23xx/xiao-rp2350/scripts/Make.defs index e14338d6cc8..ccf52abfac7 100644 --- a/boards/arm/rp23xx/xiao-rp2350/scripts/Make.defs +++ b/boards/arm/rp23xx/xiao-rp2350/scripts/Make.defs @@ -38,6 +38,9 @@ CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) AFLAGS := $(CFLAGS) -D__ASSEMBLY__ +MKNXFLAT = mknxflat +LDNXFLAT = ldnxflat + NXFLATLDFLAGS1 = -r -d -warn-common NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections LDNXFLATFLAGS = -e main -s 2048