cypress: update user documentation with disclaimer and additional instructions

This change adds Disclaimer section to Cypress related documentation and adds details about custom hardware configuration flow.

Signed-off-by: Roman Okhrimenko <roman.okhrimenko@cypress.com>
This commit is contained in:
Roman Okhrimenko 2020-09-24 17:20:15 +03:00
parent ff026122e1
commit 6ea44be64f
3 changed files with 45 additions and 20 deletions

View File

@ -1,6 +1,6 @@
### Blinking LED test application for MCUBoot Bootloader.
### Blinking LED test application for MCUBoot Bootloader
**Description:**
### Description
Implements simple Blinky LED CM4 application to demonstrate MCUBoot Application operation in terms of BOOT and UPGRADE process.
@ -12,11 +12,18 @@ Functionality:
* Prints debug info and version of itself to terminal at 115200 baud.
* Can be built for BOOT slot or UPGRADE slot of bootloader.
**Currently supported platforms:**
Currently supported platforms
* PSOC_062_2M
**Pre-build action:**
### Hardware limitations
Since this application is created to demonstrate MCUBoot library features and not as reference examples some considerations are taken.
1. Port/pin `P5_0` and `P5_1` used to configure serial port for debug prints. These pins are the most commonly used for serial port connection among available Cypress PSoC 6 kits. If you try to use custom hardware with this application - change definitions of `CY_DEBUG_UART_TX` and `CY_DEBUG_UART_RX` in `main.c` of BlinkyApp to port/pin pairs corresponding to your design.
2. Port `GPIO_PRT13` pin `7U` used to define user connection LED. This pin is the most commonly used for USER_LED connection among available Cypress PSoC 6 kits. If you try to use custom hardware with this application - change definitions of `LED_PORT` and `LED_PIN` in `main.c` of BlinkyApp to port/pin pairs corresponding to your design.
### Pre-build action
Pre-build action is implemented for defining start address and size of flash, as well as RAM start address and size for BlinkyApp.
These values are set by specifing following macros: `-DUSER_APP_SIZE`, `-DUSER_APP_START`, `-DRAM_SIZE`, `-DRAM_START` in makefile.
@ -29,7 +36,7 @@ Default values set for currently supported targets:
**Important**: make sure RAM areas of CM4-based BlinkyApp and CM0p-based MCUBootApp bootloader do not overlap.
Memory (stack) corruption of CM0p application can cause failure if SystemCall-served operations invoked from CM4.
**Building an application:**
### Building an application
Root directory for build is **boot/cypress.**
@ -90,13 +97,13 @@ In case of using muti-image configuration, upgrade image for second application
Note: for S25FL512S block address shuld be mutiple by 0x40000
**Post-Build:**
### Post-Build
Post build action is executed at compile time for `BlinkyApp`. In case of build for `PSOC_062_2M` platform it calls `imgtool` from `MCUBoot` scripts and adds signature to compiled image.
Flags passed to `imgtool` for signature are defined in `SIGN_ARGS` variable in BlinkyApp.mk.
**How to program an application:**
### How to program an application
Use any preferred tool for programming hex files.
@ -121,7 +128,7 @@ Files to use for programming are:
**NOTE**: In case of `UPGRADE` image `HEADER_OFFSET` should be set to MCUBoot Bootloader slot size.
**Example terminal output:**
### Example terminal output
When user application programmed in BOOT slot:

View File

