diff --git a/boot/cypress/BlinkyApp/Readme.md b/boot/cypress/BlinkyApp/Readme.md
index 5486088..de13e8d 100644
--- a/boot/cypress/BlinkyApp/Readme.md
+++ b/boot/cypress/BlinkyApp/Readme.md
@@ -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 @@
 * 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 @@
 **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 @@
 
     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 @@
 
 **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:
 
diff --git a/boot/cypress/MCUBootApp/README.md b/boot/cypress/MCUBootApp/README.md
index 2da2d7c..713757d 100644
--- a/boot/cypress/MCUBootApp/README.md
+++ b/boot/cypress/MCUBootApp/README.md
@@ -30,7 +30,7 @@
 **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 @@
 
 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 @@
 __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 @@
 
     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.
 
diff --git a/boot/cypress/README.md b/boot/cypress/README.md
index 66f9597..9dc7def 100644
--- a/boot/cypress/README.md
+++ b/boot/cypress/README.md
@@ -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 @@
 
 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 @@
 
 
 
-**Building Solution**
+### Building Solution
 
 Root directory for build is **boot/cypress.**
 
@@ -51,11 +60,11 @@
 
 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:
 
