MSP432P4xx SimpleLink Microcontroller Bootloader BSL
MSP432P4xx SimpleLink Microcontroller Bootloader BSL
The SimpleLink™ MSP432™ microcontroller (MCU) bootloader (BSL) lets users communicate with
embedded memory in the MSP432 microcontroller during the prototyping phase, final production, and in
service. Both the programmable memory (flash memory) and the data memory (RAM) can be modified as
required. Do not confuse the bootloader with the bootstrap loader programs found in some digital signal
processors (DSPs) that automatically load program code (and data) from external memory to the internal
memory of the DSP.
Contents
1 Introduction ................................................................................................................... 2
1.1 Other Resources .................................................................................................... 2
1.2 Overview of BSL Features ......................................................................................... 3
2 BSL Architecture ............................................................................................................. 4
2.1 Physical Interfaces.................................................................................................. 4
2.2 UART Protocol Definition .......................................................................................... 4
2.3 I2C Protocol Definition .............................................................................................. 4
2.4 SPI Protocol Definition ............................................................................................. 5
3 General BSL Information ................................................................................................... 5
3.1 BSL Memory Layout ................................................................................................ 5
3.2 BSL Memory Considerations ...................................................................................... 5
3.3 BSL Invocation ...................................................................................................... 5
3.4 Low-Power Mode Support ......................................................................................... 8
3.5 Debug Considerations.............................................................................................. 9
4 BSL Protocol ................................................................................................................ 10
4.1 BSL Data Packet .................................................................................................. 10
4.2 BSL Security ....................................................................................................... 10
4.3 BSL Core Commands ............................................................................................ 10
4.4 BSL Core Responses ............................................................................................. 27
4.5 BSL Core Messages .............................................................................................. 27
4.6 UART Peripheral Interface (PI) .................................................................................. 28
4.7 I2C Peripheral Interface (PI) ...................................................................................... 29
4.8 SPI Peripheral Interface .......................................................................................... 30
4.9 BSL Messages..................................................................................................... 32
5 Reprogram and Customize the BSL ..................................................................................... 33
6 MSP432P4xx BSL Version Information ................................................................................. 46
Appendix A Technical BSL Information ....................................................................................... 47
Trademarks
SimpleLink, MSP432, E2E, MSP430, Code Composer Studio are trademarks of Texas Instruments.
All other trademarks are the property of their respective owners.
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 1
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
Introduction www.ti.com
1 Introduction
To use the bootloader, a user-selectable BSL entry sequence must be applied. An added sequence of
commands initiates the desired function. A boot-loading session can be exited by continuing operation at a
defined user program address or by the reset condition.
If the device is secured by disabling JTAG, it is still possible to use the BSL. Access to the MSP432
memory through the BSL is protected against misuse by a user-defined password.
To avoid accidental overwriting of the BSL code, the code is protected in the flash by default. To prevent
unwanted source readout, any BSL command that directly or indirectly allows data reading is password
protected. For more information about password-protected commands, see Section 4.3.
To invoke the bootloader, the BSL entry sequence must be applied to dedicated pins. After that, the BSL
header character, followed by the data frame of a specific command, initiates the desired function.
2 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com Introduction
User configuration ✔ ✔
UART ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
I2C ✔ ✔ ✔ ✔ ✔ ✔
SPI ✔
USB ✔
'1xx, 2xx, 4xx' protocol ✔
Protocol
Sequence on TEST/RST ✔ ✔ ✔ ✔ ✔ ✔ ✔
Entry
Invoke mechanism
USB-to-Serial
✔
Converter (5)
BSL Scripter ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
(2) BSLDEMO ✔
Software
UART UART
MSPBSL library ✔ ✔ ✔
only only
32
Password protection 32 byte 32 byte 32 byte 32 byte 32 byte 32 byte 256 byte
byte (6)
(7)
Mass erase on incorrect password ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Completely disable the BSL using
✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Security
(1)
Refer to the device-specific data sheet for the available TI BSL protocol on these devices. TI provides a specific BSL protocol for each
flash device.
(2)
All BSL software collateral (application, examples, source code, and firmware images) is available in the BSL tool folder.
The MSP430 USB developers package includes additional USB BSL sample applications.
(3)
BSL in flash memory allows to replace the BSL with a custom version.
(4)
MSP-FET supports UART and I2C BSL communication only.
(5)
The USB-to-Serial Converter is compatible with BSLDEMO. The invocation signal is generated on the DTR pin for the RESET pin, and
on the RTS pin for the TEST pin.
(6)
F543x (non A) has a 16-byte password.
(7)
Some devices can disable mass erase on incorrect password. See the device family user's guide.
(8)
The decryption of the payload is performed by the device bootcode.
(9)
Firmware validation through CRC.
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 3
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
BSL Architecture www.ti.com
2 BSL Architecture
4 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com BSL Architecture
NOTE: When the bootcode calls the BSL, the watchdog timer is halted. This applies for the TI BSL
as well as for custom BSLs. If a custom BSL requires a running watchdog timer, the custom
BSL must configure and start it.
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 5
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
General BSL Information www.ti.com
The following C code example demonstrates how the address from the API table is used to start the BSL
and pass the BSL entry function parameters by the application:
#define BSL_PARAM 0xFC48FFFF // I2C slave address = 0x48, Interface selection = Auto
#define BSL_API_TABLE_ADDR 0x00202000 // Address of BSL API table
#define BSL_ENTRY_FUNCTION (*((uint32_t *)BSL_API_TABLE_ADDR))
To call the BSL from interrupt routine service, the NVIC IABR register must be cleared before invoking the
BSL. The following examples demonstrates the BSL invocation by P6.7 which is set with low active
interrupt.
//variable detect if we interrupt occurs
volatile bool jumpToBsl = false;
int main()
{
// Stop watchdog
MAP_WDT_A_holdTimer();
6 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com General BSL Information
while(1)
{
MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
__delay_cycles(2000000);
if (jumpToBsl)
{
jumpToBsl = false;
MAP_Interrupt_disableMaster();
NVIC->ICER[0] = 0xFFFF;
NVIC->ICPR[0] = 0xFFFF;
NVIC->ICER[1] = 0xFFFF;
NVIC->ICPR[1] = 0xFFFF;
// Call the BSL with given BSL parameters
((void (*)())BSL_ENTRY_FUNCTION)((uint32_t)BSL_PARAM);
}
}
}
...
void PORT6_IRQHandler(void)
{
uint32_t status;
status = MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P6);
MAP_GPIO_clearInterruptFlag(GPIO_PORT_P6, status);
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 7
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
General BSL Information www.ti.com
NOTE: The hardware-based BSL invocation enable is different from the "BSL enable" in the boot-
override fields. The hardware-based BSL invocation enable is not affected by using the "BSL
Enable" field of the boot override mailbox. The user must configure the hardware-based BSL
invoke using the boot-override mailbox with the "BSL hardware invoke parameters".
For example, assume a user wants to use the I2C mode of BSL with a slave address of 0x42, and wants
to use bit 0 of port 1 at level 1 as the BSL entry sequence. The user must populate the mailbox command
of BSL_PARAMS with the following:
1. BSL enable = 0x0
2. BSL start address = TI BSL API table address
3. BSL hardware invocation parameters = 0x7C429F80.
Bit 31 = 0 (Enable)
Bits 25:16 = 0x42 (I2C address)
Bits 15:13 = 0x4 (I2C)
Bit 12 = 1 (Level 1)
Bits 6:4 = 0x0 (BIT0)
Bits 3:0 = 0x0 (PORT1)
After this, the user must issue a reboot reset into the device to enable the hardware-based BSL invocation
in the system. From then on, the device enters BSL whenever it finds the sequence as provided in
Figure 2 (this figure is applicable for the previous example).
RSTn
P1.0
RSTn
P1.0
NOTE: Upon LPM4.5 entry, the BSL sets the I/Os to input direction. Make sure the device I/Os are
terminated properly in the board design.
8 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com General BSL Information
NOTE: If the debugger is used to wake up the BSL from LPM4.5, the BSL does not enter LPM4.5
again as long as the debugger keeps SYSPWRUPREQ alive.
Debug symbols for the MSP432 BSL are available for download in the "MSP432 MCUs Custom BSL
Package" available on the MSP BSL tool folder. Debugging DriverLib in ROM on MSP432P4xx
Microcontrollers describes how to load DriverLib debug symbols into an existing Code Composer Studio™
IDE project. The same method is applicable for the MSP432 BSL debug symbols to debug the BSL.
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 9
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
BSL Protocol www.ti.com
4 BSL Protocol
10 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com BSL Protocol
Length
A byte containing a value from 1 to 255 describing the number of bytes to be transmitted or used in a
CRC. In the case of multiple length bytes, they are combined together as described to form a larger value
describing the number of required bytes.
–
No data required. No delay should be given, and any subsequently required data should be sent as the
immediate next byte.
Description
The BSL core writes bytes D1 through Dn starting from the location specified in the address fields. This
command has been kept for backward compatibility with MSP430 BSL and allows addressing the lower
24 bits of the device.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x10
Command Address
Address where the received data should be written.
Command Data
Command consists of the data D1 through Dn to be written. The command consists of n bytes, where
n has a maximum of 256.
Command Returns
BSL acknowledgment and a BSL core response with the status of the operation.
See Table 9 for more information on BSL core responses.
Command Example
Write data 0x76543210 to address 0x0001:0000:
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 11
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
BSL Protocol www.ti.com
Description
The BSL core writes bytes D1 through Dn starting from the location specified in the address fields. This
command allows the BSL to address the device with the full 32 bit range.
Memory accesses to addresses below 0x20000000 are treated as flash accesses, accesses starting
from 0x20000000 are treated as RAM accesses. To write to the SRAM region 0x1000000 to
0x1100000, the alias starting at 0x20000000 must be used.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x20
Command Address
Address where the received data should be written.
Command Data
Command consists of the data D1 through Dn to be written. The command consists of n bytes, where
n has a maximum of 256.
Command Returns
BSL acknowledgment and a BSL core response with the status of the operation.
See Table 9 for more information on BSL core responses.
Command Example
Write data 0x76543210 to address 0x0001:0000:
12 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com BSL Protocol
4.3.3 RX Password
Table 8 shows the RX password format.
Table 8. RX Password
BSL BSL Core
Protected CMD A0 A1 A2 A3 Data
Command Response
RX Password No 0x21 – – – – D1…D256 Yes
Description
The BSL core receives the password contained in the packet and unlocks the BSL protected
commands if the password matches the top 256 bytes in the BSL interrupt vector table (located
between addresses 0x0 to 0xFF). When an incorrect password is given, a Boot Override factory reset
is initiated. This means all code in flash main memory is erased, but not Information Memory.
When a mass erase is performed, the password is always be 0xFF for all bytes. This is commonly
used to gain access to an empty device or to load a new application to a locked device without
password.
Protection
This command is not password protected.
Command
0x11
Command Address
N/A
Command Data
The command data is 256 bytes long and contains the device password.
Command Returns
BSL acknowledgment and a BSL core response with the status of the operation.
See Table 9 for more information on BSL core responses.
Command Example
Unlock a blank device:
D17 D18 D19 D20 D21 D22 D23 D24 D25 D26
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
D27 D28 D29 D30 D31 D32 D33 D34 D35 D36
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
D37 D38 D39 D40 D41 D42 D43 D44 D45 D46
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 13
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
BSL Protocol www.ti.com
Description
All code flash (main or information flash) in the MSP432 MCU in the sector corresponding to the
address is erased except for areas defined as IP Protected secure zones. This function does not erase
RAM.
Protection
This command is password protected.
Command
0x12
Command Address
Any address (24 bits) in the sector for which erase is to be performed.
Command Data
N/A
Command Returns
BSL acknowledgment and a BSL core response with the status of the operation.
See Table 9 for more information on BSL core responses.
Command Example
Initiate a Erase sector at address 0x0020:0000:
14 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com BSL Protocol
Description
All code flash (main or information flash) in the MSP432 MCU in the sector corresponding to the
address is erased except for areas defined as IP Protected secure zones. This function does not erase
RAM.
Protection
This command is password protected.
Command
0x22
Command Address
Any address (32 bits) in the sector for which erase is to be performed.
Command Data
N/A
Command Returns
BSL acknowledgment and a BSL core response with the status of the operation.
See Table 9 for more information on BSL core responses.
Command Example
Initiate a Erase sector at address 0x0020:0000:
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 15
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
BSL Protocol www.ti.com
Description
All code flash in the MSP432 MCU is erased except for areas defined as IP protected secure zones.
This function does not erase Information Memory and RAM.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x15
Command Address
N/A
Command Data
N/A
Command Returns
BSL acknowledgment and a BSL core response with the status of the operation.
Command Example
Initiate a mass erase:
16 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com BSL Protocol
Description
This command is used to initiate a reboot-reset into the MSP432 MCU. After the reboot reset it takes
approximately 10 ms before the BSL is started again.
Protection
This command is not password protected.
Command
0x25
Command Address
N/A
Command Data
N/A
Command Returns
None. The devices resets after successfully receiving the command.
Command Example
Initiate a reboot reset into the MSP432 MCU:
BSL Response:
None
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 17
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
BSL Protocol www.ti.com
Description
The MSP432 device performs a 16-bit CRC check using the CCITT standard. The address given is the
first
byte of the CRC check. Two bytes are used for the length.
See the CRC chapter of the MSP432P4xx SimpleLink™ Microcontrollers Technical Reference Manual
for more details on the CRC that is used.
This command is retained from MSP430 for backward compatibility and is capable of address device
memory with up to 24 bits of address.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x16
Command Address
Address to begin the CRC check.
Command Data
The 16-bit length of the CRC check. D1 is the low byte of the length, and D2 is the high byte of the
length.
Command Returns
BSL acknowledgment and a BSL core response with the CRC value.
See Table 9 for more information on BSL core responses.
Command Example
Perform a CRC check from address 0x0000:4400 to 0x0000:47FF (size of 1024):
BSL response where 0x55 is the low byte of the calculated checksum and 0xAA is the high byte of the
calculated checksum:
18 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com BSL Protocol
Description
The MSP432 device performs a 16-bit CRC check using the CCITT standard. The address given is the
first
byte of the CRC check. Two bytes are used for the length.
See the CRC chapter of the MSP432P4xx SimpleLink™ Microcontrollers Technical Reference Manual
for more details on the CRC that is used.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x26
Command Address
Address to begin the CRC check.
Command Data
The 16-bit length of the CRC check. D1 is the low byte of the length, and D2 is the high byte of the
length.
Command Returns
BSL acknowledgment and a BSL core response with the CRC value.
See Table 9 for more information on BSL core responses.
Command Example
Perform a CRC check from address 0x0000:4400 to 0x0000:47FF (size of 1024):
Heade
Length Length CMD A0 A1 A2 A3 D1 D2 CKL CKH
r
0x80 0x07 0x00 0x26 0x00 0x44 0x00 0x00 0x00 0x04 0xF7 0xE6
BSL response where 0x55 is the low byte of the calculated checksum and 0xAA is the high byte of the
calculated checksum:
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 19
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
BSL Protocol www.ti.com
4.3.10 Load PC
Description
Causes the BSL to begin execution at the given address. As BSL code is immediately exited with this
instruction, no core response can be expected.
This command is retained from MSP430 for backward compatibility and is capable of address device
memory with up to 24 bits of address.
You must set the 'T bit' to indicate that Thumb code will be executed. For example, to set this bit when
a Thumb code application at 0x8000 is to be executed, Load PC must be called with address 0x8001.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x17
Command Address
Address to set the Program Counter.
Command Data
N/A
Command Returns
BSL acknowledgment
Load PC always return success or a BSL locked status. BSL core response with the status of the
operation is sent only if the main application returns to the BSL.
See Table 9 for more information on BSL core responses.
Command Example
Set program counter to 0x0000:4451:
The BSL does not respond after the application gains control.
20 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com BSL Protocol
4.3.11 Load PC 32
Description
Causes the BSL to begin execution at the given address. As BSL code is immediately exited with this
instruction, no core response can be expected.
Set the 'T bit' to indicate that Thumb code is to be executed. For example, to set this bit when a Thumb
code application at 0x8000 is to be executed, Load PC 32 must be called with address 0x8001.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x27
Command Address
Address to set the Program Counter.
Command Data
N/A
Command Returns
BSL acknowledgment
Load PC always return success or a BSL locked status. BSL core response with the status of the
operation is sent only if the main application returns to the BSL.
See Table 9 for more information on BSL core responses.
Command Example
Set program counter to 0x0000:4451:
The BSL does not respond after the application gains control.
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 21
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
BSL Protocol www.ti.com
Description
The BSL transmits data starting at the command address and with size command data. This command
initiates multiple packets if the size is greater than or equal to the buffer size. This command is
retained from MSP430 for backward compatibility and is supports addressing of device memory with
up to 24 bits of address.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x18
Command Address
Address to begin transmitting data from.
Command Data
The 16-bit length of the data to transmit. D1 is the low byte of the length, and D2 is the high byte of the
length.
Command Returns
BSL acknowledgment and a BSL core response with n data packets where n is:
HAJCPD
J = ceiling l p
>QBBAN OEVA F 1
For example, if 512 bytes are requested, BSL sends two packets: the first packet with a length of 262
(1 CMD + 261 data bytes) and the second with a length of 252 (1 CMD + 251 data bytes).
See Table 9 for more information on BSL core responses.
Command Example
Transmit 4 bytes of data from address 0x0000:1C00:
22 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com BSL Protocol
Description
The BSL transmits data starting at the command address and with size command data. This command
initiates multiple packets if the size is greater than or equal to the buffer size.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x28
Command Address
Address to begin transmitting data from.
Command Data
The 16-bit length of the data to transmit. D1 is the low byte of the length, and D2 is the high byte of the
length.
Command Returns
BSL acknowledgment and a BSL core response with n data packets where n is:
HAJCPD
J = ceiling l p
>QBBAN OEVA F 1
For example, if 512 bytes are requested, BSL sends two packets: the first packet with a length of 262 (1
CMD + 261 data bytes) and the second with a length of 252 (1 CMD + 251 data bytes).
See Table 9 for more information on BSL core responses.
Command Example
Transmit 4 bytes of data from address 0x0000:1C00:
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 23
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
BSL Protocol www.ti.com
Description
BSL transmits its version information.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x19
Command Address
N/A
Command Data
N/A
Command Returns
BSL acknowledgment and a BSL core response with its version number. The data is transmitted as it
appears in memory with the following data bytes:
24 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com BSL Protocol
Description
BSL initiates a factory reset boot override request through the flash boot-override mailbox. This
removes all security definitions and erases the flash main memory. After sending the factory reset
command, it takes approximately 30 ms (depending on the time to erase the flash memory) before the
BSL is started again.
Protection
This command is not password protected.
Command
0x30
Command Address
N/A
Command Data
D1...D16 is the 128-bit password for factory reset if any was saved into the device previously. If the
password for factory reset was not enabled, the content of D1...D16 is ignored.
Command Returns
BSL acknowledgment
Command Example
Request factory reset with password 0x00, 0x01, ..., 0x0F:
BSL Response:
None
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 25
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
BSL Protocol www.ti.com
Description
This command changes the baud rate for all subsequently received data packets. The command is
acknowledged with either a single ACK or an error byte sent with the old baud rate before changing to
the new one. No subsequent message packets can be expected.
Protection
This command is not password protected.
Command
0x52
Command Address
N/A
Command Data
Single byte, D1, that specifies the new baud rate to use.
D1 Baud Rate
0x01 9600
0x03 19200
0x04 38400
0x05 57600
0x06 115200
Command Returns
BSL acknowledgment (sent at the baud rate before the change)
Command Example
Change baud rate to 115200:
BSL Response:
ACK
0x00
26 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com BSL Protocol
CMD
A required field used to distinguish between a message from the BSL and a data transmission from the
BSL.
MSG
A byte containing a response from the BSL core describing the result of the requested action. This can
either be an error code or an acknowledgment of a successful operation. It should be noted, in cases
where the BSL is required to respond with data (for example, memory, version, CRC, or buffer size), no
successful operation reply occurs, and the BSL core immediately sends the data. See Table 10 for BSL
core messages.
D1, Dx
Data bytes containing the requested data.
DL, DH
Data low and high bytes, respectively, of a requested 16-bit CRC value.
NL, NH
Data bytes describing the length of the buffer size in bytes. To manage sizes above 255, the size is
broken up into a low byte and a high byte.
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 27
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
BSL Protocol www.ti.com
The BSL acknowledgment indicates any errors in the first packet. If a response other than ACK is
received, the BSL Core Response is not sent. It is important that the host programmer check this first byte
to determine if more data will be sent.
CKL, CKH
CRC checksum high and low bytes. The checksum is computed on bytes in BSL core command section
only. The BSL uses CRC-CCITT for the checksum and computes it using the MSP432 CRC module (see
the CRC chapter of the MSP432P4xx SimpleLink™ Microcontrollers Technical Reference Manual for more
details about the CRC hardware).
NL, NH
Number of bytes in BSL core data packet, broken into high and low bytes.
ACK
Sent by the BSL after the packet is received to acknowledge receiving the data correctly. This does not
imply the BSL core data is a correct command or that it was executed correctly. ACK signifies only that
the packet was formatted as expected and had a correct checksum.
28 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com BSL Protocol
2
4.7 I C Peripheral Interface (PI)
The BSL acknowledgment indicates any errors in the first packet. If a response other than ACK is
received, the BSL Core Response is not sent. It is important that the host programmer check this first byte
to determine if more data will be sent.
CKL, CKH
CRC checksum high and low bytes. The checksum is computed on bytes in BSL core command
section only. The CRC is computed using the MSP432 CRC module specification (see the CRC
chapter of the MSP432P4xx SimpleLink™ Microcontrollers Technical Reference Manual for
implementation details).
NL, NH
Number of bytes in BSL core data packet, broken into high and low bytes.
ACK
Sent by the BSL after the packet is received to acknowledge receiving the data correctly. This does not
imply the BSL core data is a correct command or that it was executed correctly. ACK signifies only that
the packet was formatted as expected and had a correct checksum.
S/A/W
I2C start sequence sent by the host programmer to the MSP432 BSL slave device. This sequence
specifies that the host would like to start a write to the device with the specified slave address. See the
eUSCI I2C mode chapter of the MSP432P4xx SimpleLink™ Microcontrollers Technical Reference
Manual for more details on I2C communication.
S/A/R
I2C start or re-start sequence sent by the host programmer to the MSP432 BSL slave device. This
sequence specifies that the host would like to start a read from the device with the specified slave
address. This does not need to be a re-start, the host programmer can send a stop followed by
another start. See the eUSCI I2C mode chapter of the MSP432P4xx SimpleLink™ Microcontrollers
Technical Reference Manual for more details on I2C communication.
STOP
I2C stop bit indicating the end of an I2C read or write.
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 29
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
BSL Protocol www.ti.com
The BSL acknowledgment indicates any errors in the first packet. If a response other than ACK is
received, the BSL Core Response is not sent. It is important that the host programmer check this first byte
to determine if more data will be sent.
CKL, CKH
CRC checksum high and low bytes. The checksum is computed on bytes in BSL core command
section only. The CRC is computed using the MSP432 CRC module specification (see the CRC
chapter of the MSP432P4xx SimpleLink™ Microcontrollers Technical Reference Manual for
implementation details).
NL, NH
Number of bytes in BSL core data packet, broken into high and low bytes.
ACK
Sent by the BSL after the packet is received to acknowledge receiving the data correctly. This does not
imply the BSL core data is a correct command or that it was executed correctly. ACK signifies only that
the packet was formatted as expected and had a correct checksum.
30 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com BSL Protocol
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 31
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
BSL Protocol www.ti.com
32 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com Reprogram and Customize the BSL
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 33
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
Reprogram and Customize the BSL www.ti.com
34 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com Reprogram and Customize the BSL
Perform the following steps to import the project the CCS and configure the build.
1. Download the latest MSP432 BSL source and project from http://software-
dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPBSL_CustomBSL432/latest/index_FDS.html.
2. Extract the files from the zip (see Figure 3).
3. Open the CCS workspace where we would like to have the BSL project (see Figure 4)
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 35
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
Reprogram and Customize the BSL www.ti.com
4. To import the project, click Project → Import CCS Project (see Figure 5).
5. Select the project the corresponds to the MCU in use (see Figure 6).
a. BSL432_MSP432P401x for MSP432P401R or MSP432P401M
b. BSL432_MSP432P4111 for MSP432P4111, MSP432P411Y, or MSP432P411V
To make a copy of the project in the current workspace, check Copy projects into workspace. If this
option is not checked, the project and source code remain in the original location, and the
workspace links to the files.
36 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com Reprogram and Customize the BSL
7. In the Build Configuration option of the Build icon, there are options available for the MSP432P4111
variants. Select the build option that is intended for the project (see Figure 8).
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 37
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
Reprogram and Customize the BSL www.ti.com
38 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com Reprogram and Customize the BSL
After the firmware image of the BSL is generated, perform the following steps:
1. Click View → Target Configurations. The Target Configurations window opens in the IDE (see
Figure 10).
2. Right click on the User Defined folder, and choose New Target Configuration (see Figure 11).
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 39
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
Reprogram and Customize the BSL www.ti.com
3. Enter the intended target configuration name, and also the location where to save this file. either in File
System, or in this case the Workspace is chosen (see Figure 12).
4. After the target configuration file is created, select the Debug Probe connection and the Device.
Figure 13 shows an example in which the connection uses the XDS200 debug probe and the
MSP432P4111 device. After making the selections, click Save.
40 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com Reprogram and Customize the BSL
5. Right-click on the target configuration BSL_P4111.ccxml, and select Launch Selected Configuration
(see Figure 14).
6. The Debug window opens. Right-click on the XDS200 connection and select Connect Target (see
Figure 15).
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 41
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
Reprogram and Customize the BSL www.ti.com
7. Select the BSL firmware image. Click Run → Load → Load Program (see Figure 16).
8. In the Load Program window, click Browse Project and select the .out file (see Figure 17).
42 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com Reprogram and Customize the BSL
9. Optionally, to perform verification, click Run → Load → Verify Program. Select the same .out file as
chosen in step 8. Figure 18 shows the console window in which the verification status is displayed.
10. From the menu bar, open the Registers and Memory Browser views. In the memory browser, the BSL
in flash is programmed at address 0x2000. The code itself start at address 0x2020 (see Figure 19).
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 43
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
Reprogram and Customize the BSL www.ti.com
11. Go to the Registers view → Core Registers → PC, enter the address 0x2020, and click Enter (see
Figure 20).
44 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
www.ti.com Reprogram and Customize the BSL
2. Select MSP432 Setting and then Erase Configuration → Erase main and information memory. Also
check Allow BSL information memory erase (see Figure 22).
3. Follow the previous Step 5 to Step 11 to execute the BSL code. The BSL code for Release mode
starts at address 0x202020.
SLAU622J – March 2015 – Revised April 2020 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) 45
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
MSP432P4xx BSL Version Information www.ti.com
Table 21, Table 22, and Table 23 list the BSL information for the MSP432P4x1x devices.
46 MSP432P4xx SimpleLink™ Microcontrollers Bootloader (BSL) SLAU622J – March 2015 – Revised April 2020
Submit Documentation Feedback
Copyright © 2015–2020, Texas Instruments Incorporated
Appendix A
SLAU622J – March 2015 – Revised April 2020
If eUSCIA or eUSCIB is the module used to implement SPI, BSL_PORTCNF_SPI field is split as shown in
Figure 25.
If eUSCIB is the module used to implement I2C, BSL_PORTCNF_I2C field is split as shown in Figure 26.
Revision History
NOTE: Page numbers for previous revisions may differ from page numbers in the current version.
Changes from August 27, 2019 to April 16, 2020 ............................................................................................................ Page
• Updated the list of supported devices in the header of the FR2xx and FR4xx columns in Table 1, BSL Overview ......... 3
• Added a checkmark in the "F1xx, F2xx, F4xx, G2xx3" column for the "MSP-BSL 'Rocket'" row in Table 1, BSL
Overview.................................................................................................................................... 3
• Added F20xx to the first column (No BSL) in Table 1, BSL Overview ............................................................. 3
• Corrected the MSP432 column in Table 1, BSL Overview .......................................................................... 3
TI PROVIDES TECHNICAL AND RELIABILITY DATA (INCLUDING DATASHEETS), DESIGN RESOURCES (INCLUDING REFERENCE
DESIGNS), APPLICATION OR OTHER DESIGN ADVICE, WEB TOOLS, SAFETY INFORMATION, AND OTHER RESOURCES “AS IS”
AND WITH ALL FAULTS, AND DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WITHOUT LIMITATION ANY
IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT OF THIRD
PARTY INTELLECTUAL PROPERTY RIGHTS.
These resources are intended for skilled developers designing with TI products. You are solely responsible for (1) selecting the appropriate
TI products for your application, (2) designing, validating and testing your application, and (3) ensuring your application meets applicable
standards, and any other safety, security, or other requirements. These resources are subject to change without notice. TI grants you
permission to use these resources only for development of an application that uses the TI products described in the resource. Other
reproduction and display of these resources is prohibited. No license is granted to any other TI intellectual property right or to any third
party intellectual property right. TI disclaims responsibility for, and you will fully indemnify TI and its representatives against, any claims,
damages, costs, losses, and liabilities arising out of your use of these resources.
TI’s products are provided subject to TI’s Terms of Sale (www.ti.com/legal/termsofsale.html) or other applicable terms available either on
ti.com or provided in conjunction with such TI products. TI’s provision of these resources does not expand or otherwise alter TI’s applicable
warranties or warranty disclaimers for TI products.
Mailing Address: Texas Instruments, Post Office Box 655303, Dallas, Texas 75265
Copyright © 2020, Texas Instruments Incorporated