| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #
- # Copyright (C) <2019-2021>
- # <Cypress Semiconductor Corporation (an Infineon company)>
- #
- source [find target/mxs40/cympn_parser.cfg]
- #
- # detects main flash size of PSoC6 devices
- #
- # tryies to get PSoC6 geometry from the:
- # 1. $MAIN_FLASH_SIZE if defined
- # 2. UDD
- #
- # arguments:
- # target_arch - the target architecture - psoc6 or psoc6_2m
- # main_reg_name - the name of main region to be set
- #
- proc psoc6_detect_geometry { target_arch main_reg_name } {
- # following priorities are used:
- # 1. MAIN_FLASH_SIZE define
- # 2. UDD
- set tgt [target current]
- set CHIPNAME [string range ${tgt} 0 [expr {[string first "." ${tgt}] - 1}]]
- global ${CHIPNAME}::MAIN_FLASH_SIZE
- set detected_main_size 0
- # 1. Use ${CHIPNAME}::MAIN_FLASH_SIZE if defined
- if { [info exists ${CHIPNAME}::MAIN_FLASH_SIZE] } {
- echo "** Use overriden Main Flash size, kb: [expr {${CHIPNAME}::MAIN_FLASH_SIZE >> 10}]"
- set detected_main_size ${CHIPNAME}::MAIN_FLASH_SIZE
- }
- # print MPN
- set main_work_size [cyp_get_mpn_work_main_size $target_arch]
- if {$detected_main_size == 0} {
- # 2. Use UDD because flash geometry is not read from register
- if { [llength $main_work_size] == 2} {
- set main_size [lindex $main_work_size 0]
- echo "** Detected Main Flash size, kb: $main_size"
- set detected_main_size [expr {$main_size * 1024}]
- }
- }
- if { ${main_reg_name} != "" } { psoc6 set_region_size ${main_reg_name} $detected_main_size }
- }
|