Use a newer version of uVisor that doesn't change the box main thread
function type. Previously, we required all box main thread definitions
to change from taking a `const void *` to a `void *` when moving to
RTX5. We now are backwards compatibile.
* Updated docs
* Re-factored vMPU drivers
* Non-backwards-compatible API change: uvisor_ctx is now called
__uvisor_ctx and requires the user to explicitly cast it to their own
private context structure.
This only affects applications with uVisor enabled.
* Use "public box" instead of main box for box 0.
- Enhanced Debug Box
- Allow hw-specific ACL extensions per region
- Reduce background region rights to debugger and core
- Added Beetle SoC uVisor support
- MPU code restructured
This release brings the support of Keil RTX with uVisor on mbed OS, plus
several other improvements.
**New features**
* Integration in Keil RTX in mbed OS.
* Secure dynamic allocation APIs.
* Box initialization routines.
* Register gateway.
* vMPU recovery generalized for both Kinetis and ARMv7-M MPUs.
* APIs for per-box interrupts disablement and re-enablement.
**Work in progress**
* Remote Procedure Call (RPC). New API signatures have been published.
* The alpha-level implementation will follow soon.
**Deprecated features**
* Secure gateway. Cross-box communication will be implemented with RPC
* gateways.
**Bugfixes**
* Several ARMv7-M-specific bug fixes.
* Fixed a bug that sent the device into lock-up after a hard fault.
* Fixed checks on revision numbers for Cortex-M devices.
**Miscellaneous improvements**
* Optimized memory protection for ARMv7-M devices with shared SRAM.
* Build artifacts are grouped into the target/build
* option/configuration-specific folder.
* Documents have been grouped into API vs. core documents.
* Improved style and consistency.
Now there is no need any more to specify the UVISOR_PRESENT symbol from
the mbed command line tools. By using a target that has UVISOR_SUPPORTED
has a label, the uVisor-internal UVISOR_PRESENT symbol will be set
automatically.
Add the memory management code from uVisor to a shared location that is
suitable for both supported and unsupported use. To do this, we copy all
the RTX-specific files from the RTX folders in uVisor.
Note that the page allocator code is so identical between uVisor supported
and unsupported mode that we can copy the file as-is from uVisor for use on
unsupported targets. This commit performs that copying, to a file called
page_allocator.c_inc, which is included from unsupported_page_allocator.c
only for targets where uVisor is not present.