mbed-os to support bootlader for Cypress CY8CKIT_062_WIFI_BT_PSA and CY8CKIT_062_BLE

pull/10055/head
Yossi Levy 2019-03-10 12:39:57 +02:00
parent b80c961dae
commit dd27a3400b
17 changed files with 4950 additions and 17 deletions

View File

@ -0,0 +1,49 @@
Permissive Binary License
Version 1.0, September 2015
Redistribution. Redistribution and use in binary form, without
modification, are permitted provided that the following conditions are
met:
1) Redistributions must reproduce the above copyright notice and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
2) Unless to the extent explicitly permitted by law, no reverse
engineering, decompilation, or disassembly of this software is
permitted.
3) Redistribution as part of a software development kit must include the
accompanying file named "DEPENDENCIES" and any dependencies listed in
that file.
4) Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
Limited patent license. The copyright holders (and contributors) grant a
worldwide, non-exclusive, no-charge, royalty-free patent license to
make, have made, use, offer to sell, sell, import, and otherwise
transfer this software, where such license applies only to those patent
claims licensable by the copyright holders (and contributors) that are
necessarily infringed by this software. This patent license shall not
apply to any combinations that include this software. No hardware is
licensed hereunder.
If you institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the software
itself infringes your patent(s), then your rights granted under this
license shall terminate as of the date such litigation is filed.
DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS." ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@ -0,0 +1,10 @@
{
"name": "bootloader_CY8CKIT_062_BLE",
"target_overrides": {
"*": {
"target.app_offset": "0x0A400",
"target.header_offset": "0x0A000",
"target.bootloader_img": "mbed-bootloader-cy8ckit_062_ble-psa-block_device-kvstore.hex"
}
}
}

View File

@ -0,0 +1,49 @@
Permissive Binary License
Version 1.0, September 2015
Redistribution. Redistribution and use in binary form, without
modification, are permitted provided that the following conditions are
met:
1) Redistributions must reproduce the above copyright notice and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
2) Unless to the extent explicitly permitted by law, no reverse
engineering, decompilation, or disassembly of this software is
permitted.
3) Redistribution as part of a software development kit must include the
accompanying file named "DEPENDENCIES" and any dependencies listed in
that file.
4) Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
Limited patent license. The copyright holders (and contributors) grant a
worldwide, non-exclusive, no-charge, royalty-free patent license to
make, have made, use, offer to sell, sell, import, and otherwise
transfer this software, where such license applies only to those patent
claims licensable by the copyright holders (and contributors) that are
necessarily infringed by this software. This patent license shall not
apply to any combinations that include this software. No hardware is
licensed hereunder.
If you institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the software
itself infringes your patent(s), then your rights granted under this
license shall terminate as of the date such litigation is filed.
DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS." ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@ -0,0 +1,10 @@
{
"name": "bootloader_CY8CKIT_062_WIFI_BT",
"target_overrides": {
"*": {
"target.app_offset": "0x0A400",
"target.header_offset": "0x0A000",
"target.bootloader_img": "mbed-bootloader-cy8ckit_062_wifi_bt-psa-block_device-kvstore.hex"
}
}
}

View File

@ -46,10 +46,18 @@
#define MBED_ROM_START 0x10002000
#endif
#if !defined(MBED_APP_START)
#define MBED_APP_START MBED_ROM_START
#endif
#if !defined(MBED_ROM_SIZE)
#define MBED_ROM_SIZE 0x000FE000
#endif
#if !defined(MBED_APP_SIZE)
#define MBED_APP_SIZE MBED_ROM_SIZE
#endif
#if !defined(MBED_RAM_START)
#define MBED_RAM_START 0x08002000
#endif
@ -77,8 +85,8 @@
#define RAM_START MBED_RAM_START
#define RAM_SIZE MBED_RAM_SIZE
; Flash
#define FLASH_START MBED_ROM_START
#define FLASH_SIZE MBED_ROM_SIZE
#define FLASH_START MBED_APP_START
#define FLASH_SIZE MBED_APP_SIZE
; The following defines describe a 32K flash region used for EEPROM emulation.
; This region can also be used as the general purpose flash.

View File

