21.10.1 configure_design_initialization_data

Description

This Tcl command sets the parameter values needed for generating initialization data.

configure_design_initialization_data \
    [-second_stage_start_address {sNVM address for the second initialization client}] \
    [-third_stage_uprom_start_address {uPROM address for the third initialization stage client}] \
    [-third_stage_spi_start_address {SPI address for the third initialization stage client}] \
    [-third_stage_snvm_start_address {sNVM address for the third initialization stage client}] \
    [-third_stage_spi_type {SPIFLASH_NO_BINDING_PLAINTEXT | SPIFLASH_BINDING_DEFAULT | SPIFLASH_BINDING_UEK1 | SPIFLASH_BINDING_UEK2}] \
    [-third_stage_spi_clock_divider {1 | 2 | 4 | 6}] \
    [-init_timeout {int between 1 and 128 seconds}] \
    [-auto_calib_timeout {Auto Calibration timeout value in milliseconds}] \
    [-broadcast_RAMs {0 | 1}] \
    [-custom_cfg_file {Initialization file for custom configuration}]

Arguments

ParameterTypeDescription
second_stage_start_addressstringString parameter for the start address of the second stage initialization client. Specified as a 32-bit hexadecimal string. The first stage client is always placed in sNVM, so it must be a valid sNVM address aligned on a page boundary. There are 221 sNVM pages and each page is 256 bytes long, so the address will be between 0 and DC00.
Note: Although the actual size of each page is 256 bytes, only 252 bytes are available to the user. The first stage initialization client is always added to SNVM at 0xDC00 (page 220). So the valid addresses for the second stage initialization client are 0x0 (page 0) to 0xDB00 (page 219).
third_stage_uprom_start_addressstringString parameter for the uPROM start address of the third stage initialization client. This parameter is optional. Specified as a 32-bit hexadecimal string and must be valid uPROM address aligned on a block boundary.
third_stage_spi_start_addressstringString parameter for the sNVM start address of the third stage initialization client. This parameter is optional. Specified as a 32-bit hexadecimal string and must be valid sNVM address.
third_stage_snvm_start_addressstringString parameter for the SPIFLASH start address of the third stage initialization client. This parameter is optional. Specified as a32-bit hexadecimal string and must be valid SPIFLASH address.
third_stage_spi_typestringThe value must be one of SPIFLASH_NO_BINDING_PLAINTEXT or SPIFLASH_BINDING_DEFAULT or SPIFLASH_BINDING_UEK1 or SPIFLASH_BINDING_UEK2. This parameter determines the valid value for parameter ‘third_stage_start_address’.
third_stage_spi_clock_dividerintegerSpecifies the clock frequency appropriate for the SPIFLASH memory on board. The value can be 1, 2, 4, or 6. The default value is 1 which is 80 MHz. The other values are 2-40 MHz, 4-20 MHz and 6-13.33 Mhz.
init_timeoutintegerTimeout value in seconds. Initialization is aborted if it does not complete before timeout expires. The value can be between 1 and 128. The default value is 128.
auto_calib_timeoutintegerThe Auto Calibration Time Out value specifies the time out before which the IO Calibration instructions must be completed. The default value is 3000 milliseconds. This time out value is applicable only for MPF100T, MPF200T, MPF300T and MPF500T devices.
broadcast_RAMsbooleanSpecifies broadcast instructions to initialize RAM's to zero's. Value can be either 0 or 1. This parameter is optional.
custom_cfg_filestringSpecifies the initialization file for custom configuration. This parameter is optional.
Return TypeDescription
NoneNone

Error Codes

Error CodeDescription
NoneParameter 'broadcast_RAMs' has illegal value.
NoneInvalid value for parameter 'Auto Calibration Timeout'.
NoneParameter 'auto_calib_timeout' has illegal value.
Noneinit_timeout: Invalid argument value: '85,5' (expecting integer value).
NoneParameter 'init_timeout' must be greater than or equal to 1.
NoneParameter 'init_timeout' must be less than or equal to 128.
NoneParameter 'init_timeout' has illegal value.
Nonethird_stage_spi_clock_divider: Invalid argument value: 'value' (expecting 1, 2, 4 or 6).
NoneParameter 'third_stage_spi_clock_divider' has illegal value.
Nonethird_stage_spi_type: Invalid argument value: 'value' (expecting SPIFLASH_NO_BINDING_PLAINTEXT, SPIFLASH_BINDING_DEFAULT, SPIFLASH_BINDING_UEK1 or SPIFLASH_BINDING_UEK2).
NoneParameter 'third_stage_spi_type' has illegal value.
NoneInvalid value for parameter 'SPI_third_stage_start_address'. Address must be a valid 32-bit hexadecimal string.
NoneParameter 'third_stage_spi_start_address' has illegal value.
NoneInvalid value for parameter 'sNVM_third_stage_start_address'. Address must be a valid 32-bit hexadecimal string.
NoneParameter 'third_stage_snvm_start_address' has illegal value.
NoneInvalid value for parameter 'uPROM_third_stage_start_address'. Address must be a valid 32-bit hexadecimal string.
NoneParameter 'third_stage_uprom_start_address' has illegal value.
NoneInvalid value for parameter 'second_stage_start_address'. Address must be a valid 32-bit hexadecimal string.
NoneParameter 'second_stage_start_address' has illegal value.
NoneInvalid custom configuration file: value.
NoneParameter 'custom_cfg_file' has illegal value.
NoneParameter 'param_name' is not defined. Valid command formatting is 'configure_design_initialization_data \ [-second_stage_start_address "sNVM address for the second initialization stage client"] \ [-third_stage_uprom_start_address "uPROM address for the third initialization stage client"] \ [-third_stage_snvm_start_address "sNVM address for the third initialization stage client"] \ [-third_stage_spi_start_address "SPI address for the third initialization stage client"] \ [-third_stage_spi_type "SPIFLASH_NO_BINDING_PLAINTEXT | SPIFLASH_BINDING_DEFAULT | SPIFLASH_BINDING_UEK1 | SPIFLASH_BINDING_UEK2"] \ [-third_stage_spi_clock_divider "1 | 2 | 4 | 6"] \ [-init_timeout "integer value"] \ [-auto_calib_timeout "Auto Calibration timeout value in seconds"] \ [-custom_cfg_file "Initialization file for custom configuration"] \ [-broadcast_RAMs "broadcast option to initialize RAMs to zeros"]'.

Supported Families

PolarFire®
PolarFire SoC

Example

This example initializes data with sNVM client.

configure_design_initialization_data \
            -second_stage_start_address {0x0000aa00} \
            -third_stage_uprom_start_address {0x00000000} \
            -third_stage_snvm_start_address {0x0000aa00} \
            -third_stage_spi_start_address {0x00000400} \
            -third_stage_spi_type {SPIFLASH_NO_BINDING_PLAINTEXT} \
            -third_stage_spi_clock_divider {4} \
            -init_timeout 85 \
            -auto_calib_timeout {1400} \
            -broadcast_RAMs {0}

This example initializes data with uPROM client.

configure_design_initialization_data \
            -second_stage_start_address {0x00000000} \
            -third_stage_uprom_start_address {0xfffffee2} \
            -third_stage_snvm_start_address {0x00000000} \
            -third_stage_spi_start_address {0x00000400} \
            -third_stage_spi_type {SPIFLASH_NO_BINDING_PLAINTEXT} \
            -third_stage_spi_clock_divider {4} \
            -init_timeout 45 \
            -auto_calib_timeout {2000} \
            -broadcast_RAMs {0}

This example initializes data with SPI-FLASH client.

configure_design_initialization_data \
            -second_stage_start_address {0x00000000} \
            -third_stage_uprom_start_address {0x00000000} \
            -third_stage_snvm_start_address {0x00000000} \
            -third_stage_spi_start_address {0x000AC120}
            -third_stage_spi_type {SPIFLASH_BINDING_UEK2} \
            -third_stage_spi_clock_divider {2} \
            -init_timeout 20 \
            -auto_calib_timeout {500} \
            -broadcast_RAMs {1}