Application Report SPRABD7C – June 2010 – Revised July 2015 Using the TMS320C5515/14/05/04 Bootloader ABSTRACT This application report describes the features of the on-chip ROM for the TMS320C5515/14/05/04 devices. Included is a description of the bootloader and how to interface with it for each of the possible boot devices, as well as instructions for generating a boot-image to store on an external device. The C5515/14/05/04 bootloader uses a USB executable file that can be downloaded from: http://www.ti.com/lit/zip/sprabd7. 1 2 3 4 Contents Introduction ................................................................................................................... 2 Bootloader Operation........................................................................................................ 3 Boot Images .................................................................................................................. 7 References .................................................................................................................. 17 List of Tables ...................................................................................... .............................................................................................. C5515/14/05/04 Unencrypted Boot-Image Format ...................................................................... C5515/14/05/04 Encrypted Boot-Image Format ......................................................................... 1 C5515/14/05/04 ROM Memory Map 2 2 Supported NAND Device IDs 5 3 4 SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated 8 9 1 Introduction www.ti.com 1 Introduction 1.1 On-Chip ROM The on-chip ROM contains several factory-programmed sections. • Algorithm tables to be referenced by drivers to reduce application data size • Application programming interface (API) tables for referencing ROM API functions in applications • Bootloader program Table 1. C5515/14/05/04 ROM Memory Map 1.2 Starting Byte Address Contents FE_0000h LCD Table FE_0860h WMA Encode Table FE_9FA0h WMA Decode Table FE_D4C4h MP3 Table FE_F978h Equalization Table FE_FB14h WM Voice Table FF_64B4h API Table FF_683Ch Bootloader Code (and other built-in API functions) Bootloader Features The bootloader is always invoked after reset. The function of the bootloader is to transfer user code from an external source to RAM. Once the transfer is completed, the bootloader transfers control to this user code. To ensure that the code cannot be accessed and read outside of the system, the code residing externally may be encrypted. The bootloader is responsible for bootloading the code from an external device (NAND Flash, NOR Flash, inter-integrated circuit (I2C) EEPROM, serial peripheral interface (SPI) EEPROM, MultiMedia card/secure data memory card (MMC/SD) and universal serial bus (USB)), decrypting it if necessary, and writing it into DSP memory (on-chip or off-chip). NOTE: SARAM31 (byte address 0x4E000 – 0x4FFFF) is reserved for the bootloader. The major features of the C5515/14/05/04 bootloader are: • Boot both encrypted and unencrypted images from NOR, NAND, 16-bit SPI EEPROM, Flash, and I2C EEPROM, except for 24 bit SPI serial flash which supports only unencrypted images. • Boot encrypted images from MMC/SD and USB. • Support reauthoring for NOR, NAND, 16-bit SPI EEPROM, I2C EEPROM, and MMC/SD. The bootloader also has the following features: • Port-addressed register configuration during boot • Programmable delay during register configuration Code Composer Studio is a trademark of Texas Instruments. All other trademarks are the property of their respective owners. 2 Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Introduction www.ti.com 1.3 Supported External Devices The bootloader is responsible for bootloading the code from an unencrypted or encrypted external device. 1.3.1 Unencrypted External Devices All external devices support unencrypted booting. 1.3.2 Encrypted External Devices Encrypted booting is available using three encrypted boot image formats: • Not bound to device • Requesting to be bound to the device • Bound to device All external devices support all three encrypted boot image formats. After bootloading from an external device, the bootloader decrypts the boot image, if necessary, and writes it into DSP memory (on-chip or off-chip). 2 Bootloader Operation 2.1 Bootloader Initialization When the bootloader begins execution, it performs some initialization prior to attempting to load code. • All peripherals are idled; the bootloader un-idles peripherals as it uses them. • CPU clock setup – If CLK_SEL = 0, the bootloader powers up the phase-locked loop (PLL) and sets its output frequency to 12.288 MHz (multiply 32768 Hz RTC clock by 375). – If CLK_SEL = 1, the bootloader bypasses the PLL and uses CLKIN. Note that CLKIN is expected to be 11.2896 MHz, 12.0 MHz, or 12.288 MHz. • The low-voltage detection circuit is disabled to prevent trim setup (next step) from causing an unnecessary reset. • The bootloader reads the trim values from the e-fuse farm and writes them into the analog trim registers. 2.2 Boot Devices The C5515/14/05/04 has a fixed order in which it checks for a valid boot-image on each supported boot device. The device order is NOR Flash, NAND Flash, 16-bit SPI EEPROM, I2C EEPROM, and MMC/SD. The first device with valid boot-image is used to load and execute user code. If none of these devices has a valid boot-image, the bootloader modifies the CPU clock setup as follows: • If CLK_SEL = 0, the bootloader powers up the PLL and sets its output frequency to 36.864 MHz (multiply 32768 Hz RTC clock by 1125). • If CLK_SEL = 1, the bootloader powers up the PLL and sets it to multiply CLKIN by 3. This CPU clock setup change is required to meet the minimum frequency needed by the USB module. Next, the bootloader goes into an endless loop checking for data received on the USB. If a valid bootimage is received, it is used to load and execute user code. If no valid boot-image is received, the bootloader continues to monitor the devices. During this endless loop, if the time since the trim setup exceeds 200 ms, the bootloader re-enables the low-voltage detection circuit; this is done to prevent leaving the low-voltage detection disabled for an extended period of time. For a description of the valid boot-image formats, see Section 3. The following subsections describe details for each supported boot device. SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated 3 Bootloader Operation 2.2.1 www.ti.com NOR Flash The bootloader supports booting from a NOR Flash attached to any of the four external memory interface (EMIF) chip-selects. The NOR Flash must use a 16-bit data bus. Any 16-bit NOR Flash device should work for read-only use. To support bootloader reauthoring, which requires writing to the device, CFI-compliant bottom-boot-block and uniform-boot-block devices should work. Top-boot-block devices may or may not work (vendor dependent due to non-standard CFI implementations). NOTE: The bootloader requires NOR Flash that supports a reset command (0xF0 on data). The following is a list of NOR Flash devices that are explicitly supported for reauthoring (writing). Other devices may be supported. • Spansion S29GL016A • Spansion S29AL016M • MXIC MX29LV160T • Spansion S29GL032A • SST SST39LF/VF200A • SST SST39LF/VF400A • SST SST39LF/VF800A 2.2.2 NAND Flash The bootloader supports booting from a NAND Flash attached to any of the four EMIF chip-selects. The NAND Flash must use an 8-bit data bus, and its chip-enable and ready/busy signal must be connected to the C5515/14/05/04. The bootloader supports both small-block and large-block NAND Flash devices. The NAND Flash must use the SSFDC format. The bootloader reads the Boot Image Page Pointer (BIPP) from each of the first 256 physical pages until a non-0 value is found. If the BIPP on page-0 is 0, all other pages must start with the 3-byte signature 0xE9 0x00 0x00 in order to use the BIPP from that page. The BIPP is located in bytes 0xC4 through 0xC6 of the page. Once a valid BIPP is found, this value is used by the bootloader to determine which page contains the boot-image to load. Note that the boot-image cannot reside on the same page as the BIPP. See Table 2 for a list of supported NAND Device Ids. 4 Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Bootloader Operation www.ti.com Table 2. Supported NAND Device IDs 2.2.3 Device ID Columns Rows 01h 2 2 33h 1 2 35h 1 2 36h 1 3 39h 1 2 43h 1 2 45h 1 2 46h 1 3 53h 1 2 55h 1 2 56h 1 3 6Bh 1 2 72h 1 3 73h 1 2 74h 1 3 75h 1 2 76h 1 3 78h 1 3 79h 1 3 A1h 2 2 B1h 2 2 C1h 2 2 E3h 1 2 E5h 1 2 E6h 1 2 F1h 2 2 Default 2 3 16-Bit Serial Peripheral Interface (SPI) EEPROM The bootloader supports booting from an SPI EEPROM with the following requirements for the external device: • The device must support at least a 500 kHz SPI clock. • The device must be connected to SPI CS0 and act as an SPI slave. • The device uses 2 bytes (16 bits) for internal addressing (up to 64kB). • The device must have the capability to auto-increment its internal address counter to allow sequential reads from the device. • The device can be connected to either valid pin-mapping for SPI; there are two distinct pin-mappings available. The bootloader attempts to communicate on each SPI pin-mapping, one at a time. SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated 5 Bootloader Operation 2.2.4 www.ti.com 24-Bit SPI Serial Flash The bootloader supports booting from an SPI Flash with the following requirements for the external device. • The device must support at least a 500 kHz SPI clock. • The device must be connected to SPI CS0 and act as an SPI slave. • The device uses 3 bytes (24 bits) for internal addressing (up to 16MB). • The device must have the capability to auto-increment its internal address counter to allow sequential reads from the device. • The device can be connected to either valid pin-mapping for SPI (there are two distinct pin-mappings available). The bootloader attempts to communicate on each SPI pin-mapping, one at a time. • Any and all write-protect features must be disabled if re-authoring is needed. The bootloader will not attempt to disable these features. 2.2.5 Inter-integrated Circuit (I2C) EEPROM The bootloader supports booting from an I2C EEPROM with the following requirements for the external device: • The device must support the fast I2C specification (400 kHz). • The device must respond to slave address 0x50 (7-bit address). • The device uses 2 bytes for internal addressing (up to 64kB). • The device must have the capability to auto-increment its internal address counter to allow sequential reads from the device. 2.2.6 MultiMedia Card (MMC) The bootloader supports booting from an MMC device with the following requirements for the external device • The device must be connected to the MMC/SD0 interface. • The boot-image must be in the first partition with filename boot5505.bin. 2.2.7 Secure Data (SD) The bootloader supports booting from an SD device with the following requirements for the external device: • The device must be connected to the MMC/SD0 interface. • The SD device must comply with SD specification v1.1, or v2.0 for FAT32. • The SD device must use the SD insecure mode (see SD specification). Note that this does not refer to the boot-image security; boot-images must be the secure type for use with SD. • The boot-image must be in the first partition with filename boot5505.bin. 2.2.8 Universal Serial Bus (USB) The bootloader supports booting from the USB. The bootloader uses bulk-endpoint 1, vendor-id 0x0451, and product-id 0x9010. 6 Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Bootloader Operation www.ti.com 2.3 Register Configuration Once the bootloader detects a valid boot-image signature (see Section 3), the first data that is used from the boot-image is the optional register configuration data. This data allows you to setup peripheral portaddressed registers during the boot process, and before the code sections are copied. This feature provides the capability to change peripheral registers for specific purposes, such as configuring the EMIF external memory spaces. Since some register configurations may have an associated latency that must be observed before continuing, a delay feature is also available (as part of the register configuration data). For a description of how to insert register configuration data, including delays, into a boot-image, see Section 3.3. 2.4 Code Sections After the optional register configuration is complete, the bootloader copies all of the code sections from the boot-image to RAM. Each of these code sections may be actual code or just data; these sections are typically defined by the link-control file. 2.5 Bootloader Completion After all code sections have been copied, the bootloader waits to ensure that at least 200 ms has elapsed since the trim setup, re-enables the low-voltage detection circuit, and then branches to the entry-point address specified in the boot-image. At this point, the bootloader’s task is complete, and the user application is executing. 3 Boot Images The bootloader’s primary function is to transfer user code into RAM and then transfer control to this user code. The user code must be formatted into a boot-image format supported by the bootloader. There are two distinct formats supported by the C5515/14/05/04 bootloader: an unencrypted boot-image format and an encrypted boot-image format. These two formats store the same information, with the only difference being the encrypted format uses encryption to protect the user’s data/code. The following sections describe these two boot-image formats and how to create boot-images. 3.1 Unencrypted Boot Image Format The unencrypted boot-image format contains the following information: • All user code/data sections to be loaded to RAM. • Register configuration data for setting up peripheral registers prior to loading code. • The entry-point of the user’s application. • A boot-signature to distinguish unencrypted boot-images from encrypted-images. The unencrypted boot-image boot-signature is 0x09AA. SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated 7 Boot Images www.ti.com The unencrypted boot-image format is shown in Table 3. Table 3. C5515/14/05/04 Unencrypted Boot-Image Format Word Content Valid Data Entries 1 Boot Signature (16-bits) 0x09AA 2 Entry Point (32 bits) Byte address to begin execution (MSW) 3 Byte address to begin execution (LSW) 4 Register Configuration Count (16 bits, N = count) 1 to 216 - 1 5 Register Config #1 Address in I/O space 6 Register Config #1 Value or delay count 7 Register Config #2 Address in I/O space 8 Register Config #2 Value or delay count Repeated according to register configuration count. Register configuration address is any valid register in C5515/14/05/04 I/O space. Address 0xFFFF is reserved as a delay indicator to create delay in between register writes or at end of register writes. ... Register Config #N Address in I/O space 4+2N Register Config #N Value or delay count 0 to 216 - 1 5+2N Section 1 word count (16 bits) Size is the number of valid (non-pad) data words in block M = (size + 2) rounded up to nearest multiple of 64-bit boundary 1 to 216-1 6+2N Destination MSW address to load Section 1 (32 bits) 16-bit word address MSW 7+2N Destination LSW address to load Section 1 (32 bits) 16-bit word address LSW 8+2N First word of Section 1 (16 bits) ... 5+2N+M Last word of Section 1, often pad data (padded to 64-bit boundary) ... Section X word count (16 bits) Size is the number of valid (non-pad) data words in block N' = (size + 2) rounded up to nearest multiple of 64-bit boundary 1 to 216-1 X+1 Destination MSW address to load Section X (32 bits) 16-bit word address MSW X+2 Destination LSW address to load Section X (32 bits) 16-bit word address LSW X+3 First word of Section X (16 bits) X ... 3.2 X+N' Last word of Section X, often pad data (padded to 64-bit boundary) X+N'+1 Zero word. Note that if more than one source block was read, word X+N' shown above would be the last word of the last source block. Each block would have the format shown in the shaded entries. 0x0000 Encrypted Boot Image Format The encrypted boot-image format contains the following information: • All user code/data sections to be loaded to RAM (encrypted). • Register configuration data for setting up peripheral registers prior to loading code (encrypted). • The entry-point of the user’s application (encrypted). • The file-key used for encrypting the remainder of the file (encrypted). The encryption-seed, device-id (if this is a bound image), and a random number are combined to create the file-key. • The seed-offset for the encryption-seed used. This is an index into the ROM seed table (value = 0 to 127). • A boot-signature to distinguish encrypted boot-images from unencrypted-images, and to indicate the type of encrypted boot-image. There are three different types of encrypted boot-images: • Encrypted boot-image that is not bound to the device; the boot-signature is 0x09A5. The encryption for this image is based only on an assigned encryption key. 8 Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Boot Images www.ti.com • • Encrypted boot-image that is requesting to be bound to the device; the boot-signature is 0x09A6. The encryption for this image is based only on an assigned encryption key, but the bootloader re-encrypts this image using the assigned encryption key and the C5515/14/05/04 device-id, which is unique to each C5515/14/05/04 device. This re-encrypted image is then said to be bound to that specific C5515/14/05/04 device, and is written back to the external storage device that it was originally read from. Encrypted boot-image that is bound to the device; the boot-signature is 0x09A4. The encryption for this image is based only on an assigned encryption key and the C5515/14/05/04 device-id. Only a single C5515/14/05/04 device can decrypt this image. The encrypted boot-image format is shown in Table 4. Table 4. C5515/14/05/04 Encrypted Boot-Image Format Word Content Valid Data Entries 1 Boot Signature (16 bits) 0x09A4, 0x09A5, 0x09A6 2 Encryption Seed Offset (16 bits) 0 to 127 (assigned by TI) 3:10 Encrypted File Key (128 bits) Safer (SHA1(Seed OR Seed + ID),File Key) 11:14 Two pad words (0x00000) and entry point (32 bits) all encrypted Safer encrypted byte address to begin execution 15 Register configuration count (16 bits, N = count) 1 to 216 – 1 (not encrypted) 16 Register configuration #1 address in I/O space 17 Register configuration #1 value or delay count 18 Register configuration #2 address in I/O space 19 Register configuration #2 value or delay count Repeated according to register configuration count. Register configuration address is any valid register in C5515/14/05/04 I/O space. Address 0xFFFFis reserved as a delay indicator to create delay in between register writes or at end of register writes. This section is encrypted and padded to 64-bit boundary. ... Register configuration #N address in I/O space 15+2N Register configuration #N value or delay count 0 to 216 - 1 16+2N Section 1 word count (16 bits) Size is the number of valid (non-pad) data words in block M = (size + 2) rounded up to nearest multiple of 64-bit boundary 1 to 216-1 (not encrypted) 17+2N Destination MSW address to load Section 1 (32-bits) Safer encrypted C55x 16-bit word address (0x000060 to 0x097FFF) MSW 18+2N Destination LSW address to load Section 1 (32-bits) Safer encrypted C55x 16-bit word address (0x000060 to 0x097FFF) LSW 19+2N First word of Section 1 (16 bits) Safer encrypted C55x instructions or any 16 bit wide data value ... Safer encrypted C55x instructions or any 16 bit wide data value Last word of Section 1, often pad data (padded to 64-bit boundary) Safer encrypted C55x instructions or any 16 bit wide data value 16+2N+M ... Section X word count (16-bits) Size is the number of valid (non-pad) data words in block N' = (size + 2) rounded up to nearest multiple of 64-bit boundary 1 to 216-1 (not encrypted) X+1 Destination MSW address to load Section X (32 bits) Safer encrypted C55x 16-bit word address (0x000060 to 0x097FFF) MSW X+3 Destination LSW address to load Section X (32 bits) Safer encrypted C55x 16-bit word address (0x000060 to 0x097FFF) LSW First word of Section X (16 bits) Safer encrypted C55x instructions or any 16 bit wide data value ... Safer encrypted C55x instructions or any 16 bit wide data value Last word of Section X, often pad data (padded to 64-bit boundary) Safer encrypted C55x instructions or any 16 bit wide data value X X+N' SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated 9 Boot Images www.ti.com Table 4. C5515/14/05/04 Encrypted Boot-Image Format (continued) Word 3.3 Content Valid Data Entries X+N'+1 Zero word. Note that if more than one source block was read, word X+N' shown above would be the last word of the last source block. Each block would have the format shown in the shaded entries. 0x0000 X+N'+2 Hash (160 bits) SHA1-HMAC(SHA1(Seed + ID, File Key + data[11: X+N'+1]) Creating a Boot-Image A boot image can be created using the hex conversion utility (hex55) utility. The hex55 utility is intended for mass Catalog support. 3.3.1 Creating a Boot Image With Hex55 Utility Use the following steps to create the boot table: 1. Use the hex conversion utility (hex55.exe) revision 4.3.5 or later. Earlier versions may not support the boot table features correctly. 2. Use the –boot option to get the hex conversion utility to create a boot table. 3. Use the –v5505 option. This option is very important since some early versions of the C55x hex conversion utility supported a different boot table format. The wrong boot table format causes the bootloader to fail. 4. Specify the boot type: –parallel8, –parallel16, -serial16 or –serial8. 5. Specify the desired output format. For detailed information on the available hex conversion utility output formats, see the TMS320C55x DSP Assembly Language Tools User’s Guide (SPRU280). 6. Specify the output filename using the –o output_filename option. If you do not specify an output filename, the hex conversion utility will create a default filename based on the output format. Some examples of how to set the hex conversion utility options to create a boot table are shown below. 3.3.1.1 Creating a Boot Table for Tektronix Output To • • • • create a boot table for the application (my_app.out) with the following conditions: Desired boot mode is from 16-bit external asynchronous memory No registers are configured during the boot No programmed delays will occur during the boot Desired output is Tektronix format in a file called my_app.hex Use the following options on the hex conversion utility command line or command file: -boot -v5505 -parallel16 -x -o my_app.hex my_app.out 10 ;option to create a boot table ;use C55x boot table format for TMS320C5515/14 ;boot mode is 16-bit external asynchronous memory ;desired output format is Tektronix format ;specify the output filename ;specify the input file Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Boot Images www.ti.com 3.3.1.2 Creating a Boot Table for Intel Output To • • • • create a boot table for the application (my_app.out) with the following conditions: Desired boot mode is from 8-bit standard serial boot Configure the register address 0x1C8C with the value 0x0001 After the register is configured, wait 256 cycles before continuing the boot Desired output is Intel format in a file called my_app.io Use the following options on the hex conversion utility command line or command file: -boot -v5505 -serial8 -reg_config 0x1c8c, 0x0001 -delay 0x100 -I -o my_app.io my_app.out ;option to create a boot table ;use C55x boot table format for TMS320C5515/14 ;boot mode is 8-bit standard serial boot ;write 0x0001 to peripheral register at address 0x1C8C ;delay for 256 CPU clock cycles ;desired output format is Intel format ;specify the output filename ;specify the input file For detailed information about the C55x hex conversion utility, see the TMS320C55x DSP Assembly Language Tools User’s Guide (SPRU280). 3.3.1.3 Section Alignment Restrictions When Using Hex55 Utility All code sections must be aligned on a word boundary. Sections that are not properly aligned will be flagged by the hex55 utility. To align a code section, use the align command in the linker command file as shown below. Note that if any function included in a code output section has an alignment associated with it (in C via CODE_ALIGN pragma) the whole section will inherit that alignment. .text > ROM PAGE 0 align 2 3.3.1.4 DOS Command Line for Generating Boot Image Using Hex55 hex55 -i USBKey_LED.out -o USBKey_LED.bin -boot -v5505 -b -serial8 SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated 11 Boot Images 3.4 www.ti.com Burn a Boot-Image Once a boot image (*.bin) is generated, customers can burn the boot image into the NOR Flash, NAND Flash, 16-bit EEPROM, I2C EEPROM, 24-bit SPI serial Flash or multimedia card/secure digital (MMC/SD) card. It is done by a utility called programmer that runs on C5515/14/05/04 using an emulator with Code Composer Studio™ software. First, open the Code Composer Studio project - programmer.pjt as shown in Figure 1. Figure 1. Open the Programmer.pjt in Code Composer Studio 12 Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Boot Images www.ti.com It uses stdout and stdin to allow you to place the contents of a PC file (generally a boot-image) onto a peripheral device on the C5515 EVM. It supports NOR, NAND, SPI EEPROM (or SPI serial Flash), and I2C EEPROM, as well as MMC and SD if the card is properly formatted. This utility has been tested extensively on real silicon with C5515 EVM. One way to write to NAND Flash at CS 2 would be to answer: • 1 (choose device NAND Flash) to the first prompt • 2 (choose the chip select CS2) to the second prompt • 1C:\projects\flash_image\demo.bin (choose write operation using C:\projects\flash_image\demo.bin) to the third prompt Screen shots Figure 2 through Figure 5 demonstrate the multiple prompt procedure for writing C:\projects\flash_image\demo.bin to NAND Flash on ChipSelect 2. Figure 2. Standard Input Dialog Box for Programmer.pjt (Choose NAND Flash) SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated 13 Boot Images www.ti.com Figure 3. Standard Input Dialog Box for Programmer.pjt (Choose ChipSlect 2) 14 Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Boot Images www.ti.com Figure 4. Standard Input Dialog Box for Programmer.pjt (Choose Program device with <file>) SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated 15 Boot Images www.ti.com Figure 5. Flashing is Done The programmer guides you on the stdout display and requests user input with a small popup window; load and run the program using Code Composer Studio. Then, you can either follow the directions from the programmer, or you can type in the answers to all prompts starting at the first prompt as a shortcut. For the previous example, you can also use the shortcut 121C:\projects\flash_image\demo.bin at the first prompt. The following are some examples, assuming that you want to load a file named C:\projects\flash_image\demo.bin. For writing to NOR Flash at CS 3 on an EVM, at the first prompt enter: 231C:\projects\flash_image\demo.bin. For writing to SPI EEPROM on an EVM, at the first prompt enter: 311C:\projects\flash_image\demo.bin. For writing to SPI EEPROM on an ezDSP USB Stick Board, at the first prompt enter: 321C:\projects\flash_image\demo.bin. For writing to I2C EEPROM, at the first prompt enter: 41C:\projects\flash_image\demo.bin. For writing to MMC card, at the first prompt enter: 51C:\projects\flash_image\demo.bin. For writing to SD card, at the first prompt enter: 61C:\projects\flash_image\demo.bin. For writing to SPI serial Flash on EVM, at the first prompt enter: 711C:\projects\flash_image\demo.bin It takes a while for some devices to complete writing all data. Always wait for an error message or a Programming Complete message. To run the utility again, you need to use Restart (or reload). 16 Using the TMS320C5515/14/05/04 Bootloader Copyright © 2010–2015, Texas Instruments Incorporated SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback References www.ti.com 4 References • TMS320C55x DSP Assembly Language Tools User’s Guide (SPRU280) Revision History Changes from B Revision (January 2014) to C Revision ............................................................................................... Page • • Removed references to "Secure ROM" ................................................................................................ 1 Typo corrected in Section 1.2, encrypted boot is only supported for 16bit SPI. 24 bit SPI does not support encrypted boot image ....................................................................................................................................... 2 SPRABD7C – June 2010 – Revised July 2015 Submit Documentation Feedback Revision History Copyright © 2010–2015, Texas Instruments Incorporated 17 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, enhancements, improvements and other changes to its semiconductor products and services per JESD46, latest issue, and to discontinue any product or service per JESD48, latest issue. Buyers should obtain the latest relevant information before placing orders and should verify that such information is current and complete. All semiconductor products (also referred to herein as “components”) are sold subject to TI’s terms and conditions of sale supplied at the time of order acknowledgment. TI warrants performance of its components to the specifications applicable at the time of sale, in accordance with the warranty in TI’s terms and conditions of sale of semiconductor products. Testing and other quality control techniques are used to the extent TI deems necessary to support this warranty. Except where mandated by applicable law, testing of all parameters of each component is not necessarily performed. TI assumes no liability for applications assistance or the design of Buyers’ products. Buyers are responsible for their products and applications using TI components. To minimize the risks associated with Buyers’ products and applications, Buyers should provide adequate design and operating safeguards. TI does not warrant or represent that any license, either express or implied, is granted under any patent right, copyright, mask work right, or other intellectual property right relating to any combination, machine, or process in which TI components or services are used. Information published by TI regarding third-party products or services does not constitute a license to use such products or services or a warranty or endorsement thereof. Use of such information may require a license from a third party under the patents or other intellectual property of the third party, or a license from TI under the patents or other intellectual property of TI. Reproduction of significant portions of TI information in TI data books or data sheets is permissible only if reproduction is without alteration and is accompanied by all associated warranties, conditions, limitations, and notices. TI is not responsible or liable for such altered documentation. Information of third parties may be subject to additional restrictions. Resale of TI components or services with statements different from or beyond the parameters stated by TI for that component or service voids all express and any implied warranties for the associated TI component or service and is an unfair and deceptive business practice. TI is not responsible or liable for any such statements. Buyer acknowledges and agrees that it is solely responsible for compliance with all legal, regulatory and safety-related requirements concerning its products, and any use of TI components in its applications, notwithstanding any applications-related information or support that may be provided by TI. Buyer represents and agrees that it has all the necessary expertise to create and implement safeguards which anticipate dangerous consequences of failures, monitor failures and their consequences, lessen the likelihood of failures that might cause harm and take appropriate remedial actions. Buyer will fully indemnify TI and its representatives against any damages arising out of the use of any TI components in safety-critical applications. In some cases, TI components may be promoted specifically to facilitate safety-related applications. With such components, TI’s goal is to help enable customers to design and create their own end-product solutions that meet applicable functional safety standards and requirements. Nonetheless, such components are subject to these terms. No TI components are authorized for use in FDA Class III (or similar life-critical medical equipment) unless authorized officers of the parties have executed a special agreement specifically governing such use. Only those TI components which TI has specifically designated as military grade or “enhanced plastic” are designed and intended for use in military/aerospace applications or environments. Buyer acknowledges and agrees that any military or aerospace use of TI components which have not been so designated is solely at the Buyer's risk, and that Buyer is solely responsible for compliance with all legal and regulatory requirements in connection with such use. TI has specifically designated certain components as meeting ISO/TS16949 requirements, mainly for automotive use. In any case of use of non-designated products, TI will not be responsible for any failure to meet ISO/TS16949. Products Applications Audio www.ti.com/audio Automotive and Transportation www.ti.com/automotive Amplifiers amplifier.ti.com Communications and Telecom www.ti.com/communications Data Converters dataconverter.ti.com Computers and Peripherals www.ti.com/computers DLP® Products www.dlp.com Consumer Electronics www.ti.com/consumer-apps DSP dsp.ti.com Energy and Lighting www.ti.com/energy Clocks and Timers www.ti.com/clocks Industrial www.ti.com/industrial Interface interface.ti.com Medical www.ti.com/medical Logic logic.ti.com Security www.ti.com/security Power Mgmt power.ti.com Space, Avionics and Defense www.ti.com/space-avionics-defense Microcontrollers microcontroller.ti.com Video and Imaging www.ti.com/video RFID www.ti-rfid.com OMAP Applications Processors www.ti.com/omap TI E2E Community e2e.ti.com Wireless Connectivity www.ti.com/wirelessconnectivity Mailing Address: Texas Instruments, Post Office Box 655303, Dallas, Texas 75265 Copyright © 2016, Texas Instruments Incorporated
© Copyright 2026 Paperzz