This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/nuttx-website.git
The following commit(s) were added to refs/heads/asf-site by this push: new d0b63b741 Publishing web: 51627ec89e2b02358b2ac0c43bd479968bd14064 docs: 9970e6a54ed5100599050ad63a6ae86456223c3a d0b63b741 is described below commit d0b63b741966a8b564cae873d7b0fc31f49633e4 Author: simbit18 <101105604+simbi...@users.noreply.github.com> AuthorDate: Wed Aug 6 00:35:12 2025 +0000 Publishing web: 51627ec89e2b02358b2ac0c43bd479968bd14064 docs: 9970e6a54ed5100599050ad63a6ae86456223c3a --- content/docs/10.0.0/index.html | 2 +- content/docs/10.0.1/index.html | 2 +- content/docs/10.1.0/index.html | 2 +- content/docs/10.2.0/index.html | 2 +- content/docs/10.3.0/index.html | 2 +- content/docs/11.0.0/index.html | 2 +- content/docs/12.0.0/index.html | 2 +- content/docs/12.0.0/searchindex.js | 2 +- content/docs/12.1.0/index.html | 2 +- content/docs/12.1.0/searchindex.js | 2 +- content/docs/12.10.0/index.html | 2 +- content/docs/12.10.0/searchindex.js | 2 +- content/docs/12.2.0/index.html | 2 +- .../xtensa/esp32/boards/esp32-audio-kit/index.html | 2 +- .../xtensa/esp32/boards/esp32-devkitc/index.html | 2 +- content/docs/12.2.0/searchindex.js | 2 +- content/docs/12.2.1/index.html | 2 +- content/docs/12.2.1/searchindex.js | 2 +- content/docs/12.3.0/index.html | 2 +- content/docs/12.3.0/searchindex.js | 2 +- content/docs/12.4.0/index.html | 2 +- content/docs/12.4.0/searchindex.js | 2 +- content/docs/12.5.0/index.html | 2 +- content/docs/12.5.0/searchindex.js | 2 +- content/docs/12.5.1/index.html | 2 +- content/docs/12.5.1/searchindex.js | 2 +- content/docs/12.6.0/index.html | 2 +- content/docs/12.6.0/searchindex.js | 2 +- content/docs/12.7.0/index.html | 2 +- content/docs/12.7.0/searchindex.js | 2 +- content/docs/12.8.0/index.html | 2 +- content/docs/12.8.0/searchindex.js | 2 +- content/docs/12.9.0/index.html | 2 +- content/docs/12.9.0/searchindex.js | 2 +- content/docs/latest/_sources/guides/optee.rst.txt | 83 +++++++++++++++++++--- content/docs/latest/guides/fully_linked_elf.html | 2 +- content/docs/latest/guides/optee.html | 80 ++++++++++++++++++--- .../docs/latest/guides/partially_linked_elf.html | 2 +- content/docs/latest/index.html | 2 +- content/docs/latest/searchindex.js | 2 +- content/feed.xml | 4 +- 41 files changed, 183 insertions(+), 60 deletions(-) diff --git a/content/docs/10.0.0/index.html b/content/docs/10.0.0/index.html index 2dbbcca62..1e69a9ac5 100644 --- a/content/docs/10.0.0/index.html +++ b/content/docs/10.0.0/index.html @@ -207,7 +207,7 @@ by following these <a class="reference internal" href="contributing/documentatio <div class="section" id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:16</p> +<p>Last Updated: 06 August 25 at 00:16</p> <div class="toctree-wrapper compound"> <p class="caption"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/10.0.1/index.html b/content/docs/10.0.1/index.html index 489fc79ae..2a878338b 100644 --- a/content/docs/10.0.1/index.html +++ b/content/docs/10.0.1/index.html @@ -245,7 +245,7 @@ by following these <a class="reference internal" href="contributing/documentatio <div class="section" id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:16</p> +<p>Last Updated: 06 August 25 at 00:17</p> <div class="toctree-wrapper compound"> <p class="caption"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/10.1.0/index.html b/content/docs/10.1.0/index.html index 255487fdb..9588de13f 100644 --- a/content/docs/10.1.0/index.html +++ b/content/docs/10.1.0/index.html @@ -245,7 +245,7 @@ by following these <a class="reference internal" href="contributing/documentatio <div class="section" id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:17</p> +<p>Last Updated: 06 August 25 at 00:17</p> <div class="toctree-wrapper compound"> <p class="caption"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/10.2.0/index.html b/content/docs/10.2.0/index.html index daee61ce6..6a70d07dd 100644 --- a/content/docs/10.2.0/index.html +++ b/content/docs/10.2.0/index.html @@ -246,7 +246,7 @@ by following these <a class="reference internal" href="contributing/documentatio <div class="section" id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:17</p> +<p>Last Updated: 06 August 25 at 00:17</p> <div class="toctree-wrapper compound"> <p class="caption"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/10.3.0/index.html b/content/docs/10.3.0/index.html index daee61ce6..ffa827fcf 100644 --- a/content/docs/10.3.0/index.html +++ b/content/docs/10.3.0/index.html @@ -246,7 +246,7 @@ by following these <a class="reference internal" href="contributing/documentatio <div class="section" id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:17</p> +<p>Last Updated: 06 August 25 at 00:18</p> <div class="toctree-wrapper compound"> <p class="caption"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/11.0.0/index.html b/content/docs/11.0.0/index.html index 85f8bee71..ffa827fcf 100644 --- a/content/docs/11.0.0/index.html +++ b/content/docs/11.0.0/index.html @@ -246,7 +246,7 @@ by following these <a class="reference internal" href="contributing/documentatio <div class="section" id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:18</p> +<p>Last Updated: 06 August 25 at 00:18</p> <div class="toctree-wrapper compound"> <p class="caption"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.0.0/index.html b/content/docs/12.0.0/index.html index 798e5bee0..53996740e 100644 --- a/content/docs/12.0.0/index.html +++ b/content/docs/12.0.0/index.html @@ -171,7 +171,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:18</p> +<p>Last Updated: 06 August 25 at 00:18</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.0.0/searchindex.js b/content/docs/12.0.0/searchindex.js index 23451c78c..24c78db84 100644 --- a/content/docs/12.0.0/searchindex.js +++ b/content/docs/12.0.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character [...] \ No newline at end of file +Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character [...] \ No newline at end of file diff --git a/content/docs/12.1.0/index.html b/content/docs/12.1.0/index.html index e8cb17c89..b2448265f 100644 --- a/content/docs/12.1.0/index.html +++ b/content/docs/12.1.0/index.html @@ -171,7 +171,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:18</p> +<p>Last Updated: 06 August 25 at 00:18</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.1.0/searchindex.js b/content/docs/12.1.0/searchindex.js index 00d3f6394..461025107 100644 --- a/content/docs/12.1.0/searchindex.js +++ b/content/docs/12.1.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character [...] \ No newline at end of file +Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character [...] \ No newline at end of file diff --git a/content/docs/12.10.0/index.html b/content/docs/12.10.0/index.html index a60ad5b15..b961d9c92 100644 --- a/content/docs/12.10.0/index.html +++ b/content/docs/12.10.0/index.html @@ -183,7 +183,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:30</p> +<p>Last Updated: 06 August 25 at 00:31</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.10.0/searchindex.js b/content/docs/12.10.0/searchindex.js index e82ec5217..faaf5c818 100644 --- a/content/docs/12.10.0/searchindex.js +++ b/content/docs/12.10.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr", "_tags/arch-example", "_tags/chip-a527", "_tags/chip-a64", "_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s", "_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example", "_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tags/chip-nrf52", "_tags/ [...] \ No newline at end of file +Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr", "_tags/arch-example", "_tags/chip-a527", "_tags/chip-a64", "_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s", "_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example", "_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tags/chip-nrf52", "_tags/ [...] \ No newline at end of file diff --git a/content/docs/12.2.0/index.html b/content/docs/12.2.0/index.html index 3314ebaff..5fc9245f6 100644 --- a/content/docs/12.2.0/index.html +++ b/content/docs/12.2.0/index.html @@ -172,7 +172,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:19</p> +<p>Last Updated: 06 August 25 at 00:19</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-audio-kit/index.html b/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-audio-kit/index.html index 3585a9a35..b15c31a89 100644 --- a/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-audio-kit/index.html +++ b/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-audio-kit/index.html @@ -353,7 +353,7 @@ Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) <p>Look for your PC IP address and test playing the prepared audio on your browser:</p> <figure class="align-center"> -<img alt="../../../../../_images/esp32-audio-config-file1.png" src="../../../../../_images/esp32-audio-config-file1.png" /> +<img alt="../../../../../_images/esp32-audio-config-file.png" src="../../../../../_images/esp32-audio-config-file.png" /> </figure> <p>After successfully built and flashed, connect the board to the Wi-Fi network:</p> <div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ nsh> wapi psk wlan0 mypasswd 3 diff --git a/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-devkitc/index.html b/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-devkitc/index.html index 8dbcc283f..b38a9985a 100644 --- a/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-devkitc/index.html +++ b/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-devkitc/index.html @@ -450,7 +450,7 @@ Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) <p>Look for your PC IP address and test playing the prepared audio on your browser:</p> <figure class="align-center"> -<img alt="../../../../../_images/esp32-audio-config-file.png" src="../../../../../_images/esp32-audio-config-file.png" /> +<img alt="../../../../../_images/esp32-audio-config-file1.png" src="../../../../../_images/esp32-audio-config-file1.png" /> </figure> <p>After successfully built and flashed, connect the board to the Wi-Fi network:</p> <div class="highlight-none notranslate"><div class="highlight"><pre><span></span>nsh> wapi psk wlan0 mypasswd 3 diff --git a/content/docs/12.2.0/searchindex.js b/content/docs/12.2.0/searchindex.js index 41be1fb8a..eb081f7bb 100644 --- a/content/docs/12.2.0/searchindex.js +++ b/content/docs/12.2.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file diff --git a/content/docs/12.2.1/index.html b/content/docs/12.2.1/index.html index 3314ebaff..5fc9245f6 100644 --- a/content/docs/12.2.1/index.html +++ b/content/docs/12.2.1/index.html @@ -172,7 +172,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:19</p> +<p>Last Updated: 06 August 25 at 00:19</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.2.1/searchindex.js b/content/docs/12.2.1/searchindex.js index beb8c3f8a..23077efba 100644 --- a/content/docs/12.2.1/searchindex.js +++ b/content/docs/12.2.1/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file diff --git a/content/docs/12.3.0/index.html b/content/docs/12.3.0/index.html index c1738581a..d4ef9de1e 100644 --- a/content/docs/12.3.0/index.html +++ b/content/docs/12.3.0/index.html @@ -172,7 +172,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:19</p> +<p>Last Updated: 06 August 25 at 00:20</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.3.0/searchindex.js b/content/docs/12.3.0/searchindex.js index 2a6164082..12acc4ae1 100644 --- a/content/docs/12.3.0/searchindex.js +++ b/content/docs/12.3.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file diff --git a/content/docs/12.4.0/index.html b/content/docs/12.4.0/index.html index 5339b9955..4c5645f91 100644 --- a/content/docs/12.4.0/index.html +++ b/content/docs/12.4.0/index.html @@ -179,7 +179,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:20</p> +<p>Last Updated: 06 August 25 at 00:20</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.4.0/searchindex.js b/content/docs/12.4.0/searchindex.js index 7235e6985..dcfd2fe80 100644 --- a/content/docs/12.4.0/searchindex.js +++ b/content/docs/12.4.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...] \ No newline at end of file diff --git a/content/docs/12.5.0/index.html b/content/docs/12.5.0/index.html index 281c0b7ac..a36855bc5 100644 --- a/content/docs/12.5.0/index.html +++ b/content/docs/12.5.0/index.html @@ -179,7 +179,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:21</p> +<p>Last Updated: 06 August 25 at 00:22</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.5.0/searchindex.js b/content/docs/12.5.0/searchindex.js index b17006085..448307a02 100644 --- a/content/docs/12.5.0/searchindex.js +++ b/content/docs/12.5.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...] \ No newline at end of file diff --git a/content/docs/12.5.1/index.html b/content/docs/12.5.1/index.html index cd4b3c354..9a48a295d 100644 --- a/content/docs/12.5.1/index.html +++ b/content/docs/12.5.1/index.html @@ -179,7 +179,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:23</p> +<p>Last Updated: 06 August 25 at 00:23</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.5.1/searchindex.js b/content/docs/12.5.1/searchindex.js index 19d92b838..655f6ac9e 100644 --- a/content/docs/12.5.1/searchindex.js +++ b/content/docs/12.5.1/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...] \ No newline at end of file diff --git a/content/docs/12.6.0/index.html b/content/docs/12.6.0/index.html index 8c29dc7f9..cd8d36e62 100644 --- a/content/docs/12.6.0/index.html +++ b/content/docs/12.6.0/index.html @@ -180,7 +180,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:24</p> +<p>Last Updated: 06 August 25 at 00:24</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.6.0/searchindex.js b/content/docs/12.6.0/searchindex.js index e87744afd..c2b35a08a 100644 --- a/content/docs/12.6.0/searchindex.js +++ b/content/docs/12.6.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...] \ No newline at end of file diff --git a/content/docs/12.7.0/index.html b/content/docs/12.7.0/index.html index 4adb3edfa..1d4d9540a 100644 --- a/content/docs/12.7.0/index.html +++ b/content/docs/12.7.0/index.html @@ -179,7 +179,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:25</p> +<p>Last Updated: 06 August 25 at 00:26</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.7.0/searchindex.js b/content/docs/12.7.0/searchindex.js index 42b35bc37..218af7d73 100644 --- a/content/docs/12.7.0/searchindex.js +++ b/content/docs/12.7.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...] \ No newline at end of file diff --git a/content/docs/12.8.0/index.html b/content/docs/12.8.0/index.html index 18bdd1d59..3378c8dbf 100644 --- a/content/docs/12.8.0/index.html +++ b/content/docs/12.8.0/index.html @@ -179,7 +179,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:27</p> +<p>Last Updated: 06 August 25 at 00:27</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.8.0/searchindex.js b/content/docs/12.8.0/searchindex.js index a941533e1..3f67a84c6 100644 --- a/content/docs/12.8.0/searchindex.js +++ b/content/docs/12.8.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...] \ No newline at end of file diff --git a/content/docs/12.9.0/index.html b/content/docs/12.9.0/index.html index f58244b31..1f5a4fb02 100644 --- a/content/docs/12.9.0/index.html +++ b/content/docs/12.9.0/index.html @@ -179,7 +179,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:28</p> +<p>Last Updated: 06 August 25 at 00:29</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.9.0/searchindex.js b/content/docs/12.9.0/searchindex.js index cc8c17b52..f93de1cdd 100644 --- a/content/docs/12.9.0/searchindex.js +++ b/content/docs/12.9.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/cyclictest/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/b [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/cyclictest/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/b [...] \ No newline at end of file diff --git a/content/docs/latest/_sources/guides/optee.rst.txt b/content/docs/latest/_sources/guides/optee.rst.txt index ab1adac9b..4260506e0 100644 --- a/content/docs/latest/_sources/guides/optee.rst.txt +++ b/content/docs/latest/_sources/guides/optee.rst.txt @@ -14,8 +14,16 @@ not officially supported by NuttX, and is out of the scope of this guide. The driver supports opening and closing sessions, allocating and registering shared memory, and invoking functions on OP-TEE Trusted Applications (TAs). -It does not (yet) support reverse direction commands (TA -> Normal World) -to something like a TEE supplicant. +The driver also supports, reverse direction commands called RPCs +(TA -> Normal World). Some of the RPCs are handled completely by the kernel +driver while others require the TEE supplicant userspace process to be running +by having opened (``/dev/teepriv#``). Similarly to libteec, the supplicant +is not officially supported. + +.. note:: + ``/dev/teepriv#`` is reserved solely for the supplicant and shouldn't be + used by any other NuttX application. + Enabling the OP-TEE Driver ========================== @@ -27,16 +35,14 @@ The driver is enabled using one of: - ``CONFIG_DEV_OPTEE_SMC`` All of the above require also ``CONFIG_ALLOW_BSD_COMPONENTS`` and -``CONFIG_LIBC_MEMFD_SHMFS``, which in turn requires ``CONFIG_FS_SHMFS``. So, -at a bare minimum, to enable the driver one would need something like the -following: +``CONFIG_FS_ANONMAP``. So, at a bare minimum, to enable the driver +one would need something like the following: .. code-block:: CONFIG_ALLOW_BSD_COMPONENTS=y CONFIG_DEV_OPTEE_SMC=y - CONFIG_FS_SHMFS=y - CONFIG_LIBC_MEMFD_SHMFS=y + CONFIG_FS_ANONMAP=y Each implementation (local, RPMsg, or SMC) may have further dependencies (e.g. RPMsg requires ``CONFIG_NET_RPMSG`` and more) and may have further @@ -49,10 +55,13 @@ parameters to configure (e.g. RPMsg remote CPU name through encounter issues with shared memory depending on the state of the data cache in Secure World. +If ``CONFIG_DEV_OPTEE_SMC`` is enabled we can also enable the kernel driver +for the TEE supplicant by using ``CONFIG_DEV_OPTEE_SUPPLICANT``. + Successful registration of the driver can be verified by looking into -``/dev/tee0``. For instance, incompatibility with the TEE OS running in the -system, will prevent the ``/dev/tee0`` character device from being -registered. +``/dev/tee0`` and ``/dev/teepriv0`` (for the supplicant). For instance, +incompatibility with the TEE OS running in the system, will prevent the +``/dev/tee0`` character device from being registered. IOCTLs supported ================ @@ -130,6 +139,26 @@ on success unless otherwise specified (see ``TEE_IOC_SHM_ALLOC``). returned ``.id`` field when specifying shared memory references (``tee_ioctl_param.c`` field). +- ``TEE_IOC_SUPPL_RECV`` : Receive an RPC request from the OP-TEE that needs userspace interaction from the supplicant. + + - Expects a pointer to a ``struct tee_ioctl_buf_data`` instance where the + ``.buf_ptr`` field points to a user allocated buffer that must hold a + ``struct tee_iocl_supp_send/recv_arg`` followed by a number of + ``struct tee_ioctl_param`` parameters. The ``.buf_len`` field communicates + to the kernel the length of that buffer. If the user passes a bigger number + of parameters than ``OPTEE_MAX_PARAM_NUM`` or smaller number of parameters than + the number sent by OP-TEE, the ioctl will fail. The TEE supplicant by default + uses 5 ``struct tee_ioctl_param`` parameters. + +- ``TEE_IOC_SUPPL_SEND`` : Respond to an RPC request from the OP-TEE that needed userspace interaction from the supplicant. + + - Expects a pointer to a ``struct tee_ioctl_buf_data`` instance where the + ``.buf_ptr`` field points to a user allocated buffer that must hold a + ``struct tee_iocl_supp_send/recv_arg`` followed by a number of + ``struct tee_ioctl_param`` parameters. The ``.buf_len`` field communicates + to the kernel the length of that buffer. The number of parameters depends on + the size of expected RPC response by the OP-TEE. + Typical usage ============= @@ -307,3 +336,37 @@ Typical usage } /* use result (if any) in ioc_args->params */ + +#. OP-TEE secure storage support through TEE supplicant + + .. code-block:: shell + + optee_supplicant -f /data/tee > /dev/null & + +This runs the OP-TEE supplicant in the background, using ``/data/tee`` as the +directory for the TEE file system. Output is redirected to ``/dev/null`` to +suppress standard output. Make sure that the userspace support for the +supplicant is enabled and that ``/data`` is mounted as read/write. + +With the supplicant running, secure storage objects can be created, retrieved, +and managed by Trusted Applications (TAs). In a typical workflow, a Client +Application (CA) running on NuttX invokes a command in a TA that may need to +read from or create persistent objects. In such cases, certain RPCs generated +by OP-TEE are routed from the CA to the TEE supplicant for handling (provided +the supplicant is running in the background). Once the supplicant has processed +the request, it responds using ``TEE_IOC_SUPPL_SEND``, and the kernel driver +delivers this response back to the CA in its context. + +#. OP-TEE REE time request + +In this scenario, the userspace supplicant isn't needed, as the response can be +handled directly by the kernel driver. + +An OP-TEE application can request the current time from the NuttX clock using: + + .. code-block:: c + + TEE_GetREETime(&t); + +The NuttX kernel driver will respond to the TA with the ``CLOCK_REALTIME`` +which represents the machine's best-guess as to the current wall-clock. diff --git a/content/docs/latest/guides/fully_linked_elf.html b/content/docs/latest/guides/fully_linked_elf.html index 5db4da4fd..313679c5a 100644 --- a/content/docs/latest/guides/fully_linked_elf.html +++ b/content/docs/latest/guides/fully_linked_elf.html @@ -475,7 +475,7 @@ NuttX package: <code class="docutils literal notranslate"><span class="pre">nutt <div class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version admonition"> <p class="admonition-title">Here is an alternative minimal (and possibly outdated) version</p> <div class="sphinx_collapse docutils"> -<input class="sphinx_collapse__input" id="ac771177-a734-47f2-92e0-213c3b776bee" name="ac771177-a734-47f2-92e0-213c3b776bee" type="checkbox"><label class="sphinx_collapse__label" for="ac771177-a734-47f2-92e0-213c3b776bee"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils"> +<input class="sphinx_collapse__input" id="425d4cee-6c19-4c08-b09a-149f90e8d6f1" name="425d4cee-6c19-4c08-b09a-149f90e8d6f1" type="checkbox"><label class="sphinx_collapse__label" for="425d4cee-6c19-4c08-b09a-149f90e8d6f1"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils"> <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>SECTIONS { .text 0x00000000 : diff --git a/content/docs/latest/guides/optee.html b/content/docs/latest/guides/optee.html index 53571e643..b9d3b21f5 100644 --- a/content/docs/latest/guides/optee.html +++ b/content/docs/latest/guides/optee.html @@ -241,8 +241,16 @@ interface should allow use-of/integration-with libteec, although this is not officially supported by NuttX, and is out of the scope of this guide.</p> <p>The driver supports opening and closing sessions, allocating and registering shared memory, and invoking functions on OP-TEE Trusted Applications (TAs). -It does not (yet) support reverse direction commands (TA -> Normal World) -to something like a TEE supplicant.</p> +The driver also supports, reverse direction commands called RPCs +(TA -> Normal World). Some of the RPCs are handled completely by the kernel +driver while others require the TEE supplicant userspace process to be running +by having opened (<code class="docutils literal notranslate"><span class="pre">/dev/teepriv#</span></code>). Similarly to libteec, the supplicant +is not officially supported.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p><code class="docutils literal notranslate"><span class="pre">/dev/teepriv#</span></code> is reserved solely for the supplicant and shouldn’t be +used by any other NuttX application.</p> +</div> </section> <section id="enabling-the-op-tee-driver"> <h2>Enabling the OP-TEE Driver<a class="headerlink" href="#enabling-the-op-tee-driver" title="Permalink to this heading"></a></h2> @@ -253,13 +261,11 @@ to something like a TEE supplicant.</p> <li><p><code class="docutils literal notranslate"><span class="pre">CONFIG_DEV_OPTEE_SMC</span></code></p></li> </ul> <p>All of the above require also <code class="docutils literal notranslate"><span class="pre">CONFIG_ALLOW_BSD_COMPONENTS</span></code> and -<code class="docutils literal notranslate"><span class="pre">CONFIG_LIBC_MEMFD_SHMFS</span></code>, which in turn requires <code class="docutils literal notranslate"><span class="pre">CONFIG_FS_SHMFS</span></code>. So, -at a bare minimum, to enable the driver one would need something like the -following:</p> +<code class="docutils literal notranslate"><span class="pre">CONFIG_FS_ANONMAP</span></code>. So, at a bare minimum, to enable the driver +one would need something like the following:</p> <div class="highlight-none notranslate"><div class="highlight"><pre><span></span>CONFIG_ALLOW_BSD_COMPONENTS=y CONFIG_DEV_OPTEE_SMC=y -CONFIG_FS_SHMFS=y -CONFIG_LIBC_MEMFD_SHMFS=y +CONFIG_FS_ANONMAP=y </pre></div> </div> <p>Each implementation (local, RPMsg, or SMC) may have further dependencies @@ -273,10 +279,12 @@ that in configurations with <code class="docutils literal notranslate"><span cla encounter issues with shared memory depending on the state of the data cache in Secure World.</p> </div> +<p>If <code class="docutils literal notranslate"><span class="pre">CONFIG_DEV_OPTEE_SMC</span></code> is enabled we can also enable the kernel driver +for the TEE supplicant by using <code class="docutils literal notranslate"><span class="pre">CONFIG_DEV_OPTEE_SUPPLICANT</span></code>.</p> <p>Successful registration of the driver can be verified by looking into -<code class="docutils literal notranslate"><span class="pre">/dev/tee0</span></code>. For instance, incompatibility with the TEE OS running in the -system, will prevent the <code class="docutils literal notranslate"><span class="pre">/dev/tee0</span></code> character device from being -registered.</p> +<code class="docutils literal notranslate"><span class="pre">/dev/tee0</span></code> and <code class="docutils literal notranslate"><span class="pre">/dev/teepriv0</span></code> (for the supplicant). For instance, +incompatibility with the TEE OS running in the system, will prevent the +<code class="docutils literal notranslate"><span class="pre">/dev/tee0</span></code> character device from being registered.</p> </section> <section id="ioctls-supported"> <h2>IOCTLs supported<a class="headerlink" href="#ioctls-supported" title="Permalink to this heading"></a></h2> @@ -360,6 +368,28 @@ returned <code class="docutils literal notranslate"><span class="pre">.id</span> (<code class="docutils literal notranslate"><span class="pre">tee_ioctl_param.c</span></code> field).</p></li> </ul> </li> +<li><p><code class="docutils literal notranslate"><span class="pre">TEE_IOC_SUPPL_RECV</span></code> : Receive an RPC request from the OP-TEE that needs userspace interaction from the supplicant.</p> +<ul> +<li><p>Expects a pointer to a <code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">tee_ioctl_buf_data</span></code> instance where the +<code class="docutils literal notranslate"><span class="pre">.buf_ptr</span></code> field points to a user allocated buffer that must hold a +<code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">tee_iocl_supp_send/recv_arg</span></code> followed by a number of +<code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">tee_ioctl_param</span></code> parameters. The <code class="docutils literal notranslate"><span class="pre">.buf_len</span></code> field communicates +to the kernel the length of that buffer. If the user passes a bigger number +of parameters than <code class="docutils literal notranslate"><span class="pre">OPTEE_MAX_PARAM_NUM</span></code> or smaller number of parameters than +the number sent by OP-TEE, the ioctl will fail. The TEE supplicant by default +uses 5 <code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">tee_ioctl_param</span></code> parameters.</p></li> +</ul> +</li> +<li><p><code class="docutils literal notranslate"><span class="pre">TEE_IOC_SUPPL_SEND</span></code> : Respond to an RPC request from the OP-TEE that needed userspace interaction from the supplicant.</p> +<ul> +<li><p>Expects a pointer to a <code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">tee_ioctl_buf_data</span></code> instance where the +<code class="docutils literal notranslate"><span class="pre">.buf_ptr</span></code> field points to a user allocated buffer that must hold a +<code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">tee_iocl_supp_send/recv_arg</span></code> followed by a number of +<code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">tee_ioctl_param</span></code> parameters. The <code class="docutils literal notranslate"><span class="pre">.buf_len</span></code> field communicates +to the kernel the length of that buffer. The number of parameters depends on +the size of expected RPC response by the OP-TEE.</p></li> +</ul> +</li> </ul> </section> <section id="typical-usage"> @@ -532,7 +562,37 @@ returned <code class="docutils literal notranslate"><span class="pre">.id</span> </pre></div> </div> </li> +<li><p>OP-TEE secure storage support through TEE supplicant</p> +<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>optee_supplicant<span class="w"> </span>-f<span class="w"> </span>/data/tee<span class="w"> </span>><span class="w"> </span>/dev/null<span class="w"> </span><span class="p">&</span> +</pre></div> +</div> +</li> </ol> +<p>This runs the OP-TEE supplicant in the background, using <code class="docutils literal notranslate"><span class="pre">/data/tee</span></code> as the +directory for the TEE file system. Output is redirected to <code class="docutils literal notranslate"><span class="pre">/dev/null</span></code> to +suppress standard output. Make sure that the userspace support for the +supplicant is enabled and that <code class="docutils literal notranslate"><span class="pre">/data</span></code> is mounted as read/write.</p> +<p>With the supplicant running, secure storage objects can be created, retrieved, +and managed by Trusted Applications (TAs). In a typical workflow, a Client +Application (CA) running on NuttX invokes a command in a TA that may need to +read from or create persistent objects. In such cases, certain RPCs generated +by OP-TEE are routed from the CA to the TEE supplicant for handling (provided +the supplicant is running in the background). Once the supplicant has processed +the request, it responds using <code class="docutils literal notranslate"><span class="pre">TEE_IOC_SUPPL_SEND</span></code>, and the kernel driver +delivers this response back to the CA in its context.</p> +<ol class="arabic simple"> +<li><p>OP-TEE REE time request</p></li> +</ol> +<p>In this scenario, the userspace supplicant isn’t needed, as the response can be +handled directly by the kernel driver.</p> +<p>An OP-TEE application can request the current time from the NuttX clock using:</p> +<blockquote> +<div><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">TEE_GetREETime</span><span class="p">(</span><span class="o">&</span><span class="n">t</span><span class="p">);</span> +</pre></div> +</div> +</div></blockquote> +<p>The NuttX kernel driver will respond to the TA with the <code class="docutils literal notranslate"><span class="pre">CLOCK_REALTIME</span></code> +which represents the machine’s best-guess as to the current wall-clock.</p> </section> </section> diff --git a/content/docs/latest/guides/partially_linked_elf.html b/content/docs/latest/guides/partially_linked_elf.html index 5791a2d75..32b56b032 100644 --- a/content/docs/latest/guides/partially_linked_elf.html +++ b/content/docs/latest/guides/partially_linked_elf.html @@ -501,7 +501,7 @@ NuttX package: <code class="docutils literal notranslate"><span class="pre">nutt <div class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version admonition"> <p class="admonition-title">Here is an alternative minimal (and possibly outdated) version</p> <div class="sphinx_collapse docutils"> -<input class="sphinx_collapse__input" id="0717a265-892e-4bc2-8070-1e2f2e288deb" name="0717a265-892e-4bc2-8070-1e2f2e288deb" type="checkbox"><label class="sphinx_collapse__label" for="0717a265-892e-4bc2-8070-1e2f2e288deb"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils"> +<input class="sphinx_collapse__input" id="b2b1d03d-e773-453e-80ed-5179a8d86b81" name="b2b1d03d-e773-453e-80ed-5179a8d86b81" type="checkbox"><label class="sphinx_collapse__label" for="b2b1d03d-e773-453e-80ed-5179a8d86b81"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils"> <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>SECTIONS { .text 0x00000000 : diff --git a/content/docs/latest/index.html b/content/docs/latest/index.html index 6d45c1be5..91c23ea96 100644 --- a/content/docs/latest/index.html +++ b/content/docs/latest/index.html @@ -185,7 +185,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 05 August 25 at 00:32</p> +<p>Last Updated: 06 August 25 at 00:32</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/latest/searchindex.js b/content/docs/latest/searchindex.js index 92f9290d7..da6df6cff 100644 --- a/content/docs/latest/searchindex.js +++ b/content/docs/latest/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr", "_tags/arch-example", "_tags/chip-a527", "_tags/chip-a64", "_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s", "_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example", "_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tags/chip-imx95", "_tags/ [...] \ No newline at end of file +Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr", "_tags/arch-example", "_tags/chip-a527", "_tags/chip-a64", "_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s", "_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example", "_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tags/chip-imx95", "_tags/ [...] \ No newline at end of file diff --git a/content/feed.xml b/content/feed.xml index 6ad739831..711194dfd 100644 --- a/content/feed.xml +++ b/content/feed.xml @@ -5,8 +5,8 @@ <description></description> <link>/</link> <atom:link href="/feed.xml" rel="self" type="application/rss+xml"/> - <pubDate>Tue, 05 Aug 2025 00:34:32 +0000</pubDate> - <lastBuildDate>Tue, 05 Aug 2025 00:34:32 +0000</lastBuildDate> + <pubDate>Wed, 06 Aug 2025 00:34:54 +0000</pubDate> + <lastBuildDate>Wed, 06 Aug 2025 00:34:54 +0000</lastBuildDate> <generator>Jekyll v4.3.2</generator> <item>