Skip to content

Commit 8effecd

Browse files
authored
Merge pull request #14063 from dustin-crossman/pr/wifi_reserved_region
Support arbitrary storage alongside WiFi firmware in external storage on Cypress targets
2 parents 080ea9f + ef6284c commit 8effecd

File tree

65 files changed

+977
-65
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+977
-65
lines changed

connectivity/drivers/emac/TARGET_Cypress/COMPONENT_WHD/interface/whd_emac.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,15 @@
2727
#include "events/mbed_shared_queues.h"
2828
#include "whd_wlioctl.h"
2929
#include "whd_buffer_api.h"
30+
#include "wiced_resource.h"
3031
#include "cybsp_wifi.h"
3132
#include "emac_eapol.h"
3233
#include "cy_result.h"
3334

35+
#if defined(CY_EXT_WIFI_FW_STORAGE) && !MBED_CONF_TARGET_XIP_ENABLE
36+
#include "cy_ext_wifi_fw_reserved_region_bd.h"
37+
#endif /* defined(CY_EXT_WIFI_FW_STORAGE) && !MBED_CONF_TARGET_XIP_ENABLE */
38+
3439
#define NULL_MAC(a) ( ( ( ( (unsigned char *)a )[0] ) == 0 ) && \
3540
( ( ( (unsigned char *)a )[1] ) == 0 ) && \
3641
( ( ( (unsigned char *)a )[2] ) == 0 ) && \
@@ -112,7 +117,17 @@ bool WHD_EMAC::power_up()
112117
WHD_EMAC &emac_other = WHD_EMAC::get_instance(interface_type == WHD_STA_ROLE ? WHD_AP_ROLE :
113118
WHD_STA_ROLE);
114119
if (!emac_other.powered_up) {
120+
#if defined(CY_EXT_WIFI_FW_STORAGE) && !MBED_CONF_TARGET_XIP_ENABLE
121+
CyReservedRegionBlockDevice *reserved_region_bd = cy_get_ext_wifi_fw_reserved_region_bd();
122+
reserved_region_bd->init();
123+
124+
extern whd_resource_source_t cy_ext_wifi_fw_resource_ops;
125+
res = cybsp_wifi_init_primary_extended(&ifp /* OUT */, &cy_ext_wifi_fw_resource_ops, NULL, NULL);
126+
127+
reserved_region_bd->deinit();
128+
#else
115129
res = cybsp_wifi_init_primary(&ifp /* OUT */);
130+
#endif /* defined(CY_EXT_WIFI_FW_STORAGE) && !MBED_CONF_TARGET_XIP_ENABLE */
116131
} else {
117132
ifp = emac_other.ifp;
118133
}
@@ -295,4 +310,13 @@ extern "C"
295310
}
296311
}
297312

313+
#if defined(CY_EXT_WIFI_FW_STORAGE) && !MBED_CONF_TARGET_XIP_ENABLE
314+
resource_result_t platform_read_external_resource(const resource_hnd_t *resource, uint32_t offset, uint32_t maxsize, uint32_t *size, void *buffer)
315+
{
316+
CyReservedRegionBlockDevice *bd = cy_get_ext_wifi_fw_reserved_region_bd();
317+
int status = bd->reserved_read(buffer, (mbed::bd_addr_t) resource->val.external_storage_context + offset, *size);
318+
return (status == 0) ? RESOURCE_SUCCESS : RESOURCE_FILE_READ_FAIL;
319+
}
320+
#endif /* defined(CY_EXT_WIFI_FW_STORAGE) && !MBED_CONF_TARGET_XIP_ENABLE */
321+
298322
} // extern "C"

storage/kvstore/kv_config/filesystem/mbed_lib.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@
3737
"target_overrides": {
3838
"MCU_PSOC6": {
3939
"rbp_internal_size": "7168"
40+
},
41+
"CY_EXTERNAL_WIFI_FW": {
42+
"blockdevice": "other"
4043
}
4144
}
4245
}

storage/kvstore/kv_config/filesystem_no_rbp/mbed_lib.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,10 @@
2525
"help": "Path for the working directory where the FileSystemStore stores the data",
2626
"value": "kvstore"
2727
}
28+
},
29+
"target_overrides": {
30+
"CY_EXTERNAL_WIFI_FW": {
31+
"blockdevice": "other"
32+
}
2833
}
2934
}