@ -30,7 +30,7 @@ MCUBootApp checks image integrity with SHA256, image authenticity with EC256 dig
**Important**: make sure RAM areas of CM0p-based MCUBootApp bootloader and CM4-based BlinkyApp do not overlap.
Memory (stack) corruption of CM0p application can cause failure if SystemCall-served operations invoked from CM4.
**Hardware cryptography acceleration:**
### Hardware cryptography acceleration
Cypress PSOC6 MCU family supports hardware acceleration of cryptography based on mbedTLS Library via shim layer. Implementation of this layer is supplied as separate submodule `cy-mbedtls-acceleration`. HW acceleration of cryptography shortens boot time more then 4 times, comparing to software implementation (observation results).
@ -38,7 +38,7 @@ To enable hardware acceleration in `MCUBootApp` pass flag `USE_CRYPTO_HW=1` to `
Hardware acceleration of cryptography is enabled for PSOC6 devices by default.
**How to modify Flash map:**
### How to modify memory map
__Option 1.__
@ -112,7 +112,16 @@ Size of slots `0x10000` - 64kb
__Note:__ It is also possible to place secondary (upgrade) slots in external memory module so resulting image size can be doubled.
For more details about External Memory usage, please refer to separate guiding document `ExternalMemory.md`.
**Downloading Solution's Assets**
### Hardware limitations
Since this application is created to demonstrate MCUBoot library features and not as reference examples some considerations are taken.
1. `SCB5` used to configure serial port for debug prints. This is the most commonly used Serial Communication Block number among available Cypress PSoC 6 kits. If you try to use custom hardware with this application - change definition of `CYBSP_UART_HW` in `main.c` of MCUBootApp to SCB* that correspond to your design.
2. `CY_SMIF_SLAVE_SELECT_0` is used as definition SMIF driver API. This configuration is used on evaluation kit for this example CY8CPROTO-062-4343W. If you try to use custom hardware with this application - change value of `smif_id` in `main.c` of MCUBootApp to value that corresponds to your design.
### Downloading Solution's Assets
There is a set assets required:
@ -125,7 +134,7 @@ To get submodules - run the following command:
git submodule update --init --recursive
**Building Solution**
### Building Solution
This folder contains make files infrastructure for building MCUBoot Bootloader. Same approach used in sample BlinkyLedApp application. Example command are provided below for couple different build configurations.

View File

@ -1,10 +1,19 @@
### Port of MCUBoot library to be used with Cypress targets
### Port of MCUBoot library for evaluation with Cypress PSoC 6 chips
**Solution Description**
### Disclaimer
Given solution demonstrates operation of MCUBoot on Cypress' PSoC6 device.
Given solution is included in `mcuboot` repository with purpose to demonstrate basic consepts and features of MCUBoot library on Cypress PSoC 6 device. Applications are created per mcuboot library maintainers requirements. Implemetation differs from conventional and recomended by Cypress Semiconductors development flow for PSoC 6 devices. These applications are not recomended as a starting point for development and should not be considered as supported examples for PSoC 6 devices.
There are four applications implemented:
Examples provided to use with **ModusToolbox® Software Environment** are a recommended reference point to start development of MCUBoot based bootloaders for PSoC 6 devices.
Refer to **Cypress Semiconductors** [github](https://github.com/cypresssemiconductorco) page to find examples.
1. MCUboot-Based Basic Bootloader [mtb-example-psoc6-mcuboot-basic](https://github.com/cypresssemiconductorco/mtb-example-psoc6-mcuboot-basic)
2. MCUboot-Based Bootloader with Rollback to Factory App in External Flash [mtb-example-anycloud-mcuboot-rollback](https://github.com/cypresssemiconductorco/mtb-example-anycloud-mcuboot-rollback)
### Solution Description
There are two applications implemented:
* MCUBootApp - PSoC6 MCUBoot-based bootloading application;
* BlinkyApp - simple PSoC6 blinking LED application which is a target of BOOT/UPGRADE;
@ -22,7 +31,7 @@ For more details about External Memory usage, please refer to separate guiding d
MCUBootApp checks image integrity with SHA256, image authenticity with EC256 digital signature verification and uses completely SW implementation of cryptographic functions based on mbedTLS Library.
**Downloading Solution's Assets**
### Downloading Solution's Assets
There is a set assets required:
@ -43,7 +52,7 @@ Submodules can also be updated and initialized separately:
**Building Solution**
### Building Solution
Root directory for build is **boot/cypress.**
@ -51,11 +60,11 @@ This folder contains make files infrastructure for building both MCUBoot Bootloa
Instructions on how to build and upload MCUBootApp bootloader application and sample user applocation are located in `Readme.md` files in corresponding folders.
**Currently supported platforms:**
Currently supported platforms:
* PSOC_062_2M - for MCUBoot, BlinkyApp;
**Build environment troubleshooting:**
### Build environment troubleshooting
Following CLI / IDE are supported for project build: