SWCU185G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
The COMMAND_SET_CCFG command is sent to the bootloader to configure the defined fields in the flash CCFG area that are read by the ROM boot firmware. The command sends the ACK signal in response to the command after the actual flash program operation is performed. This command does not execute any erase operation before the write operation.
The command consists of two 32-bit values that are all transferred MSB first. The first 32-bit value is the CCFG Field ID, which identifies the CCFG parameter to be written, and the second 32-bit value is the Field Value to be programmed. The command handler masks out Field Value bits not corresponding to the CCFG parameter size.
The COMMAND_SET_CCFG command can only change CCFG parameter value bits from 1 to 0.
Attempting to change any bit from 0 to 1 results in an error status that can be observed by a following COMMAND_GET_STATUS command.
Only the CCFG fields controlling device configuration during ROM boot, can be written by this command. (fields sequential from BL_CONFIG to until end).
The only way to change CCFG parameter value bits from 0 to 1 is by erasing the complete CCFG flash sector. The command sends the ACK signal in response to the command after the actual flash programming has terminated.
The programming operation fails if the CCFG area (flash top sector) is write-protected by the protect bit in FCFG1 or in CCFG.
The format of the packet including the command is as follows:
unsigned char ucCommand[11];
ucCommand[0] = <size=11>;
ucCommand[1] = <checksum>;
ucCommand[2] = COMMAND_SET_CCFG;
ucCommand[3] = Field Id[31:24];
ucCommand[4] = Field Id[23:16];
ucCommand[5] = Field Id[15:8];
ucCommand[6] = Field Id[7:0];
ucCommand[7] = Field Value[31:24];
ucCommand[8] = Field Value[23:16];
ucCommand[9] = Field Value[15:8];
ucCommand[10] = Field Value[7:0];
Defined CCFG field IDs with corresponding field values are described in Table 11-5.
Field ID | Field Value | Description |
---|---|---|
0: ID_SECTOR_PROT | Bit[31:0] – Flash sector number of sector to protect from program and erase | The sector write-protect bit in CCFG corresponding to the specified sector number is set to 0. This protects the sector from being programmed and erased. First flash sector has sector number 0. This command also sets the sticky sector protect bit in the flash wrapper registers. Be aware if protecting sector 31, which is the CCFG sector. If sector 31 is protected, none of the other CCFG parameters can be set. |
1: ID_IMAGE_VALID | Bit[31:0] - 0x0000 0000 | For the boot sequence to transfer execution control to a flash image, this Field Value must be set to the start address of the flash image vector table. |
2: ID_TEST_TAP_LCK | Bit[31:8] – Don’t care Bit[7:0] – 0xC5 = TAP unlocked | Any other value than 0xC5 forces a locked TAP after a following boot sequence |
3: ID_PWRPROF_TAP_LCK | Bit[31:8] – Don’t care Bit[7:0] – 0xC5 = TAP unlocked | Any other value than 0xC5 forces a locked TAP after a following boot sequence. |
4: ID_CPU_DAP_LCK | Bit[31:8] – Don’t care Bit[7:0] – 0xC5 = DAP unlocked | Any other value than 0xC5 forces a locked DAP after a following boot sequence. |
5: ID_AON_TAP_LCK | Bit[31:8] – Don’t care Bit[7:0] – 0xC5 = TAP unlocked | Any other value than 0xC5 forces a locked TAP after a following boot sequence. |
6: ID_PBIST1_TAP_LCK | Bit[31:8] – Don’t care Bit[7:0] – 0xC5 = TAP unlocked | Any other value than 0xC5 forces a locked TAP after a following boot sequence. |
7: ID_PBIST2_TAP_LCK | Bit[31:8] – Don’t care Bit[7:0] – 0xC5 = TAP unlocked | Any other value than 0xC5 forces a locked TAP after a following boot sequence. |
8: ID_BANK_ERASE_DIS | Bit[31:1] – Don’t care Bit[0] – 0 = Bank erase disable | If set to 0, the COMMAND_BANK_ERASE bootloader command does not force any erase operation. |
9: ID_CHIP_ERASE_DIS | Bit[31:1] – Don’t care Bit[0] – 0 = Chip erase disable | If set to 0, the start-up sequence does not perform any chip erase operation regardless of any chip erase request. |
10: ID_TI_FA_ENABLE | Bit[31:8] – Don’t care Bit[7:0] – 0xC5 = TI FA enable | Any value other than 0xC5 disables the TI FA enable functionality in a following boot. |
11: ID_BL_BACKDOOR_EN | Bit[31:8] – Don’t care Bit[7:0] – 0xC5 = Bootloader backdoor enable | Any other value than 0xC5 forces the bootloader backdoor to be disabled in a following boot sequence. |
12: ID_BL_BACKDOOR_PIN | Bit[31:8] – Don’t care Bit[7:0] – Bootloader backdoor I/O pin number | If the pin number exceeds number of I/O pins on the device, the highest I/O pin number on the device is selected. |
13: ID_BL_BACKDOOR_LEVEL | Bit[31:1] – Don’t care Bit[0] – Bootloader backdoor pin active level | 0 = Active low |
14: ID_BL_ENABLE | Bit[31:8] – Don’t care Bit[7:0] – Bootloader enable | Any value other than 0xC5 forces the bootloader to ignore any received command. |