Skip to content

Commit 6f40321

Browse files
authored
Merge pull request #10189 from kfnta/rollup
Rollup
2 parents db8a018 + 021faf2 commit 6f40321

File tree

3 files changed

+59
-100
lines changed

3 files changed

+59
-100
lines changed

targets/targets.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8121,7 +8121,7 @@
81218121
"public-ram-start": "0x08047600",
81228122
"public-ram-size": "0x200"
81238123
},
8124-
"device_name": "CY8C6247BZI-D54",
8124+
"sectors": [[268435456, 512]],
81258125
"bootloader_supported": true
81268126
},
81278127
"CY8CMOD_062_4343W": {
@@ -8153,7 +8153,7 @@
81538153
"post_binary_hook": {
81548154
"function": "PSOC6Code.complete"
81558155
},
8156-
"device_name": "CY8C6347BZI-BLD53",
8156+
"sectors": [[268443648, 512]],
81578157
"bootloader_supported": true
81588158
},
81598159
"CY8CKIT_062_4343W": {

tools/arm_pack_manager/index.json

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -462778,56 +462778,5 @@
462778462778
],
462779462779
"vendor": "Nordic Semiconductor:54"
462780462780
},
462781-
"CY8C6347BZI-BLD53": {
462782-
"core": "Cortex-M4",
462783-
"vendor": "Cypress",
462784-
"sectors": [
462785-
[
462786-
268435456,
462787-
512
462788-
]
462789-
],
462790-
"memories": {
462791-
"IROM1": {
462792-
"access": {
462793-
"execute": true,
462794-
"non_secure": true,
462795-
"non_secure_callable": false,
462796-
"peripheral": false,
462797-
"read": true,
462798-
"secure": false,
462799-
"write": true
462800-
},
462801-
"default": true,
462802-
"start": "0x10002000",
462803-
"size": "0x000FE000"
462804-
}
462805-
}
462806-
},
462807-
"CY8C6247BZI-D54": {
462808-
"core": "Cortex-M4",
462809-
"vendor": "Cypress",
462810-
"sectors": [
462811-
[
462812-
268435456,
462813-
512
462814-
]
462815-
],
462816-
"memories": {
462817-
"IROM1": {
462818-
"access": {
462819-
"execute": true,
462820-
"non_secure": true,
462821-
"non_secure_callable": false,
462822-
"peripheral": false,
462823-
"read": true,
462824-
"secure": false,
462825-
"write": true
462826-
},
462827-
"start": "0x10040000",
462828-
"size": "0xB8000"
462829-
}
462830-
}
462831-
},
462832462781
"version": "0.2.0"
462833462782
}

tools/config/__init__.py

Lines changed: 57 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -649,16 +649,21 @@ def deliver_into(self):
649649
@property
650650
def sectors(self):
651651
"""Return a list of tuples of sector start,size"""
652-
cache = Cache(False, False)
653-
if self.target.device_name not in cache.index:
654-
raise ConfigException("Bootloader not supported on this target: "
655-
"targets.json `device_name` not found in "
656-
"arm_pack_manager index.")
657-
cmsis_part = cache.index[self.target.device_name]
658-
sectors = cmsis_part['sectors']
659-
if sectors:
660-
return sectors
661-
raise ConfigException("No sector info available")
652+
try:
653+
return self.target.sectors
654+
except AttributeError:
655+
cache = Cache(False, False)
656+
if self.target.device_name not in cache.index:
657+
raise ConfigException(
658+
"Bootloader not supported on this target: "
659+
"targets.json `device_name` not found in "
660+
"arm_pack_manager index."
661+
)
662+
cmsis_part = cache.index[self.target.device_name]
663+
sectors = cmsis_part['sectors']
664+
if sectors:
665+
return sectors
666+
raise ConfigException("No sector info available")
662667

663668
def _get_cmsis_part(self):
664669
if not hasattr(self.target, "device_name"):
@@ -745,6 +750,48 @@ def get_all_active_memories(self, memory_list):
745750

746751
try:
747752
cmsis_part = self._get_cmsis_part()
753+
present_memories = set(cmsis_part['memories'].keys())
754+
valid_memories = set(memory_list).intersection(present_memories)
755+
756+
memories = self._get_mem_specs(
757+
["read", "write" if active_memory == "RAM" else "execute"],
758+
cmsis_part
759+
)
760+
for memory in valid_memories:
761+
mem_start = memories[memory]["start"]
762+
mem_size = memories[memory]["size"]
763+
if memory in ['IROM1', 'PROGRAM_FLASH']:
764+
start, size = self._get_primary_memory_override("rom")
765+
if start:
766+
mem_start = start
767+
if size:
768+
mem_size = size
769+
memory = 'ROM'
770+
elif memory in ['IRAM1', 'SRAM_OC', 'SRAM_UPPER', 'SRAM']:
771+
if (self.has_ram_regions):
772+
continue
773+
start, size = self._get_primary_memory_override("ram")
774+
if start:
775+
mem_start = start
776+
if size:
777+
mem_size = size
778+
memory = 'RAM'
779+
else:
780+
active_memory_counter += 1
781+
memory = active_memory + str(active_memory_counter)
782+
783+
if not isinstance(mem_start, int):
784+
mem_start = int(mem_start, 0)
785+
if not isinstance(mem_size, int):
786+
mem_size = int(mem_size, 0)
787+
available_memories[memory] = [mem_start, mem_size]
788+
789+
if not available_memories:
790+
raise ConfigException(
791+
"Bootloader not supported on this target. "
792+
"No memories found."
793+
)
794+
return available_memories
748795
except ConfigException:
749796
""" If the target doesn't exits in cmsis, but present in targets.json
750797
with ram and rom start/size defined"""
@@ -764,43 +811,6 @@ def get_all_active_memories(self, memory_list):
764811
available_memories[active_memory] = [start, size]
765812
return available_memories
766813

767-
present_memories = set(cmsis_part['memories'].keys())
768-
valid_memories = set(memory_list).intersection(present_memories)
769-
770-
memories = self._get_mem_specs(
771-
["read", "write" if active_memory == "RAM" else "execute"],
772-
cmsis_part
773-
)
774-
for memory in valid_memories:
775-
mem_start = memories[memory]["start"]
776-
mem_size = memories[memory]["size"]
777-
if memory in ['IROM1', 'PROGRAM_FLASH']:
778-
start, size = self._get_primary_memory_override("rom")
779-
if start:
780-
mem_start = start
781-
if size:
782-
mem_size = size
783-
memory = 'ROM'
784-
elif memory in ['IRAM1', 'SRAM_OC', 'SRAM_UPPER', 'SRAM']:
785-
if (self.has_ram_regions):
786-
continue
787-
start, size = self._get_primary_memory_override("ram")
788-
if start:
789-
mem_start = start
790-
if size:
791-
mem_size = size
792-
memory = 'RAM'
793-
else:
794-
active_memory_counter += 1
795-
memory = active_memory + str(active_memory_counter)
796-
797-
if not isinstance(mem_start, int):
798-
mem_start = int(mem_start, 0)
799-
if not isinstance(mem_size, int):
800-
mem_size = int(mem_size, 0)
801-
available_memories[memory] = [mem_start, mem_size]
802-
803-
return available_memories
804814

805815
@property
806816
def ram_regions(self):

0 commit comments

Comments
 (0)