Device Descriptor Table
67
SLAU367P – October 2012 – Revised April 2020
Copyright © 2012–2020, Texas Instruments Incorporated
System Resets, Interrupts, and Operating Modes, System Control Module
(SYS)
1.14.2 TLV Descriptors
The TLV descriptors follow the information block. Because the information block is always a fixed length,
the start location of the TLV descriptors is fixed for a given device family. For the MSP430FR57xx family,
this location is 01A08h. See the device-specific data sheet for the complete TLV structure and what
descriptors are available.
The TLV descriptors are unique to their respective TLV block and are always followed by the descriptor
block length.
Each TLV descriptor contains a tag field that identifies the descriptor type.
shows the currently
supported tags.
Table 1-5. Tag Values
Short Name
Value
Description
LDTAG
01h
Legacy descriptor (1xx, 2xx, 4xx families)
PDTAG
02h
Peripheral discovery descriptor
Reserved
03h
Reserved for future use
Reserved
04h
Reserved for future use
BLANK
05h
Blank descriptor
Reserved
06h
Reserved for future use
Reserved
07h
Reserved for future use
Reserved
08h
Unique Die Record
Reserved
09h-0Fh
Reserved for future use
Reserved
10h
Reserved
ADC12CAL
11h
ADC12 calibration (see
and
REFCAL
12h
REF calibration (see
ADC10CAL
13h
ADC10 calibration (see
and
Reserved
14h
Reserved for future use
RANDTAG
15h
Random Number Seed (see
Reserved
16h-1Bh
Reserved for future use
BSLTAG
1Ch
BSL Configuration
Reserved
1Dh-FDh
Reserved for future use
TAGEXT
FEh
Tag extender
Each tag field is unique to its respective descriptor and is always followed by a length field. The length
field is one byte if the tag value is 01h through 0FDh and represents the length of the descriptor in bytes.
If the tag value equals 0FEh (TAGEXT), the next byte extends the tag values, and the following two bytes
represent the length of the descriptor in bytes. In this way, a user can search through the TLV descriptor
table for a particular tag value, using a routine similar to the following pseudo code:
// Identify the descriptor ID (d_ID_value) for the TLV descriptor of interest:
descriptor_address = TLV_START address;
while ( value at descriptor_address != d_ID_value && descriptor_address != TLV_TAGEND &&
descriptor_address < TLV_END)
{
// Point to next descriptor
descriptor_address = descriptor_a (length of the current TLV block) + 2;
}
if (value at descriptor_address == d_ID_value) {
// Appropriate TLV descriptor has been found!
Return length of descriptor & descriptor_address as the location of the TLV descriptor
} else {
// No TLV descriptor found with a matching d_ID_value
Return a failing condition
}