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.

C6678 RBL spi flash boot protocol

Other Parts Discussed in Thread: TMS320C6678

In scouring the SPRUGY9C section 3.7.2 RBL loading process the SPI bootloader references the I2C process.  The I2C RBL process states that the bootloader table is read from the SPI (flash) interface.  Per TMS320C6678 table 2-13, 4pin mode, 24bit address for CS1 starting at SPI address 0 is configured per our boot pinout.  We are setting up the boot parameter table stored in the NOR flash according to TMS320c6678 tables 2-15 and 2-21.  Given that our NOR flash device supports XIP and command-address-data protocols (read = command code 0x03) over the SPI interface, we need to know which method the RBL uses as the protocol since our NOR flash non-volatile boot configuration must be configured to match the RBL prior to the first bootup,

Thanks,

Jimmy

  • Moved this thread over keystone forum. Thank you for your patience.
  • Hi Jimmy,

    I understand that you are trying to achieve direct SPI boot on C6678 devices. Is my understanding right?

    Are you working on custom board or C6678 EVM? Please check if the attached example helps to solve the issue.

    5305.KeystoneI_bootloader_workshop.zip

    Thank you.

  • Yes, we have a custom target implementation which directly boots core 0 from its boot image (boot table format) which is stored in a NOR flash device connected via the SPI module. The boot parameter table is located first in the flash, and the image is located after the parameter table as designated in the boot parameter table address. Our SPI attached NOR flash can respond on the SPI bus using XIP or command-address-data for read transactions. For the command-address-data protocol, it requires the read command (0x03) to be sourced to the flash device first, followed by the 3 or 4 byte address. For the XIP protocol, it just requires the address bytes and it responds with data during the following clock cycles. In order to use the XIP protocol, our flash device has to be pre-configured with this setting stored in its internal non-volatile memory, otherwise it will not respond to the address bytes over the bus. Which protocol does the RBL use so that we know how to setup our flash device if it is not the defaults?

    Thanks,
    Jimmy
  • James,

    The C6678 RBL doesn`t support XIP mode. It uses command-address-data protocol to read the data and as you indicated uses the read command and copies the image from the SPI into internal memory, then configures the device as specified in the boot parameter table, load the application binary and then jumps to the application entry point.

    For full implementation details, we also provide the RBL code in source :
    processors.wiki.ti.com/.../KeystoneI_Bootloader_Resources_and_FAQ

    Regards,
    Rahul
  • Hi Rahul,
    Thank you for the additional information.