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 <filipe.cavalcanti@espressif.com>
This commit is contained in:
Filipe Cavalcanti 2025-09-12 12:38:14 -03:00 committed by Alan C. Assis
parent eb00c1317d
commit dda00d30bf
7 changed files with 374 additions and 3 deletions

View file

@ -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
---

View file

@ -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
---

View file

@ -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
---

View file

@ -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
---

View file

@ -924,6 +924,59 @@ to ESP32 GPIO 4 and run::
nsh> ws2812esp32 0 <number_of_leds_on_strip>
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
---

View file

@ -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
---

View file

@ -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
----------