From dda00d30bf8e5540b7cdd52954abd46ee48e7925 Mon Sep 17 00:00:00 2001 From: Filipe Cavalcanti Date: Fri, 12 Sep 2025 12:38:14 -0300 Subject: [PATCH] documentation: add docs for romfs defconfig on Espressif devices Update the documentation for ESP32-S2|S3|C3|C6|H2, supporting romfs defconfig. Signed-off-by: Filipe Cavalcanti --- .../esp32c3/boards/esp32c3-generic/index.rst | 53 +++++++++++++++++ .../esp32c6/boards/esp32c6-devkitc/index.rst | 53 +++++++++++++++++ .../esp32c6/boards/esp32c6-devkitm/index.rst | 53 +++++++++++++++++ .../esp32h2/boards/esp32h2-devkit/index.rst | 53 +++++++++++++++++ .../esp32/boards/esp32-devkitc/index.rst | 53 +++++++++++++++++ .../esp32s2/boards/esp32s2-saola-1/index.rst | 53 +++++++++++++++++ .../esp32s3/boards/esp32s3-devkit/index.rst | 59 ++++++++++++++++++- 7 files changed, 374 insertions(+), 3 deletions(-) diff --git a/Documentation/platforms/risc-v/esp32c3/boards/esp32c3-generic/index.rst b/Documentation/platforms/risc-v/esp32c3/boards/esp32c3-generic/index.rst index bc10b6112e..11891b6a02 100644 --- a/Documentation/platforms/risc-v/esp32c3/boards/esp32c3-generic/index.rst +++ b/Documentation/platforms/risc-v/esp32c3/boards/esp32c3-generic/index.rst @@ -399,6 +399,59 @@ This same configuration enables the usage of the RMT peripheral and the example Please note that this board contains an on-board WS2812 LED connected to GPIO8 and, by default, this config configures the RMT transmitter in the same pin. +romfs +----- + +This configuration demonstrates the use of ROMFS (Read-Only Memory File System) to provide +automated system initialization and startup scripts. ROMFS allows embedding a read-only +filesystem directly into the NuttX binary, which is mounted at ``/etc`` during system startup. + +**What ROMFS provides:** + +* **System initialization script** (``/etc/init.d/rc.sysinit``): Executed after board bring-up +* **Startup script** (``/etc/init.d/rcS``): Executed after system init, typically used to start applications + +**Default behavior:** + +When this configuration is used, NuttX will: + +1. Create a read-only RAM disk containing the ROMFS filesystem +2. Mount the ROMFS at ``/etc`` +3. Execute ``/etc/init.d/rc.sysinit`` during system initialization +4. Execute ``/etc/init.d/rcS`` for application startup + +**Customizing startup scripts:** + +The startup scripts are located in: +``boards/risc-v/esp32c3/common/src/etc/init.d/`` + +* ``rc.sysinit`` - System initialization script +* ``rcS`` - Application startup script + +To customize these scripts: + +1. **Edit the script files** in ``boards/risc-v/esp32c3/common/src/etc/init.d/`` +2. **Add your initialization commands** using any NSH-compatible commands + +**Example customizations:** + +* **rc.sysinit** - Set up system services, mount additional filesystems, configure network. +* **rcS** - Start your application, launch daemons, configure peripherals. This is executed after the rc.sysinit script. + +Example output:: + + *** Booting NuttX *** + [...] + rc.sysinit is called! + rcS file is called! + NuttShell (NSH) NuttX-12.8.0 + nsh> ls /etc/init.d + /etc/init.d: + . + .. + rc.sysinit + rcS + rtc --- diff --git a/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitc/index.rst b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitc/index.rst index 45caf93cce..7c3b83bb60 100644 --- a/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitc/index.rst +++ b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitc/index.rst @@ -423,6 +423,59 @@ This same configuration enables the usage of the RMT peripheral and the example Please note that this board contains an on-board WS2812 LED connected to GPIO8 and, by default, this config configures the RMT transmitter in the same pin. +romfs +----- + +This configuration demonstrates the use of ROMFS (Read-Only Memory File System) to provide +automated system initialization and startup scripts. ROMFS allows embedding a read-only +filesystem directly into the NuttX binary, which is mounted at ``/etc`` during system startup. + +**What ROMFS provides:** + +* **System initialization script** (``/etc/init.d/rc.sysinit``): Executed after board bring-up +* **Startup script** (``/etc/init.d/rcS``): Executed after system init, typically used to start applications + +**Default behavior:** + +When this configuration is used, NuttX will: + +1. Create a read-only RAM disk containing the ROMFS filesystem +2. Mount the ROMFS at ``/etc`` +3. Execute ``/etc/init.d/rc.sysinit`` during system initialization +4. Execute ``/etc/init.d/rcS`` for application startup + +**Customizing startup scripts:** + +The startup scripts are located in: +``boards/risc-v/esp32c6/common/src/etc/init.d/`` + +* ``rc.sysinit`` - System initialization script +* ``rcS`` - Application startup script + +To customize these scripts: + +1. **Edit the script files** in ``boards/risc-v/esp32c6/common/src/etc/init.d/`` +2. **Add your initialization commands** using any NSH-compatible commands + +**Example customizations:** + +* **rc.sysinit** - Set up system services, mount additional filesystems, configure network. +* **rcS** - Start your application, launch daemons, configure peripherals. This is executed after the rc.sysinit script. + +Example output:: + + *** Booting NuttX *** + [...] + rc.sysinit is called! + rcS file is called! + NuttShell (NSH) NuttX-12.8.0 + nsh> ls /etc/init.d + /etc/init.d: + . + .. + rc.sysinit + rcS + rtc --- diff --git a/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/index.rst b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/index.rst index 88f4a6438c..6087332ee1 100644 --- a/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/index.rst +++ b/Documentation/platforms/risc-v/esp32c6/boards/esp32c6-devkitm/index.rst @@ -338,6 +338,59 @@ This same configuration enables the usage of the RMT peripheral and the example Please note that this board contains an on-board WS2812 LED connected to GPIO8 and, by default, this config configures the RMT transmitter in the same pin. +romfs +----- + +This configuration demonstrates the use of ROMFS (Read-Only Memory File System) to provide +automated system initialization and startup scripts. ROMFS allows embedding a read-only +filesystem directly into the NuttX binary, which is mounted at ``/etc`` during system startup. + +**What ROMFS provides:** + +* **System initialization script** (``/etc/init.d/rc.sysinit``): Executed after board bring-up +* **Startup script** (``/etc/init.d/rcS``): Executed after system init, typically used to start applications + +**Default behavior:** + +When this configuration is used, NuttX will: + +1. Create a read-only RAM disk containing the ROMFS filesystem +2. Mount the ROMFS at ``/etc`` +3. Execute ``/etc/init.d/rc.sysinit`` during system initialization +4. Execute ``/etc/init.d/rcS`` for application startup + +**Customizing startup scripts:** + +The startup scripts are located in: +``boards/risc-v/esp32c6/common/src/etc/init.d/`` + +* ``rc.sysinit`` - System initialization script +* ``rcS`` - Application startup script + +To customize these scripts: + +1. **Edit the script files** in ``boards/risc-v/esp32c6/common/src/etc/init.d/`` +2. **Add your initialization commands** using any NSH-compatible commands + +**Example customizations:** + +* **rc.sysinit** - Set up system services, mount additional filesystems, configure network. +* **rcS** - Start your application, launch daemons, configure peripherals. This is executed after the rc.sysinit script. + +Example output:: + + *** Booting NuttX *** + [...] + rc.sysinit is called! + rcS file is called! + NuttShell (NSH) NuttX-12.8.0 + nsh> ls /etc/init.d + /etc/init.d: + . + .. + rc.sysinit + rcS + rtc --- diff --git a/Documentation/platforms/risc-v/esp32h2/boards/esp32h2-devkit/index.rst b/Documentation/platforms/risc-v/esp32h2/boards/esp32h2-devkit/index.rst index d9b3f79ce0..a0789642f4 100644 --- a/Documentation/platforms/risc-v/esp32h2/boards/esp32h2-devkit/index.rst +++ b/Documentation/platforms/risc-v/esp32h2/boards/esp32h2-devkit/index.rst @@ -355,6 +355,59 @@ This same configuration enables the usage of the RMT peripheral and the example Please note that this board contains an on-board WS2812 LED connected to GPIO8 and, by default, this config configures the RMT transmitter in the same pin. +romfs +----- + +This configuration demonstrates the use of ROMFS (Read-Only Memory File System) to provide +automated system initialization and startup scripts. ROMFS allows embedding a read-only +filesystem directly into the NuttX binary, which is mounted at ``/etc`` during system startup. + +**What ROMFS provides:** + +* **System initialization script** (``/etc/init.d/rc.sysinit``): Executed after board bring-up +* **Startup script** (``/etc/init.d/rcS``): Executed after system init, typically used to start applications + +**Default behavior:** + +When this configuration is used, NuttX will: + +1. Create a read-only RAM disk containing the ROMFS filesystem +2. Mount the ROMFS at ``/etc`` +3. Execute ``/etc/init.d/rc.sysinit`` during system initialization +4. Execute ``/etc/init.d/rcS`` for application startup + +**Customizing startup scripts:** + +The startup scripts are located in: +``boards/risc-v/esp32h2/common/src/etc/init.d/`` + +* ``rc.sysinit`` - System initialization script +* ``rcS`` - Application startup script + +To customize these scripts: + +1. **Edit the script files** in ``boards/risc-v/esp32h2/common/src/etc/init.d/`` +2. **Add your initialization commands** using any NSH-compatible commands + +**Example customizations:** + +* **rc.sysinit** - Set up system services, mount additional filesystems, configure network. +* **rcS** - Start your application, launch daemons, configure peripherals. This is executed after the rc.sysinit script. + +Example output:: + + *** Booting NuttX *** + [...] + rc.sysinit is called! + rcS file is called! + NuttShell (NSH) NuttX-12.8.0 + nsh> ls /etc/init.d + /etc/init.d: + . + .. + rc.sysinit + rcS + rtc --- diff --git a/Documentation/platforms/xtensa/esp32/boards/esp32-devkitc/index.rst b/Documentation/platforms/xtensa/esp32/boards/esp32-devkitc/index.rst index 6aa571a457..0828f4e0b3 100644 --- a/Documentation/platforms/xtensa/esp32/boards/esp32-devkitc/index.rst +++ b/Documentation/platforms/xtensa/esp32/boards/esp32-devkitc/index.rst @@ -924,6 +924,59 @@ to ESP32 GPIO 4 and run:: nsh> ws2812esp32 0 +romfs +----- + +This configuration demonstrates the use of ROMFS (Read-Only Memory File System) to provide +automated system initialization and startup scripts. ROMFS allows embedding a read-only +filesystem directly into the NuttX binary, which is mounted at ``/etc`` during system startup. + +**What ROMFS provides:** + +* **System initialization script** (``/etc/init.d/rc.sysinit``): Executed after board bring-up +* **Startup script** (``/etc/init.d/rcS``): Executed after system init, typically used to start applications + +**Default behavior:** + +When this configuration is used, NuttX will: + +1. Create a read-only RAM disk containing the ROMFS filesystem +2. Mount the ROMFS at ``/etc`` +3. Execute ``/etc/init.d/rc.sysinit`` during system initialization +4. Execute ``/etc/init.d/rcS`` for application startup + +**Customizing startup scripts:** + +The startup scripts are located in: +``boards/xtensa/esp32/common/src/etc/init.d/`` + +* ``rc.sysinit`` - System initialization script +* ``rcS`` - Application startup script + +To customize these scripts: + +1. **Edit the script files** in ``boards/xtensa/esp32/common/src/etc/init.d/`` +2. **Add your initialization commands** using any NSH-compatible commands + +**Example customizations:** + +* **rc.sysinit** - Set up system services, mount additional filesystems, configure network. +* **rcS** - Start your application, launch daemons, configure peripherals. This is executed after the rc.sysinit script. + +Example output:: + + *** Booting NuttX *** + [...] + rc.sysinit is called! + rcS file is called! + NuttShell (NSH) NuttX-12.8.0 + nsh> ls /etc/init.d + /etc/init.d: + . + .. + rc.sysinit + rcS + rtc --- diff --git a/Documentation/platforms/xtensa/esp32s2/boards/esp32s2-saola-1/index.rst b/Documentation/platforms/xtensa/esp32s2/boards/esp32s2-saola-1/index.rst index 2901da7ee6..15110fe53d 100644 --- a/Documentation/platforms/xtensa/esp32s2/boards/esp32s2-saola-1/index.rst +++ b/Documentation/platforms/xtensa/esp32s2/boards/esp32s2-saola-1/index.rst @@ -475,6 +475,59 @@ This same configuration enables the usage of the RMT peripheral and the example Please note that this board contains an on-board WS2812 LED connected to GPIO18 and, by default, this config configures the RMT transmitter in the same pin. +romfs +----- + +This configuration demonstrates the use of ROMFS (Read-Only Memory File System) to provide +automated system initialization and startup scripts. ROMFS allows embedding a read-only +filesystem directly into the NuttX binary, which is mounted at ``/etc`` during system startup. + +**What ROMFS provides:** + +* **System initialization script** (``/etc/init.d/rc.sysinit``): Executed after board bring-up +* **Startup script** (``/etc/init.d/rcS``): Executed after system init, typically used to start applications + +**Default behavior:** + +When this configuration is used, NuttX will: + +1. Create a read-only RAM disk containing the ROMFS filesystem +2. Mount the ROMFS at ``/etc`` +3. Execute ``/etc/init.d/rc.sysinit`` during system initialization +4. Execute ``/etc/init.d/rcS`` for application startup + +**Customizing startup scripts:** + +The startup scripts are located in: +``boards/xtensa/esp32s2/common/src/etc/init.d/`` + +* ``rc.sysinit`` - System initialization script +* ``rcS`` - Application startup script + +To customize these scripts: + +1. **Edit the script files** in ``boards/xtensa/esp32s2/common/src/etc/init.d/`` +2. **Add your initialization commands** using any NSH-compatible commands + +**Example customizations:** + +* **rc.sysinit** - Set up system services, mount additional filesystems, configure network. +* **rcS** - Start your application, launch daemons, configure peripherals. This is executed after the rc.sysinit script. + +Example output:: + + *** Booting NuttX *** + [...] + rc.sysinit is called! + rcS file is called! + NuttShell (NSH) NuttX-12.8.0 + nsh> ls /etc/init.d + /etc/init.d: + . + .. + rc.sysinit + rcS + rtc --- diff --git a/Documentation/platforms/xtensa/esp32s3/boards/esp32s3-devkit/index.rst b/Documentation/platforms/xtensa/esp32s3/boards/esp32s3-devkit/index.rst index 631c5aab42..fa70170112 100644 --- a/Documentation/platforms/xtensa/esp32s3/boards/esp32s3-devkit/index.rst +++ b/Documentation/platforms/xtensa/esp32s3/boards/esp32s3-devkit/index.rst @@ -639,7 +639,7 @@ Enables PM support. You can define standby mode and sleep mode delay time:: You can also define an EXT1 wakeup for both sleep modes by selecting which RTC GPIO will be used and the logic level that will trigger it:: - + $ make menuconfig -> Board Selection -> [*] PM EXT1 Wakeup @@ -829,6 +829,59 @@ Please note that this board contains an on-board WS2812 LED connected to GPIO48 (or GPIO38, depending on the board version) and, by default, this config configures the RMT transmitter in the same pin. +romfs +----- + +This configuration demonstrates the use of ROMFS (Read-Only Memory File System) to provide +automated system initialization and startup scripts. ROMFS allows embedding a read-only +filesystem directly into the NuttX binary, which is mounted at ``/etc`` during system startup. + +**What ROMFS provides:** + +* **System initialization script** (``/etc/init.d/rc.sysinit``): Executed after board bring-up +* **Startup script** (``/etc/init.d/rcS``): Executed after system init, typically used to start applications + +**Default behavior:** + +When this configuration is used, NuttX will: + +1. Create a read-only RAM disk containing the ROMFS filesystem +2. Mount the ROMFS at ``/etc`` +3. Execute ``/etc/init.d/rc.sysinit`` during system initialization +4. Execute ``/etc/init.d/rcS`` for application startup + +**Customizing startup scripts:** + +The startup scripts are located in: +``boards/xtensa/esp32s3/common/src/etc/init.d/`` + +* ``rc.sysinit`` - System initialization script +* ``rcS`` - Application startup script + +To customize these scripts: + +1. **Edit the script files** in ``boards/xtensa/esp32s3/common/src/etc/init.d/`` +2. **Add your initialization commands** using any NSH-compatible commands + +**Example customizations:** + +* **rc.sysinit** - Set up system services, mount additional filesystems, configure network. +* **rcS** - Start your application, launch daemons, configure peripherals. This is executed after the rc.sysinit script. + +Example output:: + + *** Booting NuttX *** + [...] + rc.sysinit is called! + rcS file is called! + NuttShell (NSH) NuttX-12.8.0 + nsh> ls /etc/init.d + /etc/init.d: + . + .. + rc.sysinit + rcS + rtc --- @@ -985,13 +1038,13 @@ board terminal:: nsh> spislv -x 5 1a2b3c4d5e -This command enqueues the data sequence ``1a2b3c4d5e`` in the slave buffer. +This command enqueues the data sequence ``1a2b3c4d5e`` in the slave buffer. On the next transfer, the external SPI master should receive this data back from the slave. By default, SPI2 pins are used for the slave interface. The exact pin mapping depends on the ESP32-S3 DevKit version and can be adjusted through -``menuconfig`` under *System type → SPI configuration*. +``menuconfig`` under *System type → SPI configuration*. sta_softap ----------