This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 4b8a0a0ef2ffb4036d22878dce624a0150f1c251
Author: Marco Casaroli <[email protected]>
AuthorDate: Sat Oct 17 20:24:17 2026 +0200

    Documentation/xipfs: Describe the FDPIC sections of xipfs_test.
    
    xipfs_test has the sections fdpic, reject and dirloss. The page of the
    test did not list them, and did not say how the FDPIC test modules are
    built.
    
    Describe the fdpic and reject sections, add dirloss to the power-loss
    sections, and describe the FDPIC module build in the configuration.
    
    Assisted-by: Claude Code:claude-opus-5-5
    Signed-off-by: Marco Casaroli <[email protected]>
---
 Documentation/applications/testing/xipfs/index.rst | 26 ++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/Documentation/applications/testing/xipfs/index.rst 
b/Documentation/applications/testing/xipfs/index.rst
index 4caeaee272d..37a328fcfe7 100644
--- a/Documentation/applications/testing/xipfs/index.rst
+++ b/Documentation/applications/testing/xipfs/index.rst
@@ -60,6 +60,24 @@ Sections
   That a task killed without calling ``munmap`` still has its pin released.
   This is the one that matters for a module that faults.
 
+``fdpic``
+  Loads :doc:`FDPIC </os/binfmt/fdpic>` modules from the volume and checks
+  the loader: function descriptors that the loader makes, a module bound
+  entirely through ``DT_JMPREL``, callbacks from the firmware into a module
+  (``qsort()``, ``scandir()``, ``pthread_create()``, ``pthread_once()``,
+  ``signal()``, ``sigaction()``, ``task_create()``, ``task_spawn()``,
+  ``mq_notify()`` and ``timer_create()`` with ``SIGEV_THREAD``), a module
+  without the FDPIC marker, a ``DT_NEEDED`` library and its pins, and C++
+  constructors and destructors in a library and a module. Only with
+  ``CONFIG_FDPIC``.
+
+``reject``
+  Checks that the FDPIC loader refuses a malformed module: an ELF class that
+  is not 32-bit, an object that is not ``ET_DYN``, a module for another
+  machine, RELA PLT relocations, a ``DT_NEEDED`` library that is absent, an
+  import that the firmware does not export, and more ``DT_NEEDED`` entries
+  than ``CONFIG_LIBC_ELF_MAXDEPEND``. Only with ``CONFIG_FDPIC``.
+
 ``dirs``
   That directories behave like a real tree: an empty one exists and survives
   a remount, ``readdir`` reports each level, ``rmdir`` refuses a directory
@@ -71,10 +89,10 @@ Sections
   remount, distinguishes an open file from a pinned one, and never relocates
   a pinned extent.
 
-``powerloss``, ``powertorn``, ``unlink``, ``defraglos``
+``powerloss``, ``powertorn``, ``unlink``, ``dirloss``, ``defraglos``
   Fail the Nth flash operation, remount, and check the volume is consistent
   and every committed file byte-for-byte intact -- sweeping N across create,
-  unlink and compaction. The ``torn`` variant leaves the failing write
+  unlink, ``mkdir`` and ``rmdir``, and compaction. The ``torn`` variant leaves 
the failing write
   partially programmed rather than cleanly refused, which is what a real
   power loss mid-program leaves behind. These need
   ``CONFIG_FS_XIPFS_FAULT_INJECT``.
@@ -92,6 +110,10 @@ Configuration
 ``CONFIG_TESTING_FS_XIPFS_MTD``
   The MTD device backing that volume, needed for the remounts.
 
+With ``CONFIG_FDPIC``, the application build makes the test modules from
+``apps/examples/fdpicxip/modules`` and links them into ``xipfs_test``. This
+needs the ``arm-uclinuxfdpiceabi`` linker; see :doc:`/os/binfmt/fdpic`.
+
 .. note::
 
    The suite writes and erases the volume continuously, the power-loss

Reply via email to