This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320DM648: DM648 SPI Booting

Part Number: TMS320DM648

in doc spruem2a, Dm648 supports only 16-bit adress,because it uses a 16-bit-long register for memory adress;

in the meanwhile, in the erf spraaj1d, 24-bit SPI address mode is valid.

I wonder that dm648 is able to boot from spi in 24-bit address mode. Only if it supports 24-bit address, SPI memory space

is enough for the application image.

Only values of 0x02
(16-bit SPI EEPROM) or 0x03 (24-bit SPI EEPROM/Flash) are acceptable.

  • Hi user5278479,

    spruem2a (SPI TRM) explains that SPI is a high-speed synchronous serial input/output port that allows a serial bit stream of programmed length (2 to 16 bits) to be shifted into and out of the device at a programmed bit-transfer rate. SPI has 16-bit shift register, programmable character length up to 16 bits.

    spruem2a (SPI TRM) does NOT explain booting. SPI booting is explained in spraaj1d, where 24-bit is available option:

    4. AIS Generation Tool, genAIS

    -memwidth N (N=8,16,24)
    Specifies memory/address width for external memories associated with I2C and SPI boot modes.

    16-bit and 24-bit SPI EEPROM/Flash are supported for the SPI Master boot mode. Therefore the first byte of the EEPROM should contain either 0x02 or 0x03, for 16-bit and 24-bit respectively. The magic word should start at address offset 0x4 of the EEPROM/flash.

    Regards,
    Pavel
  • If you have no more questions related to the subject, please close/verify/resolve this thread.

    Regards,
    Pavel
  • In order to boot my DM648 board, I studied its spi booting in detals these 2 days. however, I need some help to complete my task.

    According to spraaj1d for dm648 booting, DM648 RBL(ROM boot loader) uses its spi booting with data length of 8 bits, it means that an access to 24-bit-address spi flash is divided into some comands in spido, including opcode->addr2->addr1->addr0->data1->data0, etc. meanwhile, spics is disabled its spi function, and set mannually. so ths spics is able to be low before opcode, high after data0 to end this access.

    So I need the secondary bootloader to configure device and load application into ddr from spi flash. moreover, I need a SPI flash writer to program the UBL and application image into SPI falsh before I can boot dm648 form SPI port.

    DM648 DVSDK just provides these tool for NOR flash. where to find the tool for SPI flash?

    Moreover, after I generated UBL script with command "perl genAIS.pl -otype bin -i D:\work\DSP\UBL\bin\UBL.out -o UBL_spi -bootmode spi -addrsz 24 -crc 0", why I can't find "0x00000003" for 24-bit-address mode int the first byte of UBL.out? Need it be added mannually?
  • The tools package attached to the boot loader app note had SPI flashing tools and an example secondary boot loader. You can try SPI24Writer and SPI16Writer.