Skip to content

[10/10] Documentation, boards/rp23xx: Describe FDPIC and add a test configuration - #20132

Draft
casaroli wants to merge 1 commit into
apache:masterfrom
casaroli:fdpic-docs
Draft

[10/10] Documentation, boards/rp23xx: Describe FDPIC and add a test configuration#20132
casaroli wants to merge 1 commit into
apache:masterfrom
casaroli:fdpic-docs

Conversation

@casaroli

Copy link
Copy Markdown
Contributor

depends-on: [/pull/20089 /pull/20130 /pull/20131]

Summary

The last part of the FDPIC series: what it is, and a configuration that runs it.

Documentation/components/fdpic.rst covers what an FDPIC module is and what it adds over the position independent ELF support already in the tree, how the loader places one, where shared libraries come from and how they are found, which entry points resolve a function descriptor and the rules for adding another, and how to build a module and a library. A comparison table places it against NXFLAT and PIC ELF, and the reference section records the object layout and the relocations.

pimoroni-pico-2-plus:xipfs-fdpic is the configuration the series was tested on: xipfs on the board's QSPI flash, the ELF loader with CONFIG_FDPIC, apps/examples/fdpicxip and apps/testing/fs/xipfs.

CONFIG_DEFAULT_TASK_STACKSIZE is 4096 there rather than the rp23xx default of 2048. Both sides of the loader need it: a module that calls into the firmware's printf family overflows 2048, and with no MPU that is a lockup rather than a diagnostic. CONFIG_ELF_STACKSIZE follows it, and apps/testing/fs/xipfs sizes its own task from it.

Impact

Documentation, one board configuration, and a line in two index pages. No code.

Testing

pimoroni-pico-2-plus:xipfs-fdpic builds standing alone on master.

tools/refresh.sh leaves the new defconfig unchanged, so the CI normalize step stays clean.

tools/checkpatch.sh -c -u -m -g passes.

Draft

Draft because it is the tail of the series, and because [9/10], which loads DT_NEEDED libraries, is not yet opened. The xipfs suite this configuration runs covers cases that need it, so this should not merge before it.

…tion.

Documentation/components/fdpic.rst covers what an FDPIC module is and what
it adds over the position independent ELF support already in the tree, how
the loader places one, where shared libraries come from and how they are
found, which entry points resolve a function descriptor and the rules for
adding another, and how to build a module and a library.  A comparison
table places it against NXFLAT and PIC ELF, and the reference section
records the object layout and the relocations.  The tools page added
earlier in this series now points at it.

pimoroni-pico-2-plus:xipfs-fdpic is the configuration the series was tested
on: xipfs on the board's QSPI flash, the ELF loader with CONFIG_FDPIC, and
apps/examples/fdpicxip with apps/testing/fs/xipfs.

CONFIG_DEFAULT_TASK_STACKSIZE is 4096 there rather than the rp23xx default
of 2048.  Both sides of the loader need it: a module that calls into the
firmware's printf family overflows 2048, and with no MPU that is a lockup
rather than a diagnostic.  CONFIG_ELF_STACKSIZE follows it, and
apps/testing/fs/xipfs sizes its own task from it.

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
@github-actions github-actions Bot added Area: Documentation Improvements or additions to documentation Size: L The size of the change in this PR is large Board: arm labels Sep 13, 2026
@github-actions

Copy link
Copy Markdown

MemBrowse Memory Report

No memory changes detected for:

@github-actions

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: Documentation Improvements or additions to documentation Board: arm Size: L The size of the change in this PR is large

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant