You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by bt...@apache.org on 2020/01/26 19:32:33 UTC

[incubator-nuttx-website] branch asf-site updated: Publishing from 3f1569275a9d1307b2202028163a2146ab98051a

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

btashton pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 6b33a2a  Publishing from 3f1569275a9d1307b2202028163a2146ab98051a
6b33a2a is described below

commit 6b33a2a3eba9faecb3c0023e21fba2a744b389cb
Author: Brennan Ashton <ba...@brennanashton.com>
AuthorDate: Sun Jan 26 11:31:46 2020 -0800

    Publishing from 3f1569275a9d1307b2202028163a2146ab98051a
---
 content/download/index.html      |  278 +++++--
 content/feed.xml                 |    4 +-
 content/helpers/syncbbrelease.py |  125 +++
 content/releases/7.13/index.html |  424 ++++++++++
 content/releases/7.14/index.html |  403 ++++++++++
 content/releases/7.15/index.html |  415 ++++++++++
 content/releases/7.16/index.html |  516 ++++++++++++
 content/releases/7.17/index.html |  843 ++++++++++++++++++++
 content/releases/7.18/index.html |  666 ++++++++++++++++
 content/releases/7.19/index.html |  938 ++++++++++++++++++++++
 content/releases/7.20/index.html |  608 +++++++++++++++
 content/releases/7.21/index.html | 1134 +++++++++++++++++++++++++++
 content/releases/7.22/index.html | 1213 +++++++++++++++++++++++++++++
 content/releases/7.23/index.html | 1250 +++++++++++++++++++++++++++++
 content/releases/7.24/index.html |  892 +++++++++++++++++++++
 content/releases/7.25/index.html |  916 ++++++++++++++++++++++
 content/releases/7.26/index.html | 1602 ++++++++++++++++++++++++++++++++++++++
 content/releases/7.27/index.html | 1145 +++++++++++++++++++++++++++
 content/releases/7.28/index.html | 1247 +++++++++++++++++++++++++++++
 content/releases/7.29/index.html | 1242 +++++++++++++++++++++++++++++
 content/releases/7.30/index.html |  756 ++++++++++++++++++
 content/releases/7.31/index.html | 1142 +++++++++++++++++++++++++++
 content/releases/8.1/index.html  | 1305 +++++++++++++++++++++++++++++++
 content/releases/8.2/index.html  | 1119 ++++++++++++++++++++++++++
 24 files changed, 20134 insertions(+), 49 deletions(-)

diff --git a/content/download/index.html b/content/download/index.html
index bbc8d6d..3efabc7 100644
--- a/content/download/index.html
+++ b/content/download/index.html
@@ -91,58 +91,242 @@
 
 <h2 id="apache-nuttx-downloads">Apache NuttX Downloads</h2>
 
-<p>Apache NuttX is released as a source artifact, and also through Maven.</p>
+<p>Apache NuttX is released as two source artifacts one for the OS
+and another for the integrated Apps.</p>
 
 <h3 id="release-artifacts">Release Artifacts</h3>
 
-<table class="table table-hover sortable">
-    <thead>
-        <tr>
-            <th><b>Name</b></th>
-            <th><b>Archive</b></th>
-            <th><b>SHA-512</b></th>
-            <th><b>Signature</b></th>
-        </tr>
-    </thead>
-    <tbody>
-        <tr>
-            <td>Apache NuttX 8.2 (tar.gz)</td>
-            <td><a href="http://www.apache.org/dyn/closer.lua/incubator/nuttx/8.2/nuxxt/nuxxt-8.2-bin.tar.gz">tar.gz</a></td>
-            <td><a href="http://www.apache.org/dist/incubator/nuttx/8.2/nuxxt/nuxxt-8.2-bin.tar.gz.sha512">SHA-512</a></td>
-            <td><a href="http://www.apache.org/dist/incubator/nuttx/8.2/nuxxt/nuxxt-8.2-bin.tar.gz.asc">ASC</a></td>
-        </tr>
-        <tr>
-            <td>Apache NuttX 8.2 (source tar.gz)</td>
-            <td><a href="http://www.apache.org/dyn/closer.lua/incubator/nuttx/8.2/nuxxt/nuxxt-8.2-src.tar.gz">tar.gz</a></td>
-            <td><a href="http://www.apache.org/dist/incubator/nuttx/8.2/nuxxt/nuxxt-8.2-src.tar.gz.sha512">SHA-512</a></td>
-            <td><a href="http://www.apache.org/dist/incubator/nuttx/8.2/nuxxt/nuxxt-8.2-src.tar.gz.asc">ASC</a></td>
-        </tr>
-        <!--tr>
-            <td>Release Notes</td>
-            <td><a href="/releases/spark/8.2/release-notes">8.2</a></td>
-            <td></td>
-            <td></td>
-            <td></td>
-        </tr-->
-    </tbody>
-</table>
-
-<p>Choose a source distribution in either <em>tar</em> or <em>zip</em> format,
-and <a href="http://www.apache.org/dyn/closer.cgi#verify">verify</a>
-using the corresponding <em>pgp</em> signature (using the committer file in
-<a href="http://www.apache.org/dist/incubator/nuttx/KEYS">KEYS</a>).
-If you cannot do that, the <em>md5</em> hash file may be used to check that the
-download has completed OK.</p>
-
-<p>For fast downloads, current source distributions are hosted on mirror servers;
-older source distributions are in the
-<a href="http://archive.apache.org/dist/incubator/nuttx/">archive</a>.
-If a download from a mirror fails, retry, and the second download will likely
-succeed.</p>
+<div class="alert alert-warning">
+No official Apache releases have been made yet!
+</div>
 
-<p>For security, hash and signature files are always hosted at
-<a href="https://www.apache.org/dist">Apache</a>.</p>
+<div class="alert alert-warning">
+    All releases below are from prior to Apache NuttX's acceptance into the
+    Incubator. They are not Apache Software Foundation releases, and are
+    licensed primarily under the
+    <a href="https://opensource.org/licenses/BSD-3-Clause">BSD-3-Clause license </a>.
+    See COPYING file for more details on a specific releases licensing.
+</div>
 
+<table class="table">
+    <tr>
+        <th class="col-md-1">Version</th>
+        <th>Summary</th>
+        <th class="col-md-1 text-right">Archive</th>
+        <th class="col-md-2 text-right">Release&nbsp;Date</th>
+    </tr>
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/8.2/">8.2</a></td>
+                <td style="vertical-align: middle;">Release v8.2
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-8.2.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-8.2.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2019-11-16</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/8.1/">8.1</a></td>
+                <td style="vertical-align: middle;">Release v8.1
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-8.1.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-8.1.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2019-09-25</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.31/">7.31</a></td>
+                <td style="vertical-align: middle;">Release v7.31
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.31.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.31.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2019-07-27</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.30/">7.3</a></td>
+                <td style="vertical-align: middle;">Release v7.30
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.30.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.30.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2019-05-23</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.29/">7.29</a></td>
+                <td style="vertical-align: middle;">Release v7.29
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.29.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.29.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2019-04-26</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.28/">7.28</a></td>
+                <td style="vertical-align: middle;">Release v7.28
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.28.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.28.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2019-02-25</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.27/">7.27</a></td>
+                <td style="vertical-align: middle;">Release v7.27
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.27.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.27.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2019-01-08</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.26/">7.26</a></td>
+                <td style="vertical-align: middle;">Release v7.26
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.26.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.26.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2019-01-08</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.25/">7.25</a></td>
+                <td style="vertical-align: middle;">Release v7.25
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.25.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.25.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2018-06-28</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.24/">7.24</a></td>
+                <td style="vertical-align: middle;">Release v7.24
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.24.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.24.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2018-03-04</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.23/">7.23</a></td>
+                <td style="vertical-align: middle;">Release v7.23
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.23.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.23.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2018-01-01</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.22/">7.22</a></td>
+                <td style="vertical-align: middle;">Release v7.22
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.22.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.22.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2017-09-20</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.21/">7.21</a></td>
+                <td style="vertical-align: middle;">Release v7.21
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.21.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.21.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2017-06-16</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.20/">7.2</a></td>
+                <td style="vertical-align: middle;">Release v7.20
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.20.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.20.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2017-03-09</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.19/">7.19</a></td>
+                <td style="vertical-align: middle;">Release v7.19
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.19.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.19.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2017-02-02</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.18/">7.18</a></td>
+                <td style="vertical-align: middle;">Release v7.18
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.18.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.18.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2016-10-08</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.17/">7.17</a></td>
+                <td style="vertical-align: middle;">Release v7.17
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.17.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.17.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2016-08-27</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.16/">7.16</a></td>
+                <td style="vertical-align: middle;">Release v7.16
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.16.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.16.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2016-06-01</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.15/">7.15</a></td>
+                <td style="vertical-align: middle;">Release v7.15
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.15.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.15.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2016-03-26</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.14/">7.14</a></td>
+                <td style="vertical-align: middle;">Release v7.14
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.14.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.14.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2016-01-28</td>
+            </tr>
+        
+    
+        
+            <tr>
+                <td style="vertical-align: middle; line-height: 2.5em;" class="col-md-1"><a href="/releases/7.13/">7.13</a></td>
+                <td style="vertical-align: middle;">Release v7.13
+</td>
+                <td style="vertical-align: middle;" class="col-md-1 text-right"><a href="https://bitbucket.org/nuttx/nuttx/downloads/nuttx-7.13.tar.gz">OS</a>/<a href="https://bitbucket.org/nuttx/nuttx/downloads/apps-7.13.tar.gz">Apps</a></td>
+                <td style="vertical-align: middle;" class="col-md-2 text-right">2016-01-28</td>
+            </tr>
+        
+    
+</table>
 
   </div>
 </div>
diff --git a/content/feed.xml b/content/feed.xml
index cf7ca2f..8356e4b 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>Sun, 05 Jan 2020 19:56:54 -0800</pubDate>
-    <lastBuildDate>Sun, 05 Jan 2020 19:56:54 -0800</lastBuildDate>
+    <pubDate>Sun, 26 Jan 2020 11:31:45 -0800</pubDate>
+    <lastBuildDate>Sun, 26 Jan 2020 11:31:45 -0800</lastBuildDate>
     <generator>Jekyll v3.8.5</generator>
     
       <item>
diff --git a/content/helpers/syncbbrelease.py b/content/helpers/syncbbrelease.py
new file mode 100644
index 0000000..21b9b25
--- /dev/null
+++ b/content/helpers/syncbbrelease.py
@@ -0,0 +1,125 @@
+'''
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+'''
+
+import requests
+
+RELEASES = [
+    ('7.13', '2016-01-28'),
+    ('7.14', '2016-01-28'),
+    ('7.15', '2016-03-26'),
+    ('7.16', '2016-06-01'),
+    ('7.17', '2016-08-27'),
+    ('7.18', '2016-10-08'),
+    ('7.19', '2017-02-02'),
+    ('7.20', '2017-03-09'),
+    ('7.21', '2017-06-16'),
+    ('7.22', '2017-09-20'),
+    ('7.23', '2018-01-01'),
+    ('7.24', '2018-03-04'),
+    ('7.25', '2018-06-28'),
+    ('7.26', '2019-01-08'),
+    ('7.27', '2019-01-08'),
+    ('7.28', '2019-02-25'),
+    ('7.29', '2019-04-26'),
+    ('7.30', '2019-05-23'),
+    ('7.31', '2019-07-27'),
+    ('8.1',  '2019-09-25'),
+    ('8.2',  '2019-11-16'),
+]
+
+BB_DL_BASE_URL = 'https://bitbucket.org/nuttx/nuttx/downloads/'
+
+RELEASE_HEADER = '''---
+layout: page
+released: true
+apache: false
+title: {version}
+date: {date}
+summary: >
+    {summary}
+
+artifact-root: "{artifactroot}"
+checksum-root: "{checksumroot}"
+key-file: "{keyfile}"
+
+source-os-dist:
+    - "{osfile}"
+source-app-dist:
+    - "{appsfile}"
+
+---
+'''
+
+SITE_HEADER = '''
+<!--
+{% comment %}
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to you under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+{% endcomment %}
+-->
+
+{% include JB/setup %}
+'''
+
+
+def fetch_readme(release):
+    readme_fn = 'nuttx-' + release.replace('.', '_') + '-README.txt'
+    readme = requests.get(BB_DL_BASE_URL+readme_fn)
+    readme.raise_for_status()
+    body = readme.text
+    return body
+
+
+def format_release(release):
+    release_dict = {
+        'version': release[0],
+        'summary': f'Release v{release[0]}',
+        'date': release[1],
+        'artifactroot': BB_DL_BASE_URL,
+        'checksumroot': '',
+        'keyfile': '',
+        'osfile': f'nuttx-{release[0]}.tar.gz',
+        'appsfile': f'apps-{release[0]}.tar.gz',
+    }
+    header = RELEASE_HEADER.format(**release_dict)
+    readme = fetch_readme(release[0])
+    page = header+'\n'+SITE_HEADER+'\n'+readme
+    return page
+
+
+def main():
+    for release in RELEASES:
+        page = format_release(release)
+        with open(f'output/{release[0]}.md', 'w') as rpage:
+            rpage.write(page)
+
+if __name__ == '__main__':
+    main()
diff --git a/content/releases/7.13/index.html b/content/releases/7.13/index.html
new file mode 100644
index 0000000..d646d0d
--- /dev/null
+++ b/content/releases/7.13/index.html
@@ -0,0 +1,424 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>7.13</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/">
+              <img src="/assets/themes/apache/img/logo.png" width="30">
+              Apache NuttX
+          </a>
+        </div>
+        <nav class="navbar-collapse collapse" role="navigation">
+          <ul class="nav navbar-nav navbar-right">
+            <li id="community">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
+               <ul class="dropdown-menu dropdown-left">
+                <li><a href="/community">Get Involved</a></li>
+                <li><a href="/community-members">Who we are</a></li>
+               </ul>
+            </li>
+            <li><a href="https://github.com/apache/incubator-nuttx">GitHub</a></li>
+            <li id="apache">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+               <ul class="dropdown-menu">
+                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li><a href="http://www.apache.org/security/">Security</a></li>
+                <li><a href="http://www.apache.org/events/current-event">Events</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                </ul>
+            </li>
+          </ul>
+        </nav><!--/.navbar-collapse -->
+      </div>
+    </div>
+
+
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit 7.13">
+  <h1></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="nuttx-713-release-notes">NuttX-7.13 Release Notes</h2>
+
+<p>The 113th release of NuttX, Version 7.13, was made on December 5, 2015,
+and is available for download from the Bitbucket.org website.  Note
+that release consists of two tarballs:  nuttx-7.13.tar.gz and
+apps-7.13.tar.gz.  These are available from:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://bitbucket.org/patacongo/nuttx/downloads
+https://bitbucket.org/nuttx/apps/downloads
+</code></pre></div></div>
+
+<p>Both may be needed (see the top-level nuttx/README.txt file for build
+information).</p>
+
+<p>Additional new features and extended functionality:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - External RTC:  Added OS support for external RTC chips.
+  - boardctl():  Add a command to the boardctl() interface to obtain a
+    board unique ID.
+
+* File Systems:
+
+  - TMPFS:  Add support for a new TMPFS, RAM file system.  The TMPFS
+    file system does not require any significant amount of memory
+    itself.  It will grow dynamically as files are added and shrink back
+    when files are deleted.  A very low overhead way to retain temporary
+    files.
+  - VFS:  The VFS was extended to support standard file operations on
+    block drivers (open, close, read, write, etc.).  The open() interface
+    accomplishes this by creating a temporary characer driver to mediate
+    the character oriented accesses to tje block driver.
+  - HOSTFS:  Added a HOSTFS file system for use with the simulator.  The
+    HOSTFS file system mounts in the simulated Nuttx context by provides
+    proxied access to the file system on the host PC.  This is useful for
+    providing file system content and nonvolatile storage of files in the
+    simulation environment.  From Ken Pettit.
+  - MTD/PROCFS:  Add an interface to un-register an MTD procfs entry.
+    From Ken Pettit.
+  - filemtd:  A new MTD conversion layer that will convert a regular file
+    (or driver file) to an MTD device.  This is useful for testing on the
+    simulation using the HOSTFS.  From Ken Pettit.
+  - PROCFS:  Extended to include networking entries in the procfs. Device
+    status, device statistics, and network statistics are now available
+    from the PROCFS.
+  - PROCFS:  The PROCFS file system can now be configured so that it
+    supports runtime registration of PROCFS entries with
+    CONFIG_FS_PROCFS_REGISTER=y.
+
+* Graphics/Graphic Drivers:
+
+  - ST7565 Driver:  Extend to include support for the ERC12864-3. From
+    Pierre-noel Bouteville.
+
+* Common Device Drivers:
+
+  - User buttons: Added a character driver to support application access
+    to board buttons.  Supports notification of button activity via
+    signals.
+  - User LEDs:  Added a character driver to support application access
+    to on-board LEDs.
+  - Zero Cross: Added a Zero Cross device driver support.  From Alan
+    Carvalho de Assis.
+  - MAX6675:  Added support to Thermocouple-to-Digital converter MAX6675.
+    From Alan Carvalho de Assis.
+  - BCH:  Block-to-character (BCH) driver should forward ioctl() calls
+    to the contained block driver.
+  - S25FL1xx:  Added a S25FL1xx QuadSPI FLASH driver.
+  - On-Chip FLASH: Added an upper half MTD device that can use the
+    interfaces defined in included/nuttx/progmem.h to provide a
+    standard MTD driver.
+  - Serial: Implemented high level DMA infrastructure for serial
+    devices.  From Max Neklyudov.
+  - AT24XX:  Add support for multiple AT24xx EEPROM parts, each with
+    unique I2C addresses, but otherwise identical.
+  - External RTC:  Added drivers for external I2C RTC chips: DS3102,
+    DS1307, DS3231, DS3232, and NXP PCF85263.
+  - W25: Added support for byte write mode to the W25 FLASH driver. From
+    Ken Pettit.
+  - dev/loop:  Added a loop character device.  losetup() and loteardown()
+    should not be called directory from applications. Rather, these
+    functions are now available as IOCTL commands to the loop driver.
+  - dev/smart:  Added support for a /dev/smart loop device. From Ken
+    Pettit.
+
+* Networking:
+
+  - Driver Statistics: Most network drivers do not support statistics.
+    Those that do only supported them when DEBUG is enabled.  Each
+    driver collected an architecture specific set of statistics and
+    there was no common mechanism to view those statistics.  Thus,
+    the driver feature was mostly useless.  This release standardizes
+    the driver statistics and puts the definition in the common network
+    device structure defined in netdev.h where they can be accessed by
+    network applications.  All Ethernet drivers that collect statistics
+    have been adapted to use these common statistics.
+
+* Simulation Platform:
+
+  - W25 FLASH:  Added support for W25 FLASH simulation. From Ken Pettit.
+  - HOSTFS: Added support for the HOSTFS file system (see "File Systems",
+    above).
+
+* Atmel SAMV7:
+
+  - SAME70:  Added support for the SAME70 family of chips.
+  - Tickless: SAMV7 now supports the tickless mode of operation.
+
+* Atmel SAMV7 Drivers:
+
+  - MPU:  Added MPU and protected build support.
+  - QSPI:  Added a QuadSPI FLASH driver.  This driver operates in the
+    memory-mapped, Serial Memory Mode (SMM).
+  - FLASH:  Added support to write on-chip FLASH.
+  - Timer/Counter:  TC driver ported to SAMV7 from the SAMA5.  Free-running
+    and one-short timer logic also ported.
+  - PCK: Brought programmable clock (PCK) logic from SAMA5 into SAMV7.
+  - Timer/Counter:  Support PCK6 as an optional source for the timer/
+    counter clock.
+
+* Atmel SAMV7 Boards:
+
+  - SAME70-Xplained:  Add NSH and networking configurations for the
+    SAME70 Xplained board.  Includes verified support for serial console,
+    LEDs, buttons, SDRAM, HSMCI SD card, and networking.
+  - SAMV7-XULT and SAME70-Xplained: If Tickless mode is selected then
+    enable PCK6 as a timer/counter clock source
+
+* STMicro STM32:
+
+  - CCM PROCFS: Is no longer a part of the 'base' procfs entries and can
+    now only be supported via run time registration with
+    CONFIG_FS_PROCFS_REGISTER=y.
+
+* STMicro STM32 Drivers:
+
+  - Timers:  Add a compatible lower-half timer driver for use with the
+    common timer upper-half driver.  From Wail Khemir.
+
+* STMicro STM32 Boards:
+
+  - STM32F4-Discovery: Add low level support for the Zero Cross driver
+    for the STM32F4-Discovery.  From Alan Carvalho de Assis.
+  - STM32F4-Discovery: Add board config to support for the MAX6675. From
+    Alan Carvalho de Assis.
+
+* C Library/Header Files:
+
+  - bsearch():  Added the bsearch() function from NetBSD.
+  - freopen():  Added support for freopen().
+  - strftime():  Added day-of-week support (when avaialable).
+
+* Tools:
+
+  - nxstyle: Add crappy style checking tool nxstyle.c.  See thee tools/
+    README file for more info.
+
+* Applications: NSH
+
+  - mksmartfs command: Add configuration option to supported multiple
+    rootdirectories. From Ken Pettit.
+  - Add support for 'basename' and 'dirname' commands.
+  - set command:  Like bash, NSH set command now strips off any leading
+    or trailing whitespace.
+  - mount command: The mount commands now accepts mount options
+    (currently needed only for the hostfs file system).  From Ken
+    Pettit.
+  - losetup command:  NSH no longer calls losetup() and loteardown
+    directly. Now it opens /dev/loop and accomplishes these things
+    using ioctl() calls.
+  - ifconfig command:  If CONFIG_NETDEV_STATISTICS=y, then print the
+    network driver statistics in the ifconfig.
+  - ifconfig, ifup, and ifdown:  These commands now uses /proc/net/&lt;dev&gt;
+    to view network device configuration and status and /proc/net/stat
+    to show network statistics.  A consequence of this is that you
+    cannot view this network information if the procfs is not enabled
+    and mounted at /proc.
+  - losmart command:  Added a new NSH losmart command.  losmart setups
+    up a loop device for the smart MTD driver similar to losetup but
+    with different syntax.  From Ken Pettit.
+  - ps command:  The 'ps' command now uses /proc/&lt;pid&gt;/ to obtain task
+    status information.  A consequence of this is that you cannot use
+    the 'ps' command if the procfs is not enabled and mounted at /proc.
+ 
+* Applications: apps/system:
+
+  - apps/system/hexed:  Port the hexed command line hexadeciamal editor
+     to Nuttx.  See http://apps.venomdev.net/hexed/.
+
+* Applications: apps/fsutils:
+
+  - apps/fsutils/smartfs: Move into apps/fsutils from kernel, now uses
+    only open and ioctl.  From Ken Pettit.
+
+* Applications: apps/examples:
+
+  - apps/examples/fstest:  Add a generic file system test.  This is
+    essentially the same as examples/smart, but has all of the SmartFS
+    specific logic ripped out.  This was created for testing the new
+    TMPFS.
+  - apps/examples/zerocross: Add a Zero Cross application example. From
+    Alan Carvalho de Assis.
+  - apps/examples/media:  Add a simple test for access of media via a
+    block driver or MTD driver.
+</code></pre></div></div>
+
+<p>Bugfixes.  Only the most critical bugfixes are listed here (see the
+ChangeLog for the complete list of bugfixes and for additional, more
+detailed bugfix information):</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - Fixed an error in clock_timespec_subtract().  Found by Lok.
+  - pthreads: CRITICAL BUGFIX: Logic was wiping out the indication that
+    of the type of a pthread.  Hence, it could be confused as a task.
+    Found because this was causing a crash when /proc/nnn/cmdline was
+    printed.
+
+* File System/Block Drivers:
+
+  - SMART MTD: Fix some Smart wear-leveling bugs.  Fixed SmartFS wear
+    level error that occurs when the logical sector size is too small to
+    save all wear level status bytes in a single sector.  Logical
+    sectors 1 and 2 were simply not being allocated and then the
+    read_sector and write_sector routines were failing.  From Ken
+    Pettit.
+
+* Graphics/Graphic Drivers:
+
+  - ILI9432:  Fixed errors in orientation. Portrait, RPortrait, and 
+    Landscript should work correly now.  They were displayed mirrored.
+    From  Marco Krahl.
+
+* Common Drivers:
+
+  - CAN:  Fix a problem in the CAN upper-half driver that occurs only
+    for CAN hardware that support a H/W FIFO of outgoing CAN messages.
+    In this case, there can be a hang condition if both the H/W and
+    S/W FIFOs are both full.  In that case, there may be no event to
+    awaken the upper half driver.  Add a new (conditional) CAN upper
+    half interface called can_txready() that can be used by the lower
+    half driver to avoid this hang condition.
+  - MS58xx:  Fix some issues with initialization and with CRC
+    calculation.  From Karim Keddam.
+  - W25: Fixed W25 FLASH driver page read/write logic. From Ken Pettit.
+
+* Atmel SAMV7 Drivers:
+
+  - USART1 pin configuration: Reconfigure System I/O when using USART1.
+    From Frank Benkert.
+  - MCAN:  Added a call to can_txready() to the MCAN driver.
+
+* STMicro STM32 Drivers:
+
+  - stm32 F4:  Fix some TIM12 pin mappings.  From Max Kriegleder.
+
+* STMicro STM32 Boards:
+
+  - STM32F429i-Disco:  Calculated partition boundries based on page
+    block sizes but mtd_partition() is expecting calculations based on
+    erase block size. From Alan Carvalho de Assis.
+
+* C Library/Header Files:
+
+  - sys/types.h: When building on a 64-bit machine, the size of size_t
+    should be 64-bits. In general, I believe that sizeof(size_t) should
+    be the same as sizeof(uinptr_t).  mmsize_t should always be 32-bits
+    in any event.  The last change to stddef has been backed out.  With
+    these changes, the simulator builds without errors or warnings an a
+    64-bit machine.
+
+* Applications: apps/nshlib:
+
+  - The I/O buffer, g_iobuffer, should not be a global buffer.  That
+    will not work in an environment where there are multiple NSH
+    sessions.  The I/O buffer must, instead, be a part part of the
+    session-specific data defined in nsh_console.h.
+</code></pre></div></div>
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2020 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache NuttX is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2019 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+
diff --git a/content/releases/7.14/index.html b/content/releases/7.14/index.html
new file mode 100644
index 0000000..2b08e99
--- /dev/null
+++ b/content/releases/7.14/index.html
@@ -0,0 +1,403 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>7.14</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/">
+              <img src="/assets/themes/apache/img/logo.png" width="30">
+              Apache NuttX
+          </a>
+        </div>
+        <nav class="navbar-collapse collapse" role="navigation">
+          <ul class="nav navbar-nav navbar-right">
+            <li id="community">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
+               <ul class="dropdown-menu dropdown-left">
+                <li><a href="/community">Get Involved</a></li>
+                <li><a href="/community-members">Who we are</a></li>
+               </ul>
+            </li>
+            <li><a href="https://github.com/apache/incubator-nuttx">GitHub</a></li>
+            <li id="apache">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+               <ul class="dropdown-menu">
+                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li><a href="http://www.apache.org/security/">Security</a></li>
+                <li><a href="http://www.apache.org/events/current-event">Events</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                </ul>
+            </li>
+          </ul>
+        </nav><!--/.navbar-collapse -->
+      </div>
+    </div>
+
+
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit 7.14">
+  <h1></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="nuttx-714-release-notes">NuttX-7.14 Release Notes</h2>
+
+<p>The 114th release of NuttX, Version 7.14, was made on January 28, 2016,
+and is available for download from the Bitbucket.org website.  Note
+that release consists of two tarballs:  nuttx-7.14.tar.gz and
+apps-7.14.tar.gz.  These are available from:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://bitbucket.org/patacongo/nuttx/downloads
+https://bitbucket.org/nuttx/apps/downloads
+</code></pre></div></div>
+
+<p>Both may be needed (see the top-level nuttx/README.txt file for build
+information).</p>
+
+<p>Additional new features and extended functionality:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - modules:  Add support for kernel modules:  insmod, rmmod, support
+    functions.  procfs support for user lsmod functioniality.
+  - SIGEV_THREAD:  Add support for the SIGEV_THREAD notification method
+    in struct sigevent.  This initial implementation will only work in
+    the FLAT build since it utilizes the work queue for signal
+    callbacks.  See the top-level TODO file for additional details.
+  - 64-Bit Timer:  If the 64-bit timer is selected, then use it whenever
+    clock_systimer() is called rather then chopping the 64-bit timer
+    down to 32-bits.  Add a new type, systime_t to represent the 32- or
+    64-bit system timer. This eliminates clock_systimer32() and
+    clock_systime64(); there is now only clock_systimer().
+
+* Common Device Drivers:
+
+  - Telnet Driver: Move the Telnet driver from apps/ to
+    nuttx/drivers/net.  It is a driver a belongs in the OS.   Now works
+    like the loop device:  A new interface called telnet_initialize()
+    registers a telnet session "factory" device at /dev/telnet.  Via
+    ioctl, the factory device can create instances of the telnet
+    character devices at /dev/telnetN to support Telnet sessions.
+  - PCA9635PW:  Add a driver for the PCA9635PW I2C LED driver IC which
+    can be used to control the intensity of up to 16 LEDs.  From
+    Alexander Entinger.
+  - MCP9844: Driver for the MCP9844 I2C digital temperature sensor with
+    a selectable resolution.  From Alexander Entinger.
+  - PN532: Add driver for the NXP PN532 NFC-chip.  From Janne Rosberg
+    and others at Offcode Ltd.
+  - LSM9DS1:  Add driver for the STMicro LSM9DS1 chip. The LSM9DS1 is a
+    system-in-package featuring a 3D digital linear acceleration sensor,
+    a 3D digital angular rate sensor, and a 3D digital magnetic sensor.
+    From Paul Alexander Patience.
+  - CAN Interface:  Add more extensive error reporting capaibility to
+    the CAN interface definitions.  From Frank Benkert.
+  - SPI Interface:  Add an optional hwfeatures() method to the SPI
+    interface.
+
+* Simulation Platform:
+
+  - NSH configuration uses the custom start up scriptwith a read-only
+    passwd file.  Includes hooks for an MOTD message.
+
+* ARMv7-R
+
+  - ARMv7-R:  Add basic architecture support for the ARMv7-R processor
+    family.
+
+* Atmel AVR:
+
+  - Atmega2560:  Add support for the Atmega2560.  From Dimitry Kloper.
+  - debug.h: Add an AVR-specific header file used when the AVR MEMX
+    pointer is used.  From Dimitri Kloper.
+
+* Atmel AVR Boards:
+
+  - Arduino-Mega2560: Add support for the Arduino-Mega2560.  From
+    Dimitry Koper.
+
+* Atmel SAMV7 Drivers:
+
+  - Port the TRNG driver from the SAMA5D3/4 to the SAMV7.
+  - Port the WDT driver from the SAMA5D3/4 to the SAMV7.
+  - Add an RSWDT driver.
+
+* Atmel SAMV7 Boards:
+
+  - SAMV71-XULT:  Add configuration for testing OS modules.
+
+* Freescale Kinetis:
+
+  - MK60N512VLL100: Add support for the MK60N512VLL100 Kinetis part.
+    From Andrew Webster.
+
+* Freescale Kinetis Boards:
+
+  - ENET:  Numerous updates to the Kinetis ENET driver. That driver is
+    now functional. From Andrew Webster.
+
+* NXP LPC43xx Boards:
+
+  - WaveShare LPC4337-WS:  Support for the WaveShare LPC4337-WS board.
+    From Lok Tep.
+
+* STMicro STM32 Drivers:
+
+  - Timer Capture:  Add timer input capture driver.  From Pierre-Noel
+    Bouteville.
+
+* STMicro STM32 Boards:
+
+  - Olimex STM32 H407:  Added a port to the Olimex STM32 H407 board.
+    This board features the STMicro STM32F407ZGT6 (144 pins).
+    Contributed by Neil Hancock.
+
+* TI TMS550 Boards:
+
+  - TI LaunchXL-TMS57004:  Add basic board support for TI LaunchXL-
+    TMS57004.  Still a work in progress.
+
+* C Library/Header Files:
+
+  - sys/time.h: Add timeradd(), timersub(), timerclear(), timerisset(),
+    and timercmp() as macros. These are non-POSIX interfaces, but
+    included in most BSD deriviatives, including Linux.  From Manuel St𨮊.
+  - AVR support: Introduce support for Atmel toolchain in-flash strings.
+    Atmel toolchain AVR compiler provides a transparent in-flash object
+    support using __flash and __memx symbols. The former indicates to
+    compiler that this is a flash-based object.  The later used with
+    pointer indicates that the referenced object may reside either in
+    flash or in RAM. The compiler automatically makes 32-bit pointer
+    with flag indicating whether referenced object is in flash or RAM
+    and generates code to access either in run-time. Thus, any function 
+    hat accepts __memx object can transparently work with RAM and flash
+    objects.
+    For platforms with a Harvard architecture and a very small RAM like
+    AVR this allows to move all constant strings used in trace messages
+    to flash in the instruction address space, releasing resources for
+    other things. This change introduces IOBJ and IPTR type qualifiers.
+    The 'I' indicates that the object may lie in instruction space on a
+    Harvard architecture machine. For platforms that do not have __flash
+    and __memx or similar symbols IOBJ and IPTR are empty, making the
+    types equivalent to, for example, 'const char' and 'const char*'.
+    For Atmel compiler these will become 'const __flash char' and
+    'const __memx char*'.  All printf() functions and syslog() functions
+    are changed so that the qualifier is used with the format parameter.
+    From Dimitry Kloper.
+  - debug.h:  Add configuration to support an architecture-specific
+    debug.h header file. From Dimitri Kloper.
+  - netdb:  Add support for the use of a DNS resolver file like
+    /etc/resolv.conf.
+  - TEA:  Add an implementation of the Tiny Encryption Algorithm.
+  - math32.h:  Add some utilities to support 64-bit arithmetic
+    operations for platforms that do not support long long types.
+
+* Tools:
+
+  - tools/cnvwindeps.c:  Add a tool that will convert paths in
+    dependencies generated by a Windows compiler so that they can be
+    used with the Cygwin make.
+  - tools/mkwindeps.sh: A script that coordinates use of cnvwindeps.exe.
+    Dependencies now work on the Cygwin platform when using a Windows 
+    ative toolchain.
+
+* Applications: NSH
+
+  - Module Commands:  Add module commands: insmod, rmmod, and lsmod.
+  - Time Command:  Add a 'time' command that may be used to time the
+    execution of other commands.
+  - Password Commands:  Add useradd, userdel, and passwd commands.
+  - MOTD:  Now supports a Message of the Day (MOTD) that will be
+    presented after the NSH greeting.
+  - Session Logins:  All sessions may be protected with logins using the
+    encrypted password in /etc/passwd.
+  - Extended Logins.  Added optional platform-specific function to
+    perform password verification and optional delay after each failed
+    login attempt.
+
+* Applications: apps/fsutils:
+
+  - apps/fsutils/passwd: Utility library for accessing a password file
+    like /etc/passwd.
+
+* Applications: apps/netutils:
+
+  - apps/netutils/telnetd:  Now creates Telnet sessions by opening a new
+    factory device at /dev/telnet and then using ioctl calls to create
+    the session character drivers at /dev/telnetN.
+  - apps/netutils/netlib:  Add netlib_get_dripv4addr() and
+    netlib_get_ipv4netmask().  From Pelle Windestam.
+
+* Applications: apps/examples:
+
+  - apps/examples/module:  Add a test harness for verifying NuttX kernel
+    modules.
+  - apps/examples/pca9635:  Add a simple test of PCA9635PW PWM LED driver.
+    From Alan Carvalho de Assis.
+  - apps/examples/ostest:  Add a test of POSIX timers using SIGEV_THREAD.
+</code></pre></div></div>
+
+<p>Bugfixes.  Only the most critical bugfixes are listed here (see the
+ChangeLog for the complete list of bugfixes and for additional, more
+detailed bugfix information):</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - pthreads: CRITICAL BUGFIX: Logic was wiping out the indication that
+    of the type of a pthread.  Hence, it could be confused as a task.
+  - waitpid:  CRITICAL BUGFIX.  Add a reference count to prevent waitpid
+    from using stale memory released by the waited-for task group.
+  - clock_systimespec():  Fix an error in a time conversion.
+
+* File System/Block Drivers:
+
+  - poll(): Fix handling of sem_tickwait() return value sem_tickwait()
+    does not return an -1+errno, it returns a negated errno value.
+    Noted by Freddie Chopin.
+
+* Common Drivers:
+
+  - TUN Driver:  Fix a compile time error in the TUN driver.  From
+    Vladimir Komendantskiy.
+  - USB Host HID Parser:  Wrong size used in memcpy().  From Hang Xu.
+  - PCA9555: Fixed a bug in the function pca9555_setbit which occurs if
+    someone tries to set one of the pins 8-15. The problem is that
+    after the check if the pin is greater than 7 the variable addr is
+    incremented and used in the Call I2C_WRITEREAD. But later in the
+    call to the I2C_WRITE buf[0] is used as address but this address is
+    not incremented as it should be. Note address does mean the address
+    to the register in the ioexpander and not the I2C address.  From
+    Stefan Kolb.
+
+* Networking:
+
+  - TCP/IOB:  Numerous fixes, mostly relate to TCP and IOB buffering
+    and race conditions.  These were necessary for for the NuttX
+    networking later to be stable in some stress testing.  From Andrew
+    Webster.
+
+* Atmel SAMV7 Drivers:
+
+  - USBHS Device: In USBHS device driver, fix check if zero length
+    packet is needed.
+
+* STMicro STM32 Drivers:
+
+  - OTG FS Host:  Fix some backward arguments to stm32_putreg().  Note
+    by Hang Xu.
+
+* Tools:
+
+  - tools/mkdeps.c:  Extended/fixed support for --winpath option.
+    Dependencies now work under Cygwin with a native Windows toolchain.
+
+* Build System:
+
+  - apps/platform/Makefile:  Use a relative path to the board directory
+    link rather than the absolute path.  For Cygwin, the absolute would
+    would need converted with cygpath.  But just using the relative path
+    is a simpler solution.
+</code></pre></div></div>
+
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2020 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache NuttX is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2019 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+
diff --git a/content/releases/7.15/index.html b/content/releases/7.15/index.html
new file mode 100644
index 0000000..aec090d
--- /dev/null
+++ b/content/releases/7.15/index.html
@@ -0,0 +1,415 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>7.15</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/">
+              <img src="/assets/themes/apache/img/logo.png" width="30">
+              Apache NuttX
+          </a>
+        </div>
+        <nav class="navbar-collapse collapse" role="navigation">
+          <ul class="nav navbar-nav navbar-right">
+            <li id="community">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
+               <ul class="dropdown-menu dropdown-left">
+                <li><a href="/community">Get Involved</a></li>
+                <li><a href="/community-members">Who we are</a></li>
+               </ul>
+            </li>
+            <li><a href="https://github.com/apache/incubator-nuttx">GitHub</a></li>
+            <li id="apache">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+               <ul class="dropdown-menu">
+                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li><a href="http://www.apache.org/security/">Security</a></li>
+                <li><a href="http://www.apache.org/events/current-event">Events</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                </ul>
+            </li>
+          </ul>
+        </nav><!--/.navbar-collapse -->
+      </div>
+    </div>
+
+
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit 7.15">
+  <h1></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="nuttx-715-release-notes">NuttX-7.15 Release Notes</h2>
+
+<p>The 115th release of NuttX, Version 7.15, was made on March 27, 2016,
+and is available for download from the Bitbucket.org website.  Note
+that release consists of two tarballs:  nuttx-7.15.tar.gz and
+apps-7.15.tar.gz.  These are available from:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://bitbucket.org/nuttx/nuttx/downloads
+https://bitbucket.org/nuttx/apps/downloads
+</code></pre></div></div>
+
+<p>Both may be needed (see the top-level nuttx/README.txt file for build
+information).</p>
+
+<p>Additional new features and extended functionality:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - Add a state variable that provides the current level of OS
+    initialization.  This is needed by some logic that may attempt to
+    run early in the start-up sequence but cannot run if a sufficient
+    level of initialization has not yet occurred.
+  - Spinlocks:  Add interface definitions for to support spinlocks as
+    needed for multi-CPU configurations.
+  - SMP support.  Support for Symmetric Multi-Processing (SMP) added.
+    This affects many internal data structures, spinlock extensions
+    and renaming of interrupt enable/disable interfaces, new platform
+    interfaces to support CPU initialization and inter-actions, and
+    new application interfaces to manage CPU affinity.  The changes
+    are too extensive to summarize here; see the SMP Wiki page at
+    http://www.nuttx.org/doku.php?id=wiki:nxinternal:smp.  The
+    new platform interfaces are also described in the NuttX porting
+    guide: http://www.nuttx.org/doku.php?id=documentation:portingguide.
+    Only partially verified; awaiting hardware for the complete
+    verification.
+  - TLS:  Basic definitions needed to support thread local storage
+    (TLS).  TLS is not used anywhere yet (and may not be used in the
+    near future either).
+  - Performance Monitoring:  Add a configuration option to buffer
+    RTOS instrumentation data in an in-memory buffer.
+  - boardctl():  Add boardctl() support that will permit applications
+    to control USB devices.
+
+* File Systems/Block Drivers:
+
+  - procfs:  Add /proc/kmm entry that shows that state of the kernel
+    heap.  Only useful in PROTECTED and KERNEL build modes where there
+    is a kernel heap.
+  - procfs:  Add support for showing CPU in the tast status if SMP is
+    enabled.
+
+* Networking:
+
+  - ARP: Add support for IOCTL commands to manage the ARP table.
+  - IEEE 802.15.4 and 6LowPAN:  There are some radio drivers and a
+    directory structure is in place.  However, most of this
+    development is occurring on a fork and is not yet available in the
+    NuttX repositories.  Hopefully in NuttX-7.16.
+
+* Common Device Drivers:
+
+  - ADS1242:  Driver for the  24-Bit Differential Input ADC ADS1242 that
+    communicates via SPI with a MCU. Reading the ADC conversion result
+    as well as configuring the ADC, setting the input channel, etc. is
+    implemented via ioctl calls.  However, it does not yet implement
+    the standard ADC interface.  From Alexander Entinger.
+  - U-Blox Modem:  Add an upper half driver for the U-Blox Modem.  From
+    Vladimir Komendantskiy. 
+  - I2C: Add an I2C, "upper half", character drivers to support raw I2C
+    data transfers for test applications.
+  - RGB LED: Add a driver to manage a RGB LED via PWM.  From Alan
+    Carvalho de Assis.
+  - Performance Monitoring:  Add a character driver that will allow an
+    application to read buffered scheduler instrumentation data.
+
+* Simulation Platform:
+
+  - SMP:  Add multi-CPU support to the simulation to support SMP
+    investigation.  There are issues with the simulation and it is less
+    than perfect but sufficient for some very preliminary testing of
+    the core SMP feature.
+
+* ARMv7-A, ARMv7-R, and ARMv7-M:
+
+  - ARMv7-A, ARMv7-R, and ARMv7-M: Add test-and-set logic and
+    definitions needed to supports spinlocks.
+  - ARMv7-A: Added MPCOre Generic Interrupt Controller (GICv2) and
+    Global Timer support
+  - ARMv7-A: Now includes in MCU-specific hooks needed for SMP support.
+
+* Atmel SAMV7 Drivers:
+
+  - HSMSI: HSMCI driver can now be configured to handle unaligned data
+    buffers.
+
+* NXP Freescale LPC11xx/17xx/43xx and LPC2378 Drivers:
+
+  - I2C: Backported the LPC43XX I2C driver, replacing the LPC11XX,
+    LPC17XX, and LPC2378 I2C drivers.  This gives us the I2C_TRANSFER
+    method in all I2C drivers.
+
+* NXP Freescale LPC17xx Boards:
+
+  - Support for the u-blox GSM and GPS module evaluation board with
+    NXP LPCExpresso LPC1768.  The GSM module is one of LISA-C200,
+    LISA-U200 or SARA-G350. The GPS module is one of MAX-M7 or
+    MAX-M8.  From Vladimir Komendantskiy.
+
+* NXP Freescale i.MX6:
+
+  - Basic support is in place for the i.MX6 Quad/Dual MCUs.
+    Verification is, however, waiting for the receipt of hardware.
+
+* NXP Freescale i.MX6 Boards:
+
+  - Sabre-6Quad:  Basic support for the NXP/Freescale Sabre 6Quad
+    board is in place but waiting for hardware for verification.
+
+* STMicro STM32:
+
+  - STM32F46xx:  Support for STM32F46xx from Paul Alexander Patience
+  - STM32L4:  Add support for the STM32L4 family.  From Sebastien
+    Lorquet.
+
+* STMicro STM32 Boards:
+
+  - STM32F4 Discovery: Add PWM support for the onboard RGB LED. From
+    Alan Carvalho de Assis.
+  - Nucleo-L476:  Add support for the Nucleo-L476 board.  From Sebastien
+    Lorquet.
+  - STM32L476VG Discovery: Add support for the STM32L476VG Discovery
+    board.  From Dave.
+
+* Tools:
+
+  - tools/refesh.sh now has a --silent option so that it can be used in
+    batch modes without human input.
+
+* Build System:
+
+  - Added a 'make olddefconfig' target that will refresh a .config file
+    without interaction.
+
+* Applications: NSH
+
+  - 'arp':  Add an 'arp' command that will support access to the OS ARP
+    table.
+  - 'ps':  The 'ps' command will show CPU if SMP is enabled.
+
+* Applications: apps/netutils:
+
+  - apps/netutils/chat: Chat logic contributed by Vladimir
+    Komendantskiy.
+  - apps/netutils/netlib:  Add utility functions to support accesses to
+    the ARP table.
+
+* Applications: apps/examples:
+
+  - apps/examples/chat: Chat example contributed by Vladimir
+    Komendantskiy.
+  - apps/sysem/ubloxmodem:  Example to control the power
+    state of the modem in nsh.  From  Vladimir Komendantskiy.
+  - apps/examples/leds: An example to demonstrate use of LED driver.
+  - apps/examples/smp:  Add a test to verify SMP configurations.
+  - apps/examples/rgbled:  Example using the RGB LED driver to drive an
+    RGB LED via PWM.  From Alan Carvalho de Assis.
+  - apps/examples/ostest:  Add a test of TLS.
+  - apps/examples/sched_note:  Add a simple example to exercise the
+    scheduler instrumentation logic.
+</code></pre></div></div>
+
+<p>Bugfixes.  Only the most critical bugfixes are listed here (see the
+ChangeLog for the complete list of bugfixes and for additional, more
+detailed bugfix information):</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - Signals:  Move the list of signal actions from the TCB to the group
+    structure.  Signal handlers are not per thread but, rather, per task
+    group.  I know, I preferred it the other way too, but this is more
+    compliant with POSIX.
+  - Semaphores: Add an internal, non-standard interface to reset a
+    semaphore count.  This is sometimes needed by drivers in order to
+    recover from error conditions.  Were previously using sem_init()
+    which is both inappropriate and incorrect if the semaphore count is
+    negative.
+  - Low-Priority Work Queue:  Fix logic to find an IDLE worker thread;
+    the test for busy was backward.  From Linfei Chen.
+
+* File System/Block Drivers:
+
+  - FAT:  Add an option to force all transfers to be performed
+    indirectly using the FAT file system's internal sector buffers.
+    This is a fix for the case where the user provided buffers are not
+    properly aligned for DMA (as with THTTPD).
+  - MTD:  Increase block size in mtd_geometry_s to 32-bits.
+
+* Common Drivers:
+
+  - I2C:  Restructured the I2C interface as necessary to eliminate some
+    thread-safety issues inherent in the legacy I2C interface design.
+    This effects the interface definition, all I2C clients, and all low-
+    level I2C drivers.  I have used caution, but I still expect a change
+    of this magnitude to introduce some errors. Any bug reports of bug
+    fixes will be much appreciated.
+  - I2C_RESET:  Eliminate up_i2creset().  It should not be a global
+    function; Now it is an I2C interface method.
+  - PCA555:  Add logic to make the PCA555 driver thread safe.
+  - syslog: If syslog timestamping is enabled, don't try to get the time
+    if the timer hardware has not yet been initialized.
+  - AT24xx driver: Correct missing address calculation logic.  From Frank
+    Benkert.
+
+* Networking:
+
+  - Networking drivers that support CONFIG_NET_NOINTS:  Fix a race
+    condition that can cause the TX poll timer to stop running.  From
+    Manuel Stuhn.
+  - Timer Poll:  Fix some logic when there are multiple network
+    interfaces.  In this case, TCP timeout events can really only being
+    processed when the poll from the correct device is received.
+
+* Atmel SAMV7 Drivers:
+
+  - SAMV7 USB HS device:  The USB driver has had some issue that would
+    occasionally cause loss of packets.  Back last December, a fix was
+    put in for this but the fix apparently worsens the problem; now
+    causing hangs.  The basic problem is that the number of busy banks
+    (NBUSYBKS) status is not real time but is delayed.  This was fixed;
+    now when the DMA completes and NBUSYBKS &gt; 0, the NBUSYBK is
+    interrupt is enabled and the operations are deferred until NBUSYBKS
+    is truly zero.
+
+* Tools:
+
+  - tools/testbuild.sh:  .config files were not being updated because
+    (a) kconfig-conf was being called in the wrong directory and (b)
+    apps/Kconfig had not yet been created.  Now uses 'make
+    olddefconfig'.
+
+* Applications: apps/system:
+
+  - apps/system/i2c:  The I2C tool now obeys it OS interfacing: it now
+    uses an I2C character driver to access the I2C bus.
+  - apps/system/cdcacm, usbmsc, and composite:  Use new boardctl()
+    instead of calling directly in the OS when possible.
+
+* Applications: apps/netutils:
+
+  - apps/netutils/dhcpd: DHCPD no longer calls directly into the OS but
+    uses the new network IOCTL commands to modify the ARP table.
+
+* Applications: apps/modbus:
+
+  - apps/modbus/nuttx/portserial.c:  Was not returning an error on
+    failure to open the device driver.  From Olololshka kokoko.
+
+* Applications: apps/examples:
+
+  - apps/examples/usbserial, composite, usbterm:  Use new boardctl()
+    instead of calling directly in the OS when possible.  There are
+    still a few bad OS calls for USB device interfaces that do not yet
+    have boardctl() commands.
+
+* Applications: apps/platform:
+
+  - Moved C++ initialization logic out of the RTOS and into the
+    application space, specifically to apps/platform/board, where it
+    belongs.
+</code></pre></div></div>
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2020 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache NuttX is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2019 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+
diff --git a/content/releases/7.16/index.html b/content/releases/7.16/index.html
new file mode 100644
index 0000000..23fe827
--- /dev/null
+++ b/content/releases/7.16/index.html
@@ -0,0 +1,516 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>7.16</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/">
+              <img src="/assets/themes/apache/img/logo.png" width="30">
+              Apache NuttX
+          </a>
+        </div>
+        <nav class="navbar-collapse collapse" role="navigation">
+          <ul class="nav navbar-nav navbar-right">
+            <li id="community">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
+               <ul class="dropdown-menu dropdown-left">
+                <li><a href="/community">Get Involved</a></li>
+                <li><a href="/community-members">Who we are</a></li>
+               </ul>
+            </li>
+            <li><a href="https://github.com/apache/incubator-nuttx">GitHub</a></li>
+            <li id="apache">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+               <ul class="dropdown-menu">
+                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li><a href="http://www.apache.org/security/">Security</a></li>
+                <li><a href="http://www.apache.org/events/current-event">Events</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                </ul>
+            </li>
+          </ul>
+        </nav><!--/.navbar-collapse -->
+      </div>
+    </div>
+
+
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit 7.16">
+  <h1></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="nuttx-716-release-notes">NuttX-7.16 Release Notes</h2>
+
+<p>The 116th release of NuttX, Version 7.16, was made on June 1, 2016,
+and is available for download from the Bitbucket.org website.  Note
+that release consists of two tarballs:  nuttx-7.16.tar.gz and
+apps-7.16.tar.gz.  These are available from:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://bitbucket.org/nuttx/nuttx/downloads
+https://bitbucket.org/nuttx/apps/downloads
+</code></pre></div></div>
+
+<p>Both may be needed (see the top-level nuttx/README.txt file for build
+information).</p>
+
+<p>Additional new features and extended functionality:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - Power Management: Add activity domain to all PM interfaces and
+    driver callbacks.  If CONFIG_PM_NDOMAINS == 1, then the legacy
+    behavior is preserved.  If CONFIG_PM_NDOMAINS &gt; 1, then multiple
+    PM domains are supported.  This will allow separate control for
+    certain power management groups.  For example, a network can be
+    shut down without affect an ongoing UI (and vice versa).
+  - board_app_initialize():  board_app_initialize() now accepts an
+    argument that may be used to support initialization in different
+    configurations.
+
+* File System and Block and MTD Drivers:
+
+  - N25Qxxx: Add MTD support for Micron N25Qxxx family of QSPI flash.
+    From Dave (ziggurat29).
+  - SST26F:  Add an MTD driver for SST26F spi/qspi flash devices (SPI
+    mode only).  From Sebastien Lorquet.
+  - File Descriptor Detach: Add logic to detach a file structure from a
+    file descriptor. This is for use only within the OS.  It permits an
+    open file or driver to be used across multiple threads.
+</code></pre></div></div>
+
+<ul>
+  <li>
+    <p>Networking and Network Drivers:</p>
+
+    <ul>
+      <li>listen()/accept():  Separate out psock_listen() and psock_accepti()
+for internal, thread independent OS usage (i.e., without a socket
+descriptor).</li>
+      <li>VNC Server:  Add support for a VNC server.  This logic is code
+complete and functional, but not well tested.</li>
+    </ul>
+  </li>
+</ul>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Graphics and Graphic Drivers:
+
+  - Framebuffer driver:  Add a display number to each interface in order
+    to support multiple display devices.
+  - VNC Server:  Add support for a VNC server.  This logic is code
+    complete and functional, but not well tested.
+  - LCD Backpack: Add support for PCF8574 LCD Backpack driver. This
+    driver supports an interface board that is based on the PCF8574 I/O
+    expander and supports the HD44780-based (or compatible) LCD modules.
+    There are a myriad of different vendors of such, but they are
+    principally the same, save wiring and minor features like jumpers
+    for I2C addresses. This driver supports known and unknown variants.
+    From Dave (ziggurat29).
+
+* Common Device Drivers:
+
+  - RTC:  Simplify the RTC interface.  The old interface was way too
+    complex and was not fully implemented anywhere.
+  - BH1750FVI:  Add a character driver for Rohm Ambient Light Sensor
+    BH1750FVI.  From Alan Carvalho de Assis.
+  - CAN:  Improve CAN error reporting. From Frank Benkert.
+  - aes.h:  Modifications to the crypto API needed for LPC43xx.  From
+    Alexander Vasiljev.
+  - ADC:  Interface no longer uses global adc_receive() call.  Added a
+    new bind() method to the ADC interface.  Now the ADC upper half
+    driver will register its receipt-of-data callback.  This change
+    allows the ADC lower half driver to be used with a differ ADC upper
+    half.
+
+ * Simulation Platform:
+
+  - Linux Host Networking:  Enhance networking support for the
+    simulation under Linux. Includes updated support for Linux TUN/TAP,
+    and the addition of support for Linux bridge devices.  From Steve.
+
+* ARMv7-A, ARMv7-R, and ARMv7-M:
+
+  - ARMv7-M:  Convert more assembly language files for use with the IAR
+    toolchain.  From Kha Vo.
+  - ARMv7-A:  Complete re-design of SMP-related logic to initialize each
+    CPUn, n &gt; 0, when CONFIG_SMP=y.
+
+* Atmel SAMV7:
+
+  - Add a JTAG config and ERASE config to Kconfig to set the
+    CCFG_SYSIO SYSIO Pins.  From David Sidrane.
+  - System Reset: Add the up_systemreset interface to the samv7 arch.  The
+    approach is slightly different in that: 1) It enables ARCH_HAVE_RESET
+    and allows the user to set if, and for how long, to drive External
+    nRST signal. It also does not contain a default board_reset, as that
+    really should be done in the config's src if CONFIG_BOARDCTL_RESET
+    is defined.  From David Sidrane.
+
+* Atmel SAMV7 Boards:
+
+  - SAMV71-XULT: Add configuration(s) that were be used to verify VNC
+    graphics output as well as mouse and keyboard input.
+
+* NXP Freescale i.MX6 Boards:
+
+  - Sabre-6Quad:  The basic i.MX6 port is complete.  This is a minimal
+    port at present and probably still has some as-of-yet-undiscovered
+    issues.
+  - Sabre-6Quad: Basic SMP NSH configuration is now working.  But this
+    is probably only because the SMP test case does not stress the
+    logic.  There are know outstanding SMP issues as noted in the
+    Sabre-6Quad README.txt file.
+
+* NXP Freescale LPC43xx:
+
+  - LPC4337jet100: Add definitions for the LPC4337jet100 chip.  From
+    Alexander Vasiljev.
+
+* NXP Freescale LPC43xx Drivers:
+
+  - AES:  Add AES support.  From Alexander Vasiljev.
+
+* STMicro STM32:
+
+  - STM32 L4: Add configuration options to allow SRAM2 to be used for
+    heap, or not at all, and to zero-initialize it on OS start, or not
+    at all. From Dave dev@ziggurat29.com.
+  - STM32 L4: Add support for HSE and MSI clocks, and auto trim of MSI
+    to LSE (needed for USB).  From Dave (ziggurat29)
+  - STM32 L4: Add support for unique id function to arch; modified board
+    to support unique id boardctl.  From Dave (ziggurat29)
+
+* STMicro STM32 Drivers:
+
+  - STM32 F4 RTC: Add a custom RTC driver with support for alarms.  From
+    Neil Hancock.
+  - STM32 L4 QSPI: Add a QSPI driver with DMA support and (optional
+    memory mapped mode support. From Dave ziggurat29).
+  - STM32, STM32 L4, and STM32 F7 Serial:  Add support for compliant 
+    SD-style breaks. From David Sidrane.
+  - STM32 L4 CAN: Add CAN support for STM32L4.  From Sebastien Lorquet.
+  - STM32 1-Wire:  Add support for a custom 1-wire driver.  The serial
+    driver already supports a 1-wire interface, but this driver uses the
+    same serial logic to implement a lower half driver much like the
+    I2C lower half driver.  From Aleksandr Vyhovanec.
+  - STM32 L4 SPI: Add support for SPI 4 and 5 on stm32f411 chips. From
+    Konstantin Berezenko.
+  - STM32 ADC: Allow omitting use of channels in a lower part of PWM.
+    From Pierre-noel Bouteville.
+  - STM32 L4 I2C: Get I2C working for STM32L4.  From Dave (ziggurat29).
+
+* STMicro STM32 Boards:
+
+  - STM3220G-EVAL:  Add support for both the IAR and uVision GCC IDEs.
+    From Kha Vo.
+  - STM32F429I Discovery:  Add support for the uVision GCC IDE.   From
+    Kha Vo.
+  - STM32F4 Discovery: Integrate BH1750FVI driver in the STM32F4 Discovery
+    board.  From Alan Carvalho de Assis.
+  - STM32L476VG Discovery:  Add support for QSPI based N25Qxxx flash.
+    From Dave (ziggurat29)
+  - STM32L476VG Discovery: Add board ioctls for allowing user application
+    to cause QSPI memory mapped mode to be engaged and disengaged.  Also
+    partitioned QSPI flash for file system and other (eventually xip).
+    From Dave (ziggurat29)
+  - Nucleo-144: Basic port for the Nucleo-144 board with the STM32F746ZG
+    MCU.  From Kconstantin Berezenko.
+  - STM32F103 Minimum: Add support for this minimual STM32F103CBT6 "blue"
+    board.  From Alan Carvalho de Assis.
+  - STM32F411E Discovery:  Add basic configuration for stm32f411e-disco
+    board with STM32F411VE chip.  From Konstantin Berezenko.
+
+* Build/Configuration System:
+
+  - Moved NuttX repository to https://bitbucket.org/nuttx/nuttx.
+    Eliminated use of sub-modules.
+  - Add support for the IAR toolchain for the limited case of the ARMv7-M
+    architecture and the STM32 chip.  From Aleksandr Vyhovanec.
+  - make export: Pass top-level make to the script to allow -j greater
+    than 1.  From David Sidrane.
+  - fs/Kconfig:  Allow CONFIG_FS_WRITABLE to be manually selectable. This
+    is needed when there are no writable file systems, but write support
+    is still needed in BCH or FTL.
+  - arch/*/Makefile: Add definitions that can be overrided to use GCC
+    instead of LD in the final link.  From Paul Alexander Patience .
+
+* Applications: apps/netutils:
+
+  - apps/netutils/esp8266:  ESP8266 driver application.  From Pierre-noel
+    Bouteville.
+
+* Applications: apps/examples:
+
+  - apps/examples/alarm:  Add a simple test of the ALARM iotcl calls of
+    the RTC driver.
+  - apps/examples/nximage:  Add a configuration option to select
+    greyscale.
+
+* Platforms: apps/platform:
+
+  - apps/platform/nucleo-144: Add platform files for NUCLEO-144
+    (NUCLEO-F746ZG).  From Mark Olsson.
+  - apps/examples/media:  You can now override the default device driver
+    path by providing an alternal path on the command line.  From
+    Sébastien Lorquet.
+</code></pre></div></div>
+
+<p>Works-In-Progress:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* IEEE802.14.5/6LowPAN.  Hooks and framework for this effort were
+  introduced in NuttX-7.15.  Work has continued on this effort on
+  forks from the main repositories, albeit with many interruptions.
+  The completion of this wireless feature will postponed until at
+  least NuttX-7.17.
+
+* i.MX6 SMP.  Partially functional, but there is more that still
+  needs to be done.
+</code></pre></div></div>
+
+<p>Bugfixes.  Only the most critical bugfixes are listed here (see the
+ChangeLog for the complete list of bugfixes and for additional, more
+detailed bugfix information):</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - Various places:  Search for places where a stray semicolon following
+    an if condition cause the if body to be executed unconditionally.
+    Fixes in all SAM DMA logic, unionfs, OS signalling logic, and others.
+  - enter/leave_critical_section() may attempt to access task lists
+    before they have been initialized in the SMP configuration.
+
+* File System/Block Drivers:
+
+  - SMART MTD:  Return code of smart_scan not checked, can cause success
+    result in failure case, leading to 'dev' pointer being invalid. From
+    Dave (ziggurat29)
+  - mount: Fix a backward debug assertion.  Noted by David Sidrane.
+
+* Common Drivers:
+
+  - NRF24L01: Fix backward calculation of relative frequency.  Noted by
+    Henry Zhang.
+  - PCA9555 I/O expander: Fix an error in the PCA9555 driver: Under
+    certain error conditions, interrupts were not being re-enabled.
+    Sebastien Lorquet.
+  - ADS1255: Must not do SPI access from interrupt handler.  Use the
+    worker thread instead.  Must also lock the SPI bus before using it.
+  - Several SPI-based drivers modified.  All drivers that use SPI must
+    call SPI_LOCK and SPI_UNLOCK.  This is not optional.
+  - MS583730:  Fix a bug in crc computation for ms583730. Implement
+    POSIX read.
+
+* Atmel SAMV7:
+
+  - Fix typo in MATRIX register definitions.  From Stefan Kolb.
+  - SAMV7 Tickless Mode: This is a fix to a problem in the handling of
+    the oneshot timer. Due to a wrong assumption concerning the behavior
+    directly after the start of the timer/counter the function
+    sam_oneshot_cancel(…) calculates the wrong remaining time. The code
+    assumes that the counter register is zero directly after the start
+    of the timer, but this is not true. To start the time/counter a
+    software trigger is invoked, this trigger starts the timer/count and
+    sets the counter register to zero, but the reset of the counter
+    register is not performed instantly. According to the datasheet:
+    "The counter can be reset by a trigger. In this case, the counter
+    value passes to zero on the next valid edge of the selected clock."
+    Thus the counter is set to zero between 0 and USEC_PER_TICK
+    microseconds after the clock was started.
+    In my fix I use the freerun count value to determine if at least one
+    tick passed since the start of the timer and thus if the value of
+    the oneshot counter is correct. I also tried to use the function
+    up_timer_gettime(…) to achieve this but, at least if compiled with
+    no optimization the problem vanishes without using the value of the
+    function, the function call takes too long.
+    Another problem treated in the fix is that if the oneshot timer/counter
+    is canceled, we only know the remaining time with a precision of
+    USEC_PER_TICK microseconds. This means the calculated remaining time
+    is between 0 and USEC_PER_TICK microseconds  too long. To fix this I
+    subtract one tick if the calculated remaining time is greater than
+    one tick and otherwise set the remaining time to zero. By doing so
+    the measured times are much more precise as without it.  From Stefan
+    Kolb.
+
+* Atmel SAMA5:
+
+  - SAMA5:  Stefan Kolb's change to the SAMV7 Oneshot Timer should also
+    be applied to the SAMA5 oneshot time since the drivers are identical.
+
+* Atmel SAM3/4:
+
+  - SAM3/4:  Stefan Kolb's change to the SAMV7 Oneshot Timer should also
+    be applied to the SAM3/4 oneshot time since the drivers are identical.
+
+* Atmel SAMV7 Drivers:
+
+  - SAMV7 TWIHS (as well as SAM3/4 and SAMA5:  Ensure that the TWIHS
+    (i2c) hw get's its clock set when the sequence of
+    sam_i2cbus_initialize(), sam_i2cbus_uninitialize(), then
+    sam_i2cbus_initialize() or twi_reset() is called.  I found this a
+    while back in the stm32 family, so there may be more arch-es with
+    this sort of bug. I suppose any driver that has the notion of "do
+    not set the freq if it is already set" could be suspect.  From David
+    Sidrane.
+  - USBHS Device: Remove disabling of whole USB on suspend of USBHS.
+    This fix removes the disabling of the whole USB peripheral on
+    suspend interrupt. Its enough to freeze the clock instead. When
+    disabling the whole peripheral, the next wakeup-interrupt comes up
+    with an disabled clocking. The unfreeze clock has no effect, because
+    the master clock is disabled. This makes all registers, including
+    the IDR unwriteable and the IRQ falls in an endless loop blocking
+    the whole system. Furthermore the disabling of the peripheral clock
+    prevents hotplugging or reconnecting the USB.  From  Frank Benkert.
+  - MCAN: Fix missing unlock of device in MCAN mcan_txempty().  From
+    Frank Benkert.
+
+* STMicro STM32:
+
+  - STM32 L4 Clocking: Problem with resetting backup domain clears
+    clocking options set up before in *rcc.c use INITS flag to avoid
+    magic reg value to detect power up reset state of RTC correct a
+    problem clearing interrupt flags (they weren't) which prevented an
+    alarm from ever being used more than once per reset cycle.  From
+    Dave (ziggurat29)
+
+* STMicro STM32 Drivers:
+
+  - STM32L4 SPI: That STM32Lr SPI driver is quite different. They now
+    handle frames of arbitrary size between 4 and 16 bits. It was broken
+    before a new bit has to be set (RX fifo threshold) to handle &lt;= 8-bit
+    transactions. If not set, the default is 16-bit packed &gt;=8-bit
+    frames and the RXNE bit is never set (it is set when 16-bits are
+    received). weird things as always. This also add 8-bit access
+    routines to the data register, because a 16-bit access to the data
+    register when the frame size is below 9 bits is interpreted as a
+    packed dual frame exchange. Sebastien Lorquet.
+  - STM32:  Correct some bad commits that broke the LTDC display example.
+    From Marco Krahl.
+  - STM32 F4 RTC: Fix logic in F4 RTCC driver that prevent ALARM
+    interrupt.  From Neil Hancock.
+  - STM32 F1 ADC: Fix STM32 ValueLine ADC IRQ number selection. From
+    David Sidrane.
+
+* STMicro STM32 Boards:
+
+  - STM32F429I Discovery:  Correct some bad commits that broke the LTDC
+    display example.  From Marco Krahl.
+
+* TI Tiva:
+
+  - GPIO Interrupts: Fix a bug of GPIO falling-edge interrupt for tiva.
+    From Young.
+
+* C Library:
+
+  - math: Add a NAN test on 'x' in asin function of lib_asin.c. Suggested
+    by Pierre-noel Bouteville.
+
+* Build/Configuration System:
+
+  - Several Makefiles: Add .PHONY definitions to prevent 'clean up to date'
+    message weirdness when 'make clean' is done with no .config or
+    Make.defs file.
+</code></pre></div></div>
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2020 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache NuttX is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2019 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+
diff --git a/content/releases/7.17/index.html b/content/releases/7.17/index.html
new file mode 100644
index 0000000..042a506
--- /dev/null
+++ b/content/releases/7.17/index.html
@@ -0,0 +1,843 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>7.17</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/">
+              <img src="/assets/themes/apache/img/logo.png" width="30">
+              Apache NuttX
+          </a>
+        </div>
+        <nav class="navbar-collapse collapse" role="navigation">
+          <ul class="nav navbar-nav navbar-right">
+            <li id="community">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
+               <ul class="dropdown-menu dropdown-left">
+                <li><a href="/community">Get Involved</a></li>
+                <li><a href="/community-members">Who we are</a></li>
+               </ul>
+            </li>
+            <li><a href="https://github.com/apache/incubator-nuttx">GitHub</a></li>
+            <li id="apache">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+               <ul class="dropdown-menu">
+                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li><a href="http://www.apache.org/security/">Security</a></li>
+                <li><a href="http://www.apache.org/events/current-event">Events</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                </ul>
+            </li>
+          </ul>
+        </nav><!--/.navbar-collapse -->
+      </div>
+    </div>
+
+
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit 7.17">
+  <h1></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="nuttx-717-release-notes">NuttX-7.17 Release Notes</h2>
+
+<p>The 117th release of NuttX, Version 7.17, was made on July 25, 2016,
+and is available for download from the Bitbucket.org website.  Note
+that release consists of two tarballs:  nuttx-7.17.tar.gz and
+apps-7.17.tar.gz.  These are available from:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://bitbucket.org/nuttx/nuttx/downloads
+https://bitbucket.org/nuttx/apps/downloads
+</code></pre></div></div>
+
+<p>Both may be needed (see the top-level nuttx/README.txt file for build
+information).</p>
+
+<p>Additional new features and extended functionality:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* File System and Block and MTD Drivers:
+
+  - drivers/mtd: Add a driver of IS25xP SPI flash devices.  Based on
+    sst25xx driver.  From Marten Svanfeldt.
+
+* Networking and Network Drivers:
+
+  - Break out internal interface psock_ioctl().
+
+* Common Device Drivers:
+
+  - PTYs: Added support for pseduo-terminals: Device drivers that can be
+    used for communications between tasks (usually with re-directed I/O).
+    Based on existing pipe logic.
+  - Button upper half driver:  Added support for poll().
+  - CAN:  Add support for poll. From Paul Alexander Patience.
+  - GPIO:  Add support for a simple GPIO driver.  It supports only pre-
+    configured input, output, and interrupting pins with basic input and
+    output operations.  Interrupt events can lead to notification via a
+    signal.
+  - I/O Expander: Shadow-Mode: The output- and configuration registers of
+    the IO-Expander are held in the microcontrollers memory and only
+    written to the IO-Expander.  This reduces bus traffic and is more
+    error-proof than the normal read-modify-write operation. Retry Mode:
+    If enabled and an error occurs while writing to the IO-Expander the
+    current transmission is automatically repeated once. From Michael
+    Spahlinger.
+  - Pipes/FIFOs:  Add support to allocating different sizes for pipe and
+    fifo buffers.  Adds mkfifo2() and pipe2() which are just like mkfifo()
+    and pipe(), but allow control of the size of the underlying, in-memory
+    circular buffer.  Move pipe() and mkpipe() to the C library, they are
+    no longer core OS interfaces.  Capability currenty used only by PTY
+    logic to support, configurable, smaller buffers for PTYs.
+
+* SYSLOG/Debug Output:
+
+  - SYSLOG: Consolidated all SYSLOG logic in drivers/syslog.  Added an
+    abstraction layer that supports:  (1) redirection of SYSLOG outpout.
+    This is usually so that you can boot with one SYSLOG output but
+    transition to another SYSLOG output when the OS has initialialized,
+    (2) adds common serialization of interrupt output as a configuration
+    option.  Without this configuration setting, interrupt level output
+    will be asynchronous.  And (3) vsyslog is now a system call and is
+    usable with other-than-FLAT builds.
+  - SYSLOG: syslog() will now automatically redirect output to
+    lowsyslog() if called from an interrupt handler.
+  - Extended SYSLOG logic so that we can send SYSLOG output to a file.
+  - SYSLOG character device channel will now expand LF to CR-LF.
+    Controllable with a configuration option.
+  - Add a SYSLOG character device that can be used to re-direct output
+    to the SYSLOG channel (Not be be confused the the SYSLGO output to a
+    character device).
+  - Debug features are now enabled separately from debug output.
+    (1) CONFIG_DEBUG is gone. It is replaced with CONFIG_DEBUG_FEATURES.
+    (2) The macros dbg() and vdbg() have renamed as _err() and _info(),
+    respectively. This also applies to all of the variants as well,
+    XXdbg() and XXvdbg().  (3) Add a new debug level, _warn() (and
+    all variants XXwarn(), XXvwarn(), etc.). (4) Debug assertions can
+    now be enabled separately from debug output. (5) You can now enable
+    subsystem/device driver debug output at different output levels. For
+    example, CONFIG_DEBUG_FS no longer enables file system debug output
+    It enables general file system debug logic and enables selection of
+    CONFIG_DEBUG_FS_ERROR, CONFIG_DEBUG_FS_WARN, and CONFIG_DEBUG_FS_INFO.
+  - Since the SYSLOG layer now automatically handles low-level vs.
+    high-level output, the low-level (ll) variants of the debug macros
+    were eliminated.
+  - Reviewed all uses of *err().  These macro family should indicate
+    only error conditions.  Convert *err() to either *info() or add
+    ERROR:, depending on if an error is reported.
+  - _alert(): New debug macro: _alert().  This is high priority,
+     unconditional output and is used to simplify and standardize crash
+     error reporting.
+  - Many CONFIG_DEBUG_* options did not have matching macros defined in
+    include/debug.h.  Rather, there were various definitions scattered
+    throughout the sourse tree.  These were collected together and
+    centralized with single macro definitions in include/debug.h
+
+* Simulation Platform:
+
+  - Added the simulated QSPI (N25Q) flash to the simulation and extened
+    flash simulation capabilities to run with MTD drivers based on config
+    options (currently m25p, sst26 and w25). From Ken Pettit.
+
+* Atmel SAMV7 Drivers:
+
+  - SPI: SPI-Freq. 40MHz; VARSELECT; hw-features This change adds the
+    following improvements:
+
+      o Increase the allowed SPI-Frequency from 20 to 40 MHz.
+      o Correct and rename the "VARSELECT" option   This option was
+        included in the code as "CONFIG_SPI_VARSELECT" but nowhere
+        defined in a Kconfig file. The change renames it to
+        "CONFIG_SAMV7_SPI_VARSELECT" and corrects the implementation
+        according the datasheet of Atmel. In short, this option
+        switches the processor from "fixed peripheral selection"
+        (single device) to "variable peripheral selection" (multiple
+        devices on the bus).
+      o Add a new Function to the interface to control the timing and
+        delays of the chip according the ChipSelect lines. This function
+        can control the delay between the assertion of the ChipSelect and
+        the first bit, between the last bit and the de-assertion of the
+        ChipSelect and between two ChipSelects. This is needed to tune
+        the transfer according the specification of the connected devices.
+      o Add three "hw-features" for the SAMV7, which controls the behavior
+        of the ChipSelect:
+          - force CS inactive after transfer: this forces a (short) de-
+            assertion of the CS after a transfer, even if more data is
+            available in time
+          - force CS active after transfer: this forces the CS to stay
+            active after a transfer, even if the chip runs out of data.
+            Btw.: this is a prerequisit to make the LASTXFER bit working
+            at all.
+          - escape LASTXFER: this suppresses the LASTXFER bit at the end
+            of the next transfer. The "escape"-Flag is reset automatically.
+
+    From Frank Benkert
+  - TWISHS:  Driver improvements from Michael Spahlinger.
+  - GPIO-Driver fixed for Open-Drain Pins:
+
+      o sam_gpioread: Now the actual line level from the pin is read
+        back.   This is extremely important for Open-Drain Pins, which
+        can be used bidirectionally
+      o Re-Implemented twi_reset-function and enhanced it so it can be
+        called from inside the driver (see next point)
+      o Glitch-Filter: Added a configuration option to enable the twi-
+        built-in glitch filter
+      o Added a "Single Master Mode": In EMC Testing the TWI-Bus got
+        stuck because the TWI-Master detected a Multi-Master access (but
+        there is no second master). With the option "Single Master" we
+        detect these events and automatically trigger a twi_reset. We
+        also do an automatic recovery if a slave got stuck (SDA stays
+        low).
+
+    With the above changes I²C-Bus reliability in harsh environments (eg.
+    EMC) is greatly improved. The small change in the GPIO-Driver was
+    necessary because otherwise you cannot read back the correct line
+    status of Open-Drain Outputs and this is needed by the twi_reset
+    function.  From Michael Spahlinger
+
+* NXP Freescale LPC43xx Drivers:
+
+  - EMC: Extend LPC43xx EMC code to support SDRAM on a dynamic memory
+    interface.  From Vytautas Lukenskas.
+
+* NXP Freescale Kinetis:
+
+  - Kinetis K64:  Add basic support for the K64 family.  I leveraged the
+    changes from https://github.com/jmacintyre/nuttx-k64f and merged
+    into the existing kinetis code  with a lot of changes and additions
+    (like pin multiplexing definitions).
+
+* NXP Freescale Kinetis Drivers:
+
+  - Add a Kinetis USB device controller driver.  Derived from the pic32mx
+    usb driver, which uses the same usb controller.  From kfazz.
+  - Kinetis pwm support, based on the KL pwm driver.  From kfazz.
+  - Kinetis Ethernet:  Add support for the KSZ8081 PHY.
+  - Kinetis Ethernet:  Modified Ethernet driver to try all PHY addresses
+    and then only fail if the driver cannot find a usable PHY address.
+    This means that you no longer have to specific the PHY address in
+    advance.
+  - Kinetis Ethernet:  Add support for CONFIG_NET_NOINTS.  The driver no
+    longer runs the networking at interrupt level but can defer interrupt
+    work to the high-priority work queue.
+
+* NXP Freescale Kinetis Boards:
+
+  - Teensy-3.x:  Add USB support and a usbnsh configuration.
+    From kfazz (2016-06).
+  - Freedom-K64F: Add support for the NXP Freedom-K64F board at 120MHz.
+    This is primarily the work of Jordan Macintyre.  I leveraged this
+    code from https://github.com/jmacintyre/nuttx-k64f which was, itself,
+    a leverage from the old K60 TWR configuration.  This includes
+    significant corrections (LEDs, buttons, README, etc) and extensions
+    and updates to match more recent BSPs.
+  - Freedom-K64F:  Added a configuration that supports networking.
+
+* STMicro STM32:
+
+  - STM32 F1-4: Added support for the STM32F105R.  From Konstantin
+    Berezenko.
+  - STM32 F4: Added support for the STM32F76xxx and STM32F77xx
+    families. From David Sidrane.
+  - STM32 F1-4:  Add support for Tickless mode (two timer
+    implementation).  From Max Neklyudov.
+  - STM32 L4: Add support for tickless OS, and incidentally timers,
+    PWM, oneshot, free-running....  From ziggurat29.
+
+* STMicro STM32 Drivers:
+
+  - STM32 F1-4: Add the up_getc() function to STM32 in order to support
+    the minnsh configuration.  From Alan Carvalho de Assis.
+  - STM32 F7: Add SPI driver.  From David Sidrane.
+  - STM32 F7: Add SPI, I2C, and ADC drivers.  From Lok Tep.
+  - STM32 L4: Add ioctls to set/get CAN bit timing in stm32l4.  Add
+    ioctl hooks to allow future management of can id filters. From
+    Sebastien Lorquet.
+  - STM32 L4: Add some CAN mode IOCTL calls.  These will be useful for
+    device autotest when the application boots.  They are redundant
+    with the CONFIG_CAN_LOOPBACK option, which can now just be
+    interpreted as a default setting.  From Sebastien Lorquet.
+  - STM32 F1-4: Port STM32L4 CAN IOCTLs to STM32.  From Sebastien Lorquet.
+  - STM32 L4: Implementation of loopback IOCTLs.  From Sebastien
+    Lorquet.
+  - STM32 F7: Added SDMMC1 support for stm32F7 74-75.  From Lok Tep.
+  - STM32 F7: Add USB support.  From Lok Tep.
+  - STM32 F7: Added PWR, RTC, and BBSRAM support for stm32f7. From David
+    Sidrane.
+  - STM32 F7: Added STMF7xxx RTC.  From David Sidrane.
+  - STM32 F7: Added STM32F7 DBGMCU.  From David Sidrane.
+  - STM32 L4: Port support for both RX FIFOs from STM32 CAN.  From Paul
+    Alexander Patience.
+
+* STMicro STM32 Boards:
+
+  - Added a minnsh configuration for the STM32F103-Minimum board.  From
+    Alan Carvalho de Assis .
+  - Added support for the Nucleo-F767ZI board. From David Sidrane.
+  - Nucleo-144/Nucleo-F767ZI:  Add test for STM32 F7 SPI.  From David
+    Sidrane.
+  - Nucleo-144: Added SDMMC support to Nucleo-144. From David Sidrane.
+  - Olimex STM32-E407:  Add support for Olimex STM32 E407 board.  From
+    Mateusz Szafoni.
+  - Nucleo-144: Added USB OTG device to Nucleo-144.  From David Sidrane.
+  - Nucleo-144: Added bbsram test to Nucleo-144.  From David Sidrane.
+  - STM32F4 Discovery: add CAN support for STM32F4 Discovery.  From
+    Matthias Renner.
+  - STM32F4 Discovery:  added a canard configuration files.  From
+    Matthias Renner.
+  - STM32F4 Discovery: Add FPU support for ostest for the STM32F4
+    Discovery platform. From David Alessio.
+  - STM32L476 Discovery: Update stm32l476 disco to include init code for
+    smartfs and nxffs for cases where those fs are included in build.
+    From ziggurat29.
+
+* C Library/Header Files:
+
+  - include/assert.h: Check if NDEBUG is defined.  From Paul Alexander
+    Patience.
+  - assert.h: Define static assert for C++ usage.  From Paul Alexander
+    Patience.
+  - Add crc64 support. From  Paul Alexander Patience.
+  - hex2bin:  Move the portable library portion of apps/system/hex2bin
+    the C library with the OS internals.  It is used in certain internal
+    boot-loader builds.
+  - Add raise().
+  - libm: This change should significantly improve the performance of
+    single precision floating point math library functions. The vast
+    majority of changes have to do with preventing the compiler from
+    needlessly promoting floats to doubles, performing the calculation
+    with doubles, only to demote the result to float. These changes only
+    affect the math lib functions that return float. From David Alessio.
+  - printf(): If there are no streams, let printf() fall back to use
+    syslog() for output.
+  - Move pipe() and mkpipe() to nuttx/libc, they are no
+    longer core OS interfaces.  Capability currenty used only by PTY logi
+    to support, configurable, smaller buffers for PTYs.
+  - Move driver-related files from include/nuttx to include/nuttx/drivers.
+    Move driver related prototypes out of include/nuttx/fs/fs.h and into
+    new include/drivers/drivers.h.
+  - include /nuttx/lib: Move library-related files from include/nuttx to
+    include/nuttx/lib.
+
+* Build/Configuration System:
+
+  - Custom Board Configuration: Add logic to support custom board
+    directories that include a Kconfig file.  During the context phase
+    of the build, any Kconfig file in the custom board directory is
+    copied into configs/dummy, replacing the existing Kconfig file with
+    the target Kconfig file.
+  - Remove the includes/apps link to apps/include.  It is no longer
+    used.  From Sebastien Lorquet.
+
+* Tools:
+
+  - tools/tesbuild.sh will now build NxWM configurations.
+
+* Appplication Build/Configuration System:
+
+  - Change to the way that apps/ Kconfig files are generated in
+    order to better support reuse of the apps/ directory in NuttX
+    products.  Changes include: Make the full tree use wildcards
+    make.defs, Add empty preconfig rules to 'leaf' makefiles, Use
+    directory.mk for recursive dir makefiles, Individual app kconfig
+    fixes, Recursive Kconfig autogeneration, Add kconfig files for
+    pcode and tiff, and fix a gitignore rule,  From Sébastien Lorquet.
+  - apps/include directory structure reorganized.  There are no longer
+    any header files in the apps/include/. directory.  Rather, sub-
+    directories were added to match the partitioning of apps/ sub-
+    directories and the header files were moved into the appropriate
+    sub-directory.  This change is intended to help with some changes
+    being considered by Sébastien Lorquet.
+  - Call all includes from &lt;apps/bla/bla.h&gt; to "bla/bla.h". From Sebastien
+    Lorquet.
+  - Add apps/include to include path in top-level Make.defs file.
+
+* Applications: apps/nshlib:
+
+  - Make NSH net-initialization be a configuration option. From Marten
+    Svanfeld.
+  - Add NTP client initialization in NSH network startup logic.  From
+    David S. Alessio .
+  - 'ps' command now prints out the stack usage if stack coloration is
+    enabled.  From Frank Benkert.
+  - Allow stack usage to be disabled on constrained systems. From David
+    Sidrane.
+
+* Applications: apps/netutils:
+
+  - NTP Client:  Add retries.  From David S. Alessio.
+  - NTP Client:  The NTP client will now optionally use pool.ntp.org as
+    the NTP server; and reset the retry count upon success -- more robust.
+    From David Alessio.
+  - ESP8266: Add logic to set the BAUD rate.  From Pierre-noel Bouteville.
+  - ESP8266: In Kconfig, select ARCH_HAVE_NET when NETUTILS_ESP8266 is
+    selected.  This allows, among other things, support for network debug
+    output.  From Pierre-noel Bouteville.
+
+* Applications: apps/fsutils:
+
+  - flash_eraseall: IOCTL wrapper for MDCIO_BULKERASE command.   Was in
+    nuttx/drivers/mtd.  Moved to apps/fsutils because the call directly into
+    the OS was incorrect.
+
+* Applications: apps/canutils:
+
+  - canlib: Basic CAN utility library. From Sebastien Lorquet.
+
+* Platforms: apps/system:
+
+  - flash_eraseall: Now uses the IOCTL wrapper at apps/fsutils/flash_eraseall.
+
+* Platforms: apps/platform:
+
+  - Add platform files for Olimex STM32 E407.  From Mateusz Szafoni.
+
+* Applications: apps/examples:
+
+  - apps/examples/canard:  Add canard example application.  From
+    Matthias Renner.
+  - apps/examples/pty_test: PTY test program.  From Alan Carvalho de
+    Assis.
+</code></pre></div></div>
+
+<p>Works-In-Progress:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* IEEE802.14.5/6LowPAN.  Hooks and framework for this effort were
+  introduced in NuttX-7.15.  Work has continued on this effort on
+  forks from the main repositories, albeit with many interruptions.
+  The completion of this wireless feature will postponed until at
+  least NuttX-7.18.
+
+* i.MX6 SMP.  Partially functional, but there is more that still
+  needs to be done.
+</code></pre></div></div>
+
+<p>Bugfixes.  Only the most critical bugfixes are listed here (see the
+ChangeLog for the complete list of bugfixes and for additional, more
+detailed bugfix information):</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - semaphores: Need to set errno to EINVAL on errors in sem_post()
+    and sem_wait(). From Paul Alexander Patience.
+
+* File System/Block Drivers/MTD Drivers:
+
+  - Several MTD FLASH drivers nullify the freed 'priv' structure and
+    failed to return NULL as stated in the comments. Result, will
+    operate on a NULL pointer later.  Noted by David Sidrane.
+  - VFS ioctl().  Per comments from David Sidrane, file_ioctl() should
+    not return succeed if the ioctl method is not supported.  It
+    probably should return ENOTTY in that case.
+  - SST26 Driver: Before accessing the sst26 flash, the "Global Unlock"
+    command must me executed, which I do in the sst26 driver.  BUT re-
+    reading the datasheet, the WREN instruction is required to enable
+    the execution of this command. This was not done. I have no idea how
+    the driver currently works except by chance. The writes should never
+    happen at all, the flash is half-enabled!  From Sebastien Lorquet.
+  - N25Qxx Driver: Alter the notion of 'blocksize' to be equivalent to
+    'flash write page size' in order to align with assumptions in the
+    smartfs driver (at least, maybe other things do as well).  Correct a
+    bug that was previously masked by having blocksize=eraseblocksize
+    which would cause buffer overflows and delicious hardfaults.
+    Trivial spelling changes in comments, etc.  From ziggurat29.
+  - SmartFS: Fix a 32-byte memory leak.  From Ken Pettit.
+  - SMART MTD layer: Fixes freesector logic error when sectorsPerBlk=256,
+    adds DEBUGASSERT for invalid geometry and additional memory debug
+    logic.  Also fixes the dangling pointer on error bug.  From Ken
+    Pettit.
+
+* Common Drivers:
+
+  - USB CDC/ACM Device Class: cdcacm_unbind leaks write request objects.
+    This arises due to freeing the bulk IN endpoint before the loop
+    that frees the requests via cdcasm_freereq.  That function checks
+    the parameters and skips the freeing if either is NULL.  Freeing
+    the bulk IN enpoint will cause the first param to be NULL, thereby
+    bypassing the free operation.  To fix, I moved the release of the
+    bulk IN endpoint until after to loop (much as was the case for the
+    OUT and read requests, which did not exhibit the problem).  From
+    ziggurat29.
+  - Pipes and FIFOs: Add missing configuration for pipe ring buffer
+    size.  From Frank Benkert.
+  - UART 16550: Handle when CONFIG_SERIAL_UART_ARCH_IOCTL is not
+    enabled. From Heath Petersen.
+  - Common Serial Upper Half:  Fix a race condition noted by Stefan
+    Kolb.  Between the test if the TX buffer is full and entering a
+    critical section, bytes may be removed from the TX buffer making
+    the wait unnecessary.  The unnecessary wait is an inefficiency,
+    but not really a problem.  But with USB CDC/ACM it can be a problem
+    because the entire TX buffer may be emptied when we lose the race.
+    If that happens that uart_putxmitchar() can hang waiting for data
+    to be removed from an empty TX buffer.
+  - USB MSC Device Class: Add locks when removing request from queue.
+    From Wolfgang Reissnegger.
+  - USB MSC Device Class: Fix reversed logic on waiting for SCSI thread
+    start.  The scsi thread was waiting for the wrong condition.
+    However, this was masked by the fact that the code creating the
+    scsi thread was also holding usbmsc_scsi_lock(priv) while
+    initializing data, hence this lock synchronized the scsi thread
+    start with init completion.  From Wolfgang Reissnegger.
+
+* Graphics and Graphic Drivers:
+
+  - Correct conditional compilation in ST7565 LCD driver.  From Pierre-
+    noel Bouteville
+
+* Networking:
+
+  - In both IPv6 and IPv4 incoming logic:  (1) Should check if the
+    packet size is large enough before trying to access the packet
+    length in the IP header.  (2) In the comparison between the IP
+    length and the full packet length, need to subtract the size of
+    he link layer header before making the comparison or we will get
+    false positives (i.e., the packet is really too small)
+  - TCP Networking: While working with version 7.10 I discovered a
+    problem in TCP stack that could be observed on high network load.
+    Generally speaking, the problem is that RST flag is set in
+    unnecessary case, in which between loss of some TCP packet and its
+    proper retransmission, another packets had been successfully sent.
+    The scenario is as follows:  NuttX did not receive ACK for some sent
+    packet, so it has been probably lost somewhere. But before its
+    retransmission starts, NuttX is correctly issuing next TCP packets,
+    with sequence numbers increasing properly. When the retransmission
+    of previously lost packet finally succeeds, tcp_input receives the
+    accumulated ACK value, which acknowledges also the packets sent in
+    the meantime (i.e. between unsuccessful sending of lost packet and
+    its proper retransmission). However, variable unackseq is still set
+    to conn-&gt;isn + conn-&gt;sent, which is truth only if no further
+    packets transmission occurred in the meantime.  Because of incorrect
+    (in such specific case) unackseq value, few lines further condition
+    if (ackseq &lt;= unackseq)is not met, and, as a result, we are going to
+    reset label.  From Jakub Łągwa.
+
+* ARMv7-M:
+
+  - ARM stack check: Fix double fault on IDLE task with stack size = 0.
+    From David Sidrane.
+
+* Atmel SAMV7 Drivers:
+
+  - CAN: CAN Message Filtering fixed: (1) stdfilters didn't work because
+    the filter was never enabled (wrong number of bits to shift), and
+    (2) Filters were never used because the configuration register
+    cannot be written without using the initialization mode. Both bugs
+    are fixed by this change. Filtering has been tested with both
+    standard and extended identifiers and is now working properly. From
+    Michael Spahlinger.
+
+* Atmel SAMA5:
+
+
+* Atmel SAM3/4 Drivers:
+
+  - Fix some errors in AFEC header file.  From OrbitalFox.
+  - DAC: DACC_WPMR_WPKEY_MASK -&gt; DACC_WPMR_WPKEY.  From Wolfgang
+    Reissnegge.
+  - Timer:  Fix ops check in TCIOC_STOP.  From Wolfgang Reissnegge.
+  - I2C: Fix reversed logic in twi_startmessage().  From Wolfgang
+    Reissnegger.
+  - SAM3/4 UDP: Fix handling of endpoint RX FIFO banks.  This fixes
+    a race condition where the HW fills a FIFO bank while the SW is
+    busy, resulting in out of sequence USB packets.
+
+* Atmel SAMV7 Drivers:
+
+  - USBHS Device:  This change solves a problem which causes data loss
+    while sending data via USB. This problem is caused by an incorrect
+    handling of the endpoint state in the USB driver sam_usbdevhs.  This
+    leads under some circumstances to situations in which an DMA
+    transfer is setup while a previous DMA transfer is currently active.
+    Amongst other things I introduced the new endpoint state
+    USBHS_EPSTATE_SENDING_DMA for the fix.  To reproduce the problem, I
+    used a program which send as many data as possible via a CDC/ACM
+    device and verified the received data on the PC.  From Stefan Kolb.
+
+* NXP Freescale Kinetis Drivers:
+
+  - Timers: Support up to 8 channels per timer.  From kfazz.
+
+* NXP Freescale Kinetis Boards:
+
+  - Teensy 3.x clock fixes:  The High Gain bit in MCG_C1 was preventing
+    teensy from booting except after a programming session. The second
+    change doesn't appear to change any functionality, but complies with
+    restrictions in the k20 family reference manual on FEI -&gt; FBE clock
+    transiions.  From kfazz.
+
+* NXP Freescale LPC17xx Drivers:
+
+  - LPC17 Ethernet:  Needs to correctly ignore PHYID2 revision number
+    when comparing PHY IDs.
+
+* NXP Freescale LPC43xx Drivers:
+
+  - Fix errors in GPIO interrupt logic.  From v01d (phreakuencies)
+  - Ethernet:  Correct auto-negotiation mode in the LPC43xx Ethernet.
+    From Alexander Vasiljev
+  - Writing zero to NVIC_IRQ_ENABLE has no effect.  Disable interrupts
+    with  NVIC_IRQ_CLEAR. From Paul Alexander Patience.
+  - SPIFI: If CONFIG_SPIFI_SECTOR512 undefined, lpc43_bwrite doesn't do
+    actual write (probably copy/paste errors). Still not sure about
+    current state of lpc43_spifi implementation, but for me NXFFS works
+    with this change.  From Vytautas Lukenskas.
+
+* Qemu-i486:
+
+  - Fix qemu-i486/ostest/Make.defs test for M32.  From Heath Petersen.
+
+* SiLabs EFM32 Drivers:
+
+  - Fix EFM32 FLASH conditional compilation.  From Pierre-noel
+    Bouteville
+  - Writing zero to NVIC_IRQ_ENABLE has no effect.  Disable interrupts
+    with  NVIC_IRQ_CLEAR. From Paul Alexander Patience.
+
+* STMicro STM32:
+
+  - STM32 F1-F4:  In PWM driver, just update duty if frequency is not
+    changed and PSM started.  This removeis glitch or blinking when
+    only duty is frequently changed.  From Pierre-noel Bouteville.
+
+* STMicro STM32 Drivers:
+
+  - STM32 F7: Fixed STM32F7 DMA stm32_dmacapable.  DMA working on SDMMC.
+    From David Sidrane.
+  - STM32 F1-F4 Timer Driver: Change calculation of per- timer pre-scaler
+    value.  Add support for all timers
+  - STM32 F1-F4: Correct conditional compilation in STM32 timer capture
+    logic.  From Pierre-noel Bouteville
+  - STM32 F1-F4: Fix STM32 DMA code and configuration for STM32F37X chips.
+    From Marten Svanfeldt.
+  - STM32 F1-F4: Fix compilation errors in debug mode of stm32_pwm.c.
+    From Konstantin Berezenko.
+  - STM32 F1-F4: Correct the CAN2 RX IRQ number for stm32f10xx chips.
+    From Konstantin Berezenko.
+  - STM32 F1-F4: Move backup domain reset to to earlier in the
+    initialization sequence (stm32_rcc.c() in order to avoid disabling
+    LSE during RTC initialiation.  From Alan Carvalho de Assis.
+  - STM32 F1-F4: When configuring a GPIO via stm32_configgpio() the
+    function will first set the mode to output and then set the initial
+    state of the gpio later on.  If you have an application with an
+    externaly pulled-up pin, this would lead to a glitch on the line
+    that may be dangerous in some applications (e.G. Reset Line for
+    other chips, etc).  This changes sets the output state before
+    configuring the pin as an output.  From Pascal Speck .
+  - STM32 F7: Apply Pascal Speck's GPIO STM32 change to STM32 L4.
+  - STM32 L4: Apply Pascal Speck's GPIO STM32 change to STM32 L4.
+    From Sebastien Lorquet.
+  - STM32 F7:  BUGFIX: PLLs IS2 and SAI P Calculation. From David
+    Sidrane.
+  - STM32 L4:  STM32 CAN fixes need to be backported to STM32L4 as well.
+  - STM32 F1-F4 and L4: Writing zero to NVIC_IRQ_ENABLE has no effect.
+    Disable interrupts with  NVIC_IRQ_CLEAR. From Paul Alexander
+    Patience.
+  - STM32 F7: STMF7xxx RTC: (1) Remove proxy #defines, (2) Ensure the
+    LSE(ON) etal are set and remembered in a) A cold start (RTC_MAGIC
+    invalid) of the RTC, and b) A warm start (RTC_MAGIC valid) of the
+    RTC but a clock change.  The change was needed because in bench
+    testing a merge of the latest's STM32  53ec3ca (and friends) it
+    became apparent that the sequence of operation is wrong in the
+    reset of the Backup Domain in the RCC code.  PWR is required before
+    the Backup Domain can be futzed with. !!!This Code should be tested
+    on STM32 and if needed rippled to the STM32 families.  From David
+    Sidrane.
+  - STM32 F1-F4: STM32 BBSRAM fixed (and formatted) flags.  From David
+    Sidrane.
+  - STM32 F7: STM32F7 BBSRAM fixed (and formatted) flags. From David
+    Sidrane.
+  - STM32 L4: Fix incorrect clock setup for LPTIM1.  From ziggurat29.
+  - STM32 F4/L4 RTC ALARM: were enabling interrupts too early in the
+    power-up sequence,  BEFORE the interrupt system was being
+    initialized.
+
+* STMicro STM32 Boards:
+
+  - STM32 board.h: Fix STM32 timer input clock definitions.  From David
+    Sidrane.
+
+* TI Tiva Drivers:
+
+  - Bug Fix in tiva_serial.c - UART5, UART6 and UART7 were not being
+    configured as TTYS0 for printing over serial console. From Shirshak
+    Sengupta.
+
+* C Library/Header Files:
+
+  - include/signal.h:  Change type of SIG_ERR, SIG_IGN, ... to
+    _sa_handler_t.  The type void does not work with the IAR toolchain.
+    From Aleksandr Vyhovanec.
+  - crc16: fix error. From  Paul Alexander Patience.
+  - strtoul() and strtoull():  Fix errno settings required by function
+    definition.  Resolved Bitbucket Issue #1. From Sebastien Lorquet.
+
+* Build/Configuration System:
+
+  - Build system: This change fixes a build problem that only occurs
+    when reconfiguring from Linux to Windows or vice-versa.  It is a
+    problem that was present but not usually experienced until two
+    things happened: (1) The pre_config target was added to run before
+    the menconfig operation and (2) the context target was added before
+    the pre_config target in order to set up the correct symbolic links
+    (in the apps/platform directory) needed by the pre_config target.
+    But then now if you start with a Linux system and run 'make
+    menuconfig' to switch to Linux, the context target will execute
+    first and set up POSIX style symbolic links before doing the
+    menuconfig.  Then after the menuconfig, the make will fail on
+    Windows if you are using a Windows native toolchain because that
+    native toolchain cannot follow the Cygwin- style symbolic links.
+    The fix here is to also execute the clean_context AFTER executing
+    menuconfig.  A lot more happens now:  It used to be that doing
+    'make menuconfig' only did the menuconfig operation.  Now it does
+    context, pre_config, menuconfig, clean_context.  Not nearly as
+    snappy as it used to be.
+  - Need to build the drivers/ directory even it file descriptors are
+    not supported.  There are things in the drivers/ directory that are
+    still needed (like SYSLOG logic).
+  - Remove all inclusion of header files from the apps/include
+    directory from NuttX core logic.  There should be no dependency on
+    logic within NuttX on logic within apps/.  This caused a lot of
+    reshuffling of logic:  binfmt pcode support, usbmonitor is now a
+    kernel thread, TZ/Olson database moved to libc/zoneinfo.
+
+* Application Build/Configuration System:
+
+  - Make sure that APPNAME is defined in all Makefiles that generate
+    applications.  From Sebastien Lorquet.
+
+* apps/builtins:
+
+  - apps/builtins: exec_builtin was not using the provided open flags.
+    As a result &gt;&gt; redirection was not working; it was treated the same
+    as &gt;.
+
+* apps/nshlib:
+
+  - apps/nshilib: PS Command: When Priority Inheritance is enabled, the
+    format of /proc/&lt;PID&gt;/status changes to show both the current
+    priority and the thread’s base priority.  This messes up the format
+    of cmd_ps. From David Alessio.
+
+* apps/netutils:
+
+  - apps/netutils, uIP webserver:  Fix a data declaration in a header
+    file.
+
+* apps/canutils:
+
+  - apps/canutils/libuavcan: Fix for recent change to STM32 timer
+    frequency definiitions.
+
+* apps/examples:
+
+  - apps/examples/alarm: ioctl call was clobbering file descriptor.
+  - apps/examples/can: Some variables were not declared in all required
+    cases. From Sebastien Lorquet.
+  - apps/examples/media: media example was intended to take either a
+    command line argument, or a compiled-in default value from config.
+    However, the default was ignored, leading to confusing error
+    messages. From ziggurat29.
+</code></pre></div></div>
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2020 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache NuttX is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2019 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+
diff --git a/content/releases/7.18/index.html b/content/releases/7.18/index.html
new file mode 100644
index 0000000..0110e0e
--- /dev/null
+++ b/content/releases/7.18/index.html
@@ -0,0 +1,666 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>7.18</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/">
+              <img src="/assets/themes/apache/img/logo.png" width="30">
+              Apache NuttX
+          </a>
+        </div>
+        <nav class="navbar-collapse collapse" role="navigation">
+          <ul class="nav navbar-nav navbar-right">
+            <li id="community">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
+               <ul class="dropdown-menu dropdown-left">
+                <li><a href="/community">Get Involved</a></li>
+                <li><a href="/community-members">Who we are</a></li>
+               </ul>
+            </li>
+            <li><a href="https://github.com/apache/incubator-nuttx">GitHub</a></li>
+            <li id="apache">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+               <ul class="dropdown-menu">
+                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li><a href="http://www.apache.org/security/">Security</a></li>
+                <li><a href="http://www.apache.org/events/current-event">Events</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                </ul>
+            </li>
+          </ul>
+        </nav><!--/.navbar-collapse -->
+      </div>
+    </div>
+
+
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit 7.18">
+  <h1></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="nuttx-718-release-notes">NuttX-7.18 Release Notes</h2>
+
+<p>The 118th release of NuttX, Version 7.18, was made on October 8, 2016,
+and is available for download from the Bitbucket.org website.  Note
+that release consists of two tarballs:  nuttx-7.18.tar.gz and
+apps-7.18.tar.gz.  These are available from:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://bitbucket.org/nuttx/nuttx/downloads
+https://bitbucket.org/nuttx/apps/downloads
+</code></pre></div></div>
+
+<p>Both may be needed (see the top-level nuttx/README.txt file for build
+information).</p>
+
+<p>Additional new features and extended functionality:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - Add standard adjtime() interface and basic timekeeping support.
+    Normally used with an NTP client to keep system time in
+    synchronization.  From Max Neklyudov.
+  - Use the oneshot timer with optional entropy to measure CPU load if
+    so configured.
+
+* File System and Block and MTD Drivers:
+
+  - Add Fujistu MB85RS256B ramtron support.  From Beat Küng.
+  - SPI-based MTD driver for Macronix MX25L3233F or MX25L6433F.  From
+    Aleksandr Vyhovanec.
+
+* Graphics/Display Drivers:
+
+  - SH1106 0.96 OLED module support (SSD1306 compatible) + I2C fixes.
+    From v01d (phreakuencies).
+
+* Sensor Drivers:
+
+  - Add KXJT9 Accelerometer driver from the Motorola Moto Z MDK.
+  - Add MFRC522 RFID ISO14443 and Mifare transceiver driver.  From Alan
+    Carvalho de Assis.
+  - Add driver for the LIS3MDL 3 axis magnetometer.  From Alexander
+    Entinger.
+  - Add driver for the MLX90393 3 axis magnetometer. From Alexander
+    Entinger.
+  - Add driver for the LIS3DSH 3 axis accelerometer. From Alexander
+    Entinger.
+  - Add driver for the Bosch BMG160 3 axis gyroscope. From Alexander
+    Entinger.
+  - Add support for the  Sensixs XEN1210 3D-board. This sensor is used
+    on NANOSATC-BR2 a Brazillian CUBESAT project.  From Alan Carvalho
+    de Assis.
+  - Add a new ioctl command (set MAXPOS) for Tiva QEI.  From Young.
+
+* Other Common Device Drivers:
+
+  - I/O Expander: Remove hard-coded PCA9555 fields from ioexpander.h
+    definitons.  Add support for an attach() method that may be used
+    when any subset of pin interrupts occur.
+  - I/O Expander Interface:  Encode and extend I/O expander options to
+    include interrupt configuration.
+  - PCA9555 Driver:  Replace the signalling logic with a simple callback
+    using the new definitons of ioexpander.h.  This repartitioning of
+    functionality is necessary because (1) the I/O expander driver is
+    the lower-lower part of any driver that uses GPIOs (include the GPIO
+    driver itself) and should not be interacting directly with the much
+    higher level application layer.  And (2) in order to be compatible
+    with the GPIO driver (and any arbitrary upper half driver), the
+    PCA9555 should not directly signal, but should call back into the
+    upper half.  The upper half driver that interacts directly with the
+    application is the appropriate place to be generating signal.
+  - Add a skeleton I/O Expander driver (based on the PCA9555 driver).
+  - Add PCF8574 I/O Expander driver.
+  - GPIO driver:  Add IOCTLs to get the pin type and to unregister a
+    signal handler.
+  - Add a GPIO lower-half driver that can be used to register a GPIO
+    character driver for accessing pins on an I/O expander.
+  - Add an SPI helper function that encapsulates and manages a sequence
+    of SPI transfers.
+  - Add an SPI character driver that will permit access to the SPI bus
+    for testing purposes.
+  - Add oneshot timer lower half interface definition.
+  - Add an upper-half, oneshot timer character driver.
+  - Add Audio Tone Generator for NuttX.  From Alan Carvalho de Assis.
+  - Add USB host support for composite devices.  This feature is not
+    well tested.
+  - drivers/ioexpander: Add an (untested) TCA64XX I/O Expander driver
+    leveraged from Project Ara.
+
+* Simulation Platform:
+
+  - Add a simulated I/O Expander driver.
+  - Add simulator-based test support for apps/examples/gpio.
+  - Add a configuration useful for testing Mini Basic.
+  - Add a simulated oneshot lowerhalf driver.
+
+* Atmel SAM3/4 Drivers:
+
+  - SAM4CM: Add option to support oneshot timer without free-running
+    timer.  Add oneshot lower half driver.
+
+* Atmel SAMA5 Drivers:
+
+  - SAMA5D: Add option to support oneshot timer without free-running
+    timer.  Add oneshot lower half driver.
+
+* Atmel SAMV7 Drivers:
+
+  - SAMV71/SAME70: Add option to support oneshot timer without
+    free-running timer.  Add oneshot lower half driver.
+  - Add support for SAMV7 DACC module.  From Piotr Mienkowski.
+
+* NXP Freescale Kinetis Drivers:
+
+  - Add support for I2C and RTC.  From v01d (phreakuencies).
+
+* NXP Freescale Kinetis Boards:
+
+  - Add teensy 3.x I2C support.  From v01d (phreakuencies).
+
+* STMicro STM32:
+
+  - Add IAR-style STM32F1xx vectors. Tested on STM32F103RB and
+    STM32F107RC.  From Aleksandr Vyhovanec.
+
+* STMicro STM32 Drivers:
+
+  - Add timekeeping support for the STM32 tickless mode.  From Max
+    Neklyudov.
+  - Add a oneshot, lower-half driver for STM32.
+  - STM32 L4: Add oneshot lower half driver for STM32 L4.
+  - STM32 L4: Add support for quadrature encoders on STM32L4. Sebastien
+    Lorquet.
+
+* STMicro STM32 Boards:
+
+  - stm32f103-minimum: Add board support to MFRC522 driver.  From Alan
+    Carvalho de Assis.
+  - Add oneshot board initialization to stm32f103-minimum.  From Alan
+    Carvalho de Assis.
+  - stm32f103-minimum: Add board configuration to initialize Audio Tone
+    Generator.  From Alan Carvalho de Assis.
+  - stm32bufferfly2: Add support for the Kamami stm32butterfly2
+    development board with optional ETH phy.  From  Michał Łyszczek.
+  - stm32f103-minimum: Add board config support to SPI LCD module
+    JLX12864G-086.  From Alan Carvalho de Assis.
+  - stm32l476-mdk: Support basic booting and nsh on Motorola MDK. The
+    Motorola MDK is based off of an earlier version of NuttX.
+    This only provides a basic NSH shell.  From Jim Wylder.
+  - STM32 F4 Discovery:  Add support for XEN1210 3D-board.  From Alan
+    Carvalho de Assis.
+  - stm32f103-minimum:  Add stm32_bringup support and userled example to
+    STM32F103 Minimum board.  From Alan Carvalho de Assis.
+  - Add support for qencoders on various nucleo boards.  From Sebastien
+    Lorquet.
+  - olimex-stm32-e407: Add some networking configurations.  From Mateusz
+    Szafoni.
+
+* TI Tiva Drivers:
+
+  - Add tiva PWM lower-half driver implementation. From Young.
+  - Tiva QEI:  Add QEI lower-half driver for Tiva series chip.  From
+    Young.
+
+* C Library/Header Files:
+
+  - Separate XorShift128 PRNG from /dev/urandom and make it generally
+    available.
+  - Add POSIX type sig_atomic_t.  From Sebastien Lorquet.
+  - Add the difftime() function.  The function depends on the toolchain-
+    dependent CONFIG_HAVE_DOUBLE so is not available on tiny platforms.
+    From Sebastien Lorquet.
+  - Add support for remove().  From Sebastien Lorquet.
+  - Add system() to stdlib.h.  Actual implementation is in
+    apps/system/system.
+
+* Build/Configuration System:
+
+  - Rename arch/sh to arch/renesas.
+  - Remove contactless drivers from drivers/wireless to drivers
+    contactless.  From Sebastien Lorquet.
+  - Move all modem-related IOCTL commands to a common file to assure
+    that they will be unique.
+
+* Tools:
+
+  - Add sethost.sh.   This is a script that you can use to quickly
+    change the host platform from Linux to Windows/Cygwin. Might save
+    you a lot of headaches.
+
+* Applications: apps/nshlib:
+
+  - Add logic to support an NSH-specific system command.
+  - Add printf command to NSH, e.g., controlling /dev/userleds from
+    command line: nsh&gt; printf \x01 &gt; /dev/userleds. From Alan Carvalho
+    de Assis.
+
+* Platforms: apps/system:
+
+  - Port tee command from NetBSD.
+  - Add a generic system command.  Current implentation cannot use
+    /bin/sh and spawns the custom NSH system command directly.
+
+* Platforms: apps/platform:
+
+  - Add C++ support for STM32L476-MDK.
+
+* Platforms: apps/interpreters:
+
+  - Add a port of Mini Basic, version 1.0, written by Malcom McLean and
+    released under the Creative Commons Attribution license.
+
+* Applications: apps/examples:
+
+  - Add a simple test of the GPIO driver.
+  - Add RFID_READUID sample application. From Alan Carvalho de Assis.
+  - Add Oneshot timer example.
+  - Add a simple test of the system command.
+</code></pre></div></div>
+
+<p>Works-In-Progress:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* IEEE802.14.5/6LowPAN.  Hooks and framework for this effort were
+  introduced in NuttX-7.15.  Work has continued on this effort on
+  forks from the main repositories, albeit with many interruptions.
+  The completion of this wireless feature will postponed until at
+  least NuttX-7.19.
+</code></pre></div></div>
+
+<p>Bugfixes.  Only the most critical bugfixes are listed here (see the
+ChangeLog for the complete list of bugfixes and for additional, more
+detailed bugfix information):</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - Explicitly initialize the group tg_exitsem with sem_init().  The
+    existing logic worked because the correct initialization value is
+    all zero, but it is better to initialize the semaphore explicitly.
+  - The TCB nchildren field should not be incremented when pthreads are
+    created.
+  - Move fields related to parent/child task relationship out of TCB
+    into group structure where they belong.  Child is a group, not a
+    thread.
+  - mq_send() was not setting the errno value on certain failures to
+    allocate a message.
+  - Define 'group' even if HAVE_GROUPID is not set.  From Mateusz
+    Szafoni.
+  - Vector table should have dimension NR_IRQS, not NR_IRQS+1. From
+    Sagitta Li.
+  - pthreads:  When a pthread is started, there is a small bit
+    of logic that will run on the thread of execution of the new
+    pthread.  In the case where the new pthread has a lower
+    priority than the parent thread, then this could cause both the
+    parent thread and the new pthread to be blocked at the priority of
+    the lower priority pthread (assuming that CONFIG_PRIORITY_INHERITANCE
+    is not selected). This change temporarily boosts the priority of the
+    new pthread to at least the priority of the new pthread to at least
+    the priority of the parent thread.  When that bit of logic has
+    executed on the thread of execution of the new pthread, it will then
+    drop to the correct priority (if necessary) before calling into the
+    new pthread's entry point.
+
+* File System/Block Drivers/MTD Drivers:
+
+  - FAT performance improvement. In large files, seeking to a
+    position from the beginning of the file can be very time consuming.
+    ftell does lssek(fd, 0, SET_CURR).  In that case, that is wasted
+    time since we are going to seek to the same position.  This fix
+    short-circuits fat_seek() in all cases where we attempt to seek to
+    current position.  Suggested by Nate Weibley.
+  - MTD: Fixed cloned typos in several FLASH drivers.  From Aleksandr
+    Vyhovanec.
+  - mount: Corrects a bad assertion noted by Pierre-noel Bouteville.
+    Also fixes a reference counting problem in an error condition:
+    When the mountpoint inode is found but is not an appropriate
+    mountpoint, the reference count on the inode was not being
+    decremented.
+
+* Common Drivers:
+
+  - Various serial drivers: Fix FIONWRITE and add FIONSPACE.  All
+    implementations of FIONWRITE were wrong.  FIONWRITE should return
+    the number of bytes waiting in the outgoing send queue, not the free
+    space.  Rather, FIONSPACE should return the free space in the send
+    queue.
+  - Add missing prototype for btn_lower_initialize().
+  - Make DAC sample structure packed.  From Marc Rechté.
+
+* Networking:
+
+  - TCP:  tcp_ipvX_bind() not actually using the port selected with
+    port==0.  Also removes duplicate call to pkt_input().  Issues noted
+    by Pascal Speck.
+  - drivers/net: NET_TUN=y =&gt; NET_MULTIBUFFER=y.  From Vladimir
+    Komendantskiy.
+  - slip driver: Fix calculations using MSEC_PER_TICK.  If
+    USEC_PER_TICK is less than 1000, then MSEC_PER_TICK will be
+    zero.  It will be inaccurate in any case.
+
+* Atmel SAM3/4 Drivers:
+
+  - SAM3/4 GPIO: Enable peripheral clock for GPIO port when GPIO is
+    configured as input. The value of a GPIO input is only sampled when
+    the peripheral clock for the port controller the GPIO resides in is
+    enabled.  Therefore we need to enable the clock even when polling a
+    GPIO.  From Wolfgang Reissnegger.
+  - All SAM Ethernet Drivers: Add support so that the drivers can be
+    built with CONFIG_NET_MULTIBUFFER=y.
+  - SAM3/4: Fix GPIO pull-up/down code. Enabling the pull-down resistor
+    while the pull-up resistor is still enabled is not possible. In this
+    case, the write of PIO_PPDER for the relevant I/O line is discarded.
+    Likewise, enabling the pull-up resistor while the pull-down resistor
+    is still enabled is not possible. In this case, the write of
+    PIO_PUER for the relevant I/O line is discarded.  From Wolfgang
+    Reißnegger.
+
+* Atmel SAMV7 Drivers:
+
+  - All SAM Ethernet Drivers: Add support so that the drivers can be
+    built with CONFIG_NET_MULTIBUFFER=y.
+  - SAM GPIO: Apply Wolfgang's change for SAM3/4 to SAMA5 and SAMV7.
+
+* Atmel SAMA5:
+
+  - Add missing oneshot max_delay method.
+  - All SAM Ethernet Drivers: Add support so that the drivers can be
+    built with CONFIG_NET_MULTIBUFFER=y.
+  - SAM GPIO: Apply Wolfgang's change for SAM3/4 to SAMA5 and SAMV7.
+
+* NXP Freescale LPC43xx Drivers:
+
+  - LPC43xx serial: Fix typos in LPC43 serial driver.  Found by Vytautas
+    Lukenskas.
+  - LPC43xx Serial: There are some small problems in LPC43xx RS485 mode
+    configuration. In particular: (1) UART0,2,3 do not have DTR pins
+    (different from UART1), so, Kconfig needs to be adjusted. (2)
+    lpc43_uart.c in RS485 mode only configures DIR pin, but doesn't
+    enable pin output for UART0,2,3. (3) should be option to reverse DIR
+    control pin output polarity. (4) lpc43xx/chip/lpc43_uart.h doesn't
+    have USART3 definitions.  NOTE: I didn't modified and didn't tested
+    USART1, as it has different hardware.  From Vytautas Lukenskas.
+    From Vytautas Lukenskas.
+
+* SiLabs EFM32 Drivers:
+
+  - EFM32 SPI drivers adopted incompatible conventions (See STM32 for
+    details of the issue).
+
+* STMicro STM32 Drivers:
+
+  - STM32, STM32 L4, and EFM32 SPI drivers adopted incompatible
+    conventions somewhere along the line.  They set the number of bits
+    to negative when calling SPI_SETBITS which had the magical side-
+    effect of setting LSB first order of bit transmission.  This is not
+    only a hokey way to pass control information but is supported by no
+    other SPI drivers.  This change three things:  (1) It adds
+    HWFEAT_LSBFIRST as a new H/W feature. (2) It changes the
+    implementations of SPI_SETBITS in the STM32 and EFM32 drivers so
+    that negated bit numbers are simply errors and it adds the
+    SPI_HWFEATURES method that can set the LSB bit order, and
+    (3) It changes all calls with negative number of bits from all
+    drivers: The number of bits is now always positive and
+    SPI_HWFEATURES is called with HWFEAT_LSBFIRST to set the bit order.
+  - Add missing SPI2 and SPI3 support for STM32F3F3.  Add STM32F37XX DMA
+    channel configuration.  For STM32F37XX, SYSCFG_EXTICR_PORTE defined
+    twice.  From Alan Carvalho de Assis.
+  - STM32: Make stm32_pwr_enablebkp thread safe.  From Max Neklyudov.
+  - Fix bad pllmul values for STM32F1XX connectivity line. STM32F1XX
+    connectivity line supports only x4, x5, x6, x7, x8, x9 and x6.5
+    values. From Michał Łyszczek.
+  - STM32F3 SPI:  Fix the number of bit setting for the F3.  That and
+    data packing work differently on the STM32F3 than for other STM32
+    parts.
+  - STM32 and STM32 L4: Enabling SPI DMA loses other bits in CR2.
+  - STM32F3 SPI:  Cannot write always 16-bit value to DR register
+    because of how the F3 implements data packing.
+  - STM32F411 and STM32F446 map i2c2_sda_4 to different alternate
+    function numbers.  From Konstantin Berezenko.
+  - STM32 DMA Fix: Change stm32 adc dma callback to send channel
+    number instead of index.  From Konstantin Berezenko.
+  - STM32 OTGFS device: Fix for lost first word from FIFO
+
+    1) Do not overwrite Reserved Bits in GINTSTS (per ref manual)*
+    2) Acknowledge all pending int on entry to ISR that are Only rc_w1*
+    3) Do not disable RXFVL*
+    4) Loop until RXFVL is cleared*
+    5) Only clear the NAK on the endpoint on the OTGFS_GRXSTSD_PKTSTS_SETUPDONE to not loose the first WORD of FIFO all the data  (Bug Fix)
+
+    Changed marked *are just driver clean up and ensure ints are not lost. The bug fix is #5
+
+    Test case open putty and observer the Set/Get LineCoding. Without this fix #5 the Get will not match the Set, and in fact the data might be skewed by 4 bytes, that are lost from the FIFO if the OTGFS_DOEPCTL0_CNAK bit is set in the OTGFS_GRXSTSD_PKTSTS_SETUPRECVD as opposed to the OTGFS_GRXSTSD_PKTSTS_SETUPDONE
+
+    Set Line Coding DATA1: 4B | 00 c2 01 00 00 00 08 | c8 1B
+    Get Line Coding DATA1: 4B | .. .. .. .. 00 00 08   c8 .. 00 00 07 | 7a 72
+
+    From David Sidrane.
+  - STM32 L4 OTGFS device: Apply stm32 fix to stm32l4.  From Sebastien
+    Lorquet.
+  - STM32 F7: Remove duplicate call to pkt_input from Ethernet driver.
+    Issues noted by Pascal Speck.
+  - STM32 L4: Add support for USART3-USART5.  For STM32L4 parts, the
+    higher number USART ports supported varies.  Add the HAVE_USARTx
+    definitions to the configuration to allow enabling the higher
+    numbered USART ports. From Jim Wylder.
+  - STM32 USB: Set USB address to avoid a failed assertion.  From
+    Pierre-noel Bouteville.
+  - STM32 L4 and L7 USB: Pierre's assertion-avoidance change should
+    also be applied to STM32 F7 and L4.
+  - STM32, L4, and F7:  Remove GPIO_ETH_RMII_TX_CLK. TX_CLK is not
+    present in RMII. Mateusz Szafoni.
+  - STM32 Ethernet: Correct typo in conditional logic.  From Neil
+    Hancock.
+  - STM32 L4 USB Device: Fixed L4 USB Driver by avoiding SETUPDONE and
+    EPOUT_SETUP.  From David Sidrane.
+  - STM32 SPI: stm32_modifycr2 should be available on all platforms if
+    DMA is enabled.
+  - STM32 DMA2D: fix an error in up_dma2dcreatelayer where an invalid
+    pointer was returned when a certain underlying function failed.
+    From Jens Gräf.
+
+* TI Tiva Drivers:
+
+  - Fix two bugs of tiva pwm lower-half driver implementation. From
+    Young.
+  - Tiva Ethernet:  Needs support for CONFIG_NET_MULTIBUFFER=y.
+
+* C Library/Header Files:
+
+  - lib_dumpbuffer() now prints a large on-stack buffer first to avoid
+    problems when the syslog output is prefixed with time.  From
+    Pierre-noel Bouteville.
+  - libc/math: This fixes the following libc/math issues: (1) asin[f l]()
+    use Newton’s method to converge on a solution. But Newton’s method
+    converges very slowly (&gt; 500,000 iterations) for values of x close to
+    1.0; and, in the case of asinl(), sometimes fails to converge (loops
+    forever). The attached patch uses an trig identity for values of
+    x &gt; sqrt(2). The resultant functions converge in no more than 5
+    iterations, 6 for asinl().  (2) The NuttX erf[f l]() functions are
+    based on Chebyshev fitting to a good guess. The problem there’s a
+    bug in the implementation that causes the functions to blow up with
+    x near -3.0. This patch fixes that problem. It should be noted that
+    this method returns the error function erf(x) with fractional error
+    less than 1.2E-07 and that’s fine for the float version erff(), but
+    the same method is used for double and long double version which
+    will yield only slightly better precision. This patch doesn't
+    address the issue of lower precision for erf() and erfl(). (3) a
+    faster version of copysignf() for floats is included. From David S.
+    Alessio.
+  - strtod() was not returning endptr on error conditions.
+  - libc/math: floor(), floorf(), and floorl():  Fix logic error.  Was
+    not correctly handling negative integral value.
+  - isatty() should be prototyped in unstid.h, not termios.h.  From
+    Sebastien Lorquet.
+  - nxglib: Fix handling of near-horizontal lines of width 1 in
+    nxgl_splitline().  Missing handling for degenerate condition caused
+    width 1 lines such as (0, 0) - (100, 10) to have gaps in the
+    drawing. From Petteri Aimonen.
+
+* Build/Configuration System:
+
+  - Top-Level Makefiles:  Fix a chicken-and-egg problem. In the menuconfig
+    target, the context dependency was executed before kconfig-mconf.  That
+    was necessary because the link at apps/platform/board needed to be set
+    up before creating the apps/Kconfig file.  Otherwise, the platform
+    Kconfig files would not be included.  But this introduces the chicken-
+    and-egg problem in some configurations. In particular:  (1) An NX
+    graphics configuration is used that requires auto-generation of
+    source files using cpp, (2) the configuration is set for Linux, but
+    (3) we are running under Cygwin with (4) a Windows native toolchain.
+    In this case, POSIX-style symbolic links are set up but the Windows
+    native toolchain cannot follow them. The reason we are running
+    'make menuconfig' is to change from Linux to Cygwin, but the target
+    fails.  During the context phase, NX runs CPP to generate source files
+    but that fails because the Windows native toolchain cannot follow
+    the links.  Checkmate.  This was fixed by changing all of the make
+    menuconfig (and related) targets.  They no longer depend on context
+    being run.  Instead, they depend only on the dirlinks target.  The
+    dirlinks target only sets up the directory links but does not try
+    to run all of the context setup; the compiler is never invoked; no
+    code is autogenerated and things work.
+  - CXXFLAGS: add -fcheck-new whenever -fno-exceptions is used. From
+    Beat Küng.
+
+* Tools
+
+  - tools/refresh.sh: Recent complexities added to apps/ means that
+    configuration needs the correct Make.defs file in place in order to
+    configure properly.
+  - tools/kconfig2html.c: Update to handle absolute paths when sourcing
+    Kconfig files.
+  - tools/mkfsdata.pl was still generating the old-style apps/include
+    inclusion paths.
+
+* Application Build/Configuration System:
+
+  - Add DIRLINK and DIRUNLINK tool definitions to apps/Make.defs.
+
+* apps/nshlib:
+
+  - Fix FIFO_SIZE vs PIPE_SIZE.
+  - Fix hex representation of IP address in Kconfig.  Noted by Michal
+    Lyszczek.
+  - nsh_syscmds.c: missing semicolon.  From Mateusz Szafoni.
+  - In system command, don't try to flush output streams if stdio
+    buffered I/O is not supported.
+
+* apps/canutils:
+
+  - libuavcan: Under certain circumstances, DELIM is not be defined in
+    Makefile.
+  - Add definition for APPNAME in apps/canutils/canlib.  From Sebastien
+    Lorquet.
+
+* apps/gpsutils:
+
+  - Fix an error minmea.  From Aleksandr Vyhovanec.
+
+* apps/examples:
+
+  - apps/examples/oneshot:  If the requested delay is &gt; max_delay, then
+    break the delay up into several pieces.
+</code></pre></div></div>
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2020 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache NuttX is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2019 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+
diff --git a/content/releases/7.19/index.html b/content/releases/7.19/index.html
new file mode 100644
index 0000000..1b51b4d
--- /dev/null
+++ b/content/releases/7.19/index.html
@@ -0,0 +1,938 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>7.19</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/">
+              <img src="/assets/themes/apache/img/logo.png" width="30">
+              Apache NuttX
+          </a>
+        </div>
+        <nav class="navbar-collapse collapse" role="navigation">
+          <ul class="nav navbar-nav navbar-right">
+            <li id="community">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
+               <ul class="dropdown-menu dropdown-left">
+                <li><a href="/community">Get Involved</a></li>
+                <li><a href="/community-members">Who we are</a></li>
+               </ul>
+            </li>
+            <li><a href="https://github.com/apache/incubator-nuttx">GitHub</a></li>
+            <li id="apache">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+               <ul class="dropdown-menu">
+                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li><a href="http://www.apache.org/security/">Security</a></li>
+                <li><a href="http://www.apache.org/events/current-event">Events</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                </ul>
+            </li>
+          </ul>
+        </nav><!--/.navbar-collapse -->
+      </div>
+    </div>
+
+
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit 7.19">
+  <h1></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="nuttx-719-release-notes">NuttX-7.19 Release Notes</h2>
+
+<p>The 119th release of NuttX, Version 7.19, was made on December 26, 2016,
+and is available for download from the Bitbucket.org website.  Note
+that release consists of two tarballs:  nuttx-7.19.tar.gz and
+apps-7.19.tar.gz.  These are available from:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://bitbucket.org/nuttx/nuttx/downloads
+https://bitbucket.org/nuttx/apps/downloads
+</code></pre></div></div>
+
+<p>Both may be needed (see the top-level nuttx/README.txt file for build
+information).</p>
+
+<p>Additional new features and extended functionality:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - sched/semaphore, sched/phread/, libc/semaphore, libc/pthread: Add
+    pthread_mutexattr_get/set_protocol and non-standard
+    sem_get/set_protocol. These may use to enable or disable priority
+    inheritance on a single semaphore.
+  - Spinlocks:  Added capability to provide architecture-specific memory
+    barriers.
+  - SMP: Add spin_trylock().  Use this in conditions where other CPUs need
+    to stopped but we cannot call enter_critical_section().
+  - sched note:  Extend OS instrumentation to include some SMP events.
+    Also add spinlock instrumentation;  In SMP configurations, add a
+    filter mask to log only notes from certain CPUs.
+  - sched note:  Permit spinlock and critical section notes in in-memory
+    buffer iff sched_not_get() interfaces is disabled.
+  - sched note:  Add additional note to see if/when CPU is started in SMP
+    mode.
+  - sched note:  Record ID enumeration now results on constant values; ID
+    values do not change with configuration.  This makes writing post-processing software much easier.
+  - boardctl:  Add new boardctl() command, BOARDIOC_NX_START, to start the
+    NX server as a kernel thread.
+  - pthreads:  Add pthread_cleanup_push() and pthread_cleanup_pop().
+  - pthreads: Added pthread_setcanceltype() and pthread_testcancel().
+  - pthreads: Add support for cancellation points.
+  - task_delete() now obeys all cancellation point semantics.
+  - Add task_setcancelstate(), task_setcanceltype(), and
+    task_testcancel().  These are non-standard interfaces analogous to the
+    correponding pthread_ interfaces that provide cancellation controls
+    for tasks.
+
+* Graphics/Display Drivers:
+
+  - boardctl:  Add new boardctl() command, BOARDIOC_NX_START, to start the
+    NX server as a kernel thread.
+
+* Networking/Network Drivers:
+
+  - Network drivers:  Add option to use low-priority work queue to all
+    Ethernet and MAC level drivers.
+  - Network Drivers:  Adapt all Ethernet (and other MAC) drivers to work
+    as though CONFIG_NET_MULTIBUFFER were set.  Remove all references to
+    CONFIG_NET_MULTIBUFFER.
+  - Eliminate CONFIG_NO_NOINTS.  There is no longer any support for
+    interrupt level processing of the network stack. Lots of files changed.
+
+* Other Common Device Drivers:
+
+  - Vishay VEML6070:  Add Vishay VEML6070 driver.  From Alan Carvalho de
+    Assis.
+
+* ARMv7-A
+
+  - ARMv7-A/i.MX6:  Add SCU register definitions.  Add some controls to
+    enable SMP cache coherency in SMP mode.  Makes no difference, however
+    -- cache still incoherent on i.MX6.
+  - ARMv7 GIC: SGIs are non-maskable but go through the same path as
+    other, maskable interrupts.  Added logic to serialize SGI processing
+    when necessary.
+
+* Atmel SAM3/4:
+
+  - SAM3/4:  Add SMP support for the dual-core SAM4CM.  From Masayuki
+    Ishikawa.
+
+* Atmel SAM3/4 Drivers:
+
+  - Add support for the SAM5CMP-DB board.  From Masayuki Ishikawa.
+
+* Atmel SAM3/4 Boards:
+
+  - SAM4CMP-DB:  Add support for the Atmel SAM4CMP-DB board running in an
+    SMP configuration.  From Masayuki Ishikawa.
+  - SAM4CMP-DB: Add hooks to auto-mount the procfs file system on startup
+    in board bring-up logic.
+
+* Atmel SAMV7 Drivers:
+
+  - SAMv7:  Register the watchdog device at the configured device path
+    CONFIG_WATCHDOG_DEVPATH vs. hard-coded /dev/wdt.  From Frank Benkert.
+
+* Calypso
+
+  - Calyps: Remove all Calypso board configurations.  Remove Calypso
+    architecture support and support for Calypso SERCOMM driver.
+
+* Misoc LM32:
+
+  - Misoc LM32:  Adds basic support for the Misoc procoessors and the LM32
+    in particular.  From Ramtin Amin.
+  - Misoc LM32:  Add signal handling logic.  From Ramtin Amin.
+  - Misoc LM32:  Add logic to flush/invalidate caches.  From Ramtin Amin.
+
+* Misoc LM32 Drivers:
+
+  - Misoc LM32 Serial:  Add interrupting Misoc serial driver.  From Ramtin
+    Amin.
+  - Misoc LM32 Timer:  Add timer driver.  From Ramtin Amin.
+  - Misoc LM32:  Add Misoc Ethernet driver  From Ramtin Amin.
+
+* Misoc LM32 Boards:
+
+  - Misoc LM32 Qemu:  Board support for testing Misoc LM32 with Qemu. From
+    Ramtin Amin.
+  - Misoc LM32 Qemu:  Integrate network support into configs/misoc/hello.
+    From Ramtin Amin.
+  - Misoc LM32 Qemu:  Remove configs/misoc/include/generated directory.  I
+    suppose the the intent now is that this is a symbolic link?  DANGER!
+    This means that you cannot compile this code with first generating
+    these files a providing a symbolic link to this location!   There is a
+    sample directory containing generated sources.  This is really only
+    useful for performing test builds.  You really must generate the Misoc
+    architecture for a real-life build.  From Ramtin Amin.
+
+* NXP Freescale i.MX6 Drivers:
+
+  - i.MX6:  Add an untested SPI driver taken directly from the i.MX1 port.
+
+* NXP Freescale Kinetis:
+
+  - Kinetis:  Added missing headers.  Kinetis broke out SPI to
+    kinetis/kinetis_spi.h. Broke out DMA to use the modern Nuttx chip
+    inclusion - still STUBS.  Add Kinetis support for ARMV7-M Common
+    Vector and FPU.  Allow CONFIG_ARMV7M_CMNVECTOR,
+    CONFIG_STACK_COLORATION, CONFIG_ARCH_FPU.  Fix  i2c driver offset
+    swapped for value in kinetis_i2c_putreg.  From David Sidrane.
+
+* NXP Freescale Kinetis Drivers:
+
+  - Kinetis: Add UID Unique ID.  From Neil Hancock.
+
+* NXP Freescale Kinetis Boards:
+
+  - Freedom-K64F board: Add support for UID Unique ID.  From Neil Hancock.
+
+* NXP Freescale LPC17xx Boards:
+
+  - Olimex-LPC1766-STK:  Enable procfs in NSH configuration. Automount
+    /proc on startup.
+
+* NXP Freescale LPC43xx Drivers:
+
+  - LPC43xx: Add timer driver:  From Alan Carvalho de Assis.
+  - LPC43xx GPDMA driver:  The GPDMA block is basically the same as the
+    LPC17xx.  Only the clock configuration is different and LPC43xx has
+    four different DMA request sources, where LPC17xx has only two. From
+    Alan Carvalho de Assis.
+
+* NXP Freescale LPC43xx Boards:
+
+  - Bambino 200E:  Add basic support to Micromint Bambino 200E board.
+    This includes contributions from Jim Wolfman.  From Alan Carvalho de
+    Assis.
+  - Bambino 200E:  Add support for timer driver.  From Alan Carvalho de
+    Assis.
+
+* RGMP:
+
+  - Remove RGMP and RGMP drivers.
+
+* RISC-V:
+
+  - RISC-V: Add support for the RISC-V architecture and
+    configs/nr5m100-nexys4 board.  The board support on this is pretty
+    thin, but it seems like maybe a good idea to get the base RISC-V stuff
+    in since there are people interested in it.  From Ken Pettit.
+
+* STMicro STM32 Drivers:
+
+  - STM32 F3:  Implemention of the STM32 F37xx SDADC module. There are
+    also changes to ADC, DAC modules. SDADC has only been tested in DMA
+    mode and does not support external TIMER triggers. This is a work in
+    progress.  From  Marc Rechté.
+  - STM32 F3:  Add PWM driver support for STMF37xx.  The changes have been
+    tested successfuly for TIM4 and TIM17 (different IPs).  From  Marc
+    Rechté.
+  - STM32 F4:  Support oversampling by 8 for the STM32 F4. From David
+    Sidrane.
+  - STM32 F4:  Added Timers 2-5 and control of SAI and I2S PLLs.  Added
+    support for stmf469 SAI and I2S PLL configuration and STM446 fixes.
+    From David Sidrane.
+  - STM32 F4:  Expanded OTGFS support to stm32F469 and stm32f446.  Added
+    missing bit definitions, Used stm32F469 and stm32f446 bit
+    definitions,  Removed unsed header file.  From David Sidrane.
+  - STM32 F4:  Allow dma in 1 bit mode in STM32F4xxx.  From David Sidrane.
+  - STM32 F7:  Allow the config to override the clock edge setting.  From
+    David Sidrane.
+  - STM32 L4:  Support Complementary PWM outputs on STM32L4.  From
+    Sebastien Lorquet.
+  - STM32 L4:  Add implementation of dumpgpio for stm32l4, was required
+    for pwm debug. From Sebastien Lorquet.
+
+* STMicro STM32 Boards:
+
+  - STM32F103 Minimum:  Add button support.  From Alan Carvalho de Assis.
+  - STM32F103 Minimum:  Add support to PWM on STM32F103-Minimum board.
+    From Alan Carvalho de Assis.
+  - STM32F103 Minimum:  Add RGB LED support on STM32F103 Minimum board.
+    From Alan Carvalho de Assis.
+  - STM32F103 Minimum:  Add Vishay VEML6070 driver support to the
+    STM32F103-Minimum board.  From Alan Carvalho de Assis.
+  - Nucleo-F303RE:  Add STM32 F303RE hello configuration.   From Marc
+    Rechté.
+  - Nucleo-L476:  Support PWM testing on board Nucleo L476.  From
+    Sebastien Lorquet.
+  - Nucleo L476:  Add support for timers to Nucleo L476.  From Sebastien
+    Lorquet.
+  - Hymini STM32v:  Enable CONFIG_RTC in the hymini-stm32v/nsh2
+    (kitchensink) config. From Maciej Wójcik.
+  - Olimex STM32-p407:  Add support for the Olimex STM32 P407 board.
+
+* TI Tiva Drivers:
+
+  - Tiva PWM: Support PWM_PULSECOUNT feature for TI tiva.  From Young.Mu.
+
+* Xtensa/ESP32
+
+  - Xtensa ESP32:  Basic architectural support for Xtensa processors and
+    the Expressif. ESP32 added.
+  - Xtensa ESP32:  Add EXPERIMENTAL hooks to support lazy Xtensa
+    co-processor state restore in the future.
+  - Xtensa ESP32:  Basic port is function in both single CPU and dual CPU
+    SMP configurations.  There is an NSH configuration for each CPU
+    configuration.  Outstanding issues include missing clock configuration
+    logic, missing partition tables to support correct configuration from
+    FLASH, and some serial driver pin configuration issues.
+  - Xtensa ESP32: Add stack checking logic.
+
+* Xtensa/ESP32 Boards:
+
+  - ESP32 Core v2:  Basic support for Expressif ESP32 Core v2 board
+    added.  The initial release includes an NSH and an SMP test
+    configuration.
+  - ESP32 Core v2:  Add configuration to support linking NuttX for
+    execution out of IRAM.
+  - ESP32 Core v2:  Automatically mount /proc at start-up.
+  - ESP32 Core v2:  Add an OS test to verify the port.
+
+* C Library/Header Files:
+
+  - libc/locale:  Add a dummy setlocale() function to avoid drawing the
+    function from newlib.  Add clocale header file.
+  - include/locale.h:  Modify locale.h to add localeconv() and lconv
+    structure.  From Alan Carvalho de Assis.
+  - libc/locale:  Allows c++ code to compile with or without
+    CONFIG_LIBC_LOCALE and will generate a link error if
+    CONFIG_LIBC_LOCALE is not defined and setlocale is referenced. With
+    CONFIG_LIBC_LOCALE defined setlocale will act as if MB string is not
+    supported and return "C" for POSIX. C and "". From David Sidrane.
+  - libc/wchar:  Add wcslen, wmemchr, wmemcmp, wmemcpy wmemset, btowc,
+    mbrtowc, mbtowc, wcscmp, wcscoll, and wmemmove to NuttX.  From Alan
+    Carvalho de Assis.
+  - libc/wctype:  Add functions wcrtomb, wcslcpy, wcsxfrm, wctob, wctomb,
+    wctype, localeconv, strcoll, strxfrm, swctype, towlower, towupper and
+    wcsftime.   Add wctype.h; Move lib_wctype.c to libc/wctype.  From Alan
+    Carvalho de Assis.
+  - include/ctype.h : Add isblank() macro to ctype.h.  From Alan Carvalho
+    de Assis.
+  - lic/stdlib:   Add strtof() and strtold() as simply a copy of strtod
+    with types and limits changed.
+  - sscanf():  Use strtof() instead of strtod() if a short floating point
+    value was requested.  The should help performance with MCUs with
+    32-bit FPU support with some additional code size.
+  - sscanf(): Add scansets to the scanf function. Enabled
+    CONFIG_LIBC_SCANSET option.  From  Aleksandr Vyhovanec.
+  - include/inttypes.h: Add architecture-specific inttypes.h.  From Paul
+    A. Patience.
+  - C Library:  Allow option to enable IP address conversions even when
+    the IP address family is not supported.
+
+* Build/Configuration System:
+
+  - The Smoothie project needs to compile C++ inside config/boardname/src/
+    to use with High Priority Interruption, then I modified the board
+    configs Makefile to support it.  It works fine for the first time
+    compilation, but if we execute "touch config/boardname/src/Pin.cxx"
+    and execute "make" it will not detect that Pin.cxx was modified. I
+    think there is some other place I should modify, but I didn't find
+    it.  From Alan Carvalho de Assis.
+
+* Tools:
+
+  - tools/: Add tools/showsize.sh.
+
+* NSH: apps/nshlib:
+
+  - NSH: dd command will show statistics.  From  Masayuki Ishikawa.
+
+* Applications: apps/system:
+
+  - apps/system/sched_note:  Extend to include additions to instumentation
+    for SMP.
+  - apps/system/sched_note:  Add support for spinlock notes.
+  - apps/system/sched_note:  Add support for new scheduler instrumentation.
+
+* Platforms: apps/platform:
+
+  - ESP32 Core v2:  Add platform support for the ESP32 core v2 board.
+  - Olimex STM32-p407: Add platform support for the Olimex STM32 P407.
+
+* Graphics: apps/graphics
+
+  - graphics/traveler/tcledit and libwld:  Add an X11 Tcl/Tk tool that can
+    be used to edit Traveler world files.
+  - Graphics: Remove all NX server taks.  Instead, call boardctl() to the
+    NX server kernel thread.
+
+* Applications: apps/examples:
+
+  - examples/buttons:  Add a new buttons example that uses the button
+    character driver instead of the architecture buttons directly. From
+    Alan Carvalho de Assis.
+  - examples/cctype:  Add an example to verify cctype functions.
+  - Remove RGMP example.
+  - examples/ostest:  Extend the pthread cancellation test to exercise
+    pthread_cleanup_push() (and pthread_cleanup_pop() indirectly via
+    pthread_cancel() and pthread_exit().
+  - examples/ostest: enhance pthread cancellation test some.
+</code></pre></div></div>
+
+<p>Works-In-Progress:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* IEEE802.14.5/6LowPAN.  Hooks and framework for this effort were
+  introduced in NuttX-7.15.  Work has continued on this effort on
+  forks from the main repositories, albeit with many interruptions.
+  The completion of this wireless feature will postponed until at
+  least NuttX-7.20.
+</code></pre></div></div>
+
+<p>Bugfixes.  Only the most critical bugfixes are listed here (see the
+ChangeLog for the complete list of bugfixes and for additional, more
+detailed bugfix information):</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - sched/semaphore: Within the OS, when a thread obtains a semaphore
+    count it must call sem_addholder() if CONFIG_PRIORITY_INHERITANCE is
+    enabled.  If a count is available, then sem_wait() calls
+    sem_addholder(), otherwise it waited for the semaphore and called
+    sem_addholder() when it eventually received the count.  This caused a
+    problem when the thread calling sem_wait() was very low priority.
+    When it received the count, there may be higher priority threads
+    "hogging" the CPU that prevent the lower priority task from running
+    and, as a result, the sem_addholder() may be delayed indefinitely.
+    The fix was to have sem_post() call sem_addholder() just before
+    restarting the thread waiting for the semaphore count.  This problem
+    was noted by Benix Vincent who also suggested the solution.
+  - Many files: Make sure that priority inheritance is not enabled for
+    semaphores whose primary use is signaling (vs locking of resources) by
+    calling sem_setprotocol().
+  - sched/semaphore:  sem_trywait() no longer modifies the errno value
+    UNLESS an error occurs.  This allows these functions to be used
+    internally without clobbering the errno value.  From Freddie Chopin.
+  - sched/clock: Correct clock initialization.  The correct range for the
+    month is 0-11 but is entered as 1-12 in the .config file.  Add ranges
+    to START_YEAR, MONTH, and DAY in sched/Kconfig.
+  - sched/clock:  Correct calculation for the case of Tickless mode with a
+    32-bit timer.  In that case, the calculation was returning millisecond
+    accuracy.  That is not good when the timer accuracy is &lt; 1 msec.  From
+    Rajan Gill.
+  - Work Queue:  When queuing new LP work, don't signal any threads if
+    they are all busy.  From Heesub Shin.
+  - Work Queue: Signal sent from work_signal() may interrupt the low
+    priority worker thread that is already running. For example, the
+    worker thread that is waiting for a semaphore could be woken up by the
+    signal and break any synchronization assumption as a result. It also
+    does not make any sense to send signal if it is already running and
+    busy. This change fixes it.  From Heesub Shin.
+  - Fix DEBUGASSERT() in group_signal.c.  From Masayuki Ishikawa.
+  - Eliminate bad boardctl() commands:  Remove all references to
+    BOARDIOC_PWMSETUP and board_pwm_setup(). Remove all references to
+    BOARDIOC_ADCSETUP and board_adc_setup(). Remove
+    BOARDIOC_CAN_INITIALIZE.  CAN initialization is now done in the board
+    initialization logic just like every other device driver.
+  - pthreads:  Fix an error in pthread_mutex_destroy().  An error could
+    occur while destroying a mutex after a pthread has been canceled while
+    holding the mutex.
+  - task_restart: Make sure new task starts with pre-emption disabled and
+    not in a critical section.
+  - Enter/leave Critical Sections.  Major redeign to
+    enter/leave_critical_section logic to deal with the case where
+    interrupts are disabled only on the local CPU.  In this case, some
+    rather complex spinlocks must be used to maintain the critical section
+    accross all CPUs.
+  - SMP Critical Sections:  Fixes for the SMP case: (1) Change order for
+    SMP case in enter_critical_section:  (1) Disable local interrupts
+    BEFORE taking spinlock and (2) If SMP is enabled, if any interrupt
+    handler calls enter_critical_section(), it should take the spinlock.
+  - SMP wdogs:  Wdog timers use a tasking interface that to manipulate
+    wdogs, and a different interface in the timer interrupt handling logic
+    to manage wdog expirations.  In the single CPU case, this is fine.
+    Since the tasking level code calls enter_critical_section, interrupts
+    are disabled and no conflicts can occur.  But that may not be the case
+    in the SMP case.  Most architectures do not permit disabling
+    interrupts on other CPUs so enter_critical_section must work
+    differently:  Locks are required to protect code. this change adds
+    locking (via enter_critical section) to wdog expiration logic for the
+    the case if the SMP configuration.
+  - SMP vfork():  Fix a race condition in the SMP case.  Existing logic
+    depended on the fact that the child would not run until waitpid was
+    called because the child had the same priority as the parent.  BUT in
+    the SMP case that is not true... the child may run immediately on a
+    different CPU.
+  - SMP: This change adds a new internal interfaces and fixes a problem
+    with three APIs in the SMP configuration.  The new internal interface
+    is sched_cpu_pause(tcb).  This function will pause a CPU if the task
+    associated with 'tcb' is running on that CPU.  This allows a different
+    CPU to modify that OS data stuctures associated with the CPU.  When
+    the other CPU is resumed, those modifications can safely take place.
+    The three fixes are to handle cases in the SMP configuration where one
+    CPU does need to make modifications to TCB and data structures on a
+    task that could be running running on another CPU.  Those three cases
+    are task_delete(), task_restart(), and execution of signal handlers.
+    In all three cases the solutions is basically the same:  (1) Call
+    sched_cpu_pause(tcb) to pause the CPU on which the task is running,
+    (2) perform the necessary operations, then (3) call up_cpu_resume() to
+    restart the paused CPU.
+  - SMP: Add logic to avoid a deadlock condition when CPU1 is hung waiting
+    for g_cpu_irqlock with interrupts interrupts and CPU0 is waiting for
+    g_cpu_paused.
+  - SMP: Enforce this rule: Tasks which are normally restored when
+    sched_unlock() is called must remain pending (1) if we are in a
+    critical section, i.e., g_cpu_irqlock is locked , or (2) other CPUs
+    still have pre-emption disabled, i.e., g_cpu_schedlock is locked.  In
+    those cases, the release of the pending tasks must be deferred until
+    those conditions are met.
+
+* File System/Block Drivers/MTD Drivers:
+
+  - AT24XX EEPROM MTD driver:  Added EEPROM timeout.  Fromo Aleksandr
+    Vyhovanec.
+  - fs/procfs:  Fix procfs status for SMP case.
+
+* Graphics/Graphic Drivers:
+
+  - Fonts:  Correct some default font IDs.  From Pierre-Noel Bouteville.
+
+* Common Drivers:
+
+  - usbhost/enumerate:  Fix possible buffer overwrite.  From Janne Rosberg.
+  - usbhost/composite:  Fix compile; missing semicolons.  From Jann Rosberg.
+  - syslog:  Fixes required for file syslog output.  From Max Kriegleder.
+  - SPI configuration:  Fix Kconfig warning.  This change moves the
+    ARCH_HAVE_SPI options outside the check for SPI.  Those options don't
+    depend on SPI, and Kconfig files  in arch/ enable them even if SPI
+    isn't  enabled.  Source the driver's Kconfig in drivers/Kconfig only
+    if support for the driver is enabled prevents us from defining these
+    ARCH_HAVE options in the driver's Kconfig. We should probably remove
+    the other checks in drivers/Kconfig and check if the drivers are
+    enabled only in their Kconfig.  From Paul A. Patience.
+  - drivers/timer:  Remove the timer driver TIOC_SETHANDLER IOCTL call.
+    This calls directly from the timer driver into application code.  That
+    is non-standard, non-portable, and cannot be supported.  Instead, add
+    timer driver hooks to support signal notification of timer
+    expiration.  Signal notification logic added by Sebastien Lorquet.
+  - All timer lower half drivers.  Port Sebastien's changes to all other
+    implementations of the timer lower half.
+  - USB MSC Device:  Fix length of mode6 sense reply packet.  From
+    Wolfgang Reißnegger.
+  - USB Composite Host:  Fix end offset in usbhost_copyinterface().  From
+    Janne Rosberg.
+  - USB CDC/ACM Host:   Add CDC_SUBCLASS_ACM and CDC_PROTO_ATM to
+    supported class and proto.  From Janne Rosberg.
+  - SSD1306:  Fix errors in SPI mode configuration.  From Gong Darcy.
+  - CDC/ACM Device Class:  uart_ops_s portion of cdcacm will not be
+    initalized with correct functions if CONFIG_SERIAL_DMA is selected.
+
+* Networking/Network Drivers:
+
+  - drivers/net/tun.c: Fix bug in TUN interface driver.  From  Max Nekludov.
+
+* ARMv7-A:
+
+  - ARMv7-A SMP: Add SMP logic to signal handling.
+
+* ARMv7-M:
+
+  - ARMv7-M: Fix double allocation of MPU region in mmu.h.
+
+* ARMv7-R:
+
+  - ARMv7-R:  Fix compilation error.  This change fixes compilation errors
+    on MPU support for ARMv7-R.  From Heesub Shin.
+  - ARMv7-R: fix invalid drbar handling.  In ARMv7-R, [31:5] bits of DRBAR
+    is physical base address and other bits are reserved and SBZ. Thus,
+    there is no point in passing other than the base address.  From Heesub
+    Shin.
+  - ARMv7-R:  Remove the redundant update on SCTLR. mpu_control() is
+    invoking cp15_wrsctlr() around SCTLR update redundantly.  From Heesub
+    Shin.
+  - ARMv7-R: add new Kconfig entries for d/i-cache. Unlike in ARMv7-A/M,
+    Kconfig entries for data and instruction caches are currently missing
+    in ARMv7-R. This change adds those missing Kconfig entries. Actual
+    implmenetation for those functions will be added in the subsequent
+    patches.  From Heesub Shin.
+  - ARMv7-R: Add cache handling functions.  This change adds functions for
+    enabling and disabling d/i-caches which were missing for ARMv7-R.
+    From Heesub Shin.
+  - ARMv7-R: Fix typo in mpu support.  s/ARMV7M/ARMV7R/g. From Heesub Shin.
+  - ARMv7-R: Fix CPSR corruption after exception handling.  A sporadic
+    hang with consequent crash was observed when booting. It seemed to be
+    caused by the corrupted or wrong CPSR restored on return from
+    exception. NuttX restores the context using code like this:  msr spsr,
+    r1.  GCC translates this to:  msr spsr_fc, r1.  As a result, not all
+    SPSR fields are updated on exception return.  This should be: msr
+    spsr_fsxc, r1.  On some evaluation boards, spsr_svc may have totally
+    invalid value at power-on-reset. As it is not initialized at boot, the
+    code above may result in the corruption of cpsr and thus unexpected
+    behavior. From Heesub Shin.
+  - ARMv7-R: Fix to restore the Thumb flag in CPSR.  Thumb flag in CPSR is
+    not restored back when the context switch occurs while executing thumb
+    instruction.  From Heesub Shin.
+
+* Atmel SAM3/4 Drivers:
+
+  - SAM3/4 UDP:  Add delay between setting and clearing the endpoint RESET
+    bit in sam_ep_resume().  We need to add a delay between setting and
+    clearing the endpoint reset bit in SAM_UDP_RSTEP. Without the delay
+    the USB controller will (may?) not reset the endpoint.  If the
+    endpoint is not being reset, the Data Toggle (DTGLE) bit will not to
+    be cleared which will cause the next transaction to fail if DTGLE is
+    1. If that happens the host will time-out and reset the bus.  Adding
+    this delay may also fix the USBMSC_STALL_RACEWAR in usbmsc_scsi.c,
+    however this has not been verified yet.  From Wolfgang Reißnegger.
+  - SAM3/4: Remove unused 'halted' flag from UDP driver.  From Wolfgang
+    Reißnegger.
+  - SAM3/4: Remove 'stalled' flag from the UDP driver.  This flag is not
+    necessary because the state of the endpoint can be determined using
+    'epstate' instead. From Wolfgang Reißnegger.
+
+* Atmel SAM3/4 Boards:
+
+  - SAM4S Xplained Pro: Configuration uses old, improper timer interface.
+    CONFIG_TIMER disabled in configuration.  Remove obsolete timer
+    initialization logic.
+
+* Atmel SAMV7 Drivers:
+
+  - SAMv7 USBDEVHS:  A problem occurred with the SAMV7 USBDEVHS driver  if
+    the USB cable is unplugged while a large amount of data is send over
+    an IN endpoint using DMA. If the USB cable is plugged in again after a
+    few seconds it is not possible to send data over this IN endpoint
+    again, all other endpoints work as expected.  The problem occurs
+    because if the USB cable is unplugged while an DMA transfer is in
+    flight the transfer is canceled but the register SAM_USBHS_DEVDMACTRL
+    is left in an undefined state.  The problem was fixed the problem by
+    resetting the register SAM_USBHS_DEVDMACTRL to a known state.
+    Additionally all pending interrupts are cleared.  From Stefan Kolb.
+  - SAMV7 MCAN: Prevent Interrupt-Flooding of ACKE when not connected to
+    CAN-BUS. An Acknowledge-Error will occur every time no other CAN Node
+    acknowledges the message sent. This will also occur if the device is
+    not connected to the can-bus. The CAN-Standard declares, that the Chip
+    has to retry a given message as long as it is not sent successfully
+    (or it is not cancelled by the application). Every time the chip tries
+    to resend the message an Acknowledge-Error-Interrupt is generated. At
+    high baud rates this can lead in extremely high CPU load just for
+    handling the interrupts (and possibly the error handling in the
+    application). To prevent this Interrupt-Flooding we disable the ACKE
+    once it is seen as long we didn't transfer at least one message
+    successfully.  From Frank Benkert.
+  - SAMV7 MCAN:  Make delete_filter functions more robust.  From Frank
+    Benkert.
+
+* Atmel SAMA5 Drivers:
+
+  - SAMA5 PWM:  Driver does not build when executing from SDRAM before
+    board frequencies are not constant.  Rather, the bootloader configures
+    the clocking and we must derive the clocking from the MCK left by the
+    bootloader.  This means lots more computations.  This is untested on
+    initial change because I don't have a good PWM test setup right now.
+
+* Misoc LM32:
+
+  - Misoc LM32: Corrects a bug that never occured in qemu on simulation or
+    real fpga. The error was that the r1 register was being modified out
+    of context switching and not restoring it.  From Ramtin Amin
+
+* NXP Freescale i.MX6:
+
+  - i.MX6 interrupt handling:  Additional logic needed to handle nested
+    interrupts when an interrupt stack is used.  Nesting can occur because
+    SGI interrupts are non-maskable.
+
+* NXP Freescale LPC43xx Drivers:
+
+  - LPC43xx serial: Fix a typo in ioctl TIOCSRS485 ioctl.  From Vytautas
+    Lukenskas.
+  - LPC43xx serial:  Restore RS485 mode on serial port open (if RS485 is
+    enabled via menuconfig).  From Vytautas Lukenskas.
+  - LPC43xx SD/MMC:  Correct some definitions on SMMC control register in
+    lpc43_sdmmc.h.  From Alan Carvalho de Assis.
+  - LPC43xx SD card:  Correct pin configuration options needed for SD card
+    pins.  From Alan Carvalho de Assis.
+
+* SiLabs EFM32:
+
+  - EFM32: Fix a compilation error.  From Pierre-noel Bouteville.
+
+* STMicro STM32 Drivers:
+
+  - STM32 CHxN channels are always outputs.  From Sebastien Lorquet.
+  - STM32 DAC:  Fix shift value whenever there are is a DAC2 and, hence,
+    up to three interfaces.  From Marc Rechté.
+  - STM32 F1:  Add TIM8 to STM32F103V pinmap.  From Maciej Wójcik.
+  - STM32 F1: Fix for F1 RTC Clock, tested on F103.  From Maciej Wójcik.
+  - STM32 F3:  STM32F303xB and STM32F303xC chips have 4 ADCs.  From Paul
+    A. Patience.
+  - STM32 F4:  A new implementation of the STM32 F4 I2C bottom half.  The
+    common I2C as this did not handled correctly in the current
+    implementation (see also https://github.com/PX4/NuttX/issues/54).  The
+    changes almost exclusively affect the ISR.  From Max Kriegleder.
+  - STM32 F4  OTGHS Host:  If STM32F446 increase number of channels to
+    16.  From Janne Rosberg.
+  - STM32 F4:  I think, that Size is (highest address+1 - Base address).
+    Base address has been removed and if address+count &gt;= size we are
+    outside of the Flash.  From David Sidrane.
+  - STM32 F4:  Fix ADC compilation error when DMA isn't enabled. From Paul
+    A. Patience.
+  - STM32 F4:  STM32F427 was rebooting. Over reached family.  From David
+    Sidrane.
+  - STM32 F4:  Added STM32F469 RAM size and deliberated STM32F446 size.
+    From David Sidrane.
+  - STM32 F4:  Typo in stm32f76xxxx_pinmap.h edited online with
+    Bitbucket.  From David Sidrane.
+  - STM32 F7:  stm32_i2c.c Dejavu.  Fixes a bug previously found in the
+    F4. From David Sidrane.
+  - STM32 F7:  OTGDEV fixed typo.  From David Sidrane.
+  - STM32 F7:  Fix to SPI-Master driver.  Without this the chip select
+    decoding feature will not work properly.  From Michael Spahlinger.
+  - STM32 F7:  STM32F7 SD/MMC driver depends on CONFIG_SDIO_DMA which is
+    only defined in stm32/Kconfig.  Changed to CONFIG_STM32F7_SDMMC_DMA
+    and defined in stm32f7/Kconfig.
+  - STM32 F7:  Fix some STM32F7 copy paste errors.  From David Sidrane.
+  - STM32 L4:  Complementary PWM outputs on STM32L4"  (1) too many
+    parentheses when calculating max chan count and (2) channel 4 does not
+    have a complementary output. From Sebastien Lorquet.
+  - STM32 L4:  Fix I2C devices RCC registers.  From Sebastien Lorquet.
+  - STM32 L4:  Enable and renaming for 32l4 UARTs 4 and 5. From Sebastien
+    Lorquet.
+  - STM32 L4:  Change the way to configure quadrature encoder prescalers.
+    From Sebastien Lorquet.
+  - STM32 L4:  Correct USART1/2 definitions.  Use default mbed UART4
+    settings.  From Sebastien Lorquet.
+
+* STMicro STM32 Boards:
+
+  - STM32F103 Minimum: Fix Timers 2 to 7 clock frequencies. From Alan
+    Carvalho de Assis.
+  - Nucleo-F303RE:  Remove duplicate setting from board.h.   From  Marc
+    Rechté.
+  - Nucleo F303RE: Various fixes to get the ADC configuration building
+    again after PR.  Refresh all configurations.
+  - Nucleo L476RG: Add better selection of timer.
+
+* TI Tiva Boards:
+
+  - DK-TM4C129x: Typo fix.  From Wolfgang Reißnegger.
+
+* Xtensa ESP32:
+
+  - ESP32 core v2:  Flush the UART TX buffer in the esp32 serial shutdown
+    routine. The ROM bootloader does not flush the FIFO before handing
+    over to user code, so some of this output is not currently seen when
+    the UART is reconfigured in early stages of startup.  From Angus
+    Gratton.
+  - Xtensa ESP32:  Corrects a problem with dispatching to signal
+    handlers:  Cannot vector directly to the signal handling function as
+    in other ABIs under the Xtensa Window ABI.  In that case, we need to
+    go through a tiny hook when performs the correct window call (call4)
+    otherwise registers will be scrambled in the signal handler.
+
+* Xtensa ESP32 Boards:
+
+  - ESP32 core v2:  Changes the openocd config file's default flash
+    voltage from 1.8V to 3.3V. This is not necessary right now, but may
+    save some hard-to-debug moments down the track (3.3V-only flash
+    running at 1.8V often half-works and does weird things...).  From
+    Angus Gratton.
+
+* C Library/Header Files:
+
+  - libc/stdio:  Fixes sscanf() %sn where strlen(data) &lt; n.  From David
+    Sidrane.
+  - libc/stdio:  Include wchar.h in lib_libvsprintf.c to fix compilation
+    error.  From Alan Carvalho de Assis.
+  - include/sys/time.h: timersub macro modified per recommendations of
+    phreakuencies.
+  - include/ctype.h and cxx/cctype:  Implement ctype.h functions as inline
+    if possible.  cctype can then properly select namespace.
+  - include/: Fix a number of header files with mismatched 'extern C {'
+    and '}'.
+  - libc/unisted:  Change brings strtol() and related functions more
+    conformant with POSIX.  Corner cases like strtol(-2147483648, NULL,
+    10) now pass clang -fsanitize=integer without warnings.  From Juha
+    Niskanen.
+  - libc/unistd: sleep() was returning remaining nanoseconds (kind of),
+    instead the remaining seconds.  From Eunbong Song.
+  - termios.h:  Fix CRTSCTS define to include input and output flow. From
+    Lorenz Meier.
+
+* Build/Configuration System:
+
+  - configs/*/defconfig: The buttons example was changed to archbuttons.
+    As a result all of the button configurations are broken and need some
+    renaming in the defconfig files.  Noted by Frank Berkert.
+  - config/*/defconfgs: More fallout from name change of
+    apps/examples/buttons to archbuttons.
+  - configs:  All QE encoder files.  Last change made timer hard-coded to
+    3. Make configurable.
+  - configs: Remove all traces of the no-longer existent ARCHBUTTONS
+    example.  Remove all button configurations that depended on the
+    obsoleted ARCHBUTTON example.
+  - minnsh Configurations:  Remove minnsh configurations and support
+    logic:  up_getc() and lowinstream.  This was an interesting exercise
+    to see just how small you could get NuttX, but otherwise it was not
+    useful:  (1) the NSH code violated the OS interface layer by callup
+    up_getc() and up_putc() directly, and (2) while waiting for character
+    input, NSH would call up_getc() which would hog all of the CPU.  Not a
+    reasonable solution other than as a proof of concept.
+
+* Application Build/Configuration System:
+
+  - Make.defs:  Using wrong link script if native window tool used with
+    Cygwin.
+
+* apps/platform:
+
+  - ESP32 Core v2 Platform: Fix some naming that prevented building the
+    C++ support.
+
+* apps/nshlib:
+
+  - NSH Library:  nsh_getdirpath(), use snprint instead of sprintf to
+    avoid possibility of buffer overrun.  Noted by Chung Hwan Kim.
+
+* apps/system:
+
+  - Remove std_readline().  This called up_getc() and up_putc() directly,
+    violating the POSIX OS interface.
+
+* apps/netutils:
+
+  - FTPD: Fixed bug that didn't free ftpd ressources on exit.  From Pascal
+    Speck.
+  - NTP client: Fix missing left parenthesis.  From Pierre-Noel Bouteville.
+  - cJSON: Import patch to fix:cJSON_PrintUnformatted() behaves unexpected
+    if an empty array shall be printed to text. from Jerome Lang
+    2012-04-19. From Pierre-Noel Bouteville.
+  - esp8266 update cosmetic and many bug fix.  From Pierre-Noel Bouteville.
+  - FTPD:  Fix bug un ftpd file or socket may be not closed.  From
+    Pierre-Noel Bouteville.
+
+* apps/modbus:
+
+  - Modbus Master is missing many files and doesn't compile at all. More
+    details in
+    https://groups.yahoo.com/neo/groups/nuttx/conversations/topics/13734.
+    From Vytautas Lukenskas.
+
+* apps/examples:
+
+  - The examples/qencoder app was trying to init the encoder by a direct
+    call into the board, cheating in a local header to declare the
+    normally unavailable function prototype.  From Sebastien Lorquet.
+  - apps/examples/timer: Should detach signal handler before exiting.
+  - examples/qencode: The examples/qencoder app was trying to init the
+    encoder by a direct call into the board, cheating in a local header to
+    declare the normally unavailable function prototype.  From Sebastien
+    Lorquet.
+  - apps/examples/archbuttons:  Removed becaue it violates OS interface
+    principles.
+  - examples/adc, pwm, can: Remove all usage of BOARDIOC_ADCTEST_SETUP,
+    BIOARDIOC_PWMSETUP.  Remove BOARDIOC_CAN_INITIALIZE.  CAN
+    initialization is now done in the board initialization logic just like
+    every other device driver.
+  - examples/ostest: Add some delays to the pthread cancellation test.
+    With deferred cancellation enabled, things happen more asynchronously.
+</code></pre></div></div>
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2020 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache NuttX is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2019 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+
diff --git a/content/releases/7.20/index.html b/content/releases/7.20/index.html
new file mode 100644
index 0000000..522185a
--- /dev/null
+++ b/content/releases/7.20/index.html
@@ -0,0 +1,608 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>7.2</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/">
+              <img src="/assets/themes/apache/img/logo.png" width="30">
+              Apache NuttX
+          </a>
+        </div>
+        <nav class="navbar-collapse collapse" role="navigation">
+          <ul class="nav navbar-nav navbar-right">
+            <li id="community">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
+               <ul class="dropdown-menu dropdown-left">
+                <li><a href="/community">Get Involved</a></li>
+                <li><a href="/community-members">Who we are</a></li>
+               </ul>
+            </li>
+            <li><a href="https://github.com/apache/incubator-nuttx">GitHub</a></li>
+            <li id="apache">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+               <ul class="dropdown-menu">
+                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li><a href="http://www.apache.org/security/">Security</a></li>
+                <li><a href="http://www.apache.org/events/current-event">Events</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                </ul>
+            </li>
+          </ul>
+        </nav><!--/.navbar-collapse -->
+      </div>
+    </div>
+
+
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit 7.2">
+  <h1></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="nuttx-720-release-notes">NuttX-7.20 Release Notes</h2>
+
+<p>The 120th release of NuttX, Version 7.20, was made on March 8, 2017,
+and is available for download from the Bitbucket.org website.  Note
+that release consists of two tarballs:  nuttx-7.20.tar.gz and
+apps-7.20.tar.gz.  These are available from:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://bitbucket.org/nuttx/nuttx/downloads
+https://bitbucket.org/nuttx/apps/downloads
+</code></pre></div></div>
+
+<p>Both may be needed (see the top-level nuttx/README.txt file for build
+information).</p>
+
+<p>Additional new features and extended functionality:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - Kernel Modules:  Module initializer may now return a symbol table.
+  - Modules:  Extend the module interface so that we can access symbols
+    exported by the module.
+  - Shared Libraries:  In the FLAT build mode, kernel modules may be
+    used to provide minimal shared library functionality.
+  - Modules/Shared Libraries:  Add support for dependencies between
+    modules.
+  - Module Library:  Add build a configuration logic for a shared module
+    library.
+  - Shared Libraries: Implement module based shared libraries for the
+    PROTECTED mode build.
+  - Interrupt handling:  irq_attach() now includes an argument of type
+    xcpt_t that retained with the handler address.  That argument is
+    then provided to the interrupt handler when the interrupt occurs. 
+    The common parameter passing replaces the ad hoc parmater passing
+    implemented in current drivers.  From Mark Schulte.
+  - Adapt many drivers to utilize the IRQ argument feature.
+  - All functions that used to return an xcpt_t old handler value, now
+    return an int error code.  The oldhandler value is no longer useful
+    with the recent changes to the interrupt argument passing.  Some of
+    the functions effected include board_button_irq(), arch_phy_irq(),
+    STM32 EXTI functions (Alarm, COMP, PVD), GPIO interrupt logic like
+    kinetis_pinirq(), stm32_gpiosetevent(), and others.
+  - IRQ subsystem:  Add support for smaller interrupt tables as
+    described at
+    http://www.nuttx.org/doku.php?id=wiki:howtos:smallvectors .  This
+    is partially the work of Mark Schulte.
+
+* File Systems/Block and MTD Drivers
+
+  - Pseudo File System:  Add support for soft links in the top-level
+    psuedo file system.
+  - Soft links:  Add an implementation of readlink().
+  - Add fstat() support.  Implement fstat() method in binfs, romfs,
+    unionfs, tmpfs, nxffs, nfx, hostfs, procfs, and smartfs.
+  - fstat:  Add fstat() support to FAT.  From Alan Carvalho de Assis.
+
+* Graphics/Display Drivers:
+
+  - Fonts: Add support for Tom Thumb small mono-space font. From Alan
+    Carvalho de Assis.
+  - Graphics:  Separated of font cache from graphics/nxterm.  Now in
+    libnx/nxfronts where it can be shared with other grapics
+    applications.
+
+* Networking/Network Drivers:
+
+  - Ethernet drivers:  Add framework for serialization in the case where
+    multiple low-priority work queues are used.
+
+* Other Common Device Drivers:
+
+  - Add capabilities() method to SDIO interface.  Remove
+    CONFIG_SDIO_WIDTH_D1_ONLY.  That should not be a global propertie,
+    but rather a capability/limitation of single slot when there may be
+    multiple slots.
+  - Removed dmasupported() method from the SDIO interface.  That is now
+    a bit in the capability set.
+  - drivers/sensors: Add driver for the ST L3GD20 3 axis gyro.  From
+    raiden00.
+
+* Atmel SAM3/4:
+
+  - SAM3/4: Add support for ATSAM4S4C.  From Wolfgang Reißnegger.
+
+* NXP Freescale i.MX6 Boards:
+
+  - Sabre 6quad:  Enable examples/smp test in i.MX6 SMP/NSH
+    configurations.
+
+* NXP Freescale Kinetis:
+
+  - Kinetis:  Added support for CHIP_MK60FN1M0VLQ12 chip.  From Maciej
+    Skrzypek.
+  - Kinetis:  Add support for K64/K66 RTC lower half driver. From Neil
+    Hancock.
+  - Kinetis:  Extensive modification of MCG support based feature
+    configuration.  From David Sidrane.
+  - Kinetis:  Add support for K66 family.  From David Sidrane.
+  - Kinetis:  Created a kinetis SIM versioning scheme pulled in by
+    Kinetis chip.h.  From David Sidrane.
+  - Created a kinetis PMC versioning scheme pulled in by Kinetis
+    chip.h.  From David Sidrane.
+  - Kinetis:  Extend clock configuration logic.  Refactor
+    implementation.  From David Sidrane.
+
+* NXP Freescale Kinetis Drivers:
+
+  - Kinetis Ethernet:  Kinetis Support RMII clock source select.  This
+    defined the RMII clock source select bits and allows the selection
+    to be made via Kconfig. From David Sidrane.  Freedom-K66F uses
+    ENET_1588_CLKIN as RMII clock
+  - Kinetis Serial:  Added configurable 1|2 stop bits.
+    HAVE_SERIAL_CONSOLE -&gt; HAVE_UART_CONSOLE to be consistent with
+    HAVE_LPUART_CONSOLE naming. From David Sidrane.
+  - Kinetis LPserial:  Add LPUART serial driver and Clock
+    configuartaion to freedom-k66f board.  From David Sidrane.
+  - Kinetis USB device:  Refactor clocking in kinetis_usbdev.  From
+    David Sidrane.
+
+* NXP Freescale Kinetis Boards:
+
+  - Add support for NXP Freedom-k66f development board.  From David
+    Sidrane.
+  - Kinetis Freedom K66F:  Add Ethernet support.  From David Sidrane.
+  - Add twr-k64f120m config.  From Marc Rechté.
+
+* NXP Freescale LPC43xx Boards:
+
+  - Bamboo-200E: Add netnsh configuration.  From Alan Carvalho de Assis.
+  - Add usbnsh config to Bambino 200E board.  From Alan Carvalho de
+    Assis.
+
+* STMicro STM32:
+
+  - STM32 F7: Allow board to configure HSE clock in bypass-mode. This
+    is needed to enable HSE with Nucleo-F746ZG board.  From Jussi
+    Kivilinna.
+  - STM32 F7: stm32_allocateheap: allow use DTCM memory for heap. 
+    STM32F7 has up to 128KiB of DTCM memory that is currently left
+    unused.  This change adds DTCM to main heap if
+    CONFIG_STM32F7_DTCMEXCLUDE is not enabled.  From Jussi Kivilinna.
+  - Add basic support for the STM32F334.  From Mateusz Szafoni.
+  - STM32F33XX DAC, OPAMP, COMP, ADC, HRTIM headers.   From Mateusz
+    Szafoni.
+
+* STMicro STM32 Drivers:
+
+  - STM32 F7 SDMMC:  Add support for single bit operation on SDMMC2.
+  - STM32 L4:  Port STM32L4 SAI driver from MDK.
+  - STM32 L4:  Bring power management logic from Motrola MDK into NuttX.
+  - STM32 L4:  Bring LPTIM driver in from the Motorola MDK.
+  - STM32 L4 COMP: Port from Motorola MDK.
+
+* STMicro STM32 Boards:
+
+  - STM32F429i Discovery: Add support for NxWM on STM32F429i-Disco
+    board. From Alan Carvalho de Assis.
+  - STM32F103 Minimum: Add support for nRF24 on STM32F103-Minimum
+    board. From Alan Carvalho de Assis.
+  - Olimex STM32 P407: Add a NSH protected build configuration; Enable
+    procfs/ in all configurations.
+  - Olimex STM32 P407: Add support for on-board microSD slot.
+  - STM32F429i Discovery: add support for the L3GD20 driver.  From
+    raiden00.
+  - STM32F103 Minimum: Add support to QEncoder on STM32F103 Minimum
+    board.   From Alan Carvalho de Assis.
+  - Olimex STM32 P407:  Add external SRAM support.
+  - Add basic support for the Nucleo F334R8 board.  From Mateusz
+    Szafoni.
+  - STM32F103 Minimum: Add SDCard support over SPI on STM32F103-Minimum
+    board.  From Alan Carvalho de Assis.
+  - STM32F103 Minimum: Add support to USB Device on STM32F103-Minimum
+    board.  From Alan Carvalho de Assis.
+
+* C Library/Header Files:
+
+  - compiler.h: packed_struct replaced by begin_packed_struct and
+    end_packed_struct. Now support IAR style packed structures.  From
+    Aleksandr Vyhovanec.
+  - Math library: Leverage optimized ARMv8-M functions from BSD license
+    ARM file.
+  - Shared libraries:  Add a non-standard dllfnc.h function to set the
+    symbol table.
+  - C Library: Add a support for setvbuf(). This is a collaborative
+    effort.  Alan Carvalho de Assis did the initial prototype.
+  - C Library: Add setbuf() which is a trivial wrapper around setvbuf().
+  - C library:  Add swab().
+  - C library: Add strtoimax and strtoumax.
+  - C library:  Add ffs(), rindex(), an index().  Add strings.h.  Move
+    strcasecmp, strncasecmp, bzero, bcmp, and bcopy to where they
+    belong in strings.h.h, not string.h.  bzero, bcmp, and bcopy are
+    legacy functions; the contemporary counterparts should be used
+    instead.
+  - C library: Add fstatfs().
+  - Update cwchar.  Add cwctype.
+
+* Build/Configuration System:
+
+  - Add configuration support for builds with Ubuntu under Windows 10.
+
+* Tools:
+
+  - tools/noteinfo.c: A hack tool that I use to analyze some sched_note
+    output.  Needs a home and may be useful to others.
+  - tools/mkconfig.c: Add logic to keep all of the buffering options in
+    sync.
+
+* NSH: apps/nshlib:
+
+  - NSH: Add support for the 'ln' command.
+  - NSH ls command: if node is a symobolic link, use readlink() to get
+    and the display the target of the symblic link.
+  - NSH: Add readlink command.
+
+* Applications: apps/examples:
+
+  - apps/examples/nxtext: Make line spacing configurable.
+  - apps/system/zmodem/host/nuttx/compiler.h synchronized with
+    nuttx/nuttx/include/nuttx/compiler.h.  From Aleksandr Vyhovanec.
+  - apps/examples/sotest:  Add a test for shared libraries.
+  - apps/examples/ostest:  Add a test of setvbuf().
+  - apps/examples/stat:  Add a simple test for stat(), fstat(),
+    statfs(), and fstatfs().
+</code></pre></div></div>
+
+<p>Works-In-Progress:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* IEEE802.14.5/6LowPAN.  Hooks and framework for this effort were
+  introduced in NuttX-7.15.  Work has continued on this effort on
+  forks from the main repositories, albeit with many interruptions.
+  The completion of this wireless feature will postponed until at
+  least NuttX-7.21.
+</code></pre></div></div>
+
+<p>Bugfixes.  Only the most critical bugfixes are listed here (see the
+ChangeLog for the complete list of bugfixes and for additional, more
+detailed bugfix information):</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - SMP: There were certain conditions that we must avoid by preventing
+    the release of the pending tasks while withn a critical section. 
+    But this logic was incomplete; there was no logic to prevent other
+    CPUs from adding new, running tasks while on CPU is in a critical
+    section.  This commit corrects this.  This is matching logic in
+    sched_addreadytorun to avoid starting new tasks within the critical
+    section (unless the CPU is the holder of the lock).  The holder of
+    the IRQ lock must be permitted to do whatever it needs to do.
+  - SMP: Make checks for CPU lock set more robust.  There are certain
+    conditions early in initialization on during interrupt handling
+    where things need to be done a little differently.
+  - sched_cpulocked:  Avoid use of spinlock.  That has been reported to
+    cause a deadlock (2016-12-28).
+  - SMP: Fix a gap where we may try to make modifications to the task
+    lists without being in a critical sections.  That permits
+    concurrent access to the tasks lists and many subtle problems. 
+    This fix just remains in the critical section throughout the
+    operation (and possible until the task is restore in the event of a
+    context switch).  Makes a big difference in stability.
+  - SMP: Fix an error in critical section logic when performing a
+    context switch from an interrupt handler.  The g_cpu_irqset bit was
+    not being set for the CPU so other CPUs did not know about the
+    critical section.
+  - SMP Signals: Fix some SMP signal delivery logic. Was not handling
+    some critical sections correctly and was missing logic to signal
+    tasks running on other CPUs.
+  - SMP:  Fix timer related issues:  Round robin and sporadic
+    scheduling were only being performed for tasks running on the CPU
+    that processes the system timer interrupt.  Similary, CPU load
+    measurements were only be processed for running on the CPU that
+    receives the sampling interrupt.
+  - sched_note: Fix spinlock instrumentation.  From Masayuki Ishikawa.
+  - In all implementations of _exit(), use enter_critical_section() vs.
+    disabling local interrupts.
+  - sigtimedwait:  When timer expires, up_unblock_task() is called. 
+    This is okay in the single CPU case because interrupts are disable
+    in the timer interrupt handler.  But it is insufficient in the SMP
+    case.  enter_ and leave_critical_section() must be called in order
+    to manage spinlocks correctly.
+  - Fix a compile error: in sched_cpuload.c:Line136, the variables ts
+    and secs are not defined if CONFIG_CPULOAD_ONESHOT_ENTROPY = 0.
+    However, these variables are used regardless of
+    CONFIG_CPULOAD_ONESHOT_ENTROPY at lines~180:onwards.  From rg.
+  - CPU load: Correct computation of the nominal period to use when the
+    source is a oneshot timer.
+  - Cancellation points:  Fix some backward logic in conditional
+    compilation.
+  - Remove an unused variable when calling sigwaitinfo() and
+    sigtimedwait().  From Masayuki Ishikawa.
+
+* File System/Block and MTD Drivers:
+
+  - procfs:  Correct to snprintf-related errors in fs_procfsproc.c.
+    Resolves issue #24.
+  - Add logic to VFS rename:  If target of rename exists and is a
+    directory, then the source file should be moved 'under' the target
+    directory. POSIX also requires that if the target is a file, then
+    that old file must be deleted.
+  - Fix open() a block device with
+    CONFIG_DISABLE_PSEUDOFS_OPERATIONS=y. From Masayuki Ishikawa.
+  - File System: Don't build block driver proxy if PSEUDOFS_OPERATIONS
+    are disabled.
+  - sendfile():  Fix error introduced with commit
+    ff73be870e38959b0aaee5961dc47b4b58dc2d86.  Noted by Maciej Wójcik.
+
+* Graphics/Graphic Drivers:
+
+  - NxWM configurations.  If using a 7-bit character set, then the
+    cursor character cannot be 137 (graphic block).  Use 95
+    (underscore) instead.
+  - NX server: Correct message queue names.  Should not be at /dev,
+    but rather relative to /var/mqueue.
+
+* Common Drivers:
+
+  - MMCSD_SDIO: Only wait for card ejected if card detection is
+    supported. From Alan Carvalho de Assis.
+  - Typos withim mtd/ with Macronix MX25L.  In
+    NuttX/drivers/mtd/Make.defs letters X between M and 25 are
+    missing.  Noted by Oleg Evseev.
+  - USBMSC: Always set LUN readonly flag.  From Wolfgang Reißnegger.
+  - drivers/lcd:  ssd1306_configspi() must have global scope.
+  - MMC/SD SDIO:  Some drivers need to start DMA before sending CMD24
+    and some AFTER.  From Alan Carvalho de Assis.
+  - drivers/tone.c:  Handle configuration with multiple PWM channels.
+    This resolves issue #30: Audio Tone Generator and PWM Multiple
+    Output Channel options.
+  - drivers/tone.c:  50% duty needs to be expressed a a fixed precision
+    number.
+  - drivers/spi/Kconfig:  There is too much SPI in the configuration
+    menu; SPI Driver Support menu is empty.  From Maciej Wójcik.
+  - option to enable Memory Card debug output was hidden with SD cards
+    connected through SPI.   From Maciej Wójcik.
+  - usbhost_cdcacm: fix tx outbuffer overflow and remove now invalid
+    assert.  From Janne Rosberg.
+
+* Networking/Network Drivers:
+
+  - Networking: Fixed some issues that prevented IPv6 from working with
+    IPv4 enabled.  From Pascal Speck.
+  - Networking: fixed a nullptr-dereference on iob_clone.  From Pascal
+    Speck.
+  - Ethernet: Need two work structures (minimum) in all Ethernet
+    drivers so that pending poll work is not lost when an interrupt
+    occurs.
+
+* ARMv7-R:
+
+  - I found an issue inside the cp15_coherent_dcache function:  The
+    "mcr CP15_BPIALLIS(r0)" should only be used with SMP
+    configurationa. In non-SMP configuration this instruction could
+    become undefined.  From Manohara HK.
+
+* Atmel SAM3/4 Drivers:
+
+  - SAM3/4: GPIO bit numbering typo fixes.  From Wolfgang Reißnegger.
+
+* Atmel SAM3/4 Boards:
+
+  - Add missing sched_note_*() calls in sam4cm SMP functions.
+
+* NXP/Freescale Kinetis:
+
+  - Kinetis: Fixed wrong MCG VDIV calculation on new NXP K60.  From
+    Maciej Skrzypek.
+  - Kinetis: Need to set HAVE_UART_DEVICE when UART4 is selected.  From 
+    Maciej Skrzypek.
+  - Kinetis MCG: Wrong FRDIV set in MCG_C1.  From Maciej Skrzypek.
+
+* NXP/Freescale Kinetis Drivers:
+
+  - Kinetis Serial: Fixed compile error when UART5 is selected.  From
+    Maciej Skrzypek.
+  - Kinetis SDHC - Enable clock after selected.  From David Sidrane.
+  - Kinetis:  Correct some SPI and I2C configuration issues.  From
+    David Sidrane.
+  - Kinetis Ethernet:  Add #define for number of loops for auto
+    negotiation to complete.  From Marc Rechté.
+  - Kinetis Werial:  Fixed up_rxint - did not disable the RX
+    interuppts. There was an OR where and AND NOT was needed.  From
+    David Sidrane.
+
+* NXP/Freescale LPC43xx:
+
+  - LPC43 pinset definitions:  Add more 1 bit to pinset to reach
+    SFSCLK0-SFSCLK3. Remove PINCONFIG_DIGITAL.  From Alan Carvalho de
+    Assis.
+
+* NXP/Freescale LPC43xx Drivers:
+
+  - LPC43 serial:  Correct conditional logic that selects /dev/ttySN.
+    Problem noted by Alan Carvalho de Assis.
+
+* NXP/Freescale i.MX6:
+
+  - i.MX6: Fix clearing GPT status register.  From Masayuki Ishikawa.
+
+* STMicro STM32:
+
+  - STM32, STM32L4 Oneshot: Fix logic so that it can support multiple
+    oneshot timers.
+  - STM32 F7: Added missing ARCH_HAVE_RESET for F7.  From David Sidrane.
+  - STM32:  Add missing STM32_BKP_BASE.  From David Sidrane.
+  - STM32 and STM32F7: Fixes the BKP reference counter issue.  From
+    David Sidrane.
+
+* STMicro STM32 Drivers:
+
+  - Fix for SAMv7 SPI: DLYBS value was calculated, but never written to
+    any registers. This led to incorrect timings on the bus.  From
+    Michael Spahlinger.
+  - STM32 QEncoder: Fix QEncoder driver, based on STM32L4 driver.  From
+    Alan Carvalho de Assis.
+  - STM32 QEncoder:  Enable clocking to the timer on QE setup; disable
+    clock on QE teardown.
+  - STM32 Ethernet: Need two work structures so that pending poll work
+    is not lost when an interrupt occurs.  This change has also been
+    ported to all all other effected Ethernet drivers.
+  - STM32 OTGHS host:  stm32_in_transfer() fails and returns NAK if a
+    short transfer is received.  This causes problems from class
+    drivers like CDC/ACM where short packets are expected.  In those
+    protocols, any transfer may be terminated by sending short or NUL
+    packet.  From Janne Rosberg.  Adapted Janne Rosberg's patch to
+    STM32 OTGHS host to OTGFS host, and to similar USB host
+    implementations for STM32 L4 and F7.
+
+* STMicro STM32 Boards:
+
+  - STM32F4 Discovery: Fix issues with QEncoder support.  From Alan
+    Carvalho de Assis.
+
+* C Library/Header Files:
+
+  - Add debug assertion in libdtoa to catch attempts to use floating
+    point output formats from within an interrupt handler.  That will
+    cause assertions or crashes downstream because __dtoa will attempt
+    to allocate memory.  From Pierre-noel Bouteville.
+  - libc: Fix ARMv7-A/R memcpy assembly.
+  - Fix return value if x is NaN.  From Aleksandr Vyhovanec.
+
+* apps/nshlib:
+
+  - NSH: Eliminate a warning when all memory inspection commands are disabled.
+
+* apps/graphics:
+
+  - apps/graphics/traveler/tools: Fix linkage issue. The -lm should
+    come after -o binname.  From Alan Carvalho de Assis.
+
+* apps/netutils:
+
+  - The CONFIG_NETUTILS_HTTPD_PATH constant is used by httpd_mmap.c and
+    httpd_sendfile.c but It was not present in Kconfig menu.  From
+    Maciej Wójcik.
+
+* apps/examples:
+
+  - Configurations that enable OSTEST must not disable signals.
+  - apps/examples/ostest:  Was ignoring
+    CONFIG_EXAMPLES_OSTEST_FPUTESTDISABLE.
+  - In apps/examples/mtdpart/mtdpart_main.c where
+    CONFIG_EXAMPLES_MTDPART_NPARTITIONS defining is checked should be
+    #ifndef instead of #ifdef.  Noted by Oleg Evseev.
+</code></pre></div></div>
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2020 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache NuttX is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2019 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+
diff --git a/content/releases/7.21/index.html b/content/releases/7.21/index.html
new file mode 100644
index 0000000..ad6e575
--- /dev/null
+++ b/content/releases/7.21/index.html
@@ -0,0 +1,1134 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>7.21</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/">
+              <img src="/assets/themes/apache/img/logo.png" width="30">
+              Apache NuttX
+          </a>
+        </div>
+        <nav class="navbar-collapse collapse" role="navigation">
+          <ul class="nav navbar-nav navbar-right">
+            <li id="community">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
+               <ul class="dropdown-menu dropdown-left">
+                <li><a href="/community">Get Involved</a></li>
+                <li><a href="/community-members">Who we are</a></li>
+               </ul>
+            </li>
+            <li><a href="https://github.com/apache/incubator-nuttx">GitHub</a></li>
+            <li id="apache">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+               <ul class="dropdown-menu">
+                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li><a href="http://www.apache.org/security/">Security</a></li>
+                <li><a href="http://www.apache.org/events/current-event">Events</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                </ul>
+            </li>
+          </ul>
+        </nav><!--/.navbar-collapse -->
+      </div>
+    </div>
+
+
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit 7.21">
+  <h1></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="nuttx-721-release-notes">NuttX-7.21 Release Notes</h2>
+
+<p>The 121st release of NuttX, Version 7.21, was made on June 6, 2017,
+and is available for download from the Bitbucket.org website.  Note
+that release consists of two tarballs:  nuttx-7.21.tar.gz and
+apps-7.21.tar.gz.  These are available from:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://bitbucket.org/nuttx/nuttx/downloads
+https://bitbucket.org/nuttx/apps/downloads
+</code></pre></div></div>
+
+<p>Both may be needed (see the top-level nuttx/README.txt file for build
+information).</p>
+
+<p>Additional new features and extended functionality:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - pthread rwlocks:  Add an implementation for read/write locks
+    (rwlocks) into the pthread library.  These locks are writer
+    priority, such that if any writers come in they are given priority
+    for writing.  From Mark Schulte.
+  - pthread robust mutexes:  Implement robust mutex support:
+    pthread_mutex_lock() and trylock() will return EOWNERDEAD if the
+    mutex is locked by a thread that no longer exists.  Add
+    pthread_mutex_consistent() to recover from this situation.  Keep
+    list of all mutexes held by a thread in a list in the pthread's TCB.
+    When pthread exits or is cancelled, mutexes held by thread are
+    marked inconsistent and the highest priority thread waiting for the
+    mutex is awakened.  There is a configuration option to (a) support
+    only robust mutexes, (b) support only traditional unsafe mutexes,
+    or (c) Support both unsafe and robust mutexes via
+    pthread_mutexattr_get/setrobust().
+  - pthread cancellation points:  Add logic to disable cancellation
+    points within the OS.  This is useful when an internal OS function
+    that is NOT a cancellation point calls an OS function which is a
+    cancellation point.  In that case, irrecoverable states may occur if
+    the cancellation is within the OS. From Juha Niskanen.
+  - clock:  Add clock_resynchronize and use subseconds RTC.  Add
+    clock_resynchronize for better synchronization of CLOCK_REALTIME and
+    CLOCK_MONOTONIC to match RTC after resume from low-power state.  Add
+    up_rtc_getdatetime_with_subseconds under
+    CONFIG_ARCH_HAVE_RTC_SUBSECONDS to allow initializing (and
+    resynchronizing) system clock with subseconds accuracy RTC.  From
+    Jussi Kivilinna.
+  - clock:  Add new type ssystime_t for relative 64-bit ticks, change
+    ticks&lt;-&gt;time conversion functions to use ssystime_t.  From Jussi
+    Kivilinna.
+  - clock:  Add testing for 32-bit overflow of 64-bit system timer.  From
+    Jussi Kivilinna.
+
+* File Systems/Block and MTD Drivers
+
+  - drivers/mtd/w25.c:  Erase sector only if it is not in erased state.
+    From Jussi Kivilinna.
+
+* Graphics/Display Drivers:
+
+  - drivers/lcd:  Extend st7565 driver to include support for the
+    AQM_1248A.  From Masayuki Ishikawa.
+  - drivers/lcd:  Add driver for Nokia 5110 (Philips PCD8544).  From Alan
+    Carvalho de Assis.
+
+* Networking/Network Drivers:
+
+  - Extensive modifications to support wireless network (see below).
+  - TUN driver:  Implement TAP (OSI layer 2) mode. Enable by setting the
+    IFF_TAP flag instead of the IFF_TUN flag in ifr_flags.  From Thomas
+    Keh.
+  - Add user-space networking stack API (usrsock).  User-space
+    networking stack API allows user-space daemon to provide TCP/IP
+    stack implementation for NuttX network.  Main use for this is to
+    allow use and seamless integration of HW-provided TCP/IP stacks to
+    NuttX.  For example, user-space daemon can translate /dev/usrsock
+    API requests to HW TCP/IP API requests while rest of the user-space
+    can access standard socket API, with socket descriptors that can be
+    used with NuttX system calls.  From Jussi Kivilinna.
+  - net/:  Network driver now retains Ethernet MAC address in a union so
+    that other link layer addresses may be used in a MULTILINK
+    environment.
+
+* Wireless Networking/Wireless Drivers:
+
+  - BCM43362:  Support for Broadcom's BCM43362 WiFi chip was contributed
+    by Simon Piriou as part of the port of the Particle Photon board.
+    Only station functionality is available at present.  This work
+    includes not on the WiFi driver, but the support Particle Photon
+    board, the infrasture for IEEE 802.11 FullMAC networking including
+    the network device interface, WiFi configuration, AP scanning and
+    authentication and association with an AP.
+  - IEEE 802.11 networking tools and support.
+  - IEEE 802.15.4 MAC support.  This is an effort that was started some
+    time back by Sebastien Lorquet (with some help from Matte Poppe).
+    Recently, Anthony Merlino has taken on this effort and has made
+    some significant progress.  Using the Microchip MRF24J40 module with
+    the Mikroe Clicker2-STM32 board along with a PC-based IEEE 802.15.4
+    sniffer, Anthonly has verified correct transmittion and receipt of
+    basic frames.
+  - Microchip MRF24J40: As mentioned above, this IEEE 802.15.4 radio
+    driver is now basically functional.
+  - IEEE 802.15.4 Network Driver:  A driver that interfaces the NuttX
+    network with the IEEE 802.15.4 MAC has been developed but is still
+    incomplete and has not been verified.
+  - IEEE 802.15.4 Network Loopback Driver:  A simple IEEE 802.15.4 MAC
+    loopback driver was developed.  This driver allowed for parallel
+    development of the IEEE 802.15.4 MAC and 6loWPAN.
+  - 6loWPAN:  The Contiki 6loWPAN stack has been ported so that works
+    within the NuttX networking framework and interfaces with the new
+    IEEE 802.15.4 MAC via the network driver.  Live testing with
+    IEEE 802.15.4 radios has not yet been done; all testing has used
+    the loopback driver.  There are no known problems and the stack
+    is ready for additional testing.
+  - Add option to enable wireless debug output.
+
+* Other Common Device Drivers:
+
+  - Add entropy pool and strong random number generator.   Entropy pool
+    gathers environmental noise from device drivers, user-space, etc.,
+    and returns good random numbers, suitable for cryptographic use.
+    Based on entropy pool design from *BSDs and uses BLAKE2Xs algorithm
+    for CSPRNG output.  Patch also adds /dev/urandom support for using
+    entropy pool RNG and new 'getrandom' system call for getting
+    randomness without file-descriptor usage (thus avoiding file-
+    descriptor exhaustion attacks). The 'getrandom' interface is similar
+    as 'getentropy' and 'getrandom' available on OpenBSD and Linux
+    respectively.  From Jussi Kivilinna.
+  - XBox One controller:  Adds USB host driver support for the XBox One
+    controller.  Currently only the latest version (XBox One X)
+    controller works.  The older XBox One controllers do not enumerate
+    correctly.  From Brian Webb.
+  - drivers/analog:  Add basic COMP driver.  From Mateusz Szafoni.
+  - drivers/analog:  Add driver for the LTC1767L ADC.  From Martin
+    Lederhilger.
+  - drivers/analog:  Add basic OPAMP driver.  From Mateusz Szafoni.
+  - drivers/sensors:  Add driver for ST HTS221 humidity sensor.  From
+    Juha Niskanen.
+  - drivers/sensors:  Add driver for ST LPS25H pressure sensor.  From
+    Juha Niskanen.
+  - drivers/sensors:  Add driver for ST LIS2DH accelerometer.  From Timo
+    Voutilainen.
+  - drivers/usbmisc:  Add driver for Fairchild FUSB301 USB type-C
+    controller.  From Harri Luhtala.
+  - RTC:  Add interface for check if RTC time has been set.  New
+    interface allows checking if RTC time has been set.  This allows to
+    application to detect if RTC has valid time (after reset) or should
+    application attempt to get real time by other means (for example, by
+    launching ntpclient or GPS).  From Jussi Kivilinna.
+  - Buttons:  Change return value of board_buttons() and the type of
+    btn_buttonset_t to uint32_t so that more than 8 buttons can be
+    supported.
+  - drivers/syslog:  Use monotonic clock for timestamp when available.
+    From Jussi Kivilinna.
+  - SPI:  Add an instance argument to the SPIDEV definitions.  Thus,
+    instead of specifying a FLASH device, for example, as SPI_FLASH, you
+    would now use SPI_FLASH(0) where the "instance" argument now
+    distinguishes multiple FLASH devices on the same SPI bus.  From
+    Sebastien Lorquet.
+  - IOBs:  Move from net/iob to a better location in mm/iob where they
+    can be shared outside of the networking logic.  Current also used
+    by IEEE 802.15.4 MAC and by syslog (when buffering enabled).
+  - syslog:  Add option to buffer SYSLOG output to avoid interleaving.
+    Uses new shareable IOBs.  Additional logic to assure that the the
+    write from the buffer is a single atomic write in normal debug
+    output.
+  - drivers/can:  Move CAN subsystem to its own directory and put device
+    drivers there.  From Alan Carvalho de Assis.
+  - drivers/can:  Add Microchip MCP2515 CAN Bus controller driver.  From
+    Alan Carvalho de Assis.
+  - drivers/audio:  Add cs43l22 audio driver.  From Taras Drozdovsky.
+  - drivers/input:  Add Cypress MBR3108 CapSense touch button driver.
+    From Juha Niskanen.
+
+* Simulation
+
+  - configs/sim/sixlowpan:  Configuration for testing the 6loWPAN with
+    the IEEE 802.15.4 loopback network driver.
+
+* Infineon XMC4xxx:
+
+  - arch/arm/src/xmc4:  Initial, partial support for Infineon XMC4xxx.
+
+* Infineon XMC4xxx Boards:
+
+  - XMC4500 Relax:  Add basic board support infrastructure of Infineon
+    XMC4500 Relax Lite v1.  Basic serial, LED, and button button support
+    for a simple NSH configuration.  There are still stome remaining
+    issues with serial communications.
+
+* MicroChip PIC32MX Boards:
+
+  - pic32mx7mmb:  Add support for the Pinquino toolchain.
+  - pic32mx7mmb:  Add support for PROCFS file system.
+
+* NXP Freescale Kinetis:
+
+  - Kinetis:  Allow board to add pullups on SDHC lines.  From David
+    Sidrane.
+  - Kinetis:  Use optional BOARD_OSC_CR and BOARD_OSC_DIV in clock
+    configuration.  From David Sidrane.
+
+* NXP Freescale Kinetis Drivers:
+
+  - Kinetis:  Add Timer PWM Module (TPM) to K66 chip.  From David
+    Sidrane.
+  - Kinetis:  Added HW flow control and termios.  From David Sidrane.
+  - Kinetis:  Add ARCH_HAVE_I2CRESET.  From David Sidrane.
+
+* NXP Freescale LPC43xx:
+
+  - Add support for LPC4337FET256.  From Andreas Bihlmaier.
+
+* STMicro STM32:
+
+  - Change STM32 tickless to use only one timer.  From Konstantin
+    Berezenko.
+  - STM32 F7:  Add support for LSE RTC and enable RTC subseconds.  From
+    Jussi Kivilinna.
+  - STM32 L1: stm32l15xx_rcc:  Add support for using MSI as system
+    clock. From Juha Niskanen.
+  - STM32 L1:  stm32l15xxx_rcc: configure medium performance voltage
+    range and zero wait-state when allowed by SYSCLK setting.  Zero
+    wait-state for flash can be configured when:  (1) Range 1 and
+    SYSCLK &lt;= 16 Mhz, (2) Range 2 and SYSCLK &lt;= 8 Mhz, or (3) Range 3
+    and SYSCLK &lt;= 4.2 Mhz.  Medium performance voltage range (1.5V)
+    can be configured when SYSCLK is up to 16 Mhz and PLLVCO up to
+    48 Mhz.  From Juha Niskanen.
+  - STM32 F0: Add basic support for STM32F0.  From Alan Carvalho de
+    Assis.
+  - STM32 F0:  Add basic support for STM32F07x family.
+  - STM32 L1: stm32l15xx_rcc: Allow board to configure HSE clock in
+    bypass-mode.  Allows using MCO output from ST-link chip (on Nucleo
+    and Discovery boards) as HSE input.  From Juha Niskanen.
+  - STM32 L1: Add support for STM32L152CC, STM32L152RC and STM32L152VC.
+    From Juha Niskanen.
+  - STM32 F0:  Add support for HSI48.
+  - STM32 L4:  Add support for the STM32L496XX family.  From Juha
+    Niskanen.
+  - STM32 L4: modularize Kconfig to support different product
+    lines/families.  This is modeled after STM32F7. Idea is to declare
+    each chip in Kconfig but allow for flash size override.  Commit adds
+    many STM32L4_HAVE_XXX feature test macros.  From Juha Niskanen.
+  - STM32 L4:  Separate SYSCFG into product line specific files for
+    clarity.  From Juha Niskanen.
+  - STM32 L4:  Add support for many new MCUs from the STM32L4X3XX
+    product line.  From Juha Niskanen.
+  - STM32 L4:  Add dbgmcu header files.  From Juha Niskanen.
+  - STM32 F410:  Add support for STM32F410.  STM32F410 is a version of
+    STM32F4 with 32 KB of RAM and 62 or 128 KB of flash.  From Gwenhael
+    Goavec-Merou.
+
+* STMicro STM32 Drivers:
+
+  - SDIO:  Extensions to support the SDIO interface to the BCM43362 from
+    Simon Piriou.
+  - STM32 F2:  Add USB OTG HS support for stm32f20xxx cores.  From Simon
+    Piriou.
+  - STM32 F2, F4, and F7:  Add BOARD_DISABLE_USBOTG_HSULPI flag.  From
+    Simon Piriou.
+  - STM32 F33:  Move DMA logic to a separate files + add ADC support.
+    From Mateusz Szafoni.
+  - STM32 F3:  Add COMP support.  From Mateusz Szafoni.
+  - STM32 F33:  Support for COMP character driver.  From Mateusz Szafoni.
+  - STM32 F4:  Implement DMA support for the STM32F4 I2C.  From rg.
+  - STM32 F7:  Add stm32 RNG support.  This is copied from stm32l4.
+    Tested on STM32F746ZG board.  From Juha Niskanen.
+  - STM32 L1:  Add STM32L162VE to chip.h.  From Juha Niskanen.
+  - STM32 F4:  Add I2C3 SDA pin mapping for STM32F411.  From no1wudi.
+  - STM32 L1:  stm32_flash:  Add EEPROM writing for STM32L15XX.  From
+    Juha Niskanen.
+  - STM32 F7:  Serial:  Add interface to get uart_dev_t by USART number,
+    stm32_serial_get_uart.  From Jussi Kivilinna.
+  - STM32 F4:  Provide TIM5 definition for STM32F429.  From Matias v01d.
+  - STM32 F0:  Add an untested port of the F1 USB device to the STM32F0.
+  - STM32 F0:  Add support for the STM32F09X family.  From Juha
+    Niskanen.
+  - STM32 F0:  Initial cut at I2C driver.  Still a work in progress.
+    From Alan Carvalho de Assis.
+  - STM32 F33:  Add OPAMP support.  From Mateusz Szafoni.
+  - STM32 L4: stm32l4_i2c:  Add I2C4 code.  From Juha Niskanen.
+  - STM32 L4:  Add GPIO_PORTI definition.  From Juha Niskanen.
+  - STM32 F7 Serial:  Allow configuring Rx DMA buffer size.  From Jussi
+    Kivilinna.
+  - STM32 L4:  Firewall for stm32l4x3xx.  Not tested for any product
+    family, but now it at least compiles.  L496 devices can have one bit
+    wider Volatile Data Segment.  From Juha Niskanen.
+  - STM32 TIM:  Add method to get timer width.  Freerun timer: Use timer
+    width to get the correct clock rollover point.
+  - STM32 L4:  Add internal flash write support.  From Juha Niskanen.
+  - STM32 L4:  Port stm32l4_serial_get_uart function from STM32F7.  From
+    Juha Niskanen.
+  - STM32 Ethernet:  Add support for KSZ8081 PHY interrupts.  From
+    Sebastien Lorquet.
+  - STM32 F4:  Add I2S driver.  From Taras Drozdovsky.
+  - STM32 L4:  Add IWDG peripheral.  This is the same as for STM32
+    except that prescale and reload can be changed after watchdog has
+    been started, as this seems to work on L4.  From Juha Niskanen.
+  - STM32 F7:  Add SPI DMA support.  From Jussi Kivilinna.
+
+* STMicro STM32 Boards:
+
+  - Support for the Particle Photon board was contributed by Simon
+    Piriou.  The Photon board is based on a STM32F205G MCU with and on-
+    board BCM43362 WiFi chip that interfaces via the STM32's SDIO
+    interface.  Board configuration support includes, in addition,
+    buttons, LEDS, IWDG, USB OTG HS, and procfs support.  Configurations
+    available for nsh, usbnsh, and wlan configurations.
+  - Clicker2-STM32:  Support for the Mikroelektronika Clicker 2 for
+    STM32 was added by Anthony Merlino.  This board, along with the
+    MRF24J40 Click board is the platform used to deveop the IEEE
+    802.15.4 support.  The boad configuration includes the MRF24J40
+    intialization logic and SPI support.  Configurations exist for nsh,
+    knsh, usbnsh, and mrf24j40-radio.
+  - Nucleo_F334R8:  Add ADC example.  From Mateusz Szafoni.
+  - Nucleo-F334R8:  Add COMP support.  From Mateusz Szafoni.
+  - Nucleo-F334R8:  Use new COMP driver.  From Mateusz Szafoni.
+  - Adds USB host support to stm32f411-disco board.  From Brian Webb.
+  - Add stm32f0discovery board support.  From Alan Carvalho de Assis.
+  - Nucleo-F072RB:  Add board configuration.
+  - Nucleo-F334R8:  Add OPAMP support.  From Mateusz Szafoni.
+  - Nucleo-F072RB:  Add support for the I2C driver used by I2C tools.
+  - Nucleo-L496ZG:  Add nucleo-l496zg board files.  From Juha Niskanen.
+  - Nucleo-F091RC:  Add nucleo-f091rc board files.  From Juha Niskanen.
+  - Nucleo-L432KC:  Add nucleo-l432kc board files.  From Sebastien
+    Lorquet.
+  - Nucleo-L452RE:  Add nucleo-l452re board files.  From Juha Niskanen.
+  - stm32f103-miniumum:  Add board support to use the Nokia 5110
+    LCD display driver.  From Alan Carvalho de Assis.
+
+* C Library/Header Files:
+
+  - C library:  Add strerror_r().
+  - C Library:  Add wcstoull(), swprintf(), wcstod(), wcstof(), wcstol(),
+    wcstold(), wcstoul(), wcstoll() functions.  Add mbsnrtowcs() and
+    wcsnrtombs() (just returning success).  Add mbtowc() and wctomb() to
+    C++ std namespace.  From Alan Carvalho de Assis.
+  - C Library:  Add ffsl(), ffsll(), fls(), flsl(), flsll() and use
+    GCC's __builtin_ctz/__builtin_clz for faster implementation of these.
+    From Jussi Kivilinna.
+  - fixedmath:  Add square root and b32_t conversion operators.  From
+    Jussi Kivilinna.
+  - locale.h:  Add a bogus definition of locale_t.
+  - C library:  Versions mbrlen and mbsrtowcs taken and adapted from
+    FreeBSD code (at https://github.com/freebsd/freebsd/).  From Matias
+    v01d.
+
+* Build/Configuration System:
+
+  - Include C++ library in 'make export'.  From Alan Carvalho de Assis.
+  - configs:  Remove all setenv.sh and setenv.bat files.  Remove all
+    references to setenv.sh and setenv.bat from all config README files.
+  - Kconfig/deconfigs:  Add CONFIG_ARCH_TOOLCHAIN_GNU to indicate that
+    the toolchain is based on GNU gcc/as/ld.  This is in addition to the
+    CPU-specific versions of the same definition.
+  - Move prototype for up_cxxinitialize() from nuttx/include/nuttx/arch.h
+    to apps/include/platform/cxxinitialize.h.
+
+* Tools:
+
+  - Add initialconfig.c so that perhaps in the future we will be able to
+    use this to generate a new configuration from scratch (rather than
+    having to derive new configurations from existing configurations).
+    NOTE: Not yet intregated into the build system.
+
+* NSH: apps/nshlib:
+
+  - Added support for set [{+|-}{e|x|xe|ex}] [&lt;name&gt; &lt;value&gt;].  Set the
+    'exit on error control' and/or 'print a trace' of commands when
+    parsing scripts in NSH.  The settinngs are in effect from the point
+    of exection, until they are changed again, or in the case of the init
+    script, the settings are returned to the default settings when it
+    exits.  Included child scripts will run with the parents settings and
+    changes made in the child script will effect the parent on return.
+    Use 'set -e' to enable and 'set +e' to disable (ignore) the exit
+    condition on commands. The default is -e. Errors cause script to
+    exit.  Use 'set -x' to enable and 'set +x' to disable (silence)
+    printing a trace of the script commands as they are ececuted. The
+    default is +x. No printing of a trace of script commands as they are
+    executed.  From David Sidrane.
+  - Print expanded variables if -x.  From David Sidrane.
+  - ifconfig command:  Extend ifconfig to support 6loWPAN.  Adapt to
+    some changes in configuration variable usage.
+  - Network initialization:  If IEEE802.11 selected use wlan0 instead of
+    eth0 for network device name.
+  - Network initialization:  NSH now has configuration options to select
+    the wireless properties.  It builds the configuration structure and
+    passes this to wpa_driver_wext_associate() so that it will set the
+    network as configured.
+  - Network initialization:  Add a new option CONFIG_NSH_NETLOCAL that
+    will suppress some built in operations and will support manual
+    configuration of a wireless network through command line tools.
+
+* Examples/Tests: apps/examples:
+
+  - examples/xbc_text: Adds a test program for the XBox One controller
+    driver.  From Brian Webb.
+  - examples/ostest:  Add a test of robust mutexes.
+  - examples/ostest: Add tests for pthread_rwlock.  Adding tests to be
+    used to verify the pthread_rwlock lock works.  From Mark Schulte.
+  - examples/ostest:  Additional test for rwlock and one for cancel
+    cleanup handlers.  From Juha Niskanen.
+  - examples/usrsocktest:  Add application for USRSOCK testing.  From
+    Jussi Kivilinna.
+  - examples/nettest:  Adapt for use in testing 6loWPAN.
+  - examples/nettest:  If doing loopback, but not using the official
+    loopback device, then use the server should use the configured client
+    IP address.
+  - examples/udpblaster:  Several fixes to work with 6loWPAN.
+  - examples/udpblaster:  Add logic to bind the local UDP socket to a
+    well-known address.
+  - examples/configdata:  Add stacksize and priority.  From Juha Niskanen.
+
+* Network Utilies: apps/netuils:
+
+  - netutils/netlib:  Add IEEE 802.11 wireless IOCTL wrappers.
+  - netutils/netlib: Add a helper function to convert a string to a
+    6loWPAN node address.
+  - netlib and NSH: Add logic to get/set the IEEE802.15.4 PAN ID.
+  - netutils/dhcpc:  Make the network device name a configuration
+    option.  Was hardcoded to eth0 but may, instead, need to be wlan0.
+  - netutils/dhcpc:  Remove hard-coded interface device.  Now passed as
+    a parameter to dhcpc_open().  From Sebastien Lorquet.
+
+* Wireless Utilies: apps/wireless:
+
+  - wireless/wapi:   Port of Wapi wireless services.  The original
+    depended on features not supported by NuttX:  Removed logic that
+    depends on Linux netlink.  Removed functionality that depended on
+    the Linux procfs:  This includes only 1) listing of available
+    interfaces and 2) listing of all routes.
+  - wireless/wapi:  Create command line Wapi application based on
+    Wapi sample code.
+  - wireless/wapi:  wpa_driver_wext_associate() now accepts a
+    configuration parameter that can be used to specify the wireless
+    properties.
+  - wireless/wapi:  Add basic wapi_event_stream_extract implementation.
+    From Simon Piriou.
+  - wireless/ieee802154:  Add iwpan and i8sak tools.  iwpan is similar
+    in concept to wapi.  From Anthony Merlino (i8sak was originally
+    by Sebastien Lorquet).
+  - wireless/ieee802154/libmac:  IEEE 802.15.4 MAC library.
+  - wireless/wext:  Add drivers_wext from the WPA supplicant; Integrate
+    into NSH.  From Simon Piriou.
+
+* System Unitilities (apps/system)
+
+  - apps/system/dhcpc:  Add a command to renew or establish a lease on an
+    IPv4 address.
+  - apps/system/ntpc:  Add a command to start or stop the NTPC daemon.
+  - apps/system/ramtest: Make stacksize and priority conigurable.
+
+* Platform-Specific Support (apps/platform)
+
+  - apps/platform:  Create gnu/ subdirectory that contains the one and
+    only GNU C++ initialization function.  Remove all other C++
+    initialization functions.
+</code></pre></div></div>
+
+<p>Bugfixes.  Only the most critical bugfixes are listed here (see the
+ChangeLog for the complete list of bugfixes and for additional, more
+detailed bugfix information):</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - Priority inheritance:  When CONFIG_SEM_PREALLOCHOLDERS==0, there is
+    only a single, hard-allocated holder structure.  This is problem
+    because in sem_wait() the holder is released, but needs to remain in
+    the holder container until sem_restorebaseprio() is called.  The call
+    to sem_restorebaseprio() must be one of the last things the
+    sem_wait() does because it can cause the task to be suspended. If in
+    sem_wait(), a new task gets the semaphore count then it will fail to
+    allocate the holder and will not participate in priority
+    inheritance.  This fix is to add two hard-allocated holders in the
+    sem_t structure:  One of the old holder and one for the new holder.
+  - Priority inheritance:  sem_holder sem_findholder missing
+    inintalization of pholder.  sem_findholder would fail and code
+    optimization covered this up.  From David Sidrane.
+  - Partial Fix priority inheritance CONFIG_SEM_PREALLOCHOLDERS=0.  From
+    David Sidrane.
+  - Priority inheritance:  sem_boostholderprio prevent overrun of
+    pend_reprios.  The second case rtcb-&gt;sched_priority &lt;=
+    htcb-&gt;sched_priority did not check if there is sufficient space in
+    the pend_reprios array.  From David Sidrane.
+  - lp_worker:  Guard from pend_reprios overlow.  From David Sidrane.
+  - Priority inheritance: Fixes improper restoration of base_priority in
+    the case of CONFIG_SEM_PREALLOCHOLDERS=0.  The call to
+    sem_restorebaseprio_task context switches in the
+    sem_foreachholder(sem, sem_restoreholderprioB, stcb); call prior to
+    releasing the holder. So the running task is left as a holder as is
+    the started task. Leaving both slots filled thus failing to perform
+    the boost/or restoration on the correct tcb.  This PR fixes this by
+    releasing the running task slot prior to reprioritization that can
+    lead to the context switch.  To faclitate this, the interface to
+    sem_restorebaseprio needed to take the tcb from the holder prior to
+    the holder being freed. In the failure case where sched_verifytcb
+    fails it added the overhead of looking up the holder.  There is also
+    the additional thunking on the foreach to get from holer to
+    holder-&gt;tcb.  An alternate approach could be to leve the interface
+    the same and allocate a holder on the stack of sem_restoreholderprioB
+    copy the sem's holder to it, free it as is done in this pr and and
+    then pass that address sem_restoreholderprio as the holder. It could
+    then get the holder's tcb but we would keep the same sem_findholder
+    in sched_verifytcb.  From David Sidrane.
+  - Priority inheritance:  Fixes improper restoration of base_priority.
+    From David Sidrane.
+  - sem_holder:  Indexing error.  From David Sidrane.
+
+      if (sem-&gt;holder[0].htcb != NULL || sem-&gt;holder[**1**].htcb != NULL)
+  - realloc():  When realloc() has to fall back to calling malloc(), size
+    including overhead was being provided to malloc(), causing a slightly
+    larger allocation than needed.  Noted by initialkjc@yahoo.com.
+  - scheduler:  Fix tg_flags check with GROUP_FLAG_NOCLDWAIT.  From Masayuki
+    Ishikawa.
+  - scheduler:  Fix CHILD_FLAG_EXITED in include/nuttx/sched.h.  From
+    Masayuki Ishikawa.
+  - binfmt/elf:  Fix offset value when calling elf_read() in
+    elf_symname().  From Masayuki Ishikawa.
+  - binfmt/elf:  Fix offset value when calling elf_read() in
+    elf_sectname().  From Masayuki Ishikawa.
+  - There can be a failure in IOB allocation to some asynchronous
+    behavior caused by the use of sem_post().  Consider this scenario:
+    (1) Task A holds an IOB.  There are no further IOBs.  The value of
+    semcount is zero. Task B calls iob_alloc().  Since there are not
+    IOBs, it calls sem_wait().  The value of semcount is now -1.  (2)
+    Task A frees the IOB.  iob_free() adds the IOB to the free list and
+    calls sem_post() this makes Task B ready to run and sets semcount to
+    zero NOT 1.  There is one IOB in the free list and semcount is zero.
+    When Task B wakes up it would increment the sem_count back to the
+    correct value.  (3) But an interrupt or another task runs occurs
+    before Task B executes.  The interrupt or other tak takes the IOB off
+    of the free list and decrements the semcount.  But since semcount is
+    then &lt; 0, this causes the assertion because that is an invalid state
+    in the interrupt handler. So I think that the root cause is that
+    there the asynchrony between incrementing the semcount.  This change
+    separates the list of IOBs:  Currently there is only a free list of
+    IOBs.  The problem, I believe, is because of asynchronies due
+    sem_post() post cause the semcount and the list content to become out
+    of sync.  This change adds a new 'committed' list:  When there is a
+    task waiting for an IOB, it will go into the committed list rather
+    than the free list before the semaphore is posted.  On the waiting
+    side, when awakened from the semaphore wait, it will expect to find
+    its IOB in the committed list, rather than free list.  In this way,
+    the content of the free list and the value of the semaphore count
+    always remain in sync.
+  - binfmt:  Fix .dtor memory allocation.  From Masayuki Ishikawa.
+
+* File System/Block and MTD Drivers:
+
+  - SmartFS:  If whence is SEEK_END, the file offset shall be set to the
+    size of the file plus offset. Noted by eunb.song@samsung.com.
+  - mtd/progmem:  Fix incorrect target address calculation.
+    progmem_read/write() is incorrectly calculating the target address,
+    expecting the offset argument is given in a block number. This is
+    completely wrong and as a result invalid flash region is accessed.
+    Byte-oriented read/write interfaces of mtd device accept the target
+    address in a byte offset, not a block number.  From Heesub Shin.
+  - procfs:  Fix wrong member IDs are displayed when 'cat
+    /proc/&lt;pid&gt;/group/status'.  From Nobutaka Toyoshima.
+  - procfs:  Fix incorrect uptime with CONFIG_SYSTEM_TIME64.  From
+    Masayuki Ishikawa.
+  - vfs/poll: round timeout up to next full tick.  Calling poll() with
+    timeout less than half tick (thus MSEC2TICK(timeout) =&gt; 0) caused
+    returning error with EAGAIN. Instead of rounding timeout down, value
+    should be rounded up. Open Group spec for poll says:
+    "Implementations may place limitations on the granularity of timeout
+    intervals. If the requested timeout interval requires a finer
+    granularity than the implementation supports, the actual timeout
+    interval will be rounded up to the next supported value."  From Jussi
+    Kivilinna.
+  - mtd/config:  erase block between block read and write.  From Juha
+    Niskanen.
+  - mtd:  Build RAMTRON and AT45DB drivers only if selected.  From Juha
+    Niskanen.
+  - mtd/config:  Fix byte read interface test.  From Juha Niskanen.
+  - mtd:  Fix some unallocated and NULL pointer issues.  rwb-&gt;wrflush and
+    rwb-&gt;wrmaxblocks in rwbuffer could get unallocated values from
+    ftl_initialize() in some configurations.  Also fixes related assert:
+
+      up_assert: Assertion failed at file:rwbuffer.c line: 643
+
+    that can happen with the following configuration:
+
+      CONFIG_FTL_WRITEBUFFER=y
+      CONFIG_DRVR_WRITEBUFFER=y
+      # CONFIG_FS_WRITABLE is not set
+
+    These problems are caused by CONFIG variable differences between the
+    buffer layers. TODO: This is not a perfect solution. readahead
+    support has similar issues.  From Juha Niskanen.
+  - net procfs:  Fix buffer corruption and refactor netdev_statistics.c.
+    From Masayuki Ishikawa.
+  - FAT:  Fix 'Missing unlock' in fs_fat32.c.  From Masayuki Ishikawa.
+  - VFS fdopen:  Add missing file stream flags clearing.  Clear file
+    stream structure regardless of config options. Structure clearing is
+    needed as previous use of stream list entry might leave fs_flags
+    set.  From Harri Luhtala.
+  - mtd/smart: Fix use of uninitialized variable.  From Jussi Kivilinna.
+  - mtd/w25.c:  Enable short delay after sector/chip erase.  From Jussi
+    Kivilinna.
+  - mtd/config:  Add some error checks for I/O errors.  From Juha
+    Niskanen.
+
+* Graphics/Graphic Drivers:
+
+  - net procfs:  Some long lines were being generated that cause buffer-
+    related problems and corrupted output.
+
+* Networking/Network Drivers:
+
+  - Fixed wrong assert on udp dgram send.  From Pascal Speck.
+  - TCP/IPv6: Fix a compile issue when IPv6, but not IPv4 is enabled.
+  - net/socket/accept:  Fix building with CONFIG_NET_LOCAL_STREAM.  From
+    Jussi Kivilinna.
+  - Argument of network device IOCTL should be unsigned long, just as
+    will all other IOCTL methods.
+  - net/socket:  Fix cloning of local and raw sockets.  From Jussi
+    Kivilinna.
+  - TCP:  Wait for 3-Way Handshare before accept() returns.  From Simon
+    Piriou.
+  - TCP:  Send RST if applicaiton 'unlistens()' before we complete the
+    connection sequence.
+  - TCP:  An RST received during the 3-way handshake requires a little
+    more clean-up.
+  - IPv6:  Fix net_ipv6_pref2mask().  From Masayuki Ishikawa.
+  - network IOCTL commands:  The only place in net/netdev/netdev_ioctl.c
+    where the interface state should change is for SIOCSIFFLAGS.  The
+    other ones .. SIOCSIFADDR, SIOSLIFADDR, SIODIFADDR ..  should not
+    change the link state.  From Sebastien Lorquet.
+  - TCP:  Fix tcp_findlistner() in dual stack mode.  From Masayuki
+    Ishikawa.
+
+* Common Drivers:
+
+  - Fix as5048b by adding missing frequency parameter.  From Andreas
+    Bihlmaier.
+  - multiple fixes in nrf24l01 driver:  (1) signal POLLIN if there is
+    already data in the FIFO, (2) send ETIMEDOUT to userspace after 2
+    seconds if TX IRQ was not received, (3) handle FIFO overflow, (4)
+    handle invalid pipes/empty FIFO, and (5) multiple cosmetics (missing
+    static, duplicate define, missing \n).  From Leif Jakob.
+  - input/mxt:  Prevent overriding i2c transfer return value.
+    put_reg/get_reg function was overriding i2c transfer error code with
+    i2creset return value, that lead to OK status although actual
+    transfer failed.  From Juha Niskanen.
+  - drivers/audio/wm8904:  WM8904 has same problem as that fixed by Juha
+    Niskanen in the MaxTouch driver.
+  - UART 16550:  Missing left parenthesis in function prototype.  This is
+    Bitbucket Issue #41.
+  - USBMSC:  Fix a wrong lun number issue.  From Masayuki Ishikawa.
+  - drivers/i2c:  Fix compile issues if CONFIG_DISABLE_PSEUDOFS_OPERATIONS
+    is enabled.
+  - drivers/serial: I discovered a problem in the file
+    drivers/serial/serial.c concerning the function uart_close(…). In the
+    case that a serial device is opened with the flag O_NONBLOCK the
+    function uart_close(…) blocks until all data in the buffer is
+    transmitted. The function close(…) called on an handle opened with
+    O_NONBLOCK should not block. The problem occurred with a CDC/ACM
+    device.  From Stefan Kolb.
+  - drivers:  Fix some bad NULL checks.  From Juha Niskanen.
+  - drivers:  Rename newly introduced up_i2creset to I2C_RESET.  From
+    Juha Niskanen.
+  - drivers/bch:  BCH character driver bch_ioctl() always returns -ENOTTY
+    for DIOC_GETPRIV command.  It should returns OK if DIOC_GETPRIV
+    command succeeds.  From  EunBong Song.
+  - Replace sprintf() with snprintf() in pipe.c.  From Nobutaka Toyoshima.
+  - drivers/bch:  Fix 'Missing Unlock' in bchdev_driver.c.  From Masayuki
+    Ishikawa.
+  - button_upper:  Fix interrupt enabling for poll-events.  From Jussi
+    Kivilinna.
+  - drivers/{sensors,usbmisc}:  Fix uninitialized I2C frequency.  From
+    Juha Niskanen.
+
+* ARM:
+
+  - Set EABI stack alignment for all ARM architectures (remove OABI
+    code).  From David Cabecinhas.
+  - Remove redundant interrupt stack coloring and OABI code.  From David
+    Cabecinhas.
+  - Fix off-by-one interrupt stack allocation in 8-byte aligned
+    architectures.  From David Cabecinhas.
+
+* ARMv6-M:
+
+  - CONFIG_DEBUG_HARDFAULT should be available for Cortex-M0 too.
+
+* Microchip/Atmel SAM3/4 Drivers:
+
+  - SAM3/4:  Fixed configurations for TWI master.  Obviously an
+    incomplete port from SAMA5.
+
+* Microchip/Atmel SAMv7 Drivers:
+
+  - SAMV7: Watchdog:  Fix Forbidden Window Value.  According the Datasheet
+    the WDD Value is the lower bound of a so called Forbidden Window and
+    to disable this we have to set the WDD Value greater than or equal to
+    the WDV Value.  This seems to be a bug in the datasheet. It looks
+    like we have to set it to a greater value than the WDV to really
+    disable this Thing.  When triggering the Watchdog faster than the
+    (very slow) clock source of the Watchdog fires, this Forbidden Window
+    Feature resets the System if WDD equals to WDV.  This Changeset
+    disables the Forbidden Window by setting the WDD Value to the Maximum
+    (0xfff) Value possible.  From Frank Benkert.
+  - SAMV7 EMAC:  Add conditional logic to account the fact that the
+    SAMV71 has 6 rather than 3 queues after version 1.  From Ian McAfee.
+
+* NXP/Freescale Kinetis Drivers:
+
+  - Kinetis:  Fixed GPIO _PIN_OUTPUT_LOWDRIVE swapped with
+    _PIN_OUTPUT_OPENDRAIN.  From David Sidrane.
+  - Ensure interrupts are back on BEFORE running code dependant on
+    clock_systimer.  From David Sidrane.
+  - Kinetis k66, k64, k60, k40, k20: Pin mux configure all I2C signals as
+    Open Drain.  The output structure of the GPIO for I2C needs to be
+    open drain.  When left at the default, one can observe on a scope the
+    slave contending with the push-pull during the ACK.  From David
+    Sidrane.
+  - Kinetis K66:  Fixed TMP2_CH1 definition.  From David Sidrane.
+  - Kinetis K66:  Define ALT1 to match ref manual.  From David Sidrane.
+  - Kinetis K66:  GPIO and pin mux cleanup.  From David Sidrane.
+  - Kinetis ADC:  Various corrections and updates.  From David Sidrane.
+
+* NXP/Freescale LPC43xx:
+
+  - Add missing PINCONF_INBUFFER in several places of
+    lpc4310203050_pinconfig.h.  From Andreas Bihlmaier.
+  - Fix logic in preprocessor checks and correct arguments to
+    lpc43_pin_config initialization.  From Andreas Bihlmaier.
+
+* NXP/Freescale LPC43xx Drivers:
+
+  - Fix logic error in lpc43_adc.  From Andreas Bihlmaier.
+  - Use correct macro for irqid (fortunately both point to
+    LPC43_IRQ_EXTINT+18).  From Andreas Bihlmaier.
+  - Actually write modified value to register.  From Andreas Bihlmaier.
+  - Increase number of supported PWM channels from 4 to 6.  From Andreas
+    Bihlmaier.
+
+* Silicon Labs EFM32 Drivers:
+
+  - EFM32 I2C: Fix timeout calculation.  From Masayuki Ishikawa.
+
+* STMicro STM32:
+
+  - As discovered by dcabecinhas.  This fix assume the 8 byte alignment
+    options for size stack size or this will overwrite the first word
+    after TOS.  See
+    https://github.com/PX4/Firmware/issues/6613#issuecomment-285869778.
+    From David Sidrane.
+  - STM32 F7:  In stm32_allocateheap.c There are 5 not 4 configurations.
+    From David Sidrane.
+
+* STMicro STM32 Drivers:
+
+  - STM32, STM32 F7, STM32 L4:  OTG host drivers: Do not do data toggle
+    if interrupt transfer is NAKed.  Sugested by webbbn@gmail.com.
+  - Save elapsed time before handling I2C in stm32_i2c_sem_waitstop().
+    This change follows the same logic as in previous fix to
+    stm32_i2c_sem_waitdone().  It is possible that a context switch
+    occurs after I2C registers are read but before elapsed time is saved
+    in stm32_i2c_sem_waitstop(). It is then possible that the registers
+    were read only once with "elapsed time" equal 0. When scheduler
+    resumes this thread it is quite possible that now "elapsed time" will
+    be well above timeout threshold. In that case the function returns
+    and reports a timeout, even though the registers were not read
+    "recently". Fix this by inverting the order of operations in the loop
+    - save elapsed time before reading registers. This way a context
+    switch anywhere in the loop will not cause an erroneous "timeout"
+    error.  From Freddie Chopin.
+  - STM32, STM32 F7, and STM32 L4:  Clone Freddie Chopin's I2C change to
+    similar STM32 I2C drivers.  From David Sidrane.
+  - STM32:  OTG host implementations of stm32_in_transfer() must obey the
+    polling interval for the case of isochronous and interrupt endpoints.
+  - STM32:  Fix erase sector number for microcontrolers with more than 11
+    sectors.  Erase a sector from the second bank cause the bit 4 of SNB
+    being set but never unsed, so trying to erase a sector from the first
+    bank was acually eraseing a sector from the second bank.  From José
+    Roberto de Souza.
+  - STM32:  Make up_progmem thread safe.  Writing to a flash sector while
+    starting the erase of other sector have a undefined behavior so lets
+    add a semaphore and syncronize access to Flash registers.  But for
+    the semaphore to work it needs to be initialized so each board needs
+    call stm32_flash_initialize() on initialization, so to avoid runtime
+    problems it is only using semaphore and making it thread safe if
+    initialized, after all boards starts to call stm32_flash_initialize()
+    we can remove the boolean and the check.  From José Roberto de Souza.
+  - STM32:  Add workaround for flash data cache corruption on
+    read-while-write.  This is a known hardware issue on some STM32 see
+    the errata of your model and if you make use of both memory banks you
+    should enable it.  From José Roberto de Souza.
+  - STM32 Flash fixes.  From José Roberto de Souza.
+  - STM32 Flash:  Missing unlock on F1 HSI off path.  From David Sidrane.
+  - STM32 F4 I2C: I needed to use DS3231, I remember that in past it
+    worked ok, but now for stm32f4xx is used another driver (chip
+    specific, stm32f40xxx_i2c.c) and DS3231 driver doesn't work.  After
+    investigating a problem I found that I2C driver (isr routine) has a
+    few places there it sends stop bit even if not all messages are
+    managed. So, e.g., removing stm32_i2c_sendstop (#1744) and adding
+    stm32_i2c_sendstart after data reading helps to make DS3231 working.
+    From  Alexander Oryshchenko; verified by David Sidrane.
+  - STM32 F7 Serial:  Serial fix for dropped data:  (1) Revert the
+    inherited dma bug from the stm32.  see
+    https://bitbucket.org/nuttx/nuttx/commits/df9ae3c13fc2fff2c21ebdb098c520b11f43280d
+    for details.  And (2) Most all CR1-CR3 settings can not be configured
+    while UE is true. Threfore we make all operation atomic and disable
+    UE and restore it's originalstate on exit.  From David Sidrane.
+  - STM32 L1:  Fix IWDG and WWDG debug mode stop for STM32L15XX.  From
+    Juha Niskanen.
+  - STM32 F7:  Fix UART7 and UART8 IFLOWCONTROL options.  From Jussi
+    Kivilinna.
+  - STM32 F7:  Add warning for RXDMA + IFLOWCONTROL combination.
+    Combination of RXDMA + IFLOWCONTROL does not work as one might
+    expect.  Since RXDMA uses circular DMA-buffer, DMA will always keep
+    reading new data from USART peripheral even if DMA buffer underruns.
+    Thus this combination only does following: RTS is asserted on USART
+    setup and deasserted on shutdown and does not perform actual RTS
+    flow-control.  Data loss can be demonstrated by doing long up_mdelay
+    inside irq critical section and feeding data to RXDMA+IFLOWCONTROL
+    UART.  From Jussi Kivilinna.
+  - STM32 F7 Serial:  Do not stop processing input in SW flow-control
+    mode.  From Jussi Kivilinna.
+  - STM32 L4 DMA: Correct bad channel definition.  From Sebastien Lorquet.
+  - STM32 F7:  Warn if no DMA2 configured when using ADC with DMA.  Also
+    correct ADC channel numbers that DMA callback passes to upper half
+    driver.  From Juha Niskanen.
+  - STM32 F7 ADC:  Do not override ADCPRE_DIV when measuring
+    internal voltage.  From Juha Niskanen.
+  - STM32 L4:  Don't think these chips have DPFPU, DTCM or ITCM.  From
+    Juha Niskanen.
+  - STM32 F7 Flash:  macro naming errors, there is no FLASH_CONFIG_F for
+    F7.  From Juha Niskanen.
+  - STM32 L4: stm32l4x6xx_pinmap:  Update I2C4 and DCMI pins.  From Juha
+    Niskanen.
+  - STM32 L4: stm32l4_i2c: change wrong macro to CONFIG_I2C_POLLED.  From
+    Juha Niskanen.
+  - Fix STM32F7 I2C interrupt handler.  From Jussi Kivilinna.
+  - STM32:  Serial Allow configuring Rx DMA buffer size.  From David
+    Sidrane.
+  - STM32 CAN: I had the problem that the transmit FIFO size (= actual
+    elements in FIFO) was slowly increasing over time, and was full after
+    a few hours.  The reason was that the code hit the line
+    "canerr("ERROR: No available mailbox\n");" in stm32_cansend, so
+    can_xmit thinks it has sent the packet to the hardware, but actually
+    has not. Therefore the transmit interrupt never happens which would
+    call can_txdone, and so the size of the FIFO size does not decrease.
+    The reason why the code actually hit the mentioned line above, is
+    because stm32can_txready uses a different (incomplete) condition than
+    stm32can_send to determine if the mailbox can be used for sending,
+    and thus can_xmit forwards the packet to stm32can_send.
+    stm32can_txready considered mailboxes OK for sending if the mailbox
+    was empty, but did not consider that mailboxes may not yet be used if
+    the request completed bit is set - stm32can_txinterrupt has to
+    process these mailboxes first.  Note that I have also modified
+    stm32can_txinterrupt - I removed the if condition, because the CAN
+    controller retries to send the packet until it succeeds. Also if the
+    condition would not evaluate to true, can_txdone would not be called
+    and the FIFO size would not decrease also.  From Lederhilger Martin.
+  - STM32 Serial:  Fix freezing serial port.  Serial interrupt
+    enable/disable functions do not disable interrupts and can freeze
+    device when serial interrupt is received while execution is at those
+    functions. Trivially triggered with two or more threads write to
+    regular syslog stream and to emergency stream. In this case, freeze
+    happens because of mismatch of priv-&gt;ie (TXEIE == 0) and actually
+    enabled interrupts in USART registers (TXEIE == 1), which leads to
+    unhandled TXE interrupt and causes interrupt storm for USART.  From
+    Jussi Kivilinna.
+  - STM32 I2C:  Make private symbols static.  From Juha Niskanen.
+  - STM32 L4 GPIO:  Put back EXTI line source selection.  From Juha
+    Niskanen.
+  - STM32 L4 RTC:  Store RTC MAGIC to backup reg, not to address zero.
+    From Juha Niskanen.
+
+* STMicro STM32 Boards:
+
+  - Disable serial console on stm32f103-minimum usbnsh example project
+    config. Devices enumerate after this change.  From Bob Ryan.
+  - Nucleo-144:  Default for choice in Kconfig was not one of the
+    possible choices.
+  - Nucleo-F4X1RE User LEDS: Issue #51 reports compilation problems with
+    stm32_userled.c.  Reported by Gappi92.
+
+* TI Tiva Drivers:
+
+  - Tiva I2C:  Correct an error in conditional compilation.
+  - Tiva SSI:  Resolves issue 52 'Copy-Paste error in
+    tiva_ssibus_initialize()' submitted by Aleksandr Kazantsev.
+
+* C Library/Header Files:
+
+  - C Library vsnprintf():  Fix precision for string formatting.  Fixes
+    use of format precision to truncate input string.  From Jussi
+    Kivilinna.
+  - C Library vsnprintf():  If size is zero, then vsnprintf() should
+    return the size of the required buffer without writing anything.
+    From Jussi Kivilinna.
+  - C Library netdb: in dns_query_callback, ret != -EADDRNOTAVAIL
+    condition consumes error returns including EAGAIN in this case,
+    dns query retransmission doesn't work.  From Ritajina.
+  - C Library netdb:  Fix time info in lib_dnscache.c.  From Masayuki
+    Ishikawa.
+  - C Library netdb: Fix bugs in lib_gethostbynamer.c. This fix sets
+    h_name in struct hostent returned by gethostbyname().  From Masayuki
+    Ishikawa.
+  - C Library Defect Workaround: replace '%6.6u' format with an
+    equivalent '%06u'.  From Tomasz Wozniak.
+
+* Tools
+
+  - Fix mksyscall host binary name.  From Alan Carvalho de Assis.
+
+* Applications (apps/)
+
+  - Fix some calls to task_create():  argv[0] is the first parameter, not
+    the name of the task.
+  - Bitbucket Issue 5:  I found an unexpected behavior in apps/
+    configuration generation. Adding external symbolic link in apps/
+    directory and using Make.defs for Kconfig generation, Kconfig file
+    has a wrong path in the source argument. It contains original dir
+    path outside of the source tree instead path to sub-directory in
+    apps/.  The problem is connected with make/system symbolic link path
+    resolution.  Corrected by a patch submitted by Artur Madrzak with
+    Issue 5.
+  - apps/: Make more globals static to avoid name clashes.  From Juha
+    Niskanen.
+
+* NSH: apps/nshlib:
+
+  - NSH library:  In nsh_argexand(), if CONFIG_NSH_ARGCAT is defined but
+    CONFIG_NSH_CMDPARMS defined and/or CONFIG_DISABLE_ENVIRON not
+    defined, then there is a situation that causes an infinite loop in
+    the parser.  Noted by Freddie Chopin.
+  - NSH library:  Fix building when CONFIG_NET_USRSOCK enabled with other
+    link-layers.  From Jussi Kivilinna.
+  - NSH library:  Fix some warnings about integer/pointer casts of
+    different sizes (probably only effects 64-bit simulation).
+  - NSH library:  Fix open flags in nsh_codeccmd.c.  From Masayuki
+    Ishikawa.
+  - I need to look at the registers that are at or around 0xe000ef90.
+    Using mw and xd, I see that nsh does not support pointers greater
+    than 0x7fffffff.  A quick look at the source shows that the pointers
+    for those two commands are set with calls to strtol() rather than
+    strtoul().  Changing the two pointer-setting instances to strtoul()
+    fixes the problem, at least for my architecture/config.  From Ian
+    McAfee.
+  - NSH library: Fix a resource leak in cmd_hexdump().  From Nobutaka
+    Toyoshima.
+
+* Examples/Tests: apps/examples:
+
+  - apps/examples/hidkbd:  Remove call to arch_usbhost_initialize().
+    That is violation of the OS interfacing rules and will no longer be
+    supported.  USB host should be initialized as part of the normal
+    board bring-up logic as with any other devices and should not involve
+    illegal calls from applications into the OS.
+  - apps/examples/usbterm:  Removed because it is not very useful and
+    because it can be configured to use an illegal call into the OS.
+  - examples/mm: Fix Makefile.  Built-in was not being registered.
+  - examples/hidkbd:  Add some missing configuration settings.
+  - examples/random:  Avoid stack overflows.  From Juha Niskanen.
+  - examples/nettest:  Fix an error in pre-processor expression.
+  - examples/mtdpart:  Prevent part array overflow.  mtdpart examples
+    create partions and allocate from 1 index not a 0 index to part[]
+    array. This cause buffer overflow for part array.  This change fixes
+    this problem.  From  EunBong Song.
+  - examples/can:  Fix can example app to print data when
+    CONFIG_EXAMPLE_CAN_READ is defined.  From Alan Carvalho de Assis.
+
+* Network Utilies: apps/netuils:
+
+  - Not a clean fix, but at least makes DHCP working with
+    CONFIG_NETDEV_MULTINIC.  From Andreas Bihlmaier.
+  - Ensure netlib will not be broken when setip will not bring the
+    network up anymore.  From Sebastien Lorquet.
+
+* CAN Utilies: apps/canutils:
+
+  - Fix libcanard github download link to get it compiling correctly.
+    From Alan Carvalho de Assis.
+  - Fix to use the new canardInit() function.  From Alan Carvalho de
+    Assis.
+
+* System Unitilities (apps/system)
+
+  - system/dhcpc:  Add missing argument of fprintf.
+
+* Tools (apps/tools):
+
+  - The dedicated windows tool at tools/mkkconfig.bat uses $APPSDIR,
+    which is not a windows shell variable, and is left uninitialized, but
+    in fact should be the current directory.  From Sebastien Lorquet.
+</code></pre></div></div>
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2020 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache NuttX is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2019 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+
diff --git a/content/releases/7.22/index.html b/content/releases/7.22/index.html
new file mode 100644
index 0000000..823100d
--- /dev/null
+++ b/content/releases/7.22/index.html
@@ -0,0 +1,1213 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>7.22</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/">
+              <img src="/assets/themes/apache/img/logo.png" width="30">
+              Apache NuttX
+          </a>
+        </div>
+        <nav class="navbar-collapse collapse" role="navigation">
+          <ul class="nav navbar-nav navbar-right">
+            <li id="community">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
+               <ul class="dropdown-menu dropdown-left">
+                <li><a href="/community">Get Involved</a></li>
+                <li><a href="/community-members">Who we are</a></li>
+               </ul>
+            </li>
+            <li><a href="https://github.com/apache/incubator-nuttx">GitHub</a></li>
+            <li id="apache">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+               <ul class="dropdown-menu">
+                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li><a href="http://www.apache.org/security/">Security</a></li>
+                <li><a href="http://www.apache.org/events/current-event">Events</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                </ul>
+            </li>
+          </ul>
+        </nav><!--/.navbar-collapse -->
+      </div>
+    </div>
+
+
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit 7.22">
+  <h1></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="nuttx-722-release-notes">NuttX-7.22 Release Notes</h2>
+
+<p>The 122nd release of NuttX, Version 7.22, was made on September 6, 2017,
+and is available for download from the Bitbucket.org website.  Note
+that release consists of two tarballs:  nuttx-7.22.tar.gz and
+apps-7.22.tar.gz.  These are available from:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://bitbucket.org/nuttx/nuttx/downloads
+https://bitbucket.org/nuttx/apps/downloads
+</code></pre></div></div>
+
+<p>Both may be needed (see the top-level nuttx/README.txt file for build
+information).</p>
+
+<p>Additional new features and extended functionality:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - pthreads:  Move functions from sched/pthreads to libc/pthreads.  These
+    functions just coordinate other OS interface calls but are not a
+    fundamental OS interfaces and, hence, do not belong within the OS:
+    pthread_yield(), pthread_once(), pthread_cond_init(),
+    pthread_cond_destroy(), pthread_barrier_init(),
+    pthread_barrier_destroy(), and pthread_barrier_wait().
+  - Add power-related debug output.
+
+* File Systems/Block and MTD Drivers
+
+  - RAMTRON:  Add support for splitting block writes in chunks.  Some
+    Re-RAMs like MB85AS4MT have a write buffer size limitation.  From
+    Boris Astardzhiev.
+  - MTD: Add driver for Macronix QuadSPI flash memory.  From Simon Piriou.
+
+* Graphics/Display Drivers:
+
+  - SSD1306 LCD Driver:  (1) Separate lcd_dev_s setup to separate object.
+    g_oleddev takes 1 KiB because framebuffer and was allocated to .data
+    section because of lcd_dev_s function pointer setup. Move lcd_dev_s
+    setup out, so that g_oleddev goes to .bss and avoid wasting ROM. (2)
+    Fix memory corruption caused by ssd1306_getrun(). ssd1306_getrun was
+    writing one extra byte (with value 0) past target buffer when pixlen
+    is multiple of 8. When pixlen was not multiple of 8, last byte of
+    buffer was fully cleared, instead of modifying only the (pixlen % 8)
+    bits of last byte.  (3) Add support for board power control.
+    ThingseeOne has regulator for controlling display power on/off.  Patch
+    adds support for board based power control to SSD1306 driver. (4) Add
+    DD-12864WO-4A/SSD1309 support to SSD1306 driver. From Jussi Kivilinna.
+
+* Networking/Network Drivers:
+
+  - Sockets: Support listening sockets in the getsockname() function.
+    From Roland Takacs.
+  - IP Forwading:  At the IP level, network may be configured to forward
+    IP packets that are not destined for the target through a different
+    network device, decrementing the packet TTL.
+  - IP forwarding:  Add optional support to forward broadcast and
+    multicast packets.  Add missing ICMP support.
+  - ICMPv6:  Add 6LoWPAN and IP forwarding support.
+  - ICMPv6:  Support source link-layer address option in RA.  From
+    Masayuki Ishikawa.
+  - TUN Driver: Add definitions that will permit TUN-only networking.
+  - Socket I/F:  Created a socket interface used to provide socket support.
+    Each address family has an interface that describes how to perform
+    socket operations on that address family.  Currently only a couple of
+    methods are defined in the socket interface call table
+  - Remove CONFIG_NET_MULTILINK.  This increases code size by a little,
+    but greatly reduces the complexity of the network code.
+  - Network procfs:  Add support for routing tables at proc/net/route.
+  - Network procfs:  Add support for network procfs statistics for the
+    PF_IEEE802154 address family.
+  - Network Driver Backlog:  Remove driver based backlog support.  This
+    affects the entire network, but is used by only one driver.  The only
+    supported RX backlog is now via common read-ahead buffering.
+
+* Wireless Networking/Wireless Drivers:
+
+  - IEEE 802.15.4 MAC / MRF24J60 Driver:  Extensive updates for
+    association/beacon-enabled networks.  From Anthony Merlino.
+  - IEEE 802.15.4 MAC / MRF24J60 Driver:  Hook in setdevmode from newly
+    added radio attribute setting.  From Anthony Merlino.
+  - IEEE 802.15.4 MAC: Supports get request for coordinator address.  From
+    Anthony Merlino.
+  - IEEE 802.15.4 MAC: Notify radio layer of changes in devmode.  From
+    Anthony Merlino.
+  - IEEE 802.15.4:  Add special attribute that can be used to perform a
+    regdump of the radio.  From Anthony Merlino.
+  - IEEE 802.15.4 loopback driver:  Better simulation addressing: short
+    and extended addresses, panid, and IP address conversion.
+  - IEEE 802.15.4 Network Driver:  Add logic to setup the network mask,
+    update the MAC-based IPv6 addressing when the network is brought up.
+    The idea is that addressing changes are supposed to occur only while
+    the network is down but won't take effect until the network is up
+    again.
+  - PktRadio:  Add an infrastructure to support networking on generic
+    (non-IEEE 802.15.4) packet radios.
+  - PktRadio Loopback Driver:  Add a PktRadio loopback network driver to
+    testing testing with 6LoWPAN and PktRadios on the simulator.
+  - Spirit Network Driver:  The Spirit1 radio (SPSGRF-915) is the first
+    generic PktRadio Network driver.  Based on STMicros STack packets
+    with 8-bit addressing.  We need to use the STack packets in order to
+    provide the source address and automatic ACKing.
+  - Network procfs:  Fix so that PktRadio address are shown correctly.
+  - Networking:  Add support for some packet radio IOCTL commands.
+  - 6LoWPAN:  Added handling for TCP and ICMPv6 packets.
+  - 6LoWPAN:  Add configurable support for 6LoWPAN star topology.  With
+    this change, the endpoints which are the 'points' of the star will
+    forward all traffic to the coordinator.  The coordinator is assumed to
+    be the 'hub' of the star.  This function also used IPv6 forwarding.
+  - 6LoWPAN:  The original, Contiki-based design used only a single buffer
+    for reassemblying larger packets.  This could be a problem issue for
+    hub configurations which really need the capability concurrently
+    reassemble multiple incoming streams concurrently. These was also a
+    design issue in that the reassembly buffer could be corrupted by
+    outgoing packets.  The design was extended to support multiple
+    reassembly buffers, each associated with the reassembly tag and source
+    address.  This assures that there can be be no corruption of the
+    reassembly once it has started.
+  - 6LoWPAN PktRadio:  Now radio agnostic.  All IEEE 802.15.4 dependencies
+    have been removed or isolated so that 6LoWPAN can be used with any
+    kind of packet radio.  This involved things like:  (1) generalizing
+    the representation of radio MAC meta-data,  (2) changes to handle
+    variable-length radio addresses,  (3) removal of all explicit IEEE
+    802.15.4 types, references, and interfaces, (4) a new radio driver
+    interface to return 'capabilities' of the drvier.
+  - ICMPv6:  Update so that ICMPv6 can be used with 6LoWPAN.
+  - IPv6 Neighbor:  Update table format to support IEEE 802.15.4 MAC
+    addresses.
+  - PF_IEEE802154 Address Family:  Add support for the PF_IEEE802154
+    address family socket type. This socket is similar to the PF_PACKET,
+    "raw" packet address family except that:  (1) it supports only
+    SOCK_DRAM, not SOCK_RAW, and (2) works only with IEEE 802.15.4
+    MAC-based radios.  This address family permits simple access to IEEE
+    802.15.4 IOCTLs and frame-level network transfers.
+
+* Other Common Device Drivers:
+
+  - Dynamically configurable USB composite devices:  We developed a huge
+    Changeset over a year ago to make USB Composite configuration
+    dynamical and be able to instantiate the CDC/ACM multiple times inside
+    this device.  We use this feature to switch between one in typical USB MSC + CDC/ACM configuration and up to three CDCACMs dynamically.
+    I've changed the interface for some USB-Functions to receive also the
+    dynamic configuration.  From Frank Benkert.
+  - Franks' change remained on a branch until all issues were resolved.
+    the current version in Master is complete and ready for use.
+  - power:  battery_charger: add ioctl for charging input current.  From
+    Juha Niskanen.
+  - SMPS driver:  Add generic upper-half driver for SMPS.  From Mateusz
+    Szafoni.
+  - LED Driver:  Add support for inverted LEDS.  From Jeff.
+  - LED Driver:  Add lightness correction for RGB LED driver.  From Jeff.
+  - LTC4151 Driver:  Add driver for LTC4151 current and voltage monitor.
+    From Giorgio Groß.
+  - Serial TERMIOS:  tcdrain() implementation based on a new term ioctl.
+    From Sebastien Lorquet.
+  - Serial TERMIOS:  Add support for TCFLUSH.  From Sebastien Lorquet.
+  - syslog:  Add option to use the CLOCK_MONOTONIC for time stamping. From
+    Jussi Kivilinna.
+  - HC-SR04 Driver:  Add support to HC-SR04 distance sensor.  From Alan
+    Carvalho de Assis.
+  - COMP Driver:  Add poll support.  From Pekka Ervasti.
+  - BQ2429X Driver: add driver for TI BQ2429X battery charger.  From Juha
+    Niskanen.
+  - ADC Driver:  Add poll support.  From Juha Niskanen.
+  - BCH Driver:  Add poll support.  From Jussi Kivilinna.
+  - RTC Driver:  Extend the RTC framework with an alarm read ioctl
+    (RTC_RD_ALARM).  Through it consumer could get configuration settings
+    about previously scheduled hardware alarms (active status, hours,
+    minutes, seconds).  From Boris Astardzhiev.
+
+* Simulation
+
+  - sim/ipforward:  Add an IP forwarding configuration using TUN devices
+    and apps/examples/tun.
+  - Console:  Add non blocking read to devconsole driver.  From Simon
+    Piriou.
+  - Networking:  Poll for TX frames to speed up driver.  From Simon Piriou.
+  - pf_ieee802154:  Add configuration for testing PF_IEEE802154 address
+    family sockets.
+  - ARM Simulator:  Adds necessary functionality to build Simulator under
+    ARM Linux. Tested only on Raspberry3. Currently setjmp/longjmp do not
+    save/restore floating point registers.  From Nickolay Semyonov.
+
+* MicroChip/Atmel SAML21 Drivers:
+
+  - SAML21 I2C driver.  Developed for and contributed with permissin from
+    Filament company.  From Alan Carvalho de Assis.
+  - SAMD/L21 USB Driver:  Add a USB driver.  Developed for Filament Inc.
+    by Offcode, LTD.  From Janne Rosberg.
+
+* MicroChip/Atmel SAMv7 Boards:
+
+  - SAMV71-XULT:  Add support for the MRF24J40 radio and create a
+    mrf24j40-starhub configuration.
+  - SAME70-Xplained:  Add MRF24J40 support.
+
+* NXP Freescale Kinetis Drivers:
+
+  - Kinetis USB Improvements:  usbdev clean up ensuring proper use of HW.
+    Rework suspend and resume logic so they perform properly.  Made attach
+    and detach functions optional. As they do not make sense for a bus
+    powered device.  From David Sidrane.
+  - Kinetis SPI driver:  From David Sidrane.
+  - Kinetis:  I2C driver added I2C3, reference counting and reset.
+    Refactored the driver to support reference counting and reset added
+    I2C3. From David Sidrane.
+  - Kinetis RTC:  Implementation of the alarm read function.
+
+* NXP Freescale Kinetis Boards:
+
+  - configs/teensy-3.x USB:  Define USBOTG-FS Read from FLASH access in
+    board config.  Allow the board config to define the USBOTG-FS to have
+    Read access to FLASH.  From David Sidrane.
+  - configs/teensy-3.x:  Removed call to khci_usbattach.  The call is not
+    need by the driver if CONFIG_USBDEV_BUSPOWERED=y.  On a USB powered device if we are running we are attached.  From David Sidrane.
+  - freedom-k66f:  Use SPI driver.  Initalize SPI1 on connector J6. No
+    real use, as of yet.  From David Sidrane.
+
+* NXP Freescale LPC43xx:
+
+  - LPC43xx:  Modify up_allocate_(k)heap() to support PROTECTED mode. From
+    Alan Carvalho de Assis.
+
+* NXP Freescale LPC4xx Boards:
+
+  - configs/Bambino:  Add protected mode configuration to Bambino board.
+    From Alan Carvalho de Assis.
+
+* On Semiconductor LC823450
+
+  - LC823450: Initial support for ON Semiconductor LC823450. From Masayuki
+    Ishikawa.
+  - LC823450: eMMC/SD and USB support for LC823450.  From Masayuki Ishikawa.
+
+* On Semiconductor LC823450 Boards
+
+  - LC823450-XGEVK:  LC823450-XGEVK board support.  From Masayuki
+    Ishikawa.
+  - LC823450-XGEVK:  Add eMMC/SD and USB support.  From Masayuki Ishikawa.
+
+  * STMicro STM32:
+
+  - STM32 L4:  Add support for the STM32L475 family.
+  - STM32 L4 RCC:  Enable ADC clock source.  From Juha Niskanen.
+  - STM32:  Allow clock frequencies &gt; 168 Mhz on stm32f427/429.  We need
+    to enable the power overdrive for this case.  This change allows the
+    required bits to be set in proper sequence.  It also modifies the
+    local register access operations to allow more than 16-bit registers.
+    From Sebastien Lorquet .
+  - STM32 F4:  Add support for STM32F433RC.  From Alan Carvalho de Assis.
+  - STM32 F7:  Add new configuration option for enabling flash ART
+    Accelerator and flash prefetcher.  From Jussi Kivilinna.
+
+* STMicro STM32 Drivers:
+
+  - STM32 TIM:  Add the set counter function for stm32 timers.  From
+    Sergey Ustinov.
+  - STM32 HRTIM:  Update HRTIM definitions. Add HRTIM driver.  From
+    Mateusz Szafoni.
+  - STM32 HRTIM:  Add HRTIM character driver.  From Mateusz Szafoni.
+  - STM32 HRTIM:  Fix DAC triggers configuration, Add missing master timer
+    logic, enable DAC triggering.  From Mateusz Szafoni.
+  - STM32 HRTIM:  Add DMA configuration. From Mateusz Szafoni.
+  - STM32 HRTIM:  Add burst mode configuration.  From Mateusz Szafoni.
+  - STM32 RTC:  Port Boris Astardzhiev's RTC change for STM32L4 to STM32.
+  - STM32 DAC:  Add support for HRTIM triggering.  Separate dma buffer
+    configuration for channels.  From Mateusz Szafoni.
+  - STM32 DAC:  Conditional logic for timer triggering, fix TSEL
+    configuration when HRTIM, DMA request remapping, Add DMA buffers
+    initialization logic.  From Mateusz Szafoni.
+  - STM32 DAC:  Support external triggering for DMA transfer.  From Mateusz
+    Szafoni.
+  - STM32 L1 TIM:  Add base address for TIM11.  From Juha Niskanen.
+  - STM32 F4 FLASH:  Enable/disable the flash write protection on any
+    sector.  I have verified it to work on the STM32 F427.  From Sebastien
+    Lorquet.
+  - STM32 F4 Clocking:  To use an external oscillator module (not just a
+    crystal) with the STM32F4, one needs to enable the HSEBYP bit in the
+    RCC_CR register. This change allows an integrator to define
+    STM32_RCC_CR_HSEBYP in their board.h file if they want this
+    configuration.  From Jeff.
+  - STM32 F4 USB:  I'm working on bringing up USB full-speed support on
+    STM32F405.  My board does not include a USB power switch, VBus
+    sensing, over current detection, or ID pin.  This commit add a
+    config STM32_OTGFS_VBUS_ CONTROL which lets us selectively disable
+    VBus sensing and control.  I also sneaked in a change to disable the
+    configgpio call for the ID pin, which is only used in OTG mode which
+    isn't supported yet.  The only pins that need to be initialized should
+    be OTGFS_DP and OTGFS_DM.  From Jeff.
+  - STM32 FLASH:  Add CONFIG_STM32_STM32F469 support. From David Sidrane.
+  - STM32 COMP:  Add default INM configuration and some missing COMP
+    1,3,5,7 code.  From Mateusz Szafoni.
+  - STM32 F33:  Add missing SYSCFG CFGR3 definitions.  From Mateusz Szafoni.
+  - STM32 L4 Serial: Allow configuring Rx DMA buffer size.  From Juha
+    Niskanen.
+  - STM32 L4 COMP:  Input minus pin extended selection.  From Juha Niskanen.
+  - STM32 L4 COMP:  Bind to upper half comp driver.  From Pekka Ervasti.
+  - STM32 L4 DAC:  Port from STM32.  Add ADC register definitions.  From
+    Juha Niskanen.
+  - STM32 L4 DAC:  Add option for routing DAC output to ADC.  Actually
+    write something to the DAC DMA buffer.  From Juha Niskanen.
+  - STM32 L4 DAC:  Separate DMA buffer configuration for channels. From
+    Juha Niskanen.
+  - STM32 L4 ADC:  Implement peripheral.  From Juha Niskanen.
+  - STM32 F7:  Definitions for I2C4, SDMMC2.  Adapted RAM start / size to
+    internal SRAM.  From Titus von Boxberg.
+  - STM32 F7 I2C4:  I2C4_SDA can also be on GPIO PB7.  From Titus von
+    Boxberg.
+  - STM32 F7 LTDC:  Option for DSI output, inconsistency: the stm32f746
+    does not feature a DSI interface.  compilable with LTDC_INTERFACE and
+    LTDC_USE_DSI.  From Titus von Boxberg.
+  - STM32 F7 Clocking:  Added functions for DSI clock source selection.
+    From Titus von Boxberg.
+  - STM32 F7 Clocking:  Enable APB2 DSI clock.  From Titus von Boxberg.
+  - STM32 F7 LTDC:  No board specific dithering values used; corrected
+    dithering init.  Corrected LIPOS/LIPCR calculation.  Change only
+    polarity bits in LTDC_GCR.  From Titus von Boxberg.
+  - STM32 F7 Reset:  Added function for reset.  From Titus von Boxberg.
+  - STM32 F7 DMA:  DMA add dcache alignment check in stm32_dmacapable.  In
+    the case dcache write-buffed mode is used (not write-through) buffer
+    alignment is required for DMA transfers because  a)
+    arch_invalidate_dcache could lose buffered writes data and b)
+    arch_flush_dcache could corrupt adjacent memory if the maddr and the
+    mend+1, the next next address are not on ARMV7M_DCACHE_LINESIZE
+    boundaries.  From David Sidrane.
+  - STM32 F7 SDMMC: SDMMC remove widebus limitation on DMA.  There is no
+    documantation for the STM32F7 that limits DMA on 1 bit vrs 4 bit
+    mode.  From David Sidrane.
+  - STM32 F7 SDMMC: SDMMC add dcache alignment check in
+    dma{recv|send}setup. In the case where CONFIG_SDIO_PREFLIGHT is not
+    used.
+  - STM32 F7 RTC: Port Boris Astardzhiev's RTC change for STM32L4 to
+    STM32F7.
+
+* STMicro STM32 Boards:
+
+  - STM32F103-Minimum:  Add GPIO device driver example.  From Alan
+    Carvalho de Assis.
+  - STM32F103-Minimum: Add small hello example for  STM32F103-Minimum
+    board.  From Alan Carvalho de Assis.
+  - STM32F103-Minimum: Add support for SmartFS on Winbond W25 SPI NOR
+    Flash.  From Alan Carvalho de Assis.
+  - STM32F103-Minimum: (1) Enable CONFIG_MTD_PARTITION in Kconfig if flash
+    partition is enabled and (2) Update the README.txt file with info
+    needed to get SmartFS working.  From Alan Carvalho de Assis.
+  - Nucleo-F334R8:  Add HRTIM initialization.  From Mateusz Szafoni.
+  - Nucleo-F334R8:  UART2 is default serial port (STLINK Virtual Port).
+    From Mateusz Szafoni.
+  - Clicker2-STM32:  Add a configuration that was used with the MRF24J60
+    for 6loWPAN testing.
+  - Clicker2-STM32:  Allow both IEEE 802.15.4 MAC character and network
+    devices to be registered.
+  - Clicker2-STM32:  Add configurations to support the endpoint and hub
+    roles in a star topology.
+  - Clicker2-STM32:  Add support for per-function-call stack checking.
+    From Anthony Merlino.
+  - Clicker2-STM32:  Configure EDBG SPI CS just to make that it is
+    disabled.
+  - STM32F4 Discovery: Add logic to register the button driver and the
+    user led driver if so configured.  From Jan Pobrislo.
+  - STM32F4-Discovery:  Add a configuration for testing libc++.  From Alan
+    Carvalho de Assis.
+  - B-L475E-IOT01A:  Add support for the STMicro B-L475E-IOT01A board.
+    From Simon Piriou.
+  - B-L475E-IOT01A: Add support for the SPSRGF/Spirit1 radio module.  Add
+    a configuration for testing sprit radio.
+  - B-L475E-IOT01A:  Add configurations to support a star topology.
+  - B-L475E-IOT01A: add basic support for external Macronix QuadSPI flash
+    memory.  From Simon Piriou.
+  - B-L475E-IOT01A:  Enable UDP broadcast test in the spirit-starhub
+    configuration.
+  - STM32F334-DISCO:  Add STM32F334-DISCO basic support.  From Mateusz
+    Szafoni.
+  - STM32F746-Disco:  Add ADC3 support.  From Ivan Ucherdzhiev.
+  - STM32L476-Disco:  Add a knsh configuration that may be used to test
+    the PROTECTED build mode.
+  - STM32F769I-DISCO:  Initial port to STM32F769I-DISCO.  From Titus von
+    Boxberg.
+
+* C Library/Header Files:
+
+  - Move TUN ioctl command to include/nuttx/net/ioctl.h so that it will
+    always be unique.
+  - Math Library:  Port gamma() and lgamma() from FreeBSD to NuttX.  From
+    Alan Carvalho de Assis.
+  - C++: Compilation with recent C++ compiler needs an overloaded delete
+    operator that includes a size_t size argument.  New sized delete
+    operators are only for C++14 and above.
+
+* Build/Configuration System:
+
+  - Initial clang compile.  From Goran Mekić.
+  - Add CLANG definitions in Kconfig and Toolchain.defs.
+  - drivers/wireless/ieee802154:  Moved radios to individual
+    sub-directories.  From Anthony Merlino.
+  - Makefile.unix: Add savedefconfig target.  From Gwenhael Goavec-Merou.
+  - Add Gwenhael's change to Makefile.win and update README.txt to
+    described the new make target.
+  - All defconfig files are now in the compressed format created with
+    'make savedefconfig.'  The original .config file can be reconstituted
+    using 'make olddefconfig.'
+  - Build System:  It is no longer necessary to have a unique Make.defs
+    file for each configuration.  A board may share a common Make.defs
+    file in the scripts directory.  Duplicate Make.defs files removed;
+    common Make.defs file moved to the scripts/ sub-directory for each
+    board.
+  - Networking: Move INET socket interface out of net/sockets to its own
+    directory net/inet.
+
+* Tools:
+
+  - testbuild.sh:  Added -x to fail build on errors for continous
+    integration (CI).  On CI we want to know ASAP of a failure.  From
+    David Sidrane.
+  - Improve configure.sh behavior:  (1) enable to call from top directory.
+    (2) enable to designate direct path for config.  (3) install .gdbinit
+    if the target has.  From Hidetaka Takano.
+  - Update tools/configure.c to same functionality as configure.sh.  Add
+    an array of optional file names.  Currently, .gdbinit is the only
+    optional file but other things like IDE-specific project files might
+    need to be copied as well.
+  - tools/configure.sh will now copy Eclipse project files if they are
+    present in the board directory file.
+  - Update configure.sh, configure.bat, configure.c:  With compressed
+    format, part of the installation requires that we run 'make
+    olddefconfig' to restore the uncompressed defconfig format.  Also,
+    while I was at it, I also added options to select host platform on
+    configure command line.
+  - tools/refresh.sh:  Now runs make savedefconfig before copying the new
+    defconfig file in place;  Also, added a new option --defaults.  Since
+    the number of defaults that you now have to answer is so large, the
+    option lets you just accept the default values.  So it works just like
+    --silent but still prompts you for the decision to save or discard the
+    new defconfig file.
+  - tools/refresh.sh:  Update so that it can find the Make.defs file in
+    the new location.
+
+* NSH: apps/nshlib:
+
+  - NSH Library:  Add a Telnetd command.  This is needed when network
+    initialization is deferred.  In that case, telnet daemon cannot be
+    started until the network is finally initialized.  The telnetd command
+    was added just for that case:  So that the telnet daemon can be
+    started from the NSH command line after the network is configured.
+  - NSH Library:  Misc changes needed for PktRadio support.
+  - NSH Library:  Extend ifconfig command so that it can set variable
+    length packet radio addresss.
+  - NSH Library:  Update addroute and delroute command.  The would support either
+    IPv4 or IPv6, but not both.  Allow expression of the netmask in IPv4 CIDR or
+    IPv6 slash notation.  This really reduces the pain of using the commands,
+    especially for IPv6.
+  - NSH Library: Add a route command that will dump the content of routing table.
+
+* Examples/Tests: apps/examples:
+
+  - examples/udp: Add configurable network device name; Add option to
+    suppress network initialization which is not needed if started by NSH
+    or for 6LoWPAN.
+  - examples/udp:  Fix registration as a built-in program; Change some
+    naming to make room for a second target.  Current one endpoint is the
+    target and one is the host.  This will (eventually) allow two targets
+    to be both endpoints of the test.  Change build so that both server
+    and client can be on a target, rather than one on the target one on
+    the host PC.  Server IP address may not be provided on the command line.
+  - examples/udp:  Port numbers need to be configurable to work with
+    6LoWPAN.  Need to bind the client socket to a port number.  This was
+    not required before so is a apparently a change in the UDP packet
+    dispatch logic.
+  - examples/udp:  Enable testing with the broadcast address.
+  - examples/nettest:  Support target boards on both ends of the test.
+    Separate out network initialization so that it may be used by both a
+    target server and a target client.  Fix client/server naming
+    confusion; Add command line option to select the server address on the
+    target.  Add support for both enpoints on target boards vs. one on a
+    target and one on the host PC.
+  - examples/nettest:  The send buffer size is now a configuration option.
+  - examples/nettest:  Loopback option should be available in Kconfig for
+    PktRadio.
+  - examples/keypadtest: REMOVED and warehoused in the Obsoleted
+    repository.  This was just a bad clone of apps/examples/hidkbd for a
+    keypad driver that was removed years ago.  It also uses illegal
+    function calls into the OS.  So it has no purpse:  It is redundant, it
+    uses illegal interfaces, and is a test for non-existent code.
+  - examples/ipforward: Add an IP forwarding example using only TUN
+    devices.  Test extended to test forwarding of ICMPv6 multicast messages.
+  - Implement powermonitor example for ltc4151 current and voltage
+    monitor.  From Giorgio Groß.
+  - examples/pf_ieee802154:  Add for testing PF_IEEE802154 sockets.  Add
+    PANID to command line options; Cannot bind to address zero... There is
+    no counterpart to INADDR_ANY for these radios (not now at least).
+  - examples/dac: add DAC example.  From Juha Niskanen.
+
+* Network Utilies: apps/netutils:
+
+  - netutils/telnetc:  This a port of libtelnet to NuttX.
+  - netutils/telnetd and users of telnetd:  Add support for IPv6.
+  - netutils/thttpd:  Remove the netstats demo.  This depends on an
+    illegal function call and cannot be supported.  That example could be
+    replaced with logic that uses the procfs network entries as was done
+    for NSH which had the same issue.  But I am too lazy to implement that.
+  - netutils/netlib:  Add support for PktRadio IOCTL commands.
+  - netutils/netlib:  Add a helper to decode short addresses.
+
+* Wireless Utilies: apps/wireless:
+
+  - wireless/ieee802154/i8sak:  Rewrote i8sak to be test CLI for IEEE
+    802.15.4 MAC layer.  From Anthony Merlino.
+  - wireless/ieee802154/i8sak:  Updates to i8sak for
+    association/beacon-enabled changes to IEEE 802.15.4.  From Anthony
+    Merlino.
+  - wireless/ieee802154/i8sak:  Add option to make it easy to send large
+    frame for testing purposes.  From Anthony Merlino.
+  - wireless/ieee802154/i8sak:  Add scan command.  From Anthony Merlino.
+  - wireless/ieee802154/i8sak:  Add coordinfo command allowing you to
+    poll various attributes related to the coordinator.  From Anthony
+    Merlino.
+  - wireless/ieee802154/i8sak:  Add a option to retry on failures to the
+    assoc command (usually meaning tht the coordinator is not yet up).
+  - iwireless/ieee802154/8sak:  Add reset command to reset the MAC layer.
+    Adds option to assoc command -t to specify how long to wait for a
+    response from the Coordinator.  From Anthony Merlino.
+  - ieee802154/i8sak:  Adds command to trigger regdump of radio.  From
+    Anthony Merlino.
+
+* System Unitilities (apps/system)
+
+  - apps/system/composite: Update to apps/system/composite assocated with
+    big changes to the composite device logic.  From Frank Benkert.
+  - apps/system/composite:  Remove CDC/ACM and MSC configuration logic.
+    This belongs in the OS composite initialization.  Add and argument so
+    that you can select the USB composite configuration to be attached.
+    Restore USB tracing; remove unused field in a structure.  Remove
+    configuration settings that are no longer used.  Fix configuration
+    selecting.. was setting the port number, not the configure ID.  Also
+    add a configuration option to select the default configuration.
+  - apps/system/composite: Add a configuration option to the boardctl()
+    calls to support multiple composite device configurations dynamically.
+  - apps/system/composite:  Remove references to USBMSC.  There still
+    dependencies on CDC/ACM in the serial USB trace output.
+  - apps/system/telnet:  Add Telnet Chat deamon and and client from
+    libtelent.
+
+* Platform-Specific Support (apps/platform)
+</code></pre></div></div>
+
+<p>Bugfixes.  Only the most critical bugfixes are listed here (see the
+ChangeLog for the complete list of bugfixes and for additional, more
+detailed bugfix information):</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - Fix ELF loader up_checkarch on ARM arch.  From Cristian Condurache.
+  - pthread_mutex_unlock():  Missing check for the case where
+    pthread_mutex_lock() is called when the mutex is not locked.  In that
+    case, it would increment the underlying semaphore above 1.  This is
+    the fix for a problem noted by initialkjc@yahoo.com.
+  - sig_timedwait():  Pending signal structure used after it has been
+    releasd.  From anonymous Bitbucket Issue 59.
+  - mm_mallinfo:  do heap end debug assert check with heap semaphore held.
+    From Jussi Kivilinna.
+  - sched/:  Fix return value in sched_setaffinity().  From Masayuki
+    Ishikawa.
+  - Work Queues:  work_queue() must cancel existing work prior to queuing
+    new work, otherwise the work queue list structure can become
+    corrupted. Problem noted by Pascal Speck.
+  - waitpid():  Corrects two problems when CONFIG_SCHED_HAVE_PARENT +
+    CONFIG_SCHED_CHILD_STATUS are enabled:  (1) Was erroring out if the
+    waited for task had already exited, and (2) was not freeing resources
+    when a wait was completed.  From Boris Astardzhiev.
+
+* File System/Block and MTD Drivers:
+
+  - VFS poll():  Fix timeout calculation.  From Jim Paris.
+  - VFS poll():  Fix poll for regular files and block devices.  Open Group
+    documentation says that poll (and select) support regular files and
+    that 'Regular files shall always poll TRUE for reading and writing'.
+    From Jussi Kivilinna.
+  - VFS epoll():  Fix epoll_wait function.  From Simon Piriou.
+  - Smart FS:  Fix wrong freeing of device structure and use-after-free
+    issues on error paths.  From Jussi Kivilinna.
+  - MTD FLASH drivers:  The byte write method of several drivers had a
+    cloned error:  It was not locking the bus while performing byte write
+    operations.
+  - MTD M2PX: If we READ while a write/erase is pending, the command is
+    ignored and the write/erase continues. If we dont catch this situation
+    we will return garbage to the user because the flash will not execute
+    the command.  So READ MUST wait for write completion, and before that,
+    the bus must be locked since it's a precondition to calling
+    waitwritecomplete().  From Sebastien Lorquet.
+  - MTD FLASH drivers: Clone Sebastien Lorquet's m25px change to at25,
+    is25xp, ramtron, and sst25xx.
+  - MTD W25:  Add missing locking and fix SPI_SELECT usage for
+    w25_unprotect.  From Jussi Kivilinna.
+  - MTD W25:  Wait for BUSY flag to clear in w25_readid and
+    w25_unprotect.  W25Q128 datasheet says that all instructions expect
+    'Read Status Register' and 'Erase/Program Suspend' are ignored when
+    BUSY flag in status register is '1'. Therefore wait for busy flag to
+    clear in w25_readid() and w25_unprotect().  From Jussi Kivilinna.
+  - Automounter: FS_AUTOMOUNTER should depend on SCHED_LPWORK.  From
+    Nickolay Semyonov.
+
+* Networking/Network Drivers:
+
+  - TCP Listen: Throw error when error happens in the tcp_listen
+    function.  From Roland Takacs.
+  - Nework Device Management:  Do not search net device when all-zeros
+    address is used.  From Roland Takacs.
+  - Network Device Management:  Fix a error in netdev_register(); it was
+    not handling device names properly when TUN is the only network device.
+  - Network Device Management:  Fix netdev_dev_lladdrsize().  In some
+    configurations, it could return the wrong size for the address of a
+    packet radio.
+  - Network Device Management:  Fix typo for 802.11 devices in
+    netdev_register().  Was being masked before because depended on
+    CONFIG_NET_MULTLINK.
+  - TUN Driver:  Use critical section instead of semaphore in
+    tun_ifdown().  From Masayuki Ishikawa.
+  - TUN Driver:  Do all polling on worker thread.  Otherwise, the stack
+    gets very deep.
+  - TUN Driver:  Currently cannot support TAP mode unless Ethenet is
+    enabled.
+  - netdb:  Fixed buffer size used for sending DNS queries should depend
+    on the configured DNS name size.  From Ritjaina.
+  - UDP networking:  The TTL (time to live) was not being set in the IPv4
+    or IPv6 header unless the UDP socket was bound.
+  - UDP Networking:  Fix a copy-paste error that could effect networking
+    when both IPv4 and IPv6 are enabled.
+  - UDP Networking:  When upd_input() cannot process a packet, it returns
+    ERROR so that network drivers may try calling ipv4_input() later.  In
+    this case, it must also set d_len to zero.  Otherwise, all network
+    drivers will assume tht there is also an outgoing packet.  This
+    results in a gratuitous ARP.
+  - TCP Networking:  Correct some issues that prevent TCP from working
+    correctly when both IPv4 and IPv6 are enabled.
+  - TCP Networking:  TCP disconnection callbacks are not retained in a
+    list.  This will support mutiple callbacks per lower-level TCP
+    connection structure.  That is necessary for the cae where a socket is
+    dup'ed and shares the same lower-level connection structure.  NOTE:
+    There still needs to be a call to tcp_start_monitor() when the socket
+    is dup'ed.
+  - TCP Networking:  Start the network monitor for a socket when a TCP
+    socket is dup'ed.
+  - TCP Networking:  If one of the dup'ed socket's is closed, then network
+    monitor resources associated with that one socket must be recovered.
+    Also, in the event that socket is being used on one thread, but then
+    closed on another, any threads waiting for events from the socket
+    should be informed of the closure.  That latter requirement is not
+    implemented because current data structures do not support it.
+  - TCP Networking:   Fix a race condition.  The accept() operation is
+    performed with the network locked.  However, the network is unlocked
+    BEFORE the connected state is set.  Therefore, a context switch may
+    occur and the socket may no longer be connected when it is marked so.
+    Noted by Pascal Speck.
+  - Network routing tables:  Fix a compilation error when IPv6 and
+    routing are enabled.
+  - Network procfs:  Fix some spacing when both IPv6 and IPv4 are enabled.
+  - Network Local Sockets:  Fix accept for local stream sockets.  From
+    Jussi Kivilinna.
+  - Network Local Sockets:  Fix server lc_waitsem overflow.  From Jussi
+    Kivilinna.
+  - IPv6 Networking:  Remove comparisons to the address with all ones
+    set.  IPv6 does not support broadcast addresses and certainly not in
+    that form.  Replace with multicast addresses beginning with 0xff02.
+  - ICMPv6 Networking:  Fix a compilation issue with
+    CONFIG_NET_ICMPv6_AUTOCONF=y.  From  Masayuki Ishikawa.
+  - Networking:  Fix net_lock returning ERROR when instead of real error
+    code on failure.  From Jussi Kivilinna.
+  - IGMPv2 Networking:  Remove special support for interrupt level
+    processing (there is none) and fix some timer cancellation logic.  In
+    many files, correct comments.  There is no interrupt level processing
+    in the networking layer.
+
+* Wireless/Wireless Drivers:
+
+  - IEEE 802.15.4 MAC:  Need counting protection on the logic that
+    releases the notification resources.  Otherwise, notification handlers
+    may be operating with a stale pointer.
+  - IEEE 802.15.4 MAC: Improves internal timer logic to handle work
+    serially.  Before, the MAC timer used a watchdog to schedule work with
+    the high priority worker queue.  However, since everything in the MAC
+    is supposed to be serialized through the use of the high priority work
+    queue, but the timer uses a watchdog, there are some unintended
+    consequences. To simplify, we now use the delayed work feature of the
+    work queue.  From Anthony Merlino.
+  - IEEE 802.15.4 Network Driver: Update RX statistics in network driver.
+  - IEEE 802.15.4 MRF24J40 Driver:  Minor timing fix. Matches recommended
+    value in datasheet.  Splits up driver into multiple files to make it
+    easier to navigate.  Fixes issue with non-beacon enabled mode.  From
+    Anthony Merlino.
+  - IEEE 802.15.4 MRF24J40 Driver:  Fix a bug causing radio to cease
+    transmitting.  From Anthony Merlino.
+  - IEEE 802.15.4 MRF24J40 Driver:  Fixes issues with sleeping for beacon
+    enabled networking.  From Anthony Merlino.
+  - EEE 802.15.4 MRF24J40 Driver:  Fix math error for calculating sleep
+    count values.  From Anthony Merlino.
+  - IEEE 802.15.4: Fix timing issues for beacon enabled coordinators and
+    endpoints. From Anthony Merlino.
+  - iIEEE 802.15.4: Fix issue with association on beacon-enabled
+    networking.  From Anthony Merlino.
+  - 6LoWPAN:  Correct a few addressing issues.  Also reserve two bytes at
+    the end of the frame for the FCS.
+  - 6LoWPAN:  Fixes needed when extended addressing is enabled; broke short
+    addressing.  Loopback driver needs to initialize the MAC meta data;
+    Address decompression logic must have the MAC address to handle the
+    most common compression cases.  Fix a src/dest address confusion and
+    other addressing problems.
+  - 6LoWPAN:  Add missing IPv6 address creation to HC1 decode logic. Fix a
+    typo in an index that prevented use with HC1 and extended addresses.
+  - 6LoWPAN:  TCP logic was not obeying MTU packet size limitations.
+  - 6LoWPAN:  Major re-architecting of TCP logic to properly handle TCP
+    stuff like ACKs and TDP windowing which were not properly covered in
+    the initial design.
+  - 6LoWPAN:  HC06, copy TCP header as though it were data.  TCP packet
+    reassembly now seems to work OK.
+  - 6LoWPAN:  Fix duplicate and bad memcpy in loopback driver.
+  - 6LoWPAN:  Fix a misconception about HC06 16-bit IPv6 address
+    compression.
+  - 6LoWPAN:  TCP send logic was returning a failure in one case when, in
+    fact, the send was successful.
+
+* Common Drivers:
+
+  - USB MSC:  Use struct instead of pointer to the struct as sizeof
+    argument in memset in usbmsc.c.  Otherwise it leads to error: argument
+    to sizeof in memset call is the same pointer type struct usbmsc_lun_s
+    * as the destination.  From Oleg Evseev.
+  - USB MSC:  Add missing logic to define endpoints.  The composite
+    changes broke the the non-composite, USB MSC only case because it omitted the critical setup when USB MSC was not part of the composite.
+  - USB CDC/ACM.  Fix several known problems resulting from merge of USB
+    composite device.  That merge now breaks some of the non-composite USB
+    devices.
+  - Button Driver:  Interrupts weren't enabled since nothing updates them
+    after btn_poll() marks the file descriptor structure as being polling.
+    From Jan Pobrislo.
+  - ADC Driver:  Fix some data alignment issues in the ADC driver.
+  - I2C Drivers:  Handle I2C_TRANSFER return value consistently.  Some I2C
+    peripherals transfers return zero on success, others number of
+    completed transfers.  Make drivers robust against this.  From Juha
+    Niskanen.
+  - COMP Driver:  Fix compilation errors when poll disabled.  From Mateusz
+    Szafoni.
+
+* Simulation:
+
+  - Simulation:  Fix mkdir issue in GNU target.  From Simon Piriou.
+  - Simulation:  x86 stack needs to be aligned to 16-byte boundaries.
+  - Simulation:  Fix building 32-bit simulation on 32-bit X86.  From Jussi
+    Kivilinna.
+
+* ARM:
+
+  - ARM: The older ARM7 and ARM9 configurations were determining CFLAGS
+    based on the GCC version 4.x.x or not.  That needx to be extended for
+    5.x.x and 6.x.x which also behave like 4.x.x.
+
+* ARMv7-M:
+
+  - Fixed ARMv7-M Toolchain setting.  Cortex-M4 only have Single
+    Precision FPU.  From Hidetaka Takano.
+  - ARMv7-M syscall logic:  Clear bit 0 in PC settings.  Bit 0 is the
+    thumb mode indication and should not be set in the PC.  This extra bit
+    has not caused problems in the past, but seeing it set in the PC is
+    unnerving.
+
+* Expressif ESP32:
+
+  - Fix ESP32 gpio enable reg and default UART pin. Modify default UART
+    pin for ESP-WROOM-32. Fix gpio enable reg.  From Sungki Kim.
+
+* Microchip/Atmel SAMD21 Drivers:
+
+  - SAMD21:  Fix some SPI-related issues.  From Matt Thompson.
+  - SAMD21 SPI: I was having issues with the bus freezing up .. slaves
+    holding SDL low.. so I rewrote a good portion of the interrupt logic
+    based on the application notes from Atmel.  One major improvement is
+    using the RXNACK flag in the STATUS register, which indicates that no
+    device responded to an address packet. Assuming that the chip will
+    always give an interrupt status, I believe it's possible to eliminate
+    the timer as well.  From Matt Thompson.
+  - SAMD/L21:  Need to preserve errno value across syslog() call.
+  - SAMD21:  Changes needed to get USB working.  From Matt Thompson.
+
+* Microchip/Atmel SAMv7 Drivers:
+
+  - SAMv7 TWIHS:  TWIHS driver add reference counting. From David Sidrane.
+  - SAMv7 CAN:  We discovered a problem with the samv7 mcan driver which
+    results, under some circumstances, in a very high CPU load.  The
+    problem occurs, and is easily reproducible, if the device is connected
+    to a CAN network with a wrongly configured CAN speed (baud rate). In
+    our tests we set the CAN speed of the device to 1000000 and the speed
+    of the other CAN nodes to 500000. The device is restarted and sends a
+    CANopen "bootup message" to the CAN network. This results in huge
+    amount of errors messages on the CAN bus, probably because of the CAN
+    feature for acknowledging error messages. The error messages can’t be
+    read by the device because of the misconfigured CAN speed, instead the
+    CAN chip reports lots of errors, which are reported to the application
+    which uses the CAN driver (CONFIG_CAN_ERRORS is enabled).  The CAN
+    errors are reported from the CAN chip via interrupts and thus the
+    interrupt load is very high in this scenario. To fix the problem the
+    driver now disables each RX error interrupt after it is occurred.  The
+    RX error interrupts are turned back on if at least one CAN message is
+    received successfully.  From Stefan Kolb.
+  - SAMv7 CAN:  I discovered while working on the SAMV7 mcan driver that
+    the implementation of the CAN error handling is suboptimal. In the
+    current implementation the many errors are implemented as pending
+    errors.  But those errors are not pending, the errors occurred and are
+    gone directly afterwards. This commit changes the described behavior
+    and simplifies the handling of CAN errors.  From Stefan Kolb.
+
+* Microchip/Atmel SAMv7 Boards:
+
+  - SAMv71-XULT:  Fix MRF24J40 interrupt GPIO number.
+
+* NXP/Freescale Kinetis:
+
+  - Kinetis MPU:  Disable MPU when not in protected mode.  The hardware
+    reset state of the the MPU precludes any bus masters other then DMA
+    access to memory. Unfortunately USB and SDHC have there own DMA and
+    will not have access to memory in the default reset state.  This change
+    disabled the MPU if present on system startup.  From David Sidrane.
+  - Kinetis MPU:  Fixed warning for kinetis_mpudisable. Missing header
+    file added.  From David Sidrane.
+  - Kinetis SIM:  Ensure isolation of clock dividers for 0 value case.
+    This fixes a bug were a SoC does not have a clockdivN register and
+    passes a 0 for the init value.  This prevents overflow of the 0
+    decremented to -1 (0xffffffff) spilling over to other clockdivN
+    fields.  From David Sidrane.
+
+* NXP/Freescale i.MX6 Drivers:
+
+  - i.MX6: Fix a wrong parameter passed when calling irq_attach() in
+    imx_serial.c.  From Masayuki Ishikawa.
+  - Based on Masayuki's change, I review all serial driver vector
+    attachment.  I Found one additional error and updated all relevant
+    drivers to current interrupt parameter passing.
+
+* STMicro STM32:
+
+  - STM32 F410 Kconfig:  Fix peripherals available on the STM32 F410.
+    This also adds a select for STM32_HAVE_DAC1 present on this STM32
+    flavor.  From Gwenhael Goavec-Merou.
+  - STM32 L4 DMA: Correct USART3_RX bad channel definition.  From Juha
+    Niskanen.
+  - STM32 L4 PWR:  Correct PWR_SR2 REGLPS and REGLPF bits, add port I
+    registers.  Also remove duplicate section from Kconfig.  From Juha
+    Niskanen.
+  - STM32 F7: do not enable read-modify-write on DTCM.  "AN 4667 - STM32F7
+    Series system architecture and performance" recommends to disable
+    read-modify-write on DTCM: "If the DTCM-RAM is used as data location
+    and the variables used are byte or/and halfword types, since there is
+    no ECC management in this RAM on the STM32F7 Series, it is recommended
+    to disable the read-modify-write of the DTCM-RAM in the DTCM interface
+    (inthe DTCMCR register) to increase the performance." From Jussi
+    Kivilinna.
+
+* STMicro STM32 Drivers:
+
+  - STM32 TIM3/4 are always 16-bits; never 32-bits.  Noted by Eetu
+    Nevalainen..
+  - STM32 ADC:  Invalidate dma buffer before use.  Missing invalidation
+    caused old samples being fetched from cache.  From Jussi Kivilinna.
+  - STM32, STM32L4, STM32F7 ADC:  Fix channel 18 sample time.  From Juha
+    Niskanen.
+  - STM32 DAC:  Fix some configuration logic. When STM32_NDAC is greather
+    than 1, then second channel is always DAC1OUT2.  From Mateusz Szafoni.
+  - STM32 DAC:  Fix compilation when DMA disabled for channel.  From
+    Mateusz Szafoni.
+  - STM32 F0:  Fix some funny shifts in DAC header files.  From Juha
+    Niskanen.
+  - STM32 F1 RTC fixes:  (1) Compile issues because of missing RTC_MAGIC
+    #defines, (2) missing functionality based on RTC_MAGIC in RTC based on
+    stm32_rtcounter.c, (3) IRQ setup from up_rtc_initialize was later
+    reset in up_irqinitialize, (4) write access to backup registers
+    without enabling access to backup domain, (5) possible races in
+    set/cancel alarm.  tested with STM32F103C8 only.  device now wakes up
+    from forced STANDBY mode by alarm.  From Leif Jakob.
+  - STM32/STM32 L4 PWM:  While attempting to output a 70 MHz square wave
+    from the timer output of a STM32 clocked at 140 MHz, found that the
+    reload calculation was off by one.  This correction does allow the
+    output up to 70 MHz.  I am not sure this affects most users
+    generating slow PWM but for frequencies close to the PCLK, the
+    difference becomes significant.  From JM.
+  - STM32 L4 I2C: Set I2C SDA and SCL pins to open drain mode.  From Pekka
+    Ervasti.
+  - STM32 L4 I2C: I2C4 was writing to wrong RCC registers.  From Juha
+    Niskanen.
+  - STM32 L4 DAC:  Report transfer as completed in DMA callback.  Without
+    this even O_NONBLOCK writes block the calling task if DAC was using
+    DMA.  From Juha Niskanen.
+  - STM32 L4 COMP: comparators share RCC enable bit with SYSCFG.  From
+    Juha Niskanen.
+  - STM32 L4 ADC:  Correct EXTSEL macros.  From Juha Niskanen.
+  - STM32 L4 TIM: TIM15,16,17 are always in APB2.  From Juha Niskanen.
+  - STM32 F7 I2C: Set I2C4 SDA and SCL pins to open drain mode.  From Juha
+    Niskanen.
+  - STM32 F4 RTCC: ISR register and write protection fix.  From Eetu
+    Nevalainen.
+  - STM32 F7 Ethernet:  Fix typo in header; Add memory sync barrier
+    between writing to DMA TX descriptor and restarting DMA TX. Avoid
+    calling work_queue on pollwork if it's already queued, just skip a
+    poll cycle instead.  Nucleo-144: Fix RMII TXD1 signal, connected to
+    PB13 not to PG14.  From savinz.
+  - STM32 F7:  Added missing config option for register value debugging.
+    From Titus von Boxberg.
+  - STM32 F7:  No FSMC, only FMC for STM32F7.  From Titus von Boxberg.
+  - STM32 F7:  HEAP2 depends on CONFIG_ARCH_HAVE_HEAP2, not on particular
+    FMC RAM type.  From Titus von Boxberg.
+  - STM32 F7:  STM32_RCC_DCKCFGR2 has nothing to do with PLLI2S; PLLI2S is
+    not dependent on LTDC, instead on SAICLK1/2 generated from PLLI2S.
+    From Titus von Boxberg.
+  - STM32F7: Some STM32F7 builds failed in build testing due to undefined
+    STM32_SRAM1_BASE.  I think that is because stm32_allocateheap.c was
+    not including chip/stm32_memorymap.h.
+  - STM32 F7: dcache write-buffed mode is used (not write-through) buffer
+    alignment is required for DMA transfers because a)
+    arch_invalidate_dcache could lose buffered writes data and b)
+    arch_flush_dcache could corrupt adjacent memory if the buffer and the
+    bufflen, are not on ARMV7M_DCACHE_LINESIZE boundaries.  From David
+    Sidrane.
+
+* STMicro STM32 Boards:
+
+  - STM32F103-Minumum SPI: SPIDEV_WIRELESS used when this has
+    changed to SPIDEV_CONTACTLESS. From Nicolas Estibals.
+  - configs/:  a few more places where SPIDEV_WIRELELSS should be
+    SPIDEV_CONTACTLESS.
+  - STM32F103-Minumum:  Fix a BUG when reading from output pin.  We need
+    a different read_ops to read from output pin. This patch fixes the
+    issue.  From Alan Carvalho de Assis.
+  - STM32F103-Minumum: Use separated read_ops for GPIO interrupt pins.
+    From Alan Carvalho de Assis.
+  - STM32F103-Minumum: Fix compiler error in MCP2415 logic.
+  - STM32F746G-DISCO:  Fix for compilation of STM32F746G-DISCO.  From Ivan
+    Ucherdzhiev.
+  - STM32F746G-DISCO:  Fix for stm32f746g-disco board for button support
+    with interrupt.  This change is tested with buttons app example and it
+    is working with interrupts (signals). I tried the test with polling
+    but at this point it doesn't work.  From Ivan Ucherdzhiev.
+
+* Build System
+
+  - Fix -Werror=implicit-fallthrough on gcc7.  From Julien Lecoeur.
+  - configs/Board.mk:  Remove comment form end of line. In windows native
+    build, it appears to be trying to make that an extra parameter to the
+    AR command.  From Jeff.
+  - configs/Board.mk:  Remove quotes from CONFIG_ARCH_FAMILY.  Causes
+    problems with Windows native build.  From Jeff.
+  - Makefile.win would only create uboot images for ARM.  MIPS support
+    also needed.  From Lwazi Dube.
+
+* C Library/Header Files:
+
+  - C++:  Fix C++ __guard implementation for ARM.  The standard C++ ABI
+    that most platforms follow defines __guard to be 64 bits.  The existing
+    implementation of libxx_cxa_guard.cxx follows this.  However, the
+    32-bit ARM C++ ABI defines it as 32 bits instead, and changes the
+    meaning slightly so only the lowest bit is used. This matters because
+    GCC creates guard symbols without regards to what libxx_cxa_guard.cxx
+    says.  So on ARM, gcc allocates 4 bytes, but __cxa_guard_release
+    writes 8 bytes, zeroing out another unlucky variable nearby. Fix it
+    by special-casing 32-bit ARM in libxx_cxa_guard.  From Jim Paris.
+  - C++:  In cwchar it uses CONFIG_LIBC_WCHAR to only export the wc/mb
+    functions.  When a build does not want to use wide or multibyte char
+    CONFIG_LIBC_WCHAR is not set. Therefore we should to only export the
+    wc/mb functions when defined.  Regardless of the stat of
+    CONFIG_LIBC_WCHAR the non mb/wc  definitions such as mbstate_t,
+    wint_t, wctype_t need to be exported.  From David Sidrane.
+  - C Library:  Fix an error in mkstemp() the could result in an infinite
+    loop.  From Alan Carvalho de Assis.
+  - C Library:  (1) Fix an error in mkstemp() the could result in an
+    infinite loop.  (2)  Fix for wrong output in some cases.  For Example:
+    (a) input: "FILEXX", output: "FILE00" and repeats same output for
+    further invocations of mkstemp(). But, the ouput has to be FILE01,
+    FILE02, ...., FILEZZ. (b) input: "FILEXXXXXX", output: "FILE100000",
+    for next invocation "FILE200000" and so on.  But it's good, if the
+    ouput goes like FILE000001, FILE000002, ..., FILE000101, ...  From
+    Lokesh B V.
+  - C Library:  gethostbyname_r: Fix check for space in buffer.
+  - C Library:  inet_ntop() was printing negative values for fields &gt;127.
+  - Math Library:  Fix wrong ouput in modf() API.  The sign of integral
+    part given by the modf() should be same as sign of input.  But for
+    inputs between 0 and 1, the sign of integral part was not same as
+    sign of input.  From Lokesh B V.
+  - Math Library:  Fix wrong ouput in ceil() API.  Ex:for input x = 1.0,
+    the output should be 1.0, but the ouput was 2.0.  From Lokesh B V.
+
+* Tools
+
+  - tools/testbuild.sh: Fix missing $ before variable name.
+  - tools/mkdeps.c:  Eliminate a warning. MAX_PATH may already be defined
+    in included system files.  From Jeff.
+
+* Applications: apps/
+
+  - All apps/ Makefiles:  Add .PRECIOUS: apps/libapps.a to every
+    Makefile.  Hopefully this will end awkward problems when you Control-C
+    out of a build and libapps.a is deleted.
+  - platform/Makefile: More attempts to fix for Windows native build.
+    Backslash as a delimiter causes problems in pattern subsitutions.
+
+* NSH: apps/nshlib:
+
+  - NSH network initialization: Fix some ieee 802.15.4 initialization
+    logic.  It should not set the saddr or panid; those cannot be
+    hard-coded but must come from the coordinator.  Re-factor a function
+    that has gotten too big and too complex.  Do not set the IP address
+    for 6loWPAN.  The 6loWPAN stack uses IP address that derive from the
+    ieee 802.15.4 addressing and cannot be (safely) configured by the user.
+  - NSH Library: Fix copy-paste typo in nsh_usbconsole.c.  From Oleg
+    Evseev.
+  - NSH Library: fix size of 6LoWPAN extended address.
+  - NSH Library: Fix build break in nsh_command.c with IPv4/IPv6 dual
+    stack.  From Masayuki Ishikawa.
+  - NSH Library: Correct parsing of ifconfig so that you can specify the
+    HW address without specifying the IP address.
+
+* Examples/Tests: apps/examples:
+
+  - examples/smart: Fix some compilation errors.  Obviously this test has
+    not been used in a LONG time.
+  - examples/udp:  Renaming some files to prevent name collision in
+    libapps.a.  Fix naming of a configuration setting.
+  - examples/nettest:  Renaming some files to prevent name collision in
+    libapps.a
+  - examples/nximage:  Remove unused global variable.
+  - examples/nsh:  Remove APPNAME, PRIORITY, and STACKSIZE settings from
+    Makefile to avoid showing nsh in Builtin Apps.  From Masayuki Ishikawa.
+
+* Network Utilies: apps/netutils:
+
+  - netutils/tftpc:  Missing header file causes errors in some
+    configurations.
+  - netutils/tftpc:  TFTPC depends on CONFIG_NET_IPv4.
+  - netutils/netlib:  Fixes to work when only USRSOCK is enabled.
+  - netutils/netlib: Fix netlib_nodaddrconv() so that its return type is
+    the same as other address conversion functions.
+  - netutils/netlib: If only PF_IEEE802154 socket family is enabled, then
+    must use SOCK_DGRAM.
+  - netutils/ftpc:  Fix some memory leaks.  From Boris Astardzhiev.
+  - netutils/thttpd: Fix a malformed if condition detected by GCC 6.x.x.
+  - netutils/dhcpd: Prevent buffer overflow in dhcpd_addoption.  offset
+    represents distance from start of option buffer.  So this should be
+    changed current option pointer minus start of buffer.  From EunBong
+    Song.
+
+* Wireless Utilies: apps/wireless:
+
+  - wireless/ieee802154/i8sak:  Need to increment the next_saddr after
+    each successful association.
+
+* System Unitilities (apps/system)
+
+  - correct copy-paste typo in comments in composite_main.c  From Oleg
+    Evseev.
+  - system/dhcpc:  The DHCPC renew command did not build correctly due to
+    naming problems.  Noted by Masayuki Ishikawa.
+  - system/dhcpc: Fix warning about renew_main.o appear twice in rule.
+
+* Tools (apps/tools):
+
+  - tools/mkkconfig.bat: Use %cd% instead of %~dp0 for usage of APPSDIR
+    in this batch file.
+  - tools/mkkconfig.bat:  Remove quotes in echo.  These were begin
+    Echo'ed and generating double quots in the output.  From Jeff.
+  - Windows build fixes:  tools/mkkconfig.bat - switch APPSDIR path to
+    use forward slashes for kconfig-frontends. interpreters/ficl -
+    Reorder some targets that causes GNUwin32 make to behave badly.  From
+    Jeff.
+</code></pre></div></div>
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2020 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache NuttX is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2019 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+
diff --git a/content/releases/7.23/index.html b/content/releases/7.23/index.html
new file mode 100644
index 0000000..7487f3d
--- /dev/null
+++ b/content/releases/7.23/index.html
@@ -0,0 +1,1250 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>7.23</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/">
+              <img src="/assets/themes/apache/img/logo.png" width="30">
+              Apache NuttX
+          </a>
+        </div>
+        <nav class="navbar-collapse collapse" role="navigation">
+          <ul class="nav navbar-nav navbar-right">
+            <li id="community">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
+               <ul class="dropdown-menu dropdown-left">
+                <li><a href="/community">Get Involved</a></li>
+                <li><a href="/community-members">Who we are</a></li>
+               </ul>
+            </li>
+            <li><a href="https://github.com/apache/incubator-nuttx">GitHub</a></li>
+            <li id="apache">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+               <ul class="dropdown-menu">
+                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li><a href="http://www.apache.org/security/">Security</a></li>
+                <li><a href="http://www.apache.org/events/current-event">Events</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                </ul>
+            </li>
+          </ul>
+        </nav><!--/.navbar-collapse -->
+      </div>
+    </div>
+
+
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit 7.23">
+  <h1></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="nuttx-723-release-notes">NuttX-7.23 Release Notes</h2>
+
+<p>The 123rd release of NuttX, Version 7.23, was made on December 4, 2017,
+and is available for download from the Bitbucket.org website.  Note
+that release consists of two tarballs:  nuttx-7.23.tar.gz and
+apps-7.23.tar.gz.  These are available from:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://bitbucket.org/nuttx/nuttx/downloads
+https://bitbucket.org/nuttx/apps/downloads
+</code></pre></div></div>
+
+<p>Both may be needed (see the top-level nuttx/README.txt file for build
+information).</p>
+
+<p>Additional new features and extended functionality:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - sem_open() should return SEM_FAILED on any failures.  This is change
+    in the POSIX specification since the original sem_open() was written
+    so many years ago.
+  - exec():  The non-standard interface exec() is now enshrined as a
+    official NuttX API.  I really dislike doing this but I think that
+    this is probably the only want to load programs in the protected
+    mode.  It is currently used by some example code under apps/ that
+    generate their own symbol tables for linking.  Other file execution
+    APIs relay on a symbol table provided by the OS.  In the protected
+    mode, the OS cannot provide any meaning symbol table for execution
+    of code in the user-space blob so that is they exec() is really
+    needed in that build case.  And, finally, the interface is
+    completely useless and will not be supported in the KERNEL build
+    mode where the contrary is true:  An application process cannot
+    provide any meaning symbolic information for use in linking a
+    different process.
+  - OS Internal Functions:  Rename many OS internal functions so it is
+    clear that they are not part of the application interface.  All
+    internal functions with the sem_* prefix became nxsem_*, sig* become
+    nxsig_*, mq_* become nxmq_*, etc.
+  - Cancellation Points:  Add new cancellation point interface,
+    check_cancellation_point().
+  - Signals:  Add logic to wake up a thread that is waiting on a signal
+    if it is canceled.
+  - sigtimedwait():  Add logic to suppress the wait if there is a
+    pending cancellation.
+  - clock_nanosleep():  Implement clock_nanosleep().  nanosleep() is now
+    reduced to a libc wrapper around clock_nanosleep().
+  - task_delete():  Do not permit user applications to delete kernel
+    threads.
+  - kthread_create():  Rename kernel_thread() to kthread_create() for
+    better naming consistency with task_create() and kthread_delete().
+  - boardctl():  Remove the BOARDIOC_GRAPHICS_SETUP command.
+  - TCB:  Move POSIX thread specific data from pthread TCB to common TCB
+    structure.  This change allows using pthread_getspecific and
+    pthread_setspecific from main thread. Patch also enables using
+    pthread data with config option CONFIG_DISABLE_PTHREAD=y. From Jussi
+    Kivilinna.
+  - mm:  Remove the CONFIG_GRAN_SINGLE configuration option.  It adds no
+    technical benefit (other than some minor reduction in the number of
+    interface arguments) but adds a lot of code complexity.  Better
+    without it.
+  - mm:  Add a function to get information about the state of the
+    granule allocator.  This is the moral equivalent of mallinfo().
+
+* File Systems/Block and MTD Drivers
+
+  - MT25Q Serial FLASH:  Add support for Micron MT25Q series MT25Q128.
+    From Sebastien Lorquet.
+  - MX35LFxGE4AB:  Add an MTD driver for Macronix MX35LFxGE4AB serial
+    NAND flash.  From Ekaterina Kovylova.
+  - FileMTD:  Add block device MTD interface.  Block MTD interface
+    allows using block device directly as MTD instead of having to use
+    file-system in between.  NOTE that this provides the opposite
+    capability of FTL which will let you use an MTD interface directly
+    as a block device.  From Jussi Kivilinna.
+  - BCH:  The character driver to block device access now supports an
+    IOCTL to get the geomtry of the underlying block device.
+  - mkfatfs:  Remove mkfatfs from the OS.  This is a user-space
+    application and belongs in apps, not in the OS.
+  - procfs:  Implements procfs /proc/fs/blocks and /proc/fs/usage files,
+    replacing the NSH df command.  Also implements procfs /proc/fs/mount
+    file, replacing the NSH mount command when there are no arguments.
+  - procfs:  Add /proc/meminfo.  This is an alternative way to get the
+    information that was previoulsy available in apps/system/free.
+    apps/system/free was removed beause it made illegal calls into the
+    OS violating the portable interface.  This new procfs entry provides
+    the same information with no such violation.  it also provides
+    information about the kernel heap (formerly /proc/kmm), about the
+    use of program memory(formerly /proc/progmem).  And also information
+    for the page table usage in the KERNEL build.
+  - UserFS:  Adds the UserFS client and of the UserFS feature in
+    general.  Initially used Unix domain local sockets instead of
+    message queues.  Easier to transfer big data in local sockets than
+    message queues.  However, that lead to certain inescapable deadlock
+    conditions So the IPC was converted to UDP LocalHost loopback
+    sockets.  The problem with the local sockets is that they do require
+    operations on the top level psuedo-file system inode tree.  That
+    tree must be locked during certain traversals such as enumerate
+    mountpoints or enumerating directory entries.  This conversion is
+    unfortunate in the sense that Unix local domain sockets are
+    relatively lightweight.  LocalHost UDP sockets are much heavier
+    weight since they rely on the full UDP stack.
+
+* Graphics/Display Drivers:
+
+  - Framebufer character driver:  Add framebuffer character device driver.
+  - LCD Framebuffer:  Add support for a generic front-end that will
+    convert any LCD driver into a framebuffer driver.
+  - Framebufer character driver:  Include support for LCD drivers that
+    use a simulated framebuffer and must receive explicit notification
+    when there is an update to a region in the framebuffer.
+  - LCD:  Make LCD driver configuration indepently selected from NX
+    graphics configuration.  This makes things awkward and loses some
+    error checking but is a necessary step in order to make LCD drivers
+    usable when the NX graphics system is disabled.
+
+* Networking/Network Drivers:
+
+  - Networking:   Add implementation of logic for SIOCGIFCONF and
+    SIOCGLIFCOF IOCTL commnds.
+  - Network IOCTLs:  Add support for the SIOCGIFBRDADDR ioctl() command.
+  - Routing Tables:  Permit IPv4 and IPv6 routing tables to be of
+    different sizes.
+  - Routing Tables:  Adds support for read-only routing tables.  Prior
+    to this change, routing tables were only support in RAM and had to
+    be initialized with explicit logic to add the necessary routes to
+    the routing table.  With this change, routes may be defined in the
+    pre-initialized, read-only routing table provided by the
+    board-specific logic.
+    This would be particularly useful, for example, in the case where
+    there is only a single network adaptor and you want all output
+    packets to go to the single adaptor in all cases.  So for that
+    behavior you could add a read-only routing table to the
+    board-specific long that contains a single entry, the default route:
+    0.0.0.0/0.
+  - Routing Tables.  Added support for routing tables in files in a file
+    system.  This might be useful for customized, per-unit routing
+    tables. There are two issues with it however:
+     1. Reading from file system on a per packet basis could be slow.  I
+        think it probably should have a small, in-memory cache of most
+        frequently used routes for good problem.
+     2. Currently the delroute logic is disabled due to a problem with
+        the design.  NuttX does not currently support truncate().
+        Therefore, it is not possible to delete entries from the routing
+        table file. In this current implementation, that leaves the last
+        entry intact at the end of the file.  An alternative design
+        might include a tag on each record to indicate if the record is
+        valid or not.  That would work but would add complexity to the
+        other routing table functions.
+  - Routing Tables:  Add support for an in-memory routing table cache in
+    order to improve performance when the routing table is retained in a
+    file. The cache holds the most recently used routing table entries
+    and so can eliminate some file access.  Flush the in-memory cache
+    when any entry is deleted from the routing table.  When a router
+    matching an IP address is found, add the routing table entry to the
+    cache.
+  - Routing Tables:  Add logic to mark a route as most-recently-used in
+    the route cache.
+  - ICMP:  This change adds support for semi-standard IPPROTO_ICMP
+    AF_INET datagram sockets.  This replaces the old ad hoc, nonstandard
+    way of implementing ping with a more standard, socket interface.
+  - ICMPV6: This commit adds support for semi-standard IPPROTO_ICMP6
+    sockets.  This is a replacement for the non-standard ICMPv6 ping
+    support that violated the portable POSIX OS interface.
+  - ICMPv6:  Add option to manually specify router prefix in router
+    advertisement message.  From Sakari Kapanen.
+  - Local Sockets:  This commit modifies the Unix domain local socket
+    design. Local sockets are built on top of pipes.  The Local socket
+    implementation maintained file descriptors to interrupt with the
+    pipes. File descriptors have the bad property that they are valid
+    only while running on the thread within the task that created the
+    local socket.
+    As a policy, all internal OS implementations must use "detached"
+    files which are valid in any context and do not depend on the
+    validity of a file descriptor at any point in time.  This commit
+    converts the usage of file descriptors to detached files throughout
+    the local socket implementation.
+
+* Wireless Networking/Wireless Drivers:
+
+  - IEEE-802154:  Adds support for receiving MAC events via IOCTL through
+    socket interface.  From Anthony Merlino.
+  - IEEE-802154:  Simplifies notify() and rxframe() calls to a single
+    notify() call. dataind's and all other "notifs" are now "primitives"
+    which aligns with standard terminology  From Anthony Merlino.
+  - MAC802154:  Add support for getting promiscuous mode state From
+    Anthony Merlino.
+  - MAC802154 Character Driver: When in promiscuous mode, the char
+    driver sends the entire frame, including the MAC header.  This
+    change adds an offset field indicating the header-payload boundary.
+    It is set to 0 when not in promiscuous mode as the header is not
+    passed to the application
+  - 6LoWPAN: Remove CONFIG_NET_6LOWPAN_FRAMELEN.  In this case where
+    multiple radios are supported, this may not be a constant.  6LoWPAN
+    now always queries the driver to get the maximum frame length.
+  - 6LoWPAN:  Support sending to a router that is on-link and may be
+    able to forward the packet for us if the destination is not
+    reachable directly.  From Anthony Merlino.
+  - XBee:  Adds XBee S2C (802.15.4 firmware) support. XBee driver
+    emulates mac802154 interface.  From Anthony Merlino.
+
+* Other Common Device Drivers:
+
+  - PowerLED:  Add upper-half driver for high power LED driver (powerled)
+    From Mateusz Szafoni.
+  - RTC Driver:  Add periodic alarms to upper and lower halves.  From
+    Juha Niskanen.
+  - Pipes:  Fix writing large buffers not triggering POLLIN for reader
+    poll.  From Jussi Kivilinna.
+  - USB CDC/ACM Device:  Add support for RX flow control to the CDC/ACM
+    driver.
+  - USB CDC/ACM Device:  Add support for flow control TERMIOs in CDC/ACM
+    driver.
+  - USB RNDIS Device:  Add RNDIS-over-USB driver.  From Sakari Kapanen
+    with added Hi-Speed support from Masayuki Ishikawa.
+  - Loop Driver:  Don't use file descriptors... Use the internal file
+    system interfaces so that the loop device can be shared across
+    threads.
+  - APA102 LED controller:  Add driver for APA102 LED controller.  These
+    LEDs are used on LED Strips and are controlled over SPI.
+  - INA219.  Add INA219 Driver.  The INA219 is a combined voltage and
+    current sensor that can measure up to 26 volts and a current that
+    depends on an external shunt resistor.  Connection happens via
+    i2c/smbus and the chip features a power supply rail that is
+    independent from the measured voltage, so it can measure low
+    voltages.  Right now it measures bus voltage and current, and does
+    not use the internal calibrated current reading, nor the available
+    power measurement.  From Sebastien Lorquet.
+  - PCA9555:  The IRQ subsystem now supports passing a void * parameter
+    to IRQ handlers.  Use that method to support multiple PCA9555
+    devices, by passing a pointer to the device to the board defined irq
+    handler.  Now the CONFIG_ for multiple PCA devices just allocates
+    device structures dynamically instead of statically when not enabled.
+    The same interrupt handler is entered with the device structure
+    parameter in all situations, multiple or single PCA. One should
+    still be careful if multiple PCA devices share the same IRQ.  From
+    Sebastien Lorquet.
+  - APDS-9960:  Add driver for the APDS-9960 gesture sensor.  From Alan
+    Carvalho de Assis.
+  - MAX7219:  Add support to MAX7219 LED Matrix as LCD interface.  From
+    Alan Carvalho de Assis.
+  - WM8774:  Add WM8774 audio DAC support.  From Masayuki Ishikawa.
+  - Nunchuck:  Add Nintendo Wii Nunchuck driver.  From Alan Carvalho de
+    Assis.
+
+* Simulation
+
+  - Simulation:  Add a configuration for non-graphical testing of the
+    frambuffer character driver using apps/example/fb.
+  - Simulation:  Add a configuration for testing the UserFS using
+    apps/examples/userfs.
+
+* Broadcom BCM2708:
+
+  - BCM2708:  Add enough infrastructrue (more stubs) to get a clean
+    compilation of the Pi Zero configuration (with many undefined things
+    at link time).   This includes several register definition header
+    files (some from Alan Carvalho de Assis), basic interrupt handling
+    logic, boot-up files, GPIO support, tickless timer, build and
+    configuration logic
+
+* Broadcom BCM2708 Boards:
+
+  - Raspberry Pi Zero.  Basic board support at configs/pizero.  Untested
+    in this release and still some remaining issues.
+
+* Infineon XMC4xxx Boards:
+
+  - XMC4500-Relax:  Add config for UART3 on RXD P0.0 and TXD P0.1 pins.
+    From Alan Carvalho de Assis.
+
+* NXP Freescale LPC17xx Boards:
+
+  - Open1788:  Add initialization of Framebuffer driver.  Add
+    configuration for testing the framebuffer driver.
+
+* NXP Freescale LPC43xx Drivers:
+
+  - LPC43xx:  Add LPC43xx CAN driver.  From Alexander Vasiljev.
+
+* NXP Freescale LPC43xx Boards:
+
+  - MCB1700:  Add support for Keil MCB1700 board.  From Alan Carvalho de
+    Assis.
+  - Open1788:  Add support for the discrete joystick driver.
+  - Open1788:  Add a configuration for testing pdcurses with discrete
+    joystick.
+
+* On Semiconductor LC823450
+
+  - LC823450:  Add ADC driver and watchdog drivers.  From Masayuki
+    Ishikawa.
+  - LC823450:  Add IPL2 support.  From Masayuki Ishikawa.
+  - LC823450:  Add I2S support. From Masayuki Ishikawa.
+  - LC823450:  Add auto LED for CPU activity.  From Masayuki Ishikawa.
+
+* On Semiconductor LC823450 Boards
+
+  - LC823450-XGEVK:  Enable ADC and watchdog driver.  From Masayuki
+    Ishikawa.
+  - LC823450-XGEVK:  Add IPL2 support.  From Masayuki Ishikawa.
+  - LC823450-XGEVK:  Add WM8774 support. From Masayuki Ishikawa.
+  - LC823450-XGEVK:  Add auto LED support.  From Masayuki Ishikawa.
+  - LC823450-XGEVK:  Enable CONFIG_SMP for audio. From Masayuki Ishikawa.
+  - LC823450-XGEVK:  Add rndis configuration.  From Masayuki Ishikawa.
+
+* STMicro STM32:
+
+  - ARM Kconfig:  Add support for classic ARM11 architecture selections.
+  - STM32 Tickless:  Removes the restriction to 16-bit counts when a
+    32-bit timer is used for tickless operation on the stm32.  As it
+    was, the restriction is very limiting, especially if one wants high
+    granularity and large achievable intervals and has the hardware
+    (namely the 32bit timers) available.  From Rajan Gill.
+  - STM32 L4 Kconfig:  Add some L486 and L496 chips.  From Juha Niskanen
+  - STM32 F7:  Adds architecture support for the STM32 F72x and F73x
+    families.  From Bob Feretich.
+  - STM32 F7:  Allow changing voltage output scaling setting and
+    prevents enabling over-drive mode for low frequencies (STM32 F74xx,
+    75xx, 76xx, 77xx). From Jussi Kivilinna.  Changes replicated for
+    the 72xx and 73xx families.
+
+* STMicro STM32 Drivers:
+
+  - STM32 ADC:  Added support for ADC's IO_ENABLE_TEMPER_VOLT_CH ioctl
+    on STM32F10XX and STM32F20XX.  From Dmitriy Linikov.
+  - STM32 Wakeup:  Add logic for enabling wakeup pins.  From Oleg Evseev.
+  - STM32 PWR:  Adds stm32_pwr_getsbf and stm32_pwr_getwuf functions
+    that return the standby flag and the wakeup flag PWR power
+    control/status register.  From Oleg Evseev.
+  - STM32 HRTIM:  Sdd support for capture, chopper, deadtime and dump
+    registers.  From Mateusz Szafoni.
+  - STM32 RTC:  Canceling an alarm marks it as inactive.  From Juha
+    Niskanen
+  - STM32 Serial:  Add interface to get uart_dev_t by USART number,
+    stm32_serial_get_uart().  From Juha Niskanen.
+  - STM32 F33xx ADC:  Initial ADC support for the STM32F33XX.  From
+    Mateusz Szafoni.
+  - STM32 F33xx ADC:  Add ADC DMA support to STM32F33 configuration.  From
+    Mateusz Szafoni.
+  - STM32 L4 ADC:  Port analog watchdog ioctl commands from the Motorola
+    MDK.  From Juha Niskanen
+  - STM32 L4 ADC:  Add option for routing ADC data to DFSDM, fix DFSDM
+    DMA. From Juha Niskanen
+  - STM32 L4 ADC:  Add PM hooks from Motorola MDK
+  - STM32 L4 FLASH:  Add function for modifying device option bytes,
+    From Juha Niskanen.
+  - STM32 L4 DFSDM:  Add peripheral support for digital filters for
+    sigma-delta ADCs.  Initial version.  Timer trigger support is not
+    completed and there is some issue with DMA.  From Juha Niskanen.
+  - STM32 L4 I2C:  Port then STM32 F7 I2C driver to STM32 L4.  STM32L4 I2C
+    driver is in work-in-progress state (plentiful of TODOs and
+    #warnings) and lags many features found in more up-to-date STM32 I2C
+    drivers.  The peripheral on STM32F7 and STM32L4 are identical except
+    for L4's 'wakeup from stop mode' flag and STM32F7's I2C driver is in
+    more 'ready to use' state.  The I2C clock configuration is kept the
+    same as before (I2CCLK = PCLK1 80 Mhz) instead of switching to
+    STM32F7 arch default that is I2CCLK=HSI. Further work would be to
+    add configuration option for choosing I2C clock source instead of
+    current hard-coded default.  From Jussi Kivilinna.
+  - STM32 L4 RTC:  Add up_rtc_getdatetime_with_subseconds
+  - STM32 L4 RTC:  Change maximum alarm time from 24h to one month.  From
+    Juha Niskanen.
+  - STM32 L4 RTC:  Add support for periodic interrupts with
+    (experimental) CONFIG_RTC_PERIODIC.   From Juha Niskanen.
+  - STM32 L4 SDMMC:  Add support for an SDMMC driver.  From Miha Vrhovnik.
+  - STM32 L4 Serial:  Suspend serial for Stop mode.  From Juha Niskanen.
+  - STM32 L4 Serial/PM:  STM32L4 serial PM interface improvements:
+    Check rx/tx buffers for pending data in pmprepare.  Remove adhoc PM
+    interfaces and move serial suspend functionality behind CONFIG_PM.
+    From Jussi Kivilinna.
+
+* STMicro STM32 Boards:
+
+  - STM32F103-Minimum:  Add board support for APA102 driver.  From Alan
+    Carvalho de Assis.
+  - STM32F103-Minimum:  Add ADC support on stm32f103-minimum board.
+    From Alan Carvalho de Assis.
+  - STM32F103-Minimum:  Add support for LM75 in the stm32f103-minimum
+    board.  From Alan Carvalho de Assis.
+  - STM32F103-Minimum:  Add an ADPS-9960 example configuration.  From
+    Alan Carvalho de Assis.
+  - STM32F103-Minimum:  Add board support for MAX7219 LED Matrix
+    controller.  From Alan Carvalho de Assis.
+  - STM32F103-Minimum:  Add USB MSC device initialzation to
+    stm32f103-minimum.  From Alan Carvalho de Assis.
+  - STM32F103-Minimum:  Add framebuffer driver initialization for
+    stm32f103-minimum board.  From Alan Carvalho de Assis.
+  - STM32F103-Minimum:  Add Nunchuck board support for
+    stm32f103-minimum board.  From Alan Carvalho de Assis.
+  - STM32F4 Discovery:  Add support for JLX12864G display on STM32F4
+    Discovery board.  From Alan Carvalho de Assis.
+  - Viewtool-STM32F107:  Add support to auto-mount the procfs file system.
+  - Photon:  Support SPI1 and SPI3.  From Anthony Merlino.
+  - STM32F334-DISCO:  Add lower half driver for high power LED
+    (powerled).  From Mateusz Szafoni.
+  - STM32F334-DISCO:  Add flash mode support for powerled driver. From
+    Mateusz Szafoni.
+  - STM32F334-DISCO:  Add powerled example configuration.  From Mateusz
+    Szafoni.
+  - STM32F334-DISCO:  Add lower-half driver for SMPS (buck-boost onboard
+    converter).  From Mateusz Szafoni
+  - Nucleo-F334R8:  Add logic for zero latency high priority interrupts
+    example.  From Mateusz Szafoni.
+  - Nucleo-F334R8:  Add highpri example configuration.  From Mateusz
+    Szafoni.
+  - STM32 F4 Discovery:  Added support for the LIS3DSH accelerometer on
+    the STM32F4 Discovery rev. C boards.  From Florian Olbrich.
+  - STM32 F4 Discovery: ROMFS for STM32F4 Discovery board.  From Tomasz
+    Wozniak.
+  - STM32 F4 Discovery:  Add a USB MSC configuration.  From Alan Carvalho
+    de Assis.
+  - STM32 F4 Discovery:  RNDIS support on STM32F4Discovery + DM-STF4BB.
+    NOTE: MAC address for the host side starts 0xaa.  This assignment
+    scheme should be fixed later.  From Masayuki Ishikawa.
+  - STM32 F4 Discovery:  Add STM32F4 Discovery board support for
+    Nunchuck joystick.  From Alan Carvalho de Assis.
+  - STM3240G-EVAL:  Add a configuration for testing the Framebuffer
+    character driver using the LCD framebuffer front.
+  - STM3240G-EVAL:  Mount procfs if enabled.
+  - STM3240G-EVAL:  Add support for pdcurses and the pdcurses demo
+    programs in the 'fb' configuration.
+  - Clicker2-STM32:  Adds SD card, automount, and syslog file
+    support and fixes a few minor issues.  From Anthony Merlino.
+  - Clicker2-STM32:  Adds support for USB RNDIS device.  From Anthony
+    Merlino.
+  - Olimex STM32-H407:  Add serial support on the on-board UEXT
+    connector.  Add USART6 for UEXT connector.   Add nsh_uext
+    configuration and README update.  From Jan Pobříslo.
+  - Nucleo-F410RB:  Add support for the nucleo-F410RB board.  From
+    Gwenhael Goavec-Merou.
+  - STM32F429i-DISCO:  Add framebuffer driver initialization.  Add a
+    framebuffer (fb) configuration.
+  - STM32F429i-DISCO:  Add logic to auto-mount procfs.  Enable procfs in
+    all configurations that use NSH.
+  - STM32F429i-DISCO:  Enable support for the STMPE811 touchscreen
+    controller.  Enable touchscreen and also the touchscreen testa at
+    apps/examples/touchscreen in the fb configuration.
+  - STM32F429i-DISCO:  Convert NxWM configuration to use LTDC
+    framebuffer driver instead of SPI serial.  Also reduce number of
+    layers from 4 to 1 in fb configuration.  Only one layer is used.
+  - STM32L476-MDK:  Add support for the on-board LEDs.
+  - Nucleo-L496ZG:  Add DFSDM initialization.  From Juha Niskanen
+  - Nucleo-L496ZG:  Add support for SDMMC driver.  From Miha Vrhovnik.
+  - Nucleo-L496ZG:  Enable I2C4 bus with i2ctool in NSH configuration.
+    From Jussi Kivilinna.
+  - Nucleo-L496ZG:  Make HSE on Nucleo-L496ZG default to enable USB.
+    From Miha Vrhovnik.
+  - Nucleo-F746ZG:  Use the serial console over /dev/ttyACM0 by default.
+    The Nucleo-F746ZG doesn't come with Arduio RS-232 shield, then it is
+    better to use the serial over the /dev/ttyACM0 that is created
+    automatically when the board is plugged in the computer.  From Alan
+    Carvalho de Assis.
+  - Nucleo-144:  Adds support for the Nucleo-144 boards with
+    STM32F722ZE.  From Bob Feretich.
+
+* ZiLOG Z80
+
+  - z80/include: compiler.h, limits.h, types.h:  Update SDCC/z80 files
+    to include support for long long, inline, __FILE__, and __func__.
+
+* C Library/Header Files:
+
+  - include/:  Add stdnoreturn.h.  Holds definitions for the C11
+    noreturn keyword.  Applies to C too.
+  - include/netinet/tcp.h:  Add trivial standard tcp.h header file.
+  - libc:  Add support for readv() and writev().
+  - libc:  Adds tcflow().
+  - libc:  Add support for sigwait().
+  - libnx:  Changes to allow the font subsystem to be built without
+    enabling the entire graphics system (CONFIG_NX).  Adds
+    CONFIG_NXFONTS and CONFIG_NXGLIB.  Needed to duplicate some Kconfig
+    setting for NXFONTs if it can be configured and built independently
+    of NX.
+
+* Tools:
+
+  - tools/configure.sh:  Add special support so that you can start with a
+    windows native configuration and install on a different host (and
+    vice versa).
+  - tools/configure.c:  Duplicate new functionaity added to configure.sh.
+  - tools/configure.sh:  This commit adds a -m option for macOS. For
+    anyone not aware, Apple renamed OSX to macOS recently; thus the 'm'
+    instead of 'o'. This does not change the other uses of *_OSX to
+    macOS. From jeditekunum.
+  - tools/configure.c:  Update functionality to match last change to
+    tools/configure.sh.
+
+* NSH: apps/nshlib:
+
+  - apps/nshlib:  mount command no long uses the non-standard OS
+    interface foreach_mountpoint().  Now simply cats /proc/fs/mount
+    when there are no arguments to the mount command.
+  - apps/nshlib:  df command no long uses the non-standard OS interface
+    foreach_mountpoint().  Now simply cats /proc/fs/blocks or
+    /proc/fs/usage.
+  - apps/nshlib:  The free commands no longer used mallinfo() to get
+    the state of the use heap.  Two reasons:  That is not useful
+    information in the kernel build.  And (2) there are other memory
+    resources of interest in other configurations such as the Kernel
+    heap in PROTECTED and KERNEL builds, and the prog mem uses when
+    FLASH is used to hold modifiable data.  The free command has been
+    extended to just dump the content of procfs entries and to include
+    all of these other memory resources of the procfs entries are
+    available.
+
+* Examples/Tests: apps/examples:
+
+  - apps/examples/fb:  Add a simple test for the framebuffer character
+    driver..
+  - apps/examples/ostest: sem_open() now returns SEM_FAILED in the
+    event of a failure.
+  - examples/ostest:  Extend cancellation test to make sure that
+    cancelable threads waiting on a message queue or on a signal can be
+    canceled.
+  - Added a simple reader example for the LIS3DSH acceleration sensor
+    on STM32F4Discovery.  From Florian Olbrich.
+  - apps/examples/apa102:  Add a Rainbow example for APA102 LED Strip.
+    From Alan Carvalho de Assis.
+  - apps/examples/flowc:  Add a simple test of serial hardware flow
+    control.
+  - Add powerled driver example.  From Mateusz Szafoni.
+  - apps/examples/ina219: A simple infinite loop that polls the INA219
+    sensor and displays the measurements.  From Sebastien Lorquet.
+  - apps/examples/alarm:  Add options for reading alarm value and
+    canceling it.  From Juha Niskanen.
+  - Add -n samples to lm75 app and replace Centigrade with Celsius.
+    From Alan Carvalho de Assis.
+  - apps/examples/adps9960:  Add ADPS-9960 example.  From Alan Carvalho
+    de Assis.
+  - apps/examples/obd2:  Add OBD2 example application.  From Alan
+    Carvalho de Assis.
+  - apps/examples/userfs:  Add a test case for verifying UserFS.
+  - apps/examples/smps: add SMPS driver example.  From Mateusz Szafoni.
+  - apps/examples/pdcurses:  Bring in pdcurses demos and make them
+    conform to the NuttX coding style.
+  - apps/examples/pdcurses:  Add a very simple example that just shows
+    the entire character set (7-bit only).  It adapts to the size of
+    the framebuffer and, hence, can be used with very tiny displays.
+    In fact it looks really dumb on big displays.
+  - apps/examples/nunchuck:  Add Nunchuck example application.  From
+    Alan Carvalho de Assis.
+
+* File System Utilies: apps/fsutils:
+
+  - apps/fsutils/mkfatfs:  Move mkfatfs from the OS to here.
+
+* Network Utilities: apps/netutils:
+
+  - apps/netutils/netlib:  Add netlib_ipv6adaptor() and
+    netlib_ipv4adaptor().
+  - apps/netutils/netlib:  Add helpers for reading the routing table:
+    netlib_read_ipv4route() and netlib_read_ipv6route().
+  - apps/netutils/netlib:  Add new utilities netlib_ipv[4|6]router()
+    that can be used to determine the IP address of a router that would
+    be used some some destination IP address that is not locally
+    accessible.
+  - apps/netutils/ftpc:  Adds support for IPv6 and fixes various
+    transfer issues.   From Anthony Merlino.
+
+* CANUtilities: apps/canutils:
+
+  - apps/canutils/libobd2:  Add libobd2 for NuttX.  From Alan Carvalho
+    de Assis.
+
+* Graphics: apps/graphics:
+
+  - graphics/traveler:  Convert to use the framebuffer driver.
+  - apps/graphics/pdcurs34:  This commit brings the public domain
+    pdcurses library into NuttX.  NuttX graphics support based on the
+    framebuffer character drivers has been integrated.  Input is
+    currently limited to a discrete joystick driver.
+
+* Wireless Utilities: apps/wireless:
+
+  - apps/wireless/ieee802154/i8sak:  Adds socket interface support. You
+    can now use both socket or char driver to control the MAC layer.
+    From Anthony Merlino.
+  - apps/wireless/ieee802154/i8sak:  Adds sniffer port option and a few
+    other get/set parameters.  From Anthony Merlino.
+  - apps/wireless/ieee802154/i8sak: Changes 'notif' to 'primitive'
+    corresponding to the changes in the Kernel.  From Anthony Merlino.
+  - apps/wireless/ieee802154/i8sak: Channel setting is now saved
+    locally, so when performing a startpan or assoc, the channel
+    previously set is still used, even though the MAC layer gets reset.
+    From Anthony Merlino.
+  - apps/wireless/ieee802154/i8sak:  Adds ability to get/set rxonidle
+    setting for MAC layer. From Anthony Merlino.
+  - apps/wireless/ieee802154/i8shark:  Adds i8shark, a sniffer "adapter"
+    that captures all 802.15.4 traffic, packages it into a Wireshark ZEP
+    packet, and sends it to a host running Wireshark  From Anthony
+    Merlino.
+
+* System Utilities (apps/system)
+
+  - apps/system/ping and ping6:  This commit removes the ping and ping6
+    commands from NSH and replaces then with the apps/system/ping and
+    apps/system/ping6 built-in commands.  The NSH ping[6] commands had
+    to be removed because they violated the portable POSIX OS interface.
+    The apps/system/png and ping6 command uses the sem-standard
+    IPPROTO_ICMP and IPPROTO_ICMP6 socket interfaces.
+
+* Platform-Specific Support (apps/platform)
+</code></pre></div></div>
+
+<p>Bugfixes.  Only the most critical bugfixes are listed here (see the
+ChangeLog for the complete list of bugfixes and for additional, more
+detailed bugfix information):</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - Task Environment Creation:  Fix an error in the duplication of the
+    child tasks environment in the special case where the parent's
+    environment was created, but then all of the variables were unset.
+    In that case, there is still an allocation in place but the size of
+    the allocation is zero. This case was not being handled correctly
+    when a child task attempts to create its environment and inherit the
+    zero-size partent environment. Noted by Anthony Merlino.
+  - timer_create():  Fix watchdog resource leak if cannot allocate a new
+    timer. From Bruno Herrera.
+  - OS Internal Functions: Internal OS functions should not return error
+    information via the user errno variable:  This includes functions
+    like file_seek(), file_read(), file_write(), etc.  The complete list
+    is too long to duplicate here (please refer to the ChangeLog for
+    details).
+  - OS Internal Functions:  Not only should internal OS functions not
+    modify the errno variable, they should never introduce cancellation
+    points:  psock_connect(), psock_listen(), psock_getsockopt(), etc.
+    The list is too long to duplicate here (please refer to the
+    ChangeLog for details).
+  - OS Internal Functions:  Create OS internal versions of many
+    applications functions that were used by the OS.  The new versions
+    differ from the application interfaces in that (1) they do not
+    return error information via the errno variable, and (2) they never
+    create cancellation points.  This includes new internal interfaces
+    like nxsem_init() that is like sem_init(), etc.  There are too many
+    to list here (see the ChangeLog for details).
+  - Task Exit:  task_exithook.c fails to link if signals are disabled
+    because was unconditionally trying to send the SIGCHLD signal to the
+    parent in certain configurations.  Noted by Jeongchan Kim.
+  - memalign():  Fix heap corruption caused by using unaligned chunk
+    size.  Unaligned nodes generated by memalign later cause heap
+    corruptions when nodes are shrink further (for example, 24 bytes -&gt;
+    8 bytes, when alignment is 16 bytes).  From Jussi Kivilinna.
+  - SMP:  In sched/sched/sched_cpuselect.c, in order to find the cpu
+    with the lowest priority thread, we have to remember the already
+    found lowest priority.  Noted by Anonymous in Issue #75.
+  - spinlocks:  Disable local interrupts in spin_setbit() and
+    spin_clrbit() in order to avoid a deadlock condition.  From Masayuki
+    Ishikawa.
+  - atexit()/on_exit():  Clear atexit()/on_exit() function pointer
+    before calling it.  On most archs, up_assert() calls exit() so
+    without this change, if atexit() function triggers an assertion we
+    are in endless loop.  From Juha Niskanen.
+
+* File System/Block and MTD Drivers:
+
+  - tmpfs:  Fixed directory unlocking in tmpfs_opendir.   From Dmitriy
+    Linikov.
+  - fcntl():  fcntl() did not return success fail for F_SETFL.  Reported
+    by Jussi Kivilinna.
+  - tcdrain():  tcdrain() was recently added to the NuttX C library.
+    But there is a problem.  The specification of tcdrain() requires
+    that it be a cancellation point.  In order to do this, tcdrain was
+    moved from the C library into the OS and the addition cancellation
+    point hooks were added.  In non-FLAT builds, access via system calls
+    is also now supported.
+  - FS FAT:  Fix hard-fault when listing contents of FAT root.  From
+    Jussi Kivilinna.
+  - procfs: Correct a problem that was causing an apparent directory to
+    be reported as a file instead of a directory by opendir.  This
+    happened after adding these three new procfs entries: fs/block,
+    fs/mount, and fs/usage.  Of course, there is no directory fs in this
+    case, only three files that have fs/ in their relative pathnames.
+    The logic was detecting that fs was the name of the enty to report,
+    but it was then declaring that fs was a file (because fs/block is of
+    type file).  This was fixed by adding a check for matching lenghts.
+    i.e., if strlen(fs) != strlen(fs/block), then report fs as a
+    directory instead of a file.
+  - procfs:  Fix uptime being clse to maximum 32-bit value in certain
+    config.  From Juha Niskanen.
+
+* Binary Loader:
+
+  - binfmt/:  Don't schedule starthook if there are no constructors.
+
+* Graphics/Display Drivers:
+
+  - LCD: ILI9341 initialize method not permitted to set errno.
+
+* Networking/Network Drivers:
+
+  - Networking:  net/netdev/netdev_ifconfig.c: Was not returning all of
+    the address info.
+  - Networking: In some cases, packets are still not sent behind the
+    router. I found that NuttX sends the ARP requests not to the router
+    but to the target. Mistake in file net/route/netdev_router.c.  From
+    Aleksandr Kazantsev.
+  - SIOCGIFCONF and SIOCGLIFCONF IOCTL commands should only report on
+    network adatpors in the UP state.
+  - recvfrom():  Fix double leave_cancellation_point on error path.
+    From Jussi Kivilinna.
+  - send():  Verify that sock descriptor is valid.  Fixes assertion when
+    using send on closed socket.  From Jussi Kivilinna.
+  - sendto():  Remove assert check for null psock and buf input
+    pointers.  Removes check as 'psock == NULL' altogether because that
+    checked for later in psock_send and psock_sendto. Change null check
+    for 'buf' so that it is handled same as in recvfrom.c (return
+    -EINVAL instead of assert).  From Jussi Kivilinna.
+  - sockgetname() files need to include udp/udp.h and tcp/tcp.h or
+    otherwise NET_UDP_HAVE_STACK and NET_TCP_HAVE_STACK are undefined
+    and the logic is never compiled.  Noted by Anthony Merlino.
+  - dup()/dup2():  There was a reference counting problem in the TPC
+    logic of net_clone().  net_clone() which is the common logic
+    underlying dup() and dup2() for sockets.  When net_clone() calls
+    net_start_monitor() and net_start_monitor() returns a failure
+    (because the underlying TCP connection) then net_clone() must back
+    out the reference count on the structure.  Problem noted by Pascal
+    Speck and this implementation of the solution is based on his
+    suggestion.
+  - close():  There was a possible recursion that could eventually
+    overflow the stack.  The error occurred when closing the socket with
+    inet_close() while a socket callback was still queued.  When the
+    socket callback was executed by devif_conn_event(), this resulted in
+    a call to psock_send_eventhandler() with TCP_CLOSE flag set which
+    then called tcp_lost_connection().  tcp_shutdown_monitor() then
+    called tcp_callback() again, which again called
+    psock_send_eventhandler(), and so on....  Noted by Pascal Speck.
+    Solution is also similar to a solution proposed by Pascal Speck.
+  - inet:  Add check for protocol before handing out TCP and UDP sockets.
+  - IP Forwarding:  Fixes typo that caused build error when IP
+    forwarding was enabled with CONFIG_NET_ICMPv6_NEIGHBOR enabled as
+    well.  From Anthony Merlino.
+  - IP Forwarding:  Do not add link layer header size to d_len inside
+    devif_forward().  From Anthony Merlino.
+  - TCP Networking:  When CONFIG_NET_TCP_WRITE_BUFF=y there is a
+    situation where a NULL pointer may be dereferenced.  In this
+    configuration, the TCP connection's 'semi-permanent' callback,
+    s_sndcb was nullified in tcp_close_disconnect.  However, other logic
+    in tcp_lost_connection() attempt to use that callback reference
+    after it was nullifed.  Fixed in tcp_lost_connectino() by adding a
+    NULL pointer change before the access.  This was reported by Dmitriy
+    Linikov in Bitbucket Issue 72.
+  - UDP Broadcat:  Fix some issues with regard to UDP broadcast
+    handling.  This is Bitbucket Issue #77.
+  - ICMP:  Fix an error in the poll logic.  It was assumed that the
+    input parmeter pvconn was valid.  It was not.  Instead, the poll
+    logic must work like the sendto() and recvfrom() logic:  It must
+    keep a copy of the conn structure in the private data.
+  - ICMPv6: Fixes several errors preventing icmpv6_radvertise.c from
+    being compiled. Fixes conversions to network byte order (namely
+    vlifetime, plifetime, mtu).  IPv6 source address is set to
+    link-local IP address instead of the address in the netdev
+    structure. This is in compliance to RFC 4861. RA didn't work on
+    Linux before this change.  Finally, router prefix and prefix length
+    are derived from the IPv6 address and netmask in the netdev
+    structure. This seems to make more sense than using a predefined,
+    separate prefix from the config.  From Sakari Kapanen.
+  - ICMPV6:  icmpv6_input() needs to set d_len to 0 after consuming echo
+    reply, otherwise, garbage will get sent out.  From Anthony Merlino.
+  - ICMPV6:  Fix an error in the poll logic.  It was assumed that the
+    input parmeter pvconn was valid.  It was not.  Instead, the poll
+    logic must work like the sendto() and recvfrom() logic:  It must
+    keep a copy of the conn structure in the private data.
+  - IGMPv2 Send:  Fix incoming IGMP checksum calculation.  From Louis
+    Mayencourt.
+  - ARP:  Fix IGMP Ethernet address computation.  From Louis Mayencourt.
+
+* Wireless/Wireless Drivers:
+
+  - CC1101:  CC1101 driver not permitted to set errno.
+  - 6LoWPAN:  Correct an error in uncompressing multicast address.
+  - 6LoWPAN:  Correct a bug in handling uncompressed frames (IPv6
+    dispatch).  Adds a separate local variable, protosize, to keep track
+    of the size of thep protocol header.
+  - 6LoWPAN:  Fix an endian-ness problem in 6LoWPAN address
+    decompression.  From Anthony Merlino.
+  - 6LoWPAN:  The logic that extracts interface identifier from the IP
+    address needs to be generalized to handle cases where the address is
+    not a link local address.  From Anthony Merlino.
+
+* Common Drivers:
+
+  - Serial: 16550 UART driver IOCTL method must not set errno; it must
+    return a negated errno value.
+  - LIS3DSH:  Added the argument parameter (FAR void *arg) to the
+    interrupt handler provided by the LIS3DSH driver to fit the
+    definition for ISRs in xcpt_t.  Changed the check for working queue
+    availability in lis3dsh interrupt handler to use work_available()
+    and not crash in case of an overrun.  From Florian Olbrich.
+  - LIS2DH:  Fixes for self-test.  From Jussi Kivilinna.
+  - LIS2DH:  Fix use of obsolete dbg macro.  From Jussi Kivilinna.
+  - LIS331DL:  LIS331DL driver not permitted to set errno.
+  - HTS221:  Power-on sensor for loading calibration data. From Jussi
+    Kivilinna.
+  - MCP2515:  Fix the MCP2515 Bit Rate Prescale calculation.   Fix BRP
+    for SET_BITTIMING ioctl as well.  From Alan Carvalho de Assis.
+  - STMPE811: Fix GPIO operation of STMPE811 driver.
+    1. STMPE811_GPIO_DIR was defined for register name and later was
+      redefined to be the pin direction mask for `stmpe811_gpioconfig`.
+      I decided to change register name to be STMPE811_GPIO_DIR_REG, and
+      keep pin direction mask STMPE811_GPIO_DIR, so that any external
+      code that already use this driver will be unchanged.
+    2. The STMPE811 register GPIO_DIR uses bit value 1 for output and 0
+      for input, but `stmpe811_gpioconfig` set the opposite.
+    3. The call to `stmpe811_gpiowrite` from inside of
+      `stmpe811_gpioconfig` leaded to deadlock.
+    From Dmitriy Linikov.
+  - BQ2429X:  Add BATIO_OPRTN_SYSON for enabling BATFET after SYSOFF.
+    From Jussi Kivilinna.
+
+* Simulation:
+
+  - Simulation:  Serial and console drivers are not permitted to set
+    the errno.
+
+* ARMv7-M:
+
+  - ARM Stack Check:  Fix assert panic when both TLS and interrupt stack
+    are enable.  From Jussi Kivilinna.
+
+* Expressif ESP32:
+
+* Infineon XMC4xxx Drivers:
+
+  - XMC4 USIC: Kconfig was not selecting XMC4_USIC for USIC1. From Alan
+    Carvalho de Assis.
+  - XMC4 UART: Fix XMC4xxx USIC UART sginal to be high level when in idle.
+    From Alan Carvalho de Assis.
+  - XMC4 UART:xmc4_uart_configure() expects the channel# not uartbase as
+    an input parameter.  From Alan Carvalho de Assis.
+  - XMC4 UART:  Enable RX/TX status.  From Alan Carvalho de Assis.
+  - XMC4 UART:  The Alternative Receive Interrupt was not being
+    configured.
+
+* Infineon XMC4xxx Boards:
+
+  - XMC4500-Relax:  Setup max. freq. 120MHz and setup pull-up to UART
+    RXD pin.  From Alan Carvalho de Assis.
+
+* Microchip/Atmel SAMv7 Drivers:
+
+  - SAMv7:  DAC and ADC drivers are not permitted to set the errno.
+  - SAMv7:  Correct an error in RX DMA setup.  From Manish Kumar Sharma.
+  - SAMv7 USB:  It is necessary to disable pre-emption and interrupts
+    around a loop that copies TX data into the hardware in order to
+    avoid a TX data underrun condition.  From Anthony Merlino.
+
+* NXP/Freescale LPC31xx Drivers:
+
+  - LPC31xx:  Serial and console drivers are not permitted to set
+    the errno.
+
+* NXP/Freescale LPC43xx:
+
+  - lpc43xx:  lpc43_adc.c was being selected by the build system wehn
+    DAC was selected.
+
+* NXP/Freescale LPC43xx Drivers:
+
+  - LPC43xx Ethernet:  Fix some backward logic setting full-duplex and
+    100mbps when autoconfiguration is disabled.  Noted by Anonymous in
+    Issue #76.
+  - lpc43xx: UART_RX pins should be configured with input buffers
+    enabled. Otherwise it cannot be read.  From Alexander Vasiljev.
+
+* STMicro STM32:
+
+  - STM32 F2:  Fixed build for STM32F20XX platforms when
+    CONFIG_STM32_DMACAPABLE is enabled.  From Dmitriy Linikov.
+  - STM32 F4:  Remove ltdc.h and dma2d.h. Those header files in that
+    location permitted inclusion into application space logic and,
+    hence, facilitated and encouraged calling into the OS and violating
+    the portable POSIX OS interface.  The definitions in those header
+    files were move the appropriate location in the counterpart,
+    architecture specific files at arch/arm/src/stm32/dma2d.h and ltdc.h.
+  - STM32 L4:  Build stm32l4_idle.c only if  CONFIG_ARCH_IDLE_CUSTOM is
+    not enabled.  From Jussi Kivilinna.
+  - STM32 F7:  Remove ltdc.h and dma2d.h. Those header files in that
+    location permitted inclusion into application space logic and,
+    hence, facilitated and encouraged calling into the OS and violating
+    the portable POSIX OS interface.  The definitions in those header
+    files were move the appropriate location in the counterpart,
+    architecture specific files at arch/arm/src/stm32f7/dma2d.h and
+    ltdc.h.
+
+* STMicro STM32 Drivers:
+
+  - STM32:  DAC and ADC drivers are not permitted to set the errno.
+  - STM32 ADC:  Clear pending interrupts.  From Mateusz Szafoni.
+  - STM32 CAN:  Lower part of STM32 CAN driver
+    arch/arm/src/stm32/stm32_can.c uses all three hw tx mailboxes and
+    clears TXFP bit in the CAN_MCR register (it means transmission order
+    is defined by identifier and mailbox number).
+    This creates situation when order frames are put in upper part of
+    CAN driver (via can_write) and order frames are sent on bus can be
+    different (and I experience this in wild).  Since CAN driver API
+    pretends to be "file like" I expect data to be read from fd the same
+    order it is written. So I consider described behaviour to be a bug.
+    Fixed by settin the TXFP bit in the CAN_MCR register (FIFO
+    transmit order).  From comments by Alexey T, in Bitbucket Issue 73.
+  - STM32 HRTIM:  Fix pclk calculation.  From Mateusz Szafoni.
+  - STM32 HRTIM:  Fix burst mode prescaler update. From Mateusz Szafoni.
+  - STM32 (alt) I2C:  Ensure proper error handling. Injecting data
+    errors would cause the driver to continually reenter the isr with
+    BERR an RxNE.  This fix allows the error to be cleared and
+    propagated to the waiting task.  From David Sidrane.
+  - STM32:  LTDC and DMA2D drivers are not permitted to set the errno.
+  - STM32 RTC:  Workaround for potential subseconds race condition.  In
+    all recent STM32 chips reading either RTC_SSR or RTC_TR is supposed
+    to lock the values in the higher-order calendar shadow registers
+    until RTC_DR is read. However many old chips have in their errata
+    this silicon bug (at least F401xB/C, F42xx, F43xx, L15xxE, L15xVD
+    and likely others):  "When reading the calendar registers with
+    BYPSHAD=0, the RTC_TR and RTC_DR registers may not be locked after
+    reading the RTC_SSR register. This happens if the read operation is
+    initiated one APB clock period before the shadow registers are
+    updated. This can result in a non-consistency of the three
+    registers. Similarly, RTC_DR register can be updated after reading
+    the RTC_TR register instead of being locked."
+  - STM32 Serial:  Do not stop processing input in SW flow-control
+    mode.  From Juha Niskanen.
+  - STM32F33xxx ADC:  Add some publicly visable interfaces and some
+    code to support injected channels.  From Mateusz Szafoni.
+  - STM32F33xxx DMA:  Add public interface to handle with DMA
+    interrupts.  From Mateusz Szafoni.
+  - STM32F33xxx RCC:  Fix CAN clock enable.  From Mateusz Szafoni.
+  - stm32 F4 I2C:  Ensure proper interrupt handling.  Injecting data
+    errors that causes a STOP to be perceived by the driver, will
+    continually re-enter the isr with SB not set and BTF and RxNE set.
+    This changes allows the interrupts to be cleared and propagates a
+    I2C_SR1_TIMEOUT to the waiting task.  From David Sidrane.
+  - STM32 L4 Serial:  Do not stop processing input in SW flow-control
+    mode.  From Juha Niskanen.
+  - STM32 F7:  LTDC and DMA2D drivers are not permitted to set the errno.
+  - STM32 L4:  DAC and ADC drivers are not permitted to set the errno.
+  - STM32 L4 DAC:  Do not configure output pin if it is not used.  From
+    Juha Niskanen.
+  - STM32 L4 RTC, PM:  Small fixes to subseconds handling, ADC
+    power-management hooks
+  - STM32 F4 RTC:  Fix reading alarm value that is more than 24h in
+    future.  From Juha Niskanen
+  - STM32 L4 RTC:  Fix reading alarm value that is more than 24h in
+    future.  From Juha Niskanen
+  - STM32 L4 TIM:  Fix compilation of timers with complementary outputs
+    when not PWM_MULTICHAN.  From Juha Niskanen.
+  - STM32 L4 RCC:  Restore backup-registers after backup-domain reset.
+    From Jussi Kivilinna.
+  - STM32 L4 RTC:  Correct RTC_SSR and RTC_TR read ordering.  In all
+    recent STM32 chips reading either RTC_SSR or RTC_TR is supposed to
+    lock the values in the higher-order calendar shadow registers until
+    RTC_DR is read. Change the register read ordering to match this and
+    don't keep a workaround for a hypothetical race condition (not in
+    any L4 errata, lets for once assume ST's silicon works as it is
+    documented...)
+  - STM32 L4 RTC:  Init mode was never exited because nested locking in
+    rtc_synchwait() disabled backup domain access.  From Juha Niskanen.
+  - STM32 L4 RTC:  Use backup register magic value instead of INITS
+    bit.  The INITS (bit 4) of RTC_ISR register cannot be used to
+    reliably detect backup domain reset. This is because we can operate
+    our device without ever initializing the year field in the RTC
+    calendar if our application does not care about correct date being
+    set.  Hardware also clears the bit when RTC date is set back to year
+    2000.  From Juha Niskanen.
+  - STM32 L4 RTC:  Put back the SSR race condition workaround.  ST has
+    confirmed that the issue has not been fixed, and that it applies to
+    STM32 L4 too (was not in errata sheets due to documentation bug) See
+    discussion: https://community.st.com/thread/43710-issue-with-rtc-maximum-time-resolution .
+    From Juha Niskanen.
+  - STM32 F7 BBSRAM:  Avoid assert in stm32_bbsram_savepanic. If panic
+    happens before stm32_bbsram is initialized, stm32_bbsram_savepanic
+    caused additional assert panic. Function has null pointer check, so
+    drop DEBUGASSERT.  From Jussi Kivilinna.
+  - STM32 F7 I2C: fix I2C_M_NORESTART handling.  From Jussi Kivilinna.
+  - STM32 F7 I2C:  Restore bus frequency after I2C reset.  Copy
+    frequency restoration fix from STM32L4 I2C driver to STM32F7 I2C
+    driver.  From Jussi Kivilinna.
+  - STM32 F7 RTC:  Fix reading alarm value that is more than 24h in
+    future.  From Juha Niskanen
+
+* STMicro STM32 Boards:
+
+  - STM32F334-DISCO:  Add missing ram_vectors configuration in linker
+    script.  From Mateusz Szafoni.
+  - Nucleo-F334R8:  Add missing ram_vectors configuration in linker
+    script.  From Mateusz Szafoni.
+  - Nucleo-F334R8:  Add Missing ADC trigger configuration tot he highpri
+    configuration.  From Mateusz Szafoni.
+  - STM3240G-EVAL:  The timer frequencies (BOARD_TIMx_FREQUENCY) are
+    incorrectly defined in board.h.  Since the APB prescalers are set to
+    divide by 4 and 2 respectively, the frequencies should be "2xAPBx"
+    as said in the comment.  The correct frequencies are already defined
+    but as STM32_APBx_TIMx_CLKIN.  From Mattias Edlund.
+  - STM32F429i-DISCO:  The ltdc configuration has been deleted because
+    it violated the portable POSIX OS interface.  It used
+    apps/examples/ltdc and include ltdc.h and dma2d.h which were also
+    removed for the same reason.
+
+* ZiLOG Z80
+
+  - configs/z80sim and xtrs:  Serial driver lower halfs ioctl methods
+    should return a negated errno value, not set the errno variable.
+  - z80 Make.defs:  Fixes dependency generation with newest SDCC
+    compiler.
+  - configs/z80sim:  Fix a naming problem.  Also, don't try to build the
+    serial driver if CONFIG_NFILE_DESCRIPTOR=0.
+  - Z80:  Makefile fix for use with current SDCC.
+
+* Build System
+
+  - configs/:  All defconfig filess that include
+    CONFIG_NET_ICMPv6_SOCKET=y need to select CONFIG_SYSTEM_PING6=y and
+    deselect CONFIG_DISABLE_POLL.
+  - configs/:  All NX configuration... Because of recent changes to
+    libnx/nxfonts, Supported bit per pixel must be separated specified
+    for NXFONTs too and need to match the select BPP for NX.
+  - Build system:  Fix CONFIG_BUILD_KERNEL logic directories that have
+    ubin and kbin subdirectories.  Conditional logic was fine for
+    CONFIG_BUILD_FLAT and CONFIG_BUILD_PROTECTED but generated useless
+    dependencies if CONFIG_BUILD_KERNEL.
+
+* C Library/Header Files:
+
+  - libc/stdio:  Build the lib_noflush() and lib_snoflush() stubs even
+    if CONFIG_FILE_DESCRIPTORS=0.  They may still be needed.
+  - libc and libnx:  When the libraries are built into two libraries, a
+    user space library and a OS space library (as in the PROTECTED and
+    KERNEL build).  Then the user space library must not use the OS
+    internal interfaces; similarly, the OS must avoid using the
+    userspace interfaces so that it does not muck the errno value or
+    create spurious cancellation points.
+  - libc/match:  Use of exp() vs expf() in logf() caused function to be
+    slow.  From Alan Carvalho de Assis.
+  - libnx:  Fixes a memory leak that is caused because the client message
+    queue is not unlinked after the client disconnects from the NX
+    server.  From Masayuki Ishikawa.
+  - sscanf():  Fix sscanf() character conversion (%c): do not add '\0' at
+    the end as for strings, cause, for example, parsing one character
+    will fill two bytes: character itself and zero one '\0' after it, so
+    will overflow one byte variable argument and corrupt memory for
+    variables allocated after it.  From Oleg Evseev.
+
+* Tools
+
+  - tools/:  configure.sh and configure.c should redirect stdout to
+    /dev/null but should not suppress stderr output.
+
+* NSH: apps/nshlib:
+
+  - apps/nshlib/:  Avoid truncating the strcmp result in the parser
+    into a unsigned char variable.  nshlib/nsh_netcmds.c:  Check for
+    valid hostip before using it.   From Bruno Herrera.
+  - apps/nshlib/:  Fix resouce leak in 'dd' commenad when 'if=' or
+    'of=' params are repeated in the command line.  For example:
+      dd if=/dev/null if=/dev/zero of=/dev/null or
+      dd if=/dev/zero of=/dev/zero of=/dev/null.   From Bruno Herrera.
+  - apps/nshlib:  This commit eliminates the ping and ping6 commands
+    from NSH and replaces them with 'built-in' commands at
+    apps/system/ping and ping6.  The original NSH version of ping[6]
+    commands violated the portable POSIX interface and, hence, had to
+    be removed. The new system/ping and ping6 built-in commands uses
+    the new IPPROTO_ICMP AF_INET and IPPROTO_ICMP6 AF_INET6 datagram
+    sockets to implement ping.
+  - apps/nshlib: Fix parsing of empty strings when CONFIG_NSH_CMDPARMS
+    is not defined. Problem noted by Juha Niskanen.
+
+* Examples/Tests: apps/examples:
+
+  - All configurations that use NXIMAGE or NXHELLO must select
+    NX_MULTIUSER.  All configuratinos that use examples/nxterm must
+    enable CONFIG_LIB_BOARDCTL.
+  - All configurations that use NXLINES must select NX_MULTIUSER.  All
+    configurations that use the NX server need to have larger POSIX
+    messages.
+  - apps/examples/adc:  Fix g_adcstate.count initialization.  From
+    Masayuki Ishikawa.
+  - apps/examples/elf:  Remove low-level interfaces and replace with
+    call to exec().
+  - apps/examples/nxflat:  Remove low-level interfaces and replace with
+    call to exec().
+  - examples/ostest:  Works around a bug in printf() when cancellation
+    points are enabled.  printf() is a cancellation point because it
+    calls write().  This is correct according to OpenGroup.org.
+    However, printf holds the stdio library semaphore when it is
+    canceled and this leaves the semaphore in a bad state.  No fix for
+    the printf bug yet.
+  - apps/examples/nx:  The NX example no longer supports single user
+    mode.
+  - apps/examples/nxtext:  The nxtext example no longer supports single
+    user mode.
+  - apps/examples/nxhello now supports only multiuser mode.
+  - apps/examples/nximage now supports only multiuser mode.
+  - examples/nxlines:  Now supports only multiuser mode.
+
+* Network Utilies: apps/netutils:
+
+  - apps/netutils/ftpc:  Fix some crazy comparisons to determine is a
+    file is an absolute path.  Noted by Anthony Merlino.
+
+* System Unitilities (apps/system)
+
+  - apps/system/i2ctool: Fixed i2ctool write operation in `no restart`
+    mode (flag `-n`).  It seems that I2C driver has changed a bit since
+    i2ctool was written, so now i2ctool sends repeated start even if
+    `no restart` flag (-n) was passed to it.  From Dmitriy Linikov.
+</code></pre></div></div>
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2020 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache NuttX is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2019 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+
diff --git a/content/releases/7.24/index.html b/content/releases/7.24/index.html
new file mode 100644
index 0000000..1fdee5d
--- /dev/null
+++ b/content/releases/7.24/index.html
@@ -0,0 +1,892 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>7.24</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/">
+              <img src="/assets/themes/apache/img/logo.png" width="30">
+              Apache NuttX
+          </a>
+        </div>
+        <nav class="navbar-collapse collapse" role="navigation">
+          <ul class="nav navbar-nav navbar-right">
+            <li id="community">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
+               <ul class="dropdown-menu dropdown-left">
+                <li><a href="/community">Get Involved</a></li>
+                <li><a href="/community-members">Who we are</a></li>
+               </ul>
+            </li>
+            <li><a href="https://github.com/apache/incubator-nuttx">GitHub</a></li>
+            <li id="apache">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+               <ul class="dropdown-menu">
+                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li><a href="http://www.apache.org/security/">Security</a></li>
+                <li><a href="http://www.apache.org/events/current-event">Events</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                </ul>
+            </li>
+          </ul>
+        </nav><!--/.navbar-collapse -->
+      </div>
+    </div>
+
+
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit 7.24">
+  <h1></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="nuttx-724-release-notes">NuttX-7.24 Release Notes</h2>
+
+<p>The 124th release of NuttX, Version 7.24, was made on March 2, 2018,
+and is available for download from the Bitbucket.org website.  Note
+that release consists of two tarballs:  nuttx-7.24.tar.gz and
+apps-7.24.tar.gz.  These are available from:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://bitbucket.org/nuttx/nuttx/downloads
+https://bitbucket.org/nuttx/apps/downloads
+</code></pre></div></div>
+
+<p>Both may be needed (see the top-level nuttx/README.txt file for build
+information).</p>
+
+<p>Additional new features and extended functionality:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - SMP: Introduce spin_lock_irqsave() and spin_unlock_irqrestore().
+    These APIs are simplified version of enter_critical_section()
+    and leave_critical_section() to protect data (e.g. registers) in
+    SMP mode.  By using these APIs inside drivers, performance will
+    be improved.  From Masayuki Ishikawa.
+  - System Timer:  Replace critical section APIs with spinlock APIs.
+    (64bit only).  If SMP=n or SMP=y &amp;&amp; SPINLOCK_IRQ=n, this works
+    in the same way as before.  If SMP=y &amp;&amp; SPINLOCK_IRQ=y, performance
+    will be improved.  From Masayuki Ishikawa.
+  - POSIX Timers: Replace critical section APIs with spin lock APIs in
+    clock_gettime.c.  This change will improve performance for SMP
+    systems but nothing changes for non-SMP systems.  In SMP mode,
+    the running TCB is not always at the g_readytorun.head.  From
+    Masayuki Ishikawa.
+  - SMP: Introduce spin_lock_wo_note() and spin_unlock_wo_note().  These
+    APIs are used in sched_note.c to protect instrumentation data.  The
+    difference between these APIs to exsiting spin_lock() and
+    spin_unlock() is that they do not perform instrumentation to avoid
+    recursive call when SCHED_INSTRUMENTATION_SPINLOCKS=y.  From
+    Masayuki Ishikawa.
+  - Interrupts:  Add a configuration option to show interrupt
+    information via a procfs file.
+
+* File Systems/Block and MTD Drivers
+
+  - VFS:  Add support for truncate() and ftruncate().
+  - FAT, SmartFS, UserFS, UnionFS, TmpFS, NFS: Add truncate() support.
+  - FAT.  Effectively handles the situation when a new file position is
+    within the current sector.  Accelerates the work of the FS with a
+    multitude of operations to write small pieces of data within the
+    current sector.  From Aleksandr Vyhovanec.
+
+* Graphics/Display Drivers:
+
+  - HiletGo OLED:  Add configuration support for HiletGo SSD1306 OLED.
+  - lcd/ft80x:  This commit adds an FTDI/BridgeTek FT80x GUI driver.  It
+    is untested (I don't even have hardware yet) and, hence, it is
+    marked as EXPERIMENTAL).
+
+* Networking/Network Drivers:
+
+  - 6LoWPAN:  Adds configuration options for specifying preloaded
+    address contexts for compression  From Anthony Merlino.
+  - TCP:  Introduce tcp receive window control based on I/O buffer.
+    NOTE:  The algorithm is still experimental but useful for http
+    streaming.  From Masayuki Ishikawa.
+  - UDP:  Add an implementation of UDP write buffering.
+  - Routing Tables:  Adding ftruncate() support eliminates an issue
+    in file-based routing table management system.
+  - Telnet:  Add support for Telnet character mode  From Masayuki
+    Ishikawa.
+
+* Other Common Device Drivers:
+
+  - drivers/input/ft5x06.c:  Add a driver for the FT5x06 capacitive,
+    multi-touch, touchscreen controller.
+  - drivers/input/ft5x06:  Add a polled mode of operation for the FT5x06
+    in attempt to work around the fact that the LPCXpresso-LPC54628
+    chose a non-interrupt pin for the FT5x06 interrupt.  Driver is still
+    not yet functional.
+  - drivers/power/bq2429x.c:  Add trickle charging mode  From Juha
+    Niskanen.
+  - drivers/sensors:  Add support to MAX44009 ambient light sensor.
+    From Juha Niskanen.
+  - drivers/sensors:  Added support for LIS3DH accelerometer sensor.
+    From Matt Thompson.
+  - drivers/eeprom:  EEPROM driver for AT24xx compatible EEPROMs.
+    From Sebastien Lorquet.
+
+* Simulation
+
+  - sim:  Add support for a RAM MTD driver and initialization for use
+    with SmartFS.
+  - sim:  Add support for testing NXFFS.
+
+* ARM:
+
+  - ARMv7-A, ARMv7-R, ARMv7-M:  Add atomic read-add-write and
+    read-subtract-write functions.
+
+* Infineon XMC4xxx:
+
+  - XMC4xxx:  Refactor PLL setup, refactored PLL/CLK config, easier,
+    checks for correctness, call go_os_start if STACK_COLORIZED, smarter
+    config of EXTCLK output freq.  From David Alessio.
+
+* Infineon XMC4xxx Boards:
+
+  - Add FPU to xmc4 ostest.  Remove +x from makefiles, preserve
+    .gdbinit across make clean, add FPU support to ostest on xmc4,
+    add FPU test to ostest on xmc4  From David Alessio.
+
+* Microchip/Atmel SAMD/L Drivers:
+
+  - SAMD: SAMD External Interrupt Controller (EIC) support  From Matt
+    Thompson.
+  - SAMD/L:  Added Analog Comparator basic initialization  From Matt
+    Thompson.
+  - SAMD/L:  Added FDPLL clock support.  Fixed sequence of OSC32K
+    calibration setup.  From Matt Thompson.
+  - SAMD/L: Added loading factory USB calibration data from NVRAM.
+    From Matt Thompson.
+  - SAMD/L: Added experimental DMA support to SPI driver.  spi_exchange()
+    uses a pair of DMA channels for TX and RX.  From Matt Thompson.
+
+* Microchip/Atmel SAM3/4 Boards:
+
+  - Flip&amp;Click SAM3X:  Add board support for the Mikroe Flip&amp;Click
+    SAM3X.
+  - Flip&amp;Click SAM3X:  Adds basic board support for the HiletGo OLED.
+
+* Microchip PIC32MZ
+
+  - PIC32MZEF:  Add architectural support for the PIC32MZEF family.
+
+* Microchip PIC32MZ Boards
+
+  - Flip&amp;Click PIC32MZ:  Adds board support for the Mikroe Flip&amp;Click
+    PIC32MZ board.
+  - Flip&amp;Click PIC32MZ:  Add board support for HiletGo OLED.
+  - Flip&amp;Click PIC32MZ:  Add an nxlines configuration for use in
+    testing the custom HiletGo Click board.
+
+* NXP Freescale LPC43xx Drivers:
+
+  - LPC43xx:  Adapt LPC176x RTC driver for the LPC43xx.  From Gintaras
+    Drukteinis.
+  - LPC43xx:  Add Windowed Watchdog Timer (WWDT) driver.  Tested on
+    LPC4357 but should be compatible for all LPC43xx MCUs.
+    From Gintaras Drukteinis.
+  - Leverage the LPC54xx SD/MMC back to the LPC43xx (where it came from
+    originally).
+
+* NXP Freescale LPC43xx Boards:
+
+  - Bambino-200e:  Add LPC43 SDMMC board support to Bambino-200E.  From
+    Alan Carvalho de Assis.
+
+* NXP Freescale LPC54xx:
+
+  - LPC546xx:  Added basic architectural support for the LPC546xx
+    family.
+
+* NXP Freescale LPC54xx Drivers:
+
+  - LPC546xx:  Basic NSH configuration includes support for UARTs,
+    SysTick timer, GPIOs, LEDs, and buttons
+  - LPC546xx:  Additional drivers include EMC, I2C, Ethernet
+  - LPC546xx:  Implement GPIO interrupt support.
+  - LPC546xx:  And unverified SPI driver is included.
+  - LPC546xx:  Ported LPC1788 LCD driver to use the LPC54xx pin.
+  - LPC546xx:  Bring in LPC43xx SD/MMC driver from
+    https://github.com/Smoothieware/smoothie-nuttx/tree/master/nuttx/arch/arm/src/lpc43xx
+    and adapt for use with the LPC43xx
+  - LPC546xx:  Add DMA driver ported from the LPC43xx GPDMA driver.
+  - LPC546xx:  Bring in WWDT driver from LPC43.
+  - LPC546xx:  Add an RTC driver and a RTC character driver lower half.
+  - LPC546xx:  Add support for a random number generator.
+  - LPC546xx:  Add an Ethernet driver.
+
+* NXP Freescale LP54xx Boards:
+
+  - LCXpresso-LPC54628:  Added support for the LPCXpresso-LPC54628
+    board.  The initial bring-up used a basic NSH port.
+  - LCXpresso-LPC54628:  On-board SDRAM is also supported
+  - LCXpresso-LPC54628:  Add support for I2C2 and for the I2C tool to
+    the NSH configuration.
+  - LCXpresso-LPC54628:  Add support for the USER button.  Enable the
+    apps/examples/button test in the NSH configuration.
+  - LCXpresso-LPC54628:  Add the fb configuration for testing the LCD.
+  - LCXpresso-LPC54628:  Add support for the the FT5x06 touchscreen
+    controller.  Enable the driver as well as the apps/examples
+    touchscreen test.
+  - LCXpresso-LPC54628:  Add an NxWM configuration.
+  - LCXpresso-LPC54628:  Add logic to bring up SDMMC.
+  - LCXpresso-LPC54628:  Add logic to register the RTC character driver
+    if it is enabled.  Enable the RTC and RTC character driver in the
+    NSH configuration.
+  - LCXpresso-LPC54628:  Add a netnsh configuration that was be used to
+    test the Ethernet driver.
+  - LCXpresso-LPC54628:  Add LittlevGL graphics demo configuration.
+
+* On Semiconductor LC823450
+
+  - LC823450 SMP improvements:  (1) Apply irq_spin APIs to
+    modifyregXX, (2) Do not use modifyreg32() to enable Mutex, (3)
+    Modify IRQ control for i2s.  Apply irq_spin APIs to
+    dma/syscontrol/usbdev.  From Masayuki Ishikawa.
+  - LC823450:  LC823450 http streaming improvements: (1) Use spinlock
+    APIs in lc823450_gpio.c.  (3) Fix a potential race condition in
+    up_enable_irq(), (3) Use spinlock APIs instead of critical section
+    APIs, (4) Enable HRT_TIMER in lc823450_timerisr.c. (5) Use spinlock
+    APIs instead of critical section APIs. (6) Fix race conditions in
+    dma/usbdev.  From Masayuki Ishikawa.
+  - LC823450: Introduce DVFS.   This version only supports manual mode
+    and Vdd1 is fixed to 1.2V.  From Masayuki Ishikawa.
+
+* On Semiconductor LC823450 Drivers
+
+  - LC823450:  Refactor timer driver.  Add MTM timer APIs for DVFS.
+    Introduce up_rtc_gettime() for CONFIG_RTC_HIRES.  Introduce idle
+    time calculation in DVFS.  Also, DVFS autonomous mode based on CPU
+    idle time is supported.  NOTE: voltage control is still disabled.
+    From Masayuki Ishikawa.
+
+* On Semiconductor LC823450 Boards
+
+  - LC823450-XGEVK:  I2S interrupt will be handled on CPU0 with this
+    change.  Assign CPU1 to lpwork.  This change will improve load
+    balancing for networking with RNDIS.  From Masayuki Ishikawa.
+  - LC823450-XGEVK: Enable SPINLOCK_IRQ and NXPLAYER in rndis.  From
+    Masayuki Ishikawa.
+  - LC823450-XGEVK: LC823450 http streaming improvements: (1) In SMP
+    mode, H/W interrupts should be handled on CPU0 to avoid deadlocks.
+    (2) Call up_enable_irq() to assign CPU0 for IRQ handling.  (3)
+    Enable HRT_TIMER, LC823450_MTM0_TICK, SPINLOCK_IRQ, (4) Enable
+    NET_TCP_RWND_CONTROL, NXPLAYER_HTTP_STREAMING_SUPPORT (rndis only)
+    From Masayuki Ishikawa.
+  - LC823450-XGEVK:  Enable DVFS in lc823450_bringup.c.  Enable DVFS
+    in audio and rndis. Add Telnet character mode to rndis.  From
+    Masayuki Ishikawa.
+  - LC823450-XGEVK:  Explicitly assign I2S IRQ handling to CPU0.  From
+    Masayuki Ishikawa.
+  - LC823450-XGEVK:  Enable RTC_HIRES instead of RTC_DATETIME (audio/
+    rndis).  Disable TCP_WRITE_BUFFERS and change SCHED_LPWORKPRIORITY
+    (rndis). Update SMP and DVFS related part.  From Masayuki Ishikawa.
+
+* STMicro STM32:
+
+  - STM32 F7:  Add support for the STM32F72x/73x family. From Bob
+    Feretich.
+
+* STMicro STM32 Drivers:
+
+  - STM32 HRTIM:  Add interface to change outputs SET/RST configuration.
+    From Mateusz Szafoni.
+  - STM32 HRTIM:  Add interface to get timer clock frequency,
+    calculation, add compare/capture registers significant bits
+    checking.  From Mateusz Szafoni.
+  - STM32 HRTIM:  Add interface to set timer frequency, fix slave timers
+    reset configuration, change POWER_INFO to TIMER_INFO  From Mateusz
+    Szafoni.
+  - STM32 HRTIM:  Add repetition support and fix enum overflow  From
+    Mateusz Szafoni.
+  - STM32 HRTIM:  Add HRTIM push-pull mode configuration.  From
+    raiden00pl.
+  - STM32 FLASH:  Add progmem support for STM32L15XX From Juha Niskanen.
+
+* STMicro STM32 Boards:
+
+  - configs/photon: Adds BOARD_TIMn_FREQUENCY macros  From Anthony
+    Merlino.
+  - configs/indium-f7:  Adds support for the RAF Research Indium-F7
+    board.  From Bob Feretich.
+  - Rename the configs/stm32f0discovery board directory to
+    configs/stm32f051-discovery.  There are others stm32f0discovery
+    boards with different MCUs and different peripherals on the board.
+    From Alan Carvalho de Assis.
+  - configs/stm32f072b-discovery:  Adds support for stm32f072b-disco
+    board. This is the board. I added the LEDs of this board and tested
+    the compilation.  From Alan Carvalho de Assis.
+  - configs/stm32f103-minimum:  Add AT24 EEPROM support on STM32F103-
+    Minimum board  From Alan Carvalho de Assis.
+  - configs/stm32f103-minimum:  Add support to BMP180 on BluePill
+    (stm32f103-minimum) board.  From Alan Carvalho de Assis.
+  - configs/stm32f334-disco:  Add buck converter and boost converter
+    logic.  From Mateusz Szafoni.
+  - configs/stm32f103-minimum:  Add zerocross support to STM32F103-
+    Minimum board  From Alan Carvalho de Assis.
+  - configs/stm32f103-minimum:  Add OLED SSD1306 support to
+    STM332F103-Minimum  From Alan Carvalho de Assis.
+  - configs/stm32f103-minimum: Add board support to MAX6675 Thermocouple
+    sensor  From Alan Carvalho de Assis.
+  - configs/stm32f746g-disco: Add stm32f746g-disco Ethernet configuration.
+    Add USART1 support (connected to the USB virtual serial port)  From
+    Louis Mayencourt.
+  - configs/viewtool-stm32f107:  Add support for FT80X initialization.
+    Add ft80x configuration that will eventually be used for testing the
+    ft80x if I ever receive hardware.
+
+* Tools:
+
+  - tools/logparser:  Add a tool which will help me to convert git logs
+    to ChangeLog format.
+
+* NSH: apps/nshlib:
+
+  - apps/nshlib:  Add support for a truncate command.  This will be used
+    to test the new ftruncate file system support.
+  - apps/nshlib:  Add support for Telnet character mode.  From Masayuki
+    Ishikawa.
+  - apps/nshlib: Add support for '-n' option to the echo command.  From
+    Masayuki Ishikawa.
+  - apps/nshlib:  Add irqinfo command.
+
+* Examples/Tests: apps/examples:
+
+  - apps/examples/userfs:  Add truncate() support for userfs.
+  - apps/examples/lvgldemo:  Add lvgldemo example for LittlevGL.
+  - apps/examples/veml6070:  Add VEML6070 Application Example.  From
+    Alan Carvalho de Assis.
+  - apps/examples/bmp180: Add BMP180 application example.  From Alan
+    Carvalho de Assis.
+  - apps/examples/ft80x:  Add a test of the FT80x based on FTDI
+    SampleApp.  Includes tests of GPU primitives and graphics co-
+    processor commands.
+
+* Network Utilities: apps/netutils:
+
+  - apps/netutils/netlib: Add default route in netlib_set_dripv4addr().
+    From Masayuki Ishikawa.
+
+* Graphics: apps/graphics:
+
+  - apps/graphics/littlevgl:  Add littlevgl library.  From Alan Carvalho
+    de Assis.
+  - apps/graphics/ft80x:  Add the FTDU FT80x GUI support library.
+    Consists of some display list helpers, audio helpers, touch helpers,
+    RAM access, register access etc.
+
+* System Utilities (apps/system)
+
+  - apps/system/nxplayer:  Add support for HTTP streaming in nxplayer.
+    From Masayuki Ishikawa.
+  - apps/system/setlogmask:  Adds 'setlogmask' application that allows
+    you to set the syslog priority via a simple command.  From Anthony
+    Merlino.
+  - apps/system/usbmsc: Added Kconfig options to configure write
+    protection for each LUN.  From Fabio D'Urso.
+  - system/stackmonitor:  Re-design the stack monitor so that it does not
+    make forbidden calls directly into the OS, breaking the portable POSIX
+    OS interface.  It now properly uses the PROCFS file system to glean
+    information about stack usage.
+</code></pre></div></div>
+
+<p>Bugfixes.  Only the most critical bugfixes are listed here (see the
+ChangeLog for the complete list of bugfixes and for additional, more
+detailed bugfix information):</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* Core OS:
+
+  - System Timer:  Change the way that the 64-bit time is sampled.
+    Previously, we disabled interrupts before sampling the 64-bit
+    timer since the uint64_t access is not atomic on most CPUs.  However,
+    disabling (local) interrupts does not work in the SMP case.  In that
+    case, the timer interrupt may be running on only one of the CPUs;
+    disabling interrupts on a different CPU will provide no protection
+    from timer rollover.  To work around this, logic was added that
+    samples 64-bit timer is sampled twice and if 32-bit rollover was
+    detected between samples, then loops until there is no rollover.
+  - POSIX Timers:  In SMP mode, running TCB is not always at the head of
+    the g_readytorun list.  This change removes DEBUGASSERT() to avoid
+    this condition.  From Masayuki Ishikawa.
+  - Spinlocks:  Add memory barrier operations in spin_unlock().  In ARM
+    document regarding memory barriers, SP_DMB() must be issued before
+    changing a spinlock state to SP_UNLOCKED.  However, we found that
+    SP_DSB() is also needed to ensure that spin_unlock() works
+    correctly for network streaming aging test.  From Masayuki Ishikawa.
+  - Sporadic Scheduler:  Fix compiler error in Sporadic Scheduler when
+    priority inheritance is enabled.  Noted by eunb.song@samsung.com
+  - Priority Inheritance:  Fix some priority inheritance related issues
+    noted during review of logic.  Also add some REVISIT comments for some issues noted in the design.
+  - boardctl:  Remove the BOARDIOC_TSCTEST_TEARDOWN and
+    BOARDIOC_TSCTEST_SETUP boardctl() commands.  Remove all
+    implementations of board_tsc_teardown().  Each board now initializes
+    the touchscreen controller as a normal part of its board  bring-up.
+    board_tsc_setup() is gone; the touchscreen controller is now treated
+    like any other on-board device.
+  - configs:  CONFIG_MAX_TASKS must be a power of 2.
+  - SMP: Introduce a new global IRQ clearing logic and tasklist
+    protection.  The previous implementation of clearing global IRQ in
+    sched_addreadytorun() and sched_removereadytorun() was done too
+    early. As a result, nxsem_post() would have a chance to enter the
+    critical section even nxsem_wait() is still not in blocked state.
+    This patch moves clearing global IRQ controls from
+    sched_addreadytorun() and sched_removereadytorun() to
+    sched_resumescheduler() to ensure that nxsem_post() can enter the
+    critical section correctly.  For this change,
+    sched_resumescheduler.c is always necessary for SMP configuration.
+    In addition, by this change, task_exit() had to be modified so that
+    it calls sched_resumescheduler() because it calls
+    sched_removescheduler() inside the function, otherwise it will cause
+    a deadlock. However, I encountered another DEBUGASSERT() in
+    sched_cpu_select() during HTTP streaming aging test on LC823450-XGEVK.
+    Actually sched_cpu_select() accesses the g_assignedtasks which might
+    be changed by another CPU. Similarly, other tasklists might be
+    modified simultaneously if both CPUs are executing scheduling logic.
+    To avoid this, I introduced tasklist protection APIs. With these
+    changes, SMP kernel stability has been much improved.  From Masayuki
+    Ishikawa.
+  - SMP:  Fix this_task() to be an atomic operation.  In the previous
+    implementation, this_task() was defined in sched.h by using just a
+    macro current_task(this_cpu()).  However, I found that this is not
+    atomic and actually sometimes switching CPU happened in executing
+    the macro when we tested audio steaming plus executing commands via
+    Telnet.  This change resolves this issue by implementing atomic
+    this_task()in sched_thistask.c which is newly introduced.  From
+    Masayuki Ishikawa.
+  - SMP:  Implements a global scheduler lock capability as part of SMP
+    support.  This allows the scheduler to be locked with no knowledge
+    or access to the TCB of the currently running task.  This is
+    necessary because accessing the TCB of the currently running task
+    is, itself, a non-atomic operation.  This global scheduler lock
+    capability was add just to support that atomic access to the TCB.
+  - SMP:  Extend the last global lock change to work with the
+    LC823450-XGEVK which does not support the atomic fetch add but
+    does support disabling interprocessor interrupts.  Disabling
+    interprocessor interrupts will also guarantee that the TCB address
+    calculation is atomic.
+  - SMP:  Fix a infinite recursion problems that a recent changes
+    introduced into the i.MX6 SMP implementation.  This is not seen
+    with the LC823450 because you can disable inter-processor interrupts
+    in that architecture; but you cannot in the ARMv7-A/GIC architecture.
+  - SMP:  Remove SMP related logic in sig_dispatch.c.   This change
+    prevents from a deadlock in up_schedulesigaction.c where inter-CPU
+    signal handling is actually implemented.  arch/arm/src/armv7-m: Fix
+    signal handling for SMP. In previous implementation, signal handling
+    for SMP was incorrect.  Thus, for example, if an inter-CPU signal
+    happened an incorrect tcb was signaled and caused ASSERT().  This
+    change fixes the issues and works for both inter-CPU signal handling
+    and signal handling on the same CPU.  From Masayuki Ishikawa.
+  - Tasking:  Add nxtask_create().  Kthread_create() and nxtask_create()
+    are internal OS functions and should not modify the errno variable.
+    Convert legitimate uses of task_create() to nxtask_create().
+    Review handling of returned values from all uses of kthread_create()
+    (as well as nxtask_create()).
+  - Tasking:  Threads started by board bring-up logic should be kernel
+    threads, not user tasks.
+  - Tasking:  Threads started by drivers should be kernel threads, not
+    user tasks.
+  - Semaphore Usage:  Added ECANCELED condition to DEBUGASSERT's
+    checking sem_wait result  From Dmitriy Linikov.
+
+  - errno:  Add new internal OS function nxsched_setaffinity() that is
+    identical to sched_isetaffinity() except that it does not modify the
+    errno value.  All usage of sched_setaffinity() within the OS is
+    replaced with nxsched_setaffinity().
+  - errno:  Internal functions sched_reprioritize() and
+    sched_setpriority() no longer modify the errno value.  Also renamed
+    to nxsched_reprioritize() and sched_setpriority().
+  - errno:  Add new internal OS function nxsched_getscheduler() that is
+    identical to sched_getscheduler() except that it does not modify the
+    errno value.  All usage of sched_getscheduler() within the OS is
+    replaced with nxsched_getscheduler().
+  - errno:  Add new internal OS function nxsched_setparam() that is
+    identical to sched_setparam() except that it does not modify the
+    errno value.  All usage of sched_setparam() within the OS is
+    replaced with nxsched_setparam().
+  - errno:  Add new internal OS function nxsched_getparam() that is
+    identical to sched_getparam() except that it does not modify the
+    errno value (actually, the previous value erroneously neglected to
+    set the errno value to begin with, but this fixes both issues).  All
+    usage of sched_getparam() within the OS is replaced with
+    nxsched_getparam().
+  - errno:  wd_start() is an internal OS function and should not set the
+    errno value.  Reviewed and updated every call to wd_start() to
+    verify if return value is used and if so if the errno value is
+    accessed.
+  - errno:  Fix several inappropriate accesses to get_errno() that were
+    missed in previous changes (some going back to nuttx-7.23).  Add new
+    nxsched_setscheduler() and nxsched_getaffinity() which are
+    equivalent to their counterparts without the nx on front.  These
+    versions do not modify the errno value.  Changed all calls within
+    the OS to use these newer versions of the functions.
+  - errno:  binfmt/, configs/, grahics/, libc/, mm/, net/, sched/:  OS
+    references to the errno variable should always use the set_errno(),
+    get_errno() macros.
+  - drivers/, fs/ and libc/:  OS references to the errno variable should
+    always use the set_errno(), get_errno() macros.
+
+* File System/Block and MTD Drivers:
+
+  - FAT:  CONFIG_FAT_MAXFNAME may not exceed NAME_MAX (CONFIG_NAME_MAX)
+  - NFS:  Correctly infer file type.  The file type is in struct
+    nfs_statinfo_s's ns_type field, not in the ns_mode field.  From
+    Michael Jung.
+  - NFS: Fix buffer corruption.  In case multiple read requests to the
+    NFS server are required to fill up the user provided buffer,
+    nfs_read() might write behind the end of said buffer.  This is fixed
+    with this change.  From Michael Jung.
+  - VFS:  reopen() should return NULL when oflags is less than 0, not
+    equal to 0. Because negative value is returned on failure of
+    lib_mode2offlags() which converts the mode string into file open
+    mode flag.
+  - ProcFS:  Fix an error in a common function that manages read data.
+  - drivers/mmcsd:  Respect SDIO_CAPS_DMABEFOREWRITE on CMD25.  From
+    Evgeniy Bobkov.
+  - AT24xx:   Correct page size for AT24C02 part.  From Alexander
+    Oryshchenko.
+  - mtd_config.c:  Add still more error handling (to detect bad
+    underlying flash implementations).  Remove MTD_ERASE that was
+    erasing data block instead of erase block.  This is a partial
+    revert of 4f18b4. Reported-by: Pascal Speck &lt;iktek01@yahoo.com&gt;
+
+* Graphics/Display Drivers:
+
+  - drivers/lcd:  Fix the default I2C address of SSD1306 OLED display
+    (7- vs 8-bit addressing)  From Alan Carvalho de Assis.
+  - drivers/lcd:  lcd_framebuffer.c does not need to include board-
+    specific board.h.
+  - include/lcd:  Eliminate a warning from an SSD1306 header file by
+    adding a forward reference to struct i2c_master_s.  From Sebastien
+    Lorquet.
+
+* Networking/Network Drivers:
+
+  - ARP:  Fix an error introduced when ICMP and ICMP6 socket support was
+    added in NuttX-7.3.  A gratuitous ARP (or solicitation) was being
+    sent after receive of the ECHO replay (advertisement).
+  - ARP:  Fix IGMP multicast address computation on Nuttx network stack.
+    This change fixes the IGMP address computation to allow multicast
+    UDP messages. The destination address was created with the incorrect
+    bytes of the given IPv4 address.  From Louis Mayencourt.
+  - ioctl:  The existence of the network driver ioctl() method should
+    depend on CONFIG_NETDEV_IOCTL rather than CONFIG_NETDEV_PHY_IOCTL.
+    The former enables the method, the later enables a subset of
+    possible driver IOCTLs.
+  - TCP:  Write buffering logic should not wait for a free buffer if
+    the socket was opened non-blocking.
+  - TCP:  Fixed bad return value handling in psock_tcp_send().  send()
+    expects psock_tcp_send() to return a negated errno value, not -1
+    with the errno set (GN: I added same change for tcp_send_buffered.c
+    which has the same issue as tcp_send_unbuffered.c)  From Pelle
+    Windestam.
+  - TCP:  Fixes hardfault when network goes done and network monitoring
+    is in place.  From Gianpaolo Ferroni Ariani.
+  - TCP: tcp_send_[un]buffered.c:  Check routing table in
+    psock_send_addrchck().  Previously only ARP table was considered
+    when determining if the data will actually be sent.  From Juho
+    Grundstrom.
+  - TCP:  Generalize Juho Grundstrom's IPv4 change for IPv6 as well.
+  - UDP:  Remove some conditional logic that was true if there is only a
+    single network device, but not true in the multi-device context.
+  - UDP:  In sendto(), return EHOSTUNREACH if the network is down.
+
+* Common Drivers:
+
+  - drivers/pipes:  In poll logic, fix off-by-one error in calculation
+    of bytes in the buffer.  Buffer calculation in pipe poll setup is
+    off-by-one when read index is larger than write index. This causes
+    poll() not getting POLLIN when buffer has one byte as calculation
+    gives zero bytes in buffer.  From Jussi Kivilinna.
+  - drivers/audio:  Improve stability of the WM8776 driver in SMP mode.
+    Apply irq_spin APIs to improve performance.  Repeat to process a
+    message to avoid deadlock.  From Masayuki Ishikawa.
+  - drivers/ioexpander:  Fixed build of PCF8574 driver when its
+    interrupts aren't enabled by config.  From Dmitriy Linikov.
+  - drivers/syslog:  Fixes LOG_UPTO macro to include specified log level.
+    From Anthony Merlino.
+  - drivers/sensors:  Fix HTS221 sensor reset with BOOT bit  From Jussi
+    Kivilinna.
+  - drivers/loop:  If we want to open read-only in losetup.c, flags
+    should be O_RDONLY not O_RDWR.  From Fabio D'Urso.
+  - drivers/timers/ds3231.c:  Correct some debug statements.  From
+    Alexander Oryshchenko.
+  - drivers/sensors/lis2dh:  Use realtime clock if monotonic is not
+    available  From Juha Niskanen.
+  - drivers/i2c and drivers/spi:  Fix compile error if
+    CONFIG_DISABLE_PSEUDOFS_OPERATIONS, fix bad NULL checks  From Juha
+    Niskanen.
+
+* ARMv7-A:
+
+  - Data Cache:  Fix cp15_invalidate_dcache.  In cases where more than
+    one dcache line was to be invalidated, a missing branch label
+    would result in a false branch target into cp15_flush_idcache.  Also
+    the .size macro was fixed for both cp15_invalidate_dcache.  From
+    Michael Jung.
+  - SMP:  Port the signal-related SMP change by Masayuki Ishikawa to the
+    ARMv7-A family.
+
+* Extensa:
+
+  - SMP:  Port the signal-related SMP change by Masayuki Ishikawa to the
+    Xtensa family.
+
+* Infineon XMC4xxx Drivers:
+
+  - XMC4xxx:   Only setup USB clock when USB PLL is enabled  From Alan
+    Carvalho de Assis.
+  - XMC4xxx: Fix USIC_BRG_SCLKCFG definition  From Alan Carvalho
+    de Assis.
+
+* Microchip PIC32MZ
+
+  - MIPS32:  In up_idle, the kludge that was conditionally enabled if
+    the work queue was enable appears to be needed even when he work
+    queue is not enabled on the PIC32MZ.
+  - PIC32MZ:  Fix some typos in debug instrumentation in pic32mz-gpio.c;
+    fix some typos related to UART5 configuration in pic32mz-serial.c.
+
+* Microchip/Atmel SAMD/L:
+
+  - SPI:  In sam_spibus_initialize(), the pinmux configuration was
+    smashing the previous CTRLA register configuration. There are
+    also some typos in samd_spi.h  From Matt Thompson.
+  - SPI:  Fixes g_spi2ops and g_spi2dev using incorrect values  From Matt
+    Thompson.
+  - SPI:  SPI must be disabled before changing the mode bits in CTRLA
+    register  From Matt Thompson.
+  - DMA:  Fix DMA controller support.  From Matt Thompson.
+
+* NXP/Freescale LPC17xx Drivers:
+
+  - LPC17xx:  Disable LPC17 FDR when not used.  If a boot loader set the
+    fractional divider (FDR) the baud rate in nuttx will be wrong
+    (multiplied by this fraction).  So if it is not used, it should be
+    disabled. From Harald Gutsche.
+
+* NXP/Freescale Kinetis Drivers:
+
+  - Kinetis:  Correct some Ethernet PHY register bit tests for the
+    KSZ8081 PHY.  From Stewart.
+
+* On Semiconductor LC823450
+
+  - arch/arm/src/LC823450: Add SP_DMB() into lc823450_testset.c.
+    In LC823450, ldrex and strex are not supported. So we implemented
+    up_testset() with H/W Mutex. However, there was a bug in memory
+    access order. This change ensures correct memory access order in
+    up_testset() for LC823450. From Masatoshi Tateishi.
+
+* STMicro STM32 Drivers:
+
+  - STM32 F3 RCC:  A flash wait state configuration.  Flash latency must
+    be fixed according to sysclk frequency.  If this operation is not
+    done or done after PLL configuration, the STM32 fail to continue
+    boot operation if the frequency if greater than 24MHz according to
+    the board variable STM32_SYSCLK_FREQUENCY.  Tested on stm32f334-disco
+    board.  From Gwenhael Goavec-Merou.
+  - STM32 RTC:  Make STM32 usable with an external RTC.
+  - STM32 SPI:  Removed unnecessary (and incorrect) speed limitation.
+    From Alexander Oryshchenko.
+  - STM32 SPI:  I have a SPI bus with both Mode 0 and Mode 3 devices
+    on it.  After performing SPI I/O to a Mode 0 device, switching to a
+    Mode 3 device locked up the SPI interface.  Only zeroes would be
+    read.  I traced the reason for the lock-up to arm/arm/src/stm32f7/stm32_spi.c function spi_setmode().  Changing
+    the mode causes a spurious SPI clock transmission that confuses the
+    stm32f7 SPI input hardware.  This problem is solved by (1) changing
+    the SPI mode with SPI (and perhaps DMA) disabled, and (2) flushing
+    the receive FIFO if the mode change results in garbage in the FIFO.
+    From Bob Feretich.
+  - STM32 and STM32 F7:  Remove confusing, redundant, and misleading
+    definitions of STM32_BKP_BASE from the F2, F3, and F4 memory
+    maps.  Unlike the F1, these parts do not have a separate BKP address
+    region.  The BKP registers are with the RTCC address regions.
+    stm32_bkp.h should only be used for STM32 F1. stm32_rtcc.h should be
+    used to access BKP registers on F2, F3, and F4.
+  - STM32 and STM32 F7:  Architecture-specific code is not permitted to
+    modify the errno variable.
+  - STM32 F4 I2C:  Correct some recent changes to STM32F4 I2C that broke
+    poll mode of operation.  From Alexander Oryshchenko.
+  - STM32 F4 I2C:  Corrections to STM32 F4 I2C to restore functionality.
+    From Alexander Oryshchenko.
+  - STM32 F4 I2C:  Corrections to STM32 F4 I2C to fix the NORESTART
+    flag.  From Alexander Oryshchenko.
+  - STM32 F7:  Fixes a bug in multi-block SD-card operations on the
+    STM32F7 platform.  DBLOCKSIZE must be the size of SD-card block, not
+    the total amount of transferred bytes.  From Evgeniy Bobkov.
+  - STM32 F7:  Fix undefined variable when using USART1 for other
+    purposes than UART (e.g. SPI).  From Frank Benkert.
+  - STM32 F7:  Backport RTC alarm setting changes from STM32L4.  Most
+    notably this fixes RTC getting stuck issue when both alarms were
+    used.  Root cause was writing RTC ISR register contents to RTC CR
+    register.  From Juha Niskanen.
+  - STM32 L4 Flash:  Change flash programming to use page buffer for
+    unaligned writes.  From Juha Niskanen.
+
+* STMicro STM32 Boards:
+
+  - Nucleo-L432KC:  Fix some bogus logic noted by Fanda.
+  - configs/nucleo-* and configs/stm32l476vg-disco:  Fix more
+    stm32_userleds.c bogus logic  From Juha Niskanen.
+  - Nucleo-L432KC:  Fixed nucleo-l432kc broken build when
+    CONFIG_USERLED_LOWER defined  From Fanda.
+  - Nucleo-L432KC:  Issue #85: /dev/userleds is not working for
+    Nucleo-L432KC fixed  From Fanda Vacek.
+  - STM32F429I-Disco:  Separate SPI4 from MTD init.  I was trying to
+    attach a non-MTD peripheral to an STM32F429I Discovery Board's SPI4
+    port and was hitting compilation problems, since CONFIG_MTD and
+    thus 'struct mtd_geometry_s' was not defined.  This patch separates
+    SPI4 initialization logic from MTD initialization logic.  From
+    Michael Jung.
+  - STM32F103-Minimum:  Remove CONFIG_NX_LCDDRIVER dependence from
+    stm32_ssd1306.c  From Alan Carvalho de Assis.
+
+* C Library/Header Files:
+
+  - libc/stdio:  In dtoa(), up_interrupt_context() is used in a debug
+    assertion.  up_interrupt_context() is not available in the user-mode
+    phase of the PROTECTED or KERNEL build configurations.  In those
+    configurations, enabling libc floating point support and debug
+    assertions will result in an undefined reference to
+    up_interrupt_context().
+  - libc/netdb:  Fixed parsing of DNS response packets having compressed
+    names ending with pointer.  There were troubles parsing response
+    packets which have compression of QNAME/NAME field when only
+    trailing part of the name (not the whole name) is replaced with
+    pointer to another part of the packet.  This commit fixes parsing of
+    such packets.  Also I added checks to keep parsing only in bounds of
+    the read part of DNS response packet.  From Dmitriy Linikov.
+
+* Tools
+
+  - tools/*.c:  Add #define _GNU_SOURCE to all C files that call
+    asprintf() to eliminate a warning.
+  - tools/cvsparser.c:  Add a check to avoid access past the end
+    of a fixed size array
+
+* NSH: apps/nshlib:
+
+  - apps/nshlib:  Fix compile error when CONFIG_NSH_DISABLESCRIPT is not
+    defined.  The field np_flags does not exist if scripting is disabled.
+
+* Examples/Tests: apps/examples:
+
+  - apps/examples/touchscreen:  Eliminate BOARDIOC_TSCTEST_SETUP.
+
+* Network Utilities: apps/netutils:
+
+  - apps/netutils/ftpc:  Fix some corner-cases that could cause FTP to
+    access past the end of valid data.
+
+* Wireless Utilities: apps/wireless:
+
+  - apps/wireless/ieee802154/i8shark: Fixes special XBee compensation
+    by purposely chopping off the FCS.  From Anthony Merlino.
+</code></pre></div></div>
+
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2020 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache NuttX is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2019 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+
diff --git a/content/releases/7.25/index.html b/content/releases/7.25/index.html
new file mode 100644
index 0000000..2a77028
--- /dev/null
+++ b/content/releases/7.25/index.html
@@ -0,0 +1,916 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>7.25</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/">
+              <img src="/assets/themes/apache/img/logo.png" width="30">
+              Apache NuttX
+          </a>
+        </div>
+        <nav class="navbar-collapse collapse" role="navigation">
+          <ul class="nav navbar-nav navbar-right">
+            <li id="community">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a>
+               <ul class="dropdown-menu dropdown-left">
+                <li><a href="/community">Get Involved</a></li>
+                <li><a href="/community-members">Who we are</a></li>
+               </ul>
+            </li>
+            <li><a href="https://github.com/apache/incubator-nuttx">GitHub</a></li>
+            <li id="apache">
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+               <ul class="dropdown-menu">
+                <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li>
+                <li><a href="http://www.apache.org/licenses/">License</a></li>
+                <li><a href="http://www.apache.org/security/">Security</a></li>
+                <li><a href="http://www.apache.org/events/current-event">Events</a></li>
+                <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                </ul>
+            </li>
+          </ul>
+        </nav><!--/.navbar-collapse -->
+      </div>
+    </div>
+
+
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit 7.25">
+  <h1></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="nuttx-725-release-notes">NuttX-7.25 Release Notes</h2>
+
+<p>The 125th release of NuttX, Version 7.25, was made on June 3, 2018,
+and is available for download from the Bitbucket.org website.  Note
+that release consists of two tarballs:  nuttx-7.25.tar.gz and
+apps-7.25.tar.gz.  These are available from:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://bitbucket.org/nuttx/nuttx/downloads
+https://bitbucket.org/nuttx/apps/downloads
+</code></pre></div></div>
+
+<p>Both may be needed (see the top-level nuttx/README.txt file for build
+information).</p>
+
+<p>Additional new features and extended functionality:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* File Systems/Block and MTD Drivers
+
+  - fs/cromfs:  Added CROMFS file system.  CROMFS is a commpressed, in-
+    memory, read-only file system based on LZF.
+  - fs/vfs:  Added support for checking if a descriptor is a socket in
+    fstat().  From Pelle Windestam.
+
+* Graphics/Display Drivers:
+
+  - drivers/lcd:  Remove support for the Nokia6100 LCD.  That LCD uses a
+    9-bit SPI interface (the 9th bit being the command/data bit that is
+    normally a discrete).  That communication was never successfully
+    integrated.  I now believe that it would would require some special
+    support from the low-level, MCU SPI driver to manage that 9th bit.
+    The deleted code is still available in the Obsoleted repository.
+
+* Networking/Network Drivers:
+
+  - net/tcp:  Added support for TCP Keepalive, add SO_KEEPALIVE socket
+    option.  Added socket options needed to manage TCP-keepalive and TCP
+    state machine logic to detect if that the remote peer is alive.
+  - net/tcp:  In tcp_input(), add the logic to detect, decode, and
+    respond to TCP Keep-Alive packets.
+  - net/tcp:  Extended support for sending to non-blocking tcp sockets.
+    From Pelle Windestam.
+  - net/bluetooth:  Added support for AF_BLUETOOTH sockets.
+  - drivers/net:  Added TAP (network bridge) mode to tun.c.  In the
+    previous implementation, TAP mode did not handle a packet correctly.
+    Also, the driver did not set the link layer type and could not
+    assign the interface name. This change fixes such issues and supports
+    TAP mode correctly.  From Masayuki Ishikawa.
+
+* Wireless/Wireless Drivers:
+
+  - wireless/ieee802154:  Added basic MAC support for RX-ENABLE.request
+    primitive  From Anthony Merlino.
+  - wireless/ieee802154:  Added MAC ackreq flag to TX descriptor for use by
... 10378 lines suppressed ...