diff --git a/README.md b/README.md index 9cf5c3bb..d31b101c 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ The uVisor is a self-contained software hypervisor that creates independent secu To start using uVisor, you need to include it as a library in your design. We release the uVisor library periodically into the mbed OS repository, [ARMmbed/mbed-os](https://github.com/ARMmbed/mbed-os). Review it to learn more about the uVisor security model and see an overview of its features. -You can find most of the uVisor documentation in the [docs](docs) folder. Please look at the [getting started guide](docs/lib/QUICKSTART.md) for an introduction to uVisor application development. If you are interested in uVisor internals, please refer to the [OS-level introduction](https://github.com/ARMmbed/uvisor/raw/docs/uvisor-rtos-docs.pdf) and the [uVisor API docs](docs/lib/API.md). +You can find most of the uVisor documentation in the [docs](https://github.com/ARMmbed/uvisor/tree/master/docs) folder. Please look at the [getting started guide](../lib/QUICKSTART.md) for an introduction to uVisor application development. If you are interested in uVisor internals, please refer to the [OS-level introduction](https://github.com/ARMmbed/uvisor/raw/docs/uvisor-rtos-docs.pdf) and the [uVisor API docs](../lib/API.md). Contributions to this repository in the form of issue reporting and pull requests are welcome! Please read our [contribution guidelines](CONTRIBUTING.md) first. @@ -37,7 +37,7 @@ The uVisor core supports the following platforms: - [STMicroelectronics STM32F429I-DISCO](http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF259090). - [Silicon Labs EFM32 Gecko](http://www.silabs.com/products/mcu/32-bit/efm32-gecko/pages/efm32-gecko.aspx) (Cortex®-M3 and Cortex®-M4 devices). -To use uVisor on a specific OS, you must complete the porting process for that OS. This requires an additional porting step, which the [uVisor porting guide for mbed OS](docs/core/PORTING.md) documents. uVisor supports the following operating system: +To use uVisor on a specific OS, you must complete the porting process for that OS. This requires an additional porting step, which the [uVisor porting guide for mbed OS](../core/PORTING.md) documents. uVisor supports the following operating system: - mbed OS: [NXP FRDM-K64F](http://developer.mbed.org/platforms/FRDM-K64F/). @@ -81,13 +81,13 @@ All the code that is not explicitly part of the uVisor is generally referred to The unprivileged code can be made of mutually untrusted isolated modules (or boxes). This way, even if all are running with unprivileged permissions, different modules can protect their own secrets and execute critical code securely. -For more details about how to setup a secure box and protect memories and peripherals, please read the [getting started guide](docs/lib/QUICKSTART.md). +For more details about how to setup a secure box and protect memories and peripherals, please read the [getting started guide](../lib/QUICKSTART.md). ### Memory layout Different memory layouts can be used on different platforms, depending on the implemented memory protection scheme and the MPU architecture. The following figure shows the memory layout of a system where the uVisor shares the SRAM module with the operating system (ARMv7-M MPU). -[uVisor memory layout](docs/img/memory_layout.png) +[uVisor memory layout](../img/memory_layout.png) The uVisor secures two main memory blocks, in flash and SRAM respectively. In both cases, it protects its own data and the data of the secure boxes it manages for the unprivileged code. For a more detailed view, please refer to the interactive [linker section visualization](https://meriac.github.io/mbed-os-linker-report/). @@ -124,7 +124,7 @@ This table details the main memory sections that the uVisor protects: -To use the uVisor APIs to set up a secure box, please refer to the [getting started guide](docs/lib/QUICKSTART.md) and the full [uVisor API documentation](docs/lib/API.md). +To use the uVisor APIs to set up a secure box, please refer to the [getting started guide](../lib/QUICKSTART.md) and the full [uVisor API documentation](API.md). ### The boot process diff --git a/docs/README.md b/docs/README.md index b5fff774..6d6e3e4a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ # The uVisor Documentation -The uVisor documentation consists of two sections, API documentation and core documentation. You can find descriptions of these domains below. If you instead are interested in the general uVisor design philosophy, see the [high-level introduction to mbed uVisor](https://github.com/ARMmbed/uvisor/raw/docs/uVisorSecurity-TechCon2016.pdf) or refer to the uVisor [GitHub documentation](../README.md). +The uVisor documentation consists of two sections, API documentation and core documentation. You can find descriptions of these domains below. If you instead are interested in the general uVisor design philosophy, see the [high-level introduction to mbed uVisor](https://github.com/ARMmbed/uvisor/raw/docs/uVisorSecurity-TechCon2016.pdf) or refer to the uVisor [GitHub documentation](README.md). ## API documentation @@ -22,4 +22,4 @@ These documents describe the uVisor internals in more detail. They are useful if | Understand uVisor integration | [mbed uVisor integration in mbed OS](https://github.com/ARMmbed/uvisor/raw/docs/uvisor-rtos-docs.pdf) | | Port uVisor to my platform/OS | [uVisor porting guide for mbed OS](core/PORTING.md) | | Test and experiment with uVisor | [Developing with uVisor locally on mbed OS](core/DEVELOPING_LOCALLY.md) | -| Contribute to uVisor | [Contributing to uVisor](../CONTRIBUTING.md) +| Contribute to uVisor | [Contributing to uVisor](CONTRIBUTING.md) diff --git a/docs/core/DEVELOPING_LOCALLY.md b/docs/core/DEVELOPING_LOCALLY.md index 972f1138..3fce62a2 100644 --- a/docs/core/DEVELOPING_LOCALLY.md +++ b/docs/core/DEVELOPING_LOCALLY.md @@ -9,13 +9,13 @@ This guide will show you a different way of obtaining the uVisor libraries, by b There are several reasons to build uVisor locally: - Reproduce a publicly released build. -- Make modifications and test them before contributing to uVisor on GitHub. Read the [contribution guidelines](../../CONTRIBUTING.md) for more details. +- Make modifications and test them before contributing to uVisor on GitHub. Read the [contribution guidelines](CONTRIBUTING.md) for more details. - Preview the latest uVisor features before they are packaged and released. - Play and experiment with uVisor. You will need: -- A [target](../../README.md#supported-platforms) uVisor supports on mbed OS. If your target is not supported yet, you can follow the [uVisor porting guide for mbed OS](PORTING.md). +- A [target](README.md#supported-platforms) uVisor supports on mbed OS. If your target is not supported yet, you can follow the [uVisor porting guide for mbed OS](PORTING.md). - The Launchpad [GNU ARM Embedded](https://launchpad.net/gcc-arm-embedded) Toolchain. - GNU Make. - Git. diff --git a/docs/core/PORTING.md b/docs/core/PORTING.md index 5e824a56..b44cf610 100644 --- a/docs/core/PORTING.md +++ b/docs/core/PORTING.md @@ -735,4 +735,4 @@ It is time to test your application. We suggest that you use the example app, [` In both cases, please: - Run uVisor at least once in debug mode to ensure all runtime sanity checks pass. You can also use this round of checks to confirm your linker script and uVisor ports are structurally correct. For more information about the uVisor debug mode, please read [Debugging uVisor on mbed OS](../lib/DEBUGGING.md). -- Ensure that your app has the relevant ACLs to work with uVisor enabled. This requires you to run uVisor in debug mode multiple times and find all the faulting peripherals. Read a more detailed description of this procedure in [the final section](../lib/QUICKSTART.md#the-main-box-acls) of the [getting started guide](../lib/QUICKSTART.md). +- Ensure that your app has the relevant ACLs to work with uVisor enabled. This requires you to run uVisor in debug mode multiple times and find all the faulting peripherals. Read a more detailed description of this procedure in [the final section](../lib/QUICKSTART.md#the-public-box-acls) of the [getting started guide](../lib/QUICKSTART.md). diff --git a/docs/lib/DEBUGGING.md b/docs/lib/DEBUGGING.md index cd1b5a47..c84687d9 100644 --- a/docs/lib/DEBUGGING.md +++ b/docs/lib/DEBUGGING.md @@ -7,8 +7,8 @@ If you want to use the uVisor debug features on an already supported platform, y This guide will show you how to enable the default debug features on uVisor and how to use it to get even more debug information. You will need: - A GDB-enabled board (and the related tools). -- A [target](../../README.md#supported-platforms) uVisor supports on mbed OS. If uVisor does not support your target yet, you can follow the [uVisor porting guide for mbed OS](../core/PORTING.md). -- The Launchpad [GNU ARM Embedded](https://launchpad.net/-arm-embedded) Toolchain. +- A [target](README.md#supported-platforms) uVisor supports on mbed OS. If uVisor does not support your target yet, you can follow the [uVisor porting guide for mbed OS](../core/PORTING.md). +- The Launchpad [GNU ARM Embedded](https://launchpad.net/gcc-arm-embedded) Toolchain. - GNU Make. - Git. @@ -197,4 +197,4 @@ This board provides both an on-board proprietary debugging port (ST-LINK) and a If you are using ST-LINK, please refer to the [STMicroelectronics website](http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168?sc=internet/evalboard/product/251168.jsp) for information about the tools and drivers you need. Please note we have not tested this debugger with uVisor. -If instead you want to connect your debugger to the JTAG port, you must wire the needed pins to your connector. This [guide](https://www.segger.com/admin/uploads/evalBoardDocs/AN00015_ConnectingJLinkToSTM32F429Discovery.pdf) explains how to do that in detail. The guide is specific to the J-Link connectors, but you can apply it to other connectors. \ No newline at end of file +If instead you want to connect your debugger to the JTAG port, you must wire the needed pins to your connector. This [guide](https://www.segger.com/admin/uploads/evalBoardDocs/AN00015_ConnectingJLinkToSTM32F429Discovery.pdf) explains how to do that in detail. The guide is specific to the J-Link connectors, but you can apply it to other connectors. diff --git a/docs/lib/QUICKSTART.md b/docs/lib/QUICKSTART.md index 0061f460..6886a0da 100644 --- a/docs/lib/QUICKSTART.md +++ b/docs/lib/QUICKSTART.md @@ -2,13 +2,13 @@ This guide will help you start uVisor on mbed OS by showing you how to create a sample application for the NXP FRDM-K64F board. -The uVisor provides sandboxed environments and resources protection for applications built for ARM Cortex-M3 and Cortex-M4 devices. This guide will show you how to enable the uVisor and configure a secure box to access some exclusive resources (memory, peripherals, interrupts). For more information about the uVisor design philosophy, please see the uVisor [introductory document](../../README.md). +The uVisor provides sandboxed environments and resources protection for applications built for ARM Cortex-M3 and Cortex-M4 devices. This guide will show you how to enable the uVisor and configure a secure box to access some exclusive resources (memory, peripherals, interrupts). For more information about the uVisor design philosophy, please see the uVisor [introductory document](README.md). ## Requirements To run the `blinky` application on mbed OS with uVisor enabled, you need: -- A platform and a toolchain that uVisor on mbed OS supports. You can verify this on [the official list](../README.md#supported-platforms). If uVisor supports your platform internally but not on mbed OS, the porting process is incomplete. To port your platform to uVisor and enable it on mbed OS, please follow the [uVisor porting guide for mbed OS](../core/PORTING.md). +- A platform and a toolchain that uVisor on mbed OS supports. You can verify this on [the official list](README.md#supported-platforms). If uVisor supports your platform internally but not on mbed OS, the porting process is incomplete. To port your platform to uVisor and enable it on mbed OS, please follow the [uVisor porting guide for mbed OS](../core/PORTING.md). - Git. - mbed CLI. Run `pip install mbed-cli` to install it.