1# Reliance Edge Release Notes
2
3This file contains a list of updates made to Reliance Edge over the course of
4recent releases and a list of known issues.
5
6## Release History and Changes
7
8### Reliance Edge v2.0, January 2017
9
10- Added support for Linux as a host environment
11  - All "host" projects may now be built in either Windows or Linux using the
12    `make` command.  The formatter and image builder are built, and the checker
13    and image copier are also built in the commercial kit.
14  - An additional host tool has been added for Linux only: `redfuse`.  It is a
15    File System in User Space (FUSE) implementation, allowing a Reliance Edge
16    volume to be mounted directly on Linux for easy access.  It is built from
17    the host project folder using the command `make redfuse`.
18  - The OS-specific API test (commercial kit only) is now ported to run on Linux
19    for the purpose of verifying the FUSE implementation.
20- Fixed a bug that could leave a directory in an invalid state after removing
21  files.  For example, an affected directory might report a non-zero length even
22  after all files had been deleted.
23- Fixed a bug that would leave the driver in a bad state if a mount operation
24  failed due to missing or corrupt metaroot blocks.
25
26### Reliance Edge v1.1 (Beta), November 2016
27
28- Added support for a discard (trim) interface in the commercial kit.  While
29  discards are not integral to the behavior of the filesystem, they allow
30  certain types of Flash drivers and media to perform at optimal speed and
31  efficiency.  The commercial version of Reliance Edge now allows the user to
32  implement this interface for compatible storage media.
33  - This change added new fields to the configuration files redconf.h and
34    redconf.c. The configuration utility has been updated to version 1.1 and
35    existing configuration files must be updated using the updated utility.
36- The configuration utility now has keyboard shortcuts for opening and saving
37  the configuration.
38- The configuration utility now adds version macros to easily identify when an
39  outdated configuration file is used with Reliance Edge or vice versa.
40
41### Reliance Edge v1.0.4, July 2016
42
43- Added ARM mbed and ARM mbed OS support in the commercial kit, with an example
44  projects for ARM mbed OS on the NXP FRDM-K64F board.
45- Some minor deficiencies in the POSIX-like API test suite have been addressed.
46
47### Reliance Edge v1.0.3, June 2016
48
49- Added support for static memory allocation configuration in FreeRTOS
50  version 9.  No common code changes.
51
52### Reliance Edge v1.0.2, February 2016
53
54#### Common Code Changes
55- A new per-volume configuration option has been added: users can specify a
56  number of times to retry a block device read, write or flush operation before
57  returning a failure.  The configuration tool has been updated to version 1.0.2
58  with this change.
59  - This added a new field to the volume configuration in redconf.c: existing
60    redconf.c files from v1.0.1 and earlier must be updated to work with v1.0.2.
61    Open redconf.h and redconf.c with the configuration tool, enable
62    "Retry block device I/O on failure" for any volumes if desired, and save the
63    redconf files.
64
65#### FreeRTOS Port Changes
66- Added support for the STM32 HAL SD card driver in the FreeRTOS block device
67  interface.  Two boards are supported out-of-the-box: the STM324xG-EVAL and the
68  STM32F746NG-Discovery.  A sample project is included for the STM324xG-EVAL.
69
70#### MQX Port Changes
71- Fixed a bug which prevented Reliance Edge from compiling if the File System
72  Essentials API was selected in the configuration.
73- Fixed a bug which would have returned an uninitialized value from
74  `RedOsBDevFlush()` for block devices that support flushing.
75
76### Reliance Edge v1.0.1, October 2015
77
78- Added MQX RTOS support in the commercial kit, with example projects for
79  the Kinetis Design Studio.
80- Bug fix in the F_DRIVER implementation of the FreeRTOS block device service.
81
82### Reliance Edge v1.0, July 2015
83
84#### Common Code Changes
85
86- First release of commercial kit and MISRA C:2012 Design Assurance Package.
87  The commercial kit includes many new tools and tests which were not previously
88  available.
89- Overhauled parsing of command-line parameters to be consistent for all tools
90  and tests.  Command-line tools now use Unix-style short and long options (such
91  as `-H` and `--help`) instead of DOS-style switches (such as `/?`).
92- Renamed all os/\*/include/ostypes.h headers to os/\*/include/redostypes.h, so
93  that all headers use the product prefix.  If you created a port using v0.9,
94  this header needs to be renamed and its header guard (#ifndef OSTYPES_H etc.)
95  should also be updated.
96- Add a new header for OS-specific MISRA C:2012 deviation macros, located at
97  os/\*/include/redosdeviations.h.  If you created a port using v0.9, copy the
98  template from os/stub/include/redosdeviations.h into the include directory.
99- Eliminated support for sector sizes less than 256.  If using a smaller sector
100  size (say for a RAM disk), this must now be emulated in the implementation of
101  the block device OS service.
102- Added RedFseFormat() as an optional FSE API, allowing FSE applications to
103  format the volume at run-time.
104  - This added a new macro to redconf.h: existing redconf.h files from v0.9 must
105    be updated to work with v1.0.  Open redconf.h with the configuration tool,
106    ignore the warning about the missing macro, and save it.
107- Internal restructuring has renamed the macros for the string and memory
108  functions used in redconf.h.  An existing redconf.h file from v0.9 will need
109  to be updated; for a file containing the old names, the new config tool will
110  default to using the (slow) Reliance Edge string/memory functions; to use the
111  C library or custom versions, this will need to be selected in the
112  configuration utility.
113- Fix a bug which would result in an error when attempting to create a name with
114  one or more trailing path separators (such as `red_mkdir("/foo/bar/")`).
115- Fix a bug where an open handle for an inode on one volume would prevent the
116  same inode number from being deleted on a different volume.
117
118#### FreeRTOS Port Changes
119
120- The implementation of the timestamp OS service no longer requires that
121  `configUSE_TIMERS` be set to `1`.
122
123### Reliance Edge v0.9 (Beta), April 2015
124
125First public release.
126
127## Known Issues
128
129### Visual Studio 2005
130
131The Reliance Edge Win32 port (used for the host tools and the Win32 test
132project) cannot be compiled by Visual Studio 2005.  This is not going to be
133fixed since VS2005 is an old toolset.  Newer versions of Visual Studio, starting
134with Visual Studio 2008, work just fine.
135
136