Append appropriate PASSWORD
(JTAG_SWD_LOCK_UNENC_PWD,
SEC_ZONEx_UNENC_PWD) to the
payload at the end of the PAYLOAD
Update
firmware or data
(PAYLOAD)
PASSWORD
AES-CBC encryption
for password incorporated data using
AESKEY
(JTAG_SWD_LOCK_AES_SECKEYS,
SEC_ZONEx_AES_SECKEYS)
Special care to be taken to encrypt
password last.
Encrypted
firmware or data
(ENCPAYLOAD)
Update
firmware or data
(PAYLOAD)
Device Security
277
SLAU356I – March 2015 – Revised June 2019
Copyright © 2015–2019, Texas Instruments Incorporated
System Controller (SYSCTL)
4.8.5.3.1 Unencrypted Update: JTAG and SWD Locked Device
Unencrypted update of device firmware or data can be done by invoking the BSL and then doing a data or
code download through the BSL into the required address. This is similar to the case of the unsecure
device update except that an unencrypted updated does not work for data or code being updated into an
IP protected secure zone flash memory. For firmware or data updates to IP protected secure zones, see
.
4.8.5.3.2 Encrypted Update: JTAG and SWD Locked Device
Firmware or data update can be done to the device by taking advantage of the Encrypted Update boot
override mode. This provides an option to encrypt the data at source before the transmitting it to the
device.
A data setup phase is needed before using the encrypted update. This should be done by the host system
which intends to initiate the firmware or data update to MSP432P4xx devices (see
). The
password shown here should be the same as the password used when enabling the JTAG and SWD lock
in the boot override mailbox (JTAG_SWD_LOCK_UNENC_PWD). This password is first appended to the
end of the firmware or data to be updated and then taken through an AES-CBC encryption. The encrypted
payload is now transmitted through BSL into a free space in Bank 1 of the device main flash memory.
This is followed by a boot override into the design with the command JTAG_SWD_LOCK_ENC_UPDATE.
See
for details on boot-overrides.
The device boot code now finds a boot override command. Boot code decrypts the encrypted packet and
checks for the authenticity by comparing the JTAG_SWD_LOCK_UNENC_PWD from the decrypted
packet against the value that were provided during JTAG and SWD lock setup and then performs the
update if the passwords match. The status of the update is indicated in the ACK field of the specific
command in the boot override mailbox.
The JTAG and SWD Lock parameters: JTAG_SWD_LOCK_AES_INIT_VECT,
JTAG_SWD_LOCK_AES_SECKEYS and JTAG_SWD_LOCK_UNENC_PWD act as master set of
parameters for the device. Hence, they can also be used to perform a data or firmware update to the
device IP protected regions along with the other flash main memory regions of the device.
Figure 4-2. Data Setup for Encrypted Update
4.8.5.4
In-Field Updates: Secure Device With IP Protection Enabled
Firmware or data load to an IP protected secure zone is done by invoking the BSL and then subsequently
invoking the boot-override mode of the device. The update could be any of the two following categories:
1. Unencrypted update
2. Encrypted update