@ -44,10 +44,18 @@ ENTRY(Reset_Handler)
#define MBED_ROM_START 0x10002000
#endif
#if !defined(MBED_APP_START)
#define MBED_APP_START MBED_ROM_START
#endif
#if !defined(MBED_ROM_SIZE)
#define MBED_ROM_SIZE 0x000FE000
#endif
#if !defined(MBED_APP_SIZE)
#define MBED_APP_SIZE MBED_ROM_SIZE
#endif
#if !defined(MBED_RAM_START)
#define MBED_RAM_START 0x08002000
#endif
@ -83,7 +91,7 @@ MEMORY
* where 'xx' is the device group; for example, 'cy8c6xx7_cm0plus.ld'.
*/
ram (rwx) : ORIGIN = MBED_RAM_START, LENGTH = MBED_RAM_SIZE
flash (rx) : ORIGIN = MBED_ROM_START, LENGTH = MBED_ROM_SIZE
flash (rx) : ORIGIN = MBED_APP_START, LENGTH = MBED_APP_SIZE
/* This is a 32K flash region used for EEPROM emulation. This region can also be used as the general purpose flash.
* You can assign sections to this memory region for only one of the cores.

View File

@ -45,10 +45,18 @@ if (!isdefinedsymbol(MBED_ROM_START)) {
define symbol MBED_ROM_START = 0x10002000;
}
if (!isdefinedsymbol(MBED_APP_START)) {
define symbol MBED_APP_START = MBED_ROM_START;
}
if (!isdefinedsymbol(MBED_ROM_SIZE)) {
define symbol MBED_ROM_SIZE = 0x000FE000;
}
if (!isdefinedsymbol(MBED_APP_SIZE)) {
define symbol MBED_APP_SIZE = MBED_ROM_SIZE;
}
if (!isdefinedsymbol(MBED_RAM_START)) {
define symbol MBED_RAM_START = 0x08002000;
}
@ -76,8 +84,8 @@ if (!isdefinedsymbol(MBED_BOOT_STACK_SIZE)) {
define symbol __ICFEDIT_region_IRAM1_start__ = MBED_RAM_START;
define symbol __ICFEDIT_region_IRAM1_end__ = (MBED_RAM_START + MBED_RAM_SIZE);
/* Flash */
define symbol __ICFEDIT_region_IROM1_start__ = MBED_ROM_START;
define symbol __ICFEDIT_region_IROM1_end__ = (MBED_ROM_START + MBED_ROM_SIZE);
define symbol __ICFEDIT_region_IROM1_start__ = MBED_APP_START;
define symbol __ICFEDIT_region_IROM1_end__ = (MBED_APP_START + MBED_APP_SIZE);
/* The following symbols define a 32K flash region used for EEPROM emulation.
* This region can also be used as the general purpose flash.

View File

@ -46,10 +46,19 @@
#define MBED_ROM_START 0x10002000
#endif
#if !defined(MBED_APP_START)
#define MBED_APP_START MBED_ROM_START
#endif
#if !defined(MBED_ROM_SIZE)
#define MBED_ROM_SIZE 0x000FE000
#endif
#if !defined(MBED_APP_SIZE)
#define MBED_APP_SIZE MBED_ROM_SIZE
#endif
#if !defined(MBED_RAM_START)
#define MBED_RAM_START 0x08002000
#endif
@ -77,8 +86,8 @@
#define RAM_START MBED_RAM_START
#define RAM_SIZE MBED_RAM_SIZE
; Flash
#define FLASH_START MBED_ROM_START
#define FLASH_SIZE MBED_ROM_SIZE
#define FLASH_START MBED_APP_START
#define FLASH_SIZE MBED_APP_SIZE
; The following defines describe a 32K flash region used for EEPROM emulation.
; This region can also be used as the general purpose flash.

View File

@ -44,10 +44,18 @@ ENTRY(Reset_Handler)
#define MBED_ROM_START 0x10002000
#endif
#if !defined(MBED_APP_START)
#define MBED_APP_START MBED_ROM_START
#endif
#if !defined(MBED_ROM_SIZE)
#define MBED_ROM_SIZE 0x000FE000
#endif
#if !defined(MBED_APP_SIZE)
#define MBED_APP_SIZE MBED_ROM_SIZE
#endif
#if !defined(MBED_RAM_START)
#define MBED_RAM_START 0x08002000
#endif
@ -83,7 +91,7 @@ MEMORY
* where 'xx' is the device group; for example, 'cy8c6xx7_cm0plus.ld'.
*/
ram (rwx) : ORIGIN = MBED_RAM_START, LENGTH = MBED_RAM_SIZE
flash (rx) : ORIGIN = MBED_ROM_START, LENGTH = MBED_ROM_SIZE
flash (rx) : ORIGIN = MBED_APP_START, LENGTH = MBED_APP_SIZE
/* This is a 32K flash region used for EEPROM emulation. This region can also be used as the general purpose flash.
* You can assign sections to this memory region for only one of the cores.

View File

@ -45,10 +45,18 @@ if (!isdefinedsymbol(MBED_ROM_START)) {
define symbol MBED_ROM_START = 0x10002000;
}
if (!isdefinedsymbol(MBED_APP_START)) {
define symbol MBED_APP_START = MBED_ROM_START;
}
if (!isdefinedsymbol(MBED_ROM_SIZE)) {
define symbol MBED_ROM_SIZE = 0x000FE000;
}
if (!isdefinedsymbol(MBED_APP_SIZE)) {
define symbol MBED_APP_SIZE = MBED_ROM_SIZE;
}
if (!isdefinedsymbol(MBED_RAM_START)) {
define symbol MBED_RAM_START = 0x08002000;
}
@ -76,8 +84,8 @@ if (!isdefinedsymbol(MBED_BOOT_STACK_SIZE)) {
define symbol __ICFEDIT_region_IRAM1_start__ = MBED_RAM_START;
define symbol __ICFEDIT_region_IRAM1_end__ = (MBED_RAM_START + MBED_RAM_SIZE);
/* Flash */
define symbol __ICFEDIT_region_IROM1_start__ = MBED_ROM_START;
define symbol __ICFEDIT_region_IROM1_end__ = (MBED_ROM_START + MBED_ROM_SIZE);
define symbol __ICFEDIT_region_IROM1_start__ = MBED_APP_START;
define symbol __ICFEDIT_region_IROM1_end__ = (MBED_APP_START + MBED_APP_SIZE);
/* The following symbols define a 32K flash region used for EEPROM emulation.
* This region can also be used as the general purpose flash.

View File

@ -23,7 +23,7 @@
#include "gpio_object.h"
#include "psoc6_utils.h"
#include "mbed_error.h"
#include "rtx_lib.h"
#include "mbed_critical.h"
static inline void gpio_set_dir_mode(gpio_t *obj)
{
@ -66,7 +66,7 @@ void gpio_init(gpio_t *obj, PinName pin)
* reserved HW resource. The MBED does not provide proper destructors for
* doing that.
*/
if (!(IsIrqMode() || IsIrqMasked())) {
if (!(core_util_is_isr_active () || core_util_are_interrupts_enabled())) {
(void) cy_reserve_io_pin(pin);
}

View File

@ -724,7 +724,7 @@ const PinMap *serial_rts_pinmap()
return PinMap_UART_RTS;
}
#if DEVICE_SERIAL_ASYNCH
void serial_irq_handler(serial_t *obj_in, uart_irq_handler handler, uint32_t id)
{
@ -760,6 +760,7 @@ void serial_irq_set(serial_t *obj_in, SerialIrq irq, uint32_t enable)
}
}
#if DEVICE_SERIAL_ASYNCH
int serial_tx_asynch(serial_t *obj_in, const void *tx, size_t tx_length, uint8_t tx_width, uint32_t handler, uint32_t event, DMAUsage hint)
{

View File

@ -8082,7 +8082,9 @@
"shared-ram-size": "0x100",
"public-ram-start": "0x08047600",
"public-ram-size": "0x200"
}
},
"device_name": "CY8CKIT062WIFI",
"bootloader_supported": true
},
"CY8CMOD_062_4343W": {
"inherits": ["MCU_PSOC6_M4"],
@ -8112,7 +8114,9 @@
"hex_filename": "psoc6_01_cm0p_sleep.hex",
"post_binary_hook": {
"function": "PSOC6Code.complete"
}
},
"device_name": "CY8CKIT062BLE",
"bootloader_supported": true
},
"CY8CKIT_062_4343W": {
"inherits": ["MCU_PSOC6_M4"],

View File

@ -462673,6 +462673,57 @@
]
],
"vendor": "Nordic Semiconductor:54"
},
},
"CY8CKIT062BLE": {
"core": "Cortex-M4",
"vendor": "Cypress",
"sectors": [
[
268435456,
512
]
],
"memories": {
"IROM1": {
"access": {
"execute": true,
"non_secure": true,
"non_secure_callable": false,
"peripheral": false,
"read": true,
"secure": false,
"write": true
},
"default": true,
"start": "0x10002000",
"size": "0x000FE000"
}
}
},
"CY8CKIT062WIFI": {
"core": "Cortex-M4",
"vendor": "Cypress",
"sectors": [
[
268435456,
512
]
],
"memories": {
"IROM1": {
"access": {
"execute": true,
"non_secure": true,
"non_secure_callable": false,
"peripheral": false,
"read": true,
"secure": false,
"write": true
},
"start": "0x10080000",
"size": "0x78000"
}
}
},
"version": "0.2.0"
}
}

View File

@ -116,6 +116,8 @@ def complete_func(message_func, elf0, hexf0, hexf1=None, dest=None):
# Find Cortex M0 image.
def find_cm0_image(toolchain, resources, elf, hexf, hex_filename):
if hex_filename is None:
return None
# Locate user-specified image
from tools.resources import FileType
hex_files = resources.get_file_paths(FileType.HEX)