storage/kvstore/kv_config/tdb_external/mbed_lib.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525
"target_overrides": {
2626
"MCU_PSOC6": {
2727
"rbp_internal_size": "7168"
28+
},
29+
"CY_EXTERNAL_WIFI_FW": {
30+
"blockdevice": "other"
2831
}
2932
}
3033
}

storage/kvstore/kv_config/tdb_external_no_rbp/mbed_lib.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,10 @@
1313
"help": "The default will set start address to address 0",
1414
"value": "0"
1515
}
16+
},
17+
"target_overrides": {
18+
"CY_EXTERNAL_WIFI_FW": {
19+
"blockdevice": "other"
20+
}
1621
}
1722
}

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT064B0S2_4343W/device/COMPONENT_CM0P/TOOLCHAIN_ARM/cyb06xxa_cm0plus.sct

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ LR_SFLASH_RTOC_2 SFLASH_RTOC_2_START SFLASH_RTOC_2_SIZE
258258
; Places the code in the Execute in Place (XIP) section. See the smif driver documentation for details.
259259
LR_EROM XIP_START XIP_SIZE
260260
{
261-
.cy_xip +0
261+
cy_xip +0
262262
{
263263
* (.cy_xip)
264264
}

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT064B0S2_4343W/device/COMPONENT_CM0P/TOOLCHAIN_GCC_ARM/cyb06xxa_cm0plus.ld

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -422,9 +422,11 @@ SECTIONS
422422
/* Places the code in the Execute in Place (XIP) section. See the smif driver
423423
* documentation for details.
424424
*/
425-
.cy_xip :
425+
cy_xip :
426426
{
427+
__cy_xip_start = .;
427428
KEEP(*(.cy_xip))
429+
__cy_xip_end = .;
428430
} > xip
429431

430432

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT064B0S2_4343W/device/COMPONENT_CM0P/TOOLCHAIN_IAR/cyb06xxa_cm0plus.icf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,8 @@ define block HEAP with expanding size, alignment = 8, minimum size = __ICF
199199
define block HSTACK {block HEAP, block PROC_STACK, last block CSTACK};
200200
define block RO {first section .intvec, readonly};
201201

202+
define block cy_xip { section .cy_xip };
203+
202204
/*-Initializations-*/
203205
initialize by copy { readwrite };
204206
do not initialize { section .noinit, section .intvec_ram };
@@ -231,7 +233,7 @@ place at address (__ICFEDIT_region_IROM1_start__ + BOOT_HEADER_SIZE) { block RO
231233
".cy_efuse" : place at start of IROM8_region { section .cy_efuse };
232234

233235
/* Execute in Place (XIP). See the smif driver documentation for details. */
234-
".cy_xip" : place at start of EROM1_region { section .cy_xip };
236+
"cy_xip" : place at start of EROM1_region { block cy_xip };
235237

236238
/* RAM */
237239
place at start of IRAM1_region { readwrite section .intvec_ram};

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT064B0S2_4343W/device/COMPONENT_CM4/TOOLCHAIN_ARM/cyb06xxa_cm4_dual.sct

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ LR_SFLASH_RTOC_2 SFLASH_RTOC_2_START SFLASH_RTOC_2_SIZE
268268
; Places the code in the Execute in Place (XIP) section. See the smif driver documentation for details.
269269
LR_EROM XIP_START XIP_SIZE
270270
{
271-
.cy_xip +0
271+
cy_xip +0
272272
{
273273
* (.cy_xip)
274274
}

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT064B0S2_4343W/device/COMPONENT_CM4/TOOLCHAIN_GCC_ARM/cyb06xxa_cm4_dual.ld

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,9 +419,11 @@ SECTIONS
419419
/* Places the code in the Execute in Place (XIP) section. See the smif driver
420420
* documentation for details.
421421
*/
422-
.cy_xip :
422+
cy_xip :
423423
{
424+
__cy_xip_start = .;
424425
KEEP(*(.cy_xip))
426+
__cy_xip_end = .;
425427
} > xip
426428

427429

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT064B0S2_4343W/device/COMPONENT_CM4/TOOLCHAIN_IAR/cyb06xxa_cm4_dual.icf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,8 @@ define block HEAP with expanding size, alignment = 8, minimum size = __ICF
201201
define block CM0P_RO with size = (FLASH_CM0P_SIZE - BOOT_HEADER_SIZE) { readonly section .cy_m0p_image };
202202
define block RO {first section .intvec, readonly};
203203

204+
define block cy_xip { section .cy_xip };
205+
204206
/*-Initializations-*/
205207
initialize by copy { readwrite };
206208
do not initialize { section .noinit, section .intvec_ram };
@@ -238,7 +240,7 @@ place at start of IROM1_region { block RO };
238240
".cy_efuse" : place at start of IROM8_region { section .cy_efuse };
239241

240242
/* Execute in Place (XIP). See the smif driver documentation for details. */
241-
".cy_xip" : place at start of EROM1_region { section .cy_xip };
243+
"cy_xip" : place at start of EROM1_region { block cy_xip };
242244

243245
/* RAM */
244246
place at start of IRAM1_region { readwrite section .intvec_ram};

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062S2_43012/device/COMPONENT_CM0P/TOOLCHAIN_ARM/cy8c6xxa_cm0plus.sct

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ LR_SFLASH_RTOC_2 SFLASH_RTOC_2_START SFLASH_RTOC_2_SIZE
262262
; Places the code in the Execute in Place (XIP) section. See the smif driver documentation for details.
263263
LR_EROM XIP_START XIP_SIZE
264264
{
265-
.cy_xip +0
265+
cy_xip +0
266266
{
267267
* (.cy_xip)
268268
}

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062S2_43012/device/COMPONENT_CM0P/TOOLCHAIN_GCC_ARM/cy8c6xxa_cm0plus.ld

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,9 +421,11 @@ SECTIONS
421421
/* Places the code in the Execute in Place (XIP) section. See the smif driver
422422
* documentation for details.
423423
*/
424-
.cy_xip :
424+
cy_xip :
425425
{
426+
__cy_xip_start = .;
426427
KEEP(*(.cy_xip))
428+
__cy_xip_end = .;
427429
} > xip
428430

429431

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062S2_43012/device/COMPONENT_CM0P/TOOLCHAIN_IAR/cy8c6xxa_cm0plus.icf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,8 @@ define block HEAP with expanding size, alignment = 8, minimum size = __ICF
198198
define block HSTACK {block HEAP, block PROC_STACK, last block CSTACK};
199199
define block RO {first section .intvec, readonly};
200200

201+
define block cy_xip { section .cy_xip };
202+
201203
/*-Initializations-*/
202204
initialize by copy { readwrite };
203205
do not initialize { section .noinit, section .intvec_ram };
@@ -230,7 +232,7 @@ place in IROM1_region { block RO };
230232
".cy_efuse" : place at start of IROM8_region { section .cy_efuse };
231233

232234
/* Execute in Place (XIP). See the smif driver documentation for details. */
233-
".cy_xip" : place at start of EROM1_region { section .cy_xip };
235+
"cy_xip" : place at start of EROM1_region { block cy_xip };
234236

235237
/* RAM */
236238
place at start of IRAM1_region { readwrite section .intvec_ram};

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062S2_43012/device/COMPONENT_CM4/TOOLCHAIN_ARM/cy8c6xxa_cm4_dual.sct

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ LR_SFLASH_RTOC_2 SFLASH_RTOC_2_START SFLASH_RTOC_2_SIZE
265265
; Places the code in the Execute in Place (XIP) section. See the smif driver documentation for details.
266266
LR_EROM XIP_START XIP_SIZE
267267
{
268-
.cy_xip +0
268+
cy_xip +0
269269
{
270270
* (.cy_xip)
271271
}

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062S2_43012/device/COMPONENT_CM4/TOOLCHAIN_GCC_ARM/cy8c6xxa_cm4_dual.ld

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,9 +416,11 @@ SECTIONS
416416
/* Places the code in the Execute in Place (XIP) section. See the smif driver
417417
* documentation for details.
418418
*/
419-
.cy_xip :
419+
cy_xip :
420420
{
421+
__cy_xip_start = .;
421422
KEEP(*(.cy_xip))
423+
__cy_xip_end = .;
422424
} > xip
423425

424426

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062S2_43012/device/COMPONENT_CM4/TOOLCHAIN_IAR/cy8c6xxa_cm4_dual.icf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,8 @@ define block HEAP with expanding size, alignment = 8, minimum size = __ICF
198198
define block CM0P_RO with size = FLASH_CM0P_SIZE { readonly section .cy_m0p_image };
199199
define block RO {first section .intvec, readonly};
200200

201+
define block cy_xip { section .cy_xip };
202+
201203
/*-Initializations-*/
202204
initialize by copy { readwrite };
203205
do not initialize { section .noinit, section .intvec_ram };
@@ -235,7 +237,7 @@ place at start of IROM1_region { block RO };
235237
".cy_efuse" : place at start of IROM8_region { section .cy_efuse };
236238

237239
/* Execute in Place (XIP). See the smif driver documentation for details. */
238-
".cy_xip" : place at start of EROM1_region { section .cy_xip };
240+
"cy_xip" : place at start of EROM1_region { block cy_xip };
239241

240242
/* RAM */
241243
place at start of IRAM1_region { readwrite section .intvec_ram};

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062_BLE/device/COMPONENT_CM0P/TOOLCHAIN_ARM/cy8c6xx7_cm0plus.sct

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ LR_SFLASH_RTOC_2 SFLASH_RTOC_2_START SFLASH_RTOC_2_SIZE
262262
; Places the code in the Execute in Place (XIP) section. See the smif driver documentation for details.
263263
LR_EROM XIP_START XIP_SIZE
264264
{
265-
.cy_xip +0
265+
cy_xip +0
266266
{
267267
* (.cy_xip)
268268
}

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062_BLE/device/COMPONENT_CM0P/TOOLCHAIN_GCC_ARM/cy8c6xx7_cm0plus.ld

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,9 +421,11 @@ SECTIONS
421421
/* Places the code in the Execute in Place (XIP) section. See the smif driver
422422
* documentation for details.
423423
*/
424-
.cy_xip :
424+
cy_xip :
425425
{
426+
__cy_xip_start = .;
426427
KEEP(*(.cy_xip))
428+
__cy_xip_end = .;
427429
} > xip
428430

429431

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062_BLE/device/COMPONENT_CM0P/TOOLCHAIN_IAR/cy8c6xx7_cm0plus.icf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,8 @@ define block HEAP with expanding size, alignment = 8, minimum size = __ICF
198198
define block HSTACK {block HEAP, block PROC_STACK, last block CSTACK};
199199
define block RO {first section .intvec, readonly};
200200

201+
define block cy_xip { section .cy_xip };
202+
201203
/*-Initializations-*/
202204
initialize by copy { readwrite };
203205
do not initialize { section .noinit, section .intvec_ram };
@@ -230,7 +232,7 @@ place in IROM1_region { block RO };
230232
".cy_efuse" : place at start of IROM8_region { section .cy_efuse };
231233

232234
/* Execute in Place (XIP). See the smif driver documentation for details. */
233-
".cy_xip" : place at start of EROM1_region { section .cy_xip };
235+
"cy_xip" : place at start of EROM1_region { block cy_xip };
234236

235237
/* RAM */
236238
place at start of IRAM1_region { readwrite section .intvec_ram};

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062_BLE/device/COMPONENT_CM4/TOOLCHAIN_ARM/cy8c6xx7_cm4_dual.sct

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ LR_SFLASH_RTOC_2 SFLASH_RTOC_2_START SFLASH_RTOC_2_SIZE
265265
; Places the code in the Execute in Place (XIP) section. See the smif driver documentation for details.
266266
LR_EROM XIP_START XIP_SIZE
267267
{
268-
.cy_xip +0
268+
cy_xip +0
269269
{
270270
* (.cy_xip)
271271
}

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062_BLE/device/COMPONENT_CM4/TOOLCHAIN_GCC_ARM/cy8c6xx7_cm4_dual.ld

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,9 +416,11 @@ SECTIONS
416416
/* Places the code in the Execute in Place (XIP) section. See the smif driver
417417
* documentation for details.
418418
*/
419-
.cy_xip :
419+
cy_xip :
420420
{
421+
__cy_xip_start = .;
421422
KEEP(*(.cy_xip))
423+
__cy_xip_end = .;
422424
} > xip
423425

424426

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062_BLE/device/COMPONENT_CM4/TOOLCHAIN_IAR/cy8c6xx7_cm4_dual.icf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,8 @@ define block HEAP with expanding size, alignment = 8, minimum size = __ICF
198198
define block CM0P_RO with size = FLASH_CM0P_SIZE { readonly section .cy_m0p_image };
199199
define block RO {first section .intvec, readonly};
200200

201+
define block cy_xip { section .cy_xip };
202+
201203
/*-Initializations-*/
202204
initialize by copy { readwrite };
203205
do not initialize { section .noinit, section .intvec_ram };
@@ -235,7 +237,7 @@ place at start of IROM1_region { block RO };
235237
".cy_efuse" : place at start of IROM8_region { section .cy_efuse };
236238

237239
/* Execute in Place (XIP). See the smif driver documentation for details. */
238-
".cy_xip" : place at start of EROM1_region { section .cy_xip };
240+
"cy_xip" : place at start of EROM1_region { block cy_xip };
239241

240242
/* RAM */
241243
place at start of IRAM1_region { readwrite section .intvec_ram};

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062_WIFI_BT/device/COMPONENT_CM0P/TOOLCHAIN_ARM/cy8c6xx7_cm0plus.sct

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ LR_SFLASH_RTOC_2 SFLASH_RTOC_2_START SFLASH_RTOC_2_SIZE
262262
; Places the code in the Execute in Place (XIP) section. See the smif driver documentation for details.
263263
LR_EROM XIP_START XIP_SIZE
264264
{
265-
.cy_xip +0
265+
cy_xip +0
266266
{
267267
* (.cy_xip)
268268
}

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062_WIFI_BT/device/COMPONENT_CM0P/TOOLCHAIN_GCC_ARM/cy8c6xx7_cm0plus.ld

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,9 +421,11 @@ SECTIONS
421421
/* Places the code in the Execute in Place (XIP) section. See the smif driver
422422
* documentation for details.
423423
*/
424-
.cy_xip :
424+
cy_xip :
425425
{
426+
__cy_xip_start = .;
426427
KEEP(*(.cy_xip))
428+
__cy_xip_end = .;
427429
} > xip
428430

429431

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062_WIFI_BT/device/COMPONENT_CM0P/TOOLCHAIN_IAR/cy8c6xx7_cm0plus.icf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,8 @@ define block HEAP with expanding size, alignment = 8, minimum size = __ICF
198198
define block HSTACK {block HEAP, block PROC_STACK, last block CSTACK};
199199
define block RO {first section .intvec, readonly};
200200

201+
define block cy_xip { section .cy_xip };
202+
201203
/*-Initializations-*/
202204
initialize by copy { readwrite };
203205
do not initialize { section .noinit, section .intvec_ram };
@@ -230,7 +232,7 @@ place in IROM1_region { block RO };
230232
".cy_efuse" : place at start of IROM8_region { section .cy_efuse };
231233

232234
/* Execute in Place (XIP). See the smif driver documentation for details. */
233-
".cy_xip" : place at start of EROM1_region { section .cy_xip };
235+
"cy_xip" : place at start of EROM1_region { block cy_xip };
234236

235237
/* RAM */
236238
place at start of IRAM1_region { readwrite section .intvec_ram};

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062_WIFI_BT/device/COMPONENT_CM4/TOOLCHAIN_ARM/cy8c6xx7_cm4_dual.sct

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ LR_SFLASH_RTOC_2 SFLASH_RTOC_2_START SFLASH_RTOC_2_SIZE
265265
; Places the code in the Execute in Place (XIP) section. See the smif driver documentation for details.
266266
LR_EROM XIP_START XIP_SIZE
267267
{
268-
.cy_xip +0
268+
cy_xip +0
269269
{
270270
* (.cy_xip)
271271
}

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062_WIFI_BT/device/COMPONENT_CM4/TOOLCHAIN_GCC_ARM/cy8c6xx7_cm4_dual.ld

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,9 +416,11 @@ SECTIONS
416416
/* Places the code in the Execute in Place (XIP) section. See the smif driver
417417
* documentation for details.
418418
*/
419-
.cy_xip :
419+
cy_xip :
420420
{
421+
__cy_xip_start = .;
421422
KEEP(*(.cy_xip))
423+
__cy_xip_end = .;
422424
} > xip
423425

424426

0 commit comments

Comments
 (0)