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

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

commit cf9c51d14485f462c1a2a091a5989fe4b8e3c3d7
Author: Felipe Moura <[email protected]>
AuthorDate: Sun Jun 7 23:23:43 2026 -0300

    Documentation/examples/rng90: add RNG90 application documentation
    
    Document configuration, usage, Kconfig enable path, and hardware validation 
for the RNG90 example.
    
    Signed-off-by: Felipe Moura <[email protected]>
---
 .../applications/examples/rng90/index.rst          | 118 +++++++++++++++++++++
 1 file changed, 118 insertions(+)

diff --git a/Documentation/applications/examples/rng90/index.rst 
b/Documentation/applications/examples/rng90/index.rst
new file mode 100644
index 00000000000..1f91ace7101
--- /dev/null
+++ b/Documentation/applications/examples/rng90/index.rst
@@ -0,0 +1,118 @@
+=============================
+``rng90`` RNG90 TRNG Example
+=============================
+
+The ``rng90`` example is a simple NuttX application that opens an RNG90 device
+node, reads random bytes, and prints them in hexadecimal format.
+
+RNG90 is a dedicated hardware random number generator IC from Microchip. It can
+be used as a companion device for microcontrollers that do not provide native
+true random number generation (TRNG).
+
+According to the Microchip RNG90 product page and linked validation artifacts,
+the device is presented as a FIPS 140-3 compliant random number generator with
+SP 800-90 A/B/C alignment, with references to NIST validation entries such as
+entropy certificate E194 and DRBG validation A3013.
+
+Microchip also positions this device for disposable/ecosystem-control
+applications, which makes it a practical choice for cost-sensitive designs.
+
+Configuration
+=============
+
+Enable this application in ``menuconfig``:
+
+- ``Application Configuration -> Examples -> Microchip RNG90 TRNG example``
+
+Required dependency:
+
+- Enable the driver in ``menuconfig``:
+  ``Device Drivers -> Cryptographic Device Drivers -> Enable Microchip RNG90 
TRNG``
+  (``CONFIG_DEV_RNG90``)
+
+Application options:
+
+- ``CONFIG_EXAMPLES_RNG90``
+- ``CONFIG_EXAMPLES_RNG90_PROGNAME`` (default: ``"rng90"``)
+- ``CONFIG_EXAMPLES_RNG90_DEVPATH`` (default: ``"/dev/rng0"``)
+- ``CONFIG_EXAMPLES_RNG90_PRIORITY``
+- ``CONFIG_EXAMPLES_RNG90_STACKSIZE``
+
+Usage
+=====
+
+From NSH::
+
+  rng90 [<devpath>] [<count>]
+
+Arguments:
+
+- ``<devpath>``: RNG90 device path (default from
+  ``CONFIG_EXAMPLES_RNG90_DEVPATH``)
+- ``<count>``: number of random bytes to read (``1..32``, default ``32``)
+
+Examples::
+
+  rng90
+  rng90 /dev/rng0 16
+
+Expected output
+===============
+
+::
+
+  RNG90 example: device /dev/rng0
+  Read 16 random byte(s):
+  3f a1 7c ...
+
+Notes
+=====
+
+- Opening the device wakes up RNG90.
+- Closing the device puts RNG90 back to sleep.
+- If ``<count>`` is outside ``1..32``, the app clamps it to ``32``.
+
+Hardware validation log
+=======================
+
+The following session was executed on real hardware to validate this example.
+
+Test setup:
+
+- Host: macOS
+- Board: ``esp32c3-devkit``
+- Serial port: ``/dev/cu.wchusbserial140``
+- Serial settings: ``115200 8N1``
+
+Console transcript::
+
+  nsh> uname -a
+  NuttX 12.6.0-RC1 4130050287-dirty Jun  7 2026 22:11:21 risc-v esp32c3-devkit
+  nsh> ls /dev/rng0
+   /dev/rng0
+  nsh> rng90
+  RNG90 example: device /dev/rng0
+  Read 32 random byte(s):
+  0d b2 71 d1 40 1f 3c 50 52 3d c6 2c a9 74 ec 60
+  44 ab 67 bb c4 34 1b ac 48 62 fe b9 fd 95 c9 cb
+  nsh> rng90 /dev/rng0 16
+  RNG90 example: device /dev/rng0
+  Read 16 random byte(s):
+  ef 82 5f b7 41 f1 48 13 5a 41 16 3a 67 1b 90 f2
+  nsh> rng90 /dev/rng0 64
+  Invalid count 64, clamping to 32
+  RNG90 example: device /dev/rng0
+  Read 32 random byte(s):
+  bb be 2f 20 7f c8 33 8d 18 90 c8 fb 94 db bc e6
+  84 41 17 6f 5a be 5a 06 c3 7b f1 30 ac f2 a6 f5
+  nsh>
+
+References
+==========
+
+- Microchip product page:
+  https://www.microchip.com/en-us/product/RNG90
+- NIST CMVP entropy certificate E194:
+  
https://csrc.nist.gov/projects/cryptographic-module-validation-program/entropy-validations/certificate/194
+- NIST CAVP DRBG validation A3013:
+  
https://csrc.nist.gov/projects/cryptographic-algorithm-validation-program/details?validation=35623

Reply via email to