11 Code Protection Fuse
12 BSL Internal Settings and Resources
12.1 Chip Identification and BSL Version
12.2 Vectors to Call the BSL Externally
12.3 Initialization Status
Code Protection Fuse
BSL versions 2.00 and higher have enhanced security features. These features are controlled by the flash
data word located beneath the interrupt vector table addresses (e.g., for the MSP430F2131, address
0xFFDE). If this word contains:
• 0x0000: The flash memory will not be erased if an incorrect BSL password has been received by the
target.
• 0xAA55: The BSL is disabled. This means that the BSL will not be started with the default initialization
sequence shown in Section 2 .
• All other values: If an incorrect password is transmitted, the entire flash memory address space will be
erased automatically.
Note: The user must take care of password update after modifying the interrupt vectors and
initiating another BSL session. It is also strongly recommended to initialize unused
interrupt vectors to increase data security.
Once the JTAG fuse (code protection fuse) is blown, no further access to the JTAG/test feature is
possible. The only way to get any memory read/write access is via the bootstrap loader by applying the
correct password.
However, it is not possible for the BSL to blow the JTAG fuse. If fuse blowing is needed, use JTAG
programming techniques.
The following paragraphs describe BSL internal settings and resources. Because the same device may
have implemented different BSL versions, it is very important for the BSL communication program to know
the settings and resources. Resources could be either device dependent (e.g., RX/TX pins) or
BSL-version dependent (e.g., byte/word access). The following paragraphs describe the possible
variations.
The upper 16 bytes of the boot-ROM (0FF0h–0FFFh) hold information about the device and BSL version
number in BCD representation. This is common for all devices and BSL versions:
• 0FF0h–0FF1h: Chip identification (e.g., F413h for an F41x device).
• 0FFAh–0FFBh: BSL version number (e.g., 0130h for BSL version V1.30).
Please see the MSP430 device/BSL version assignment in Chapter A .
The entry part of the boot ROM holds the calling vectors for BSL access by program:
• 0C00h: Vector for cold-start (mnemonic: BR &0C00h)
• 0C02h: Vector for warm-start (mnemonic: BR &0C02h). V1.30 or higher.
• 0C04h: Vector(s) for future use. This table is expandable.
Note: A warm-start does not modify the stack pointer.
When activating the BSL, the following settings take effect:
• Stop Watchdog Timer
• Disable all interrupts (GIE = 0)
• V1.10:
SLAA089D – December 1999 – Revised August 2006 Features of the MSP430 Bootstrap Loader 13
Submit Documentation Feedback