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.

TMS320C6742: Serial Flashing Host Utility sfh_OMAP-L138 usage for C6742 DSP

Part Number: TMS320C6742
Other Parts Discussed in Thread: OMAP-L138, AM1808, AM1810

Hello,

We are developing an application for the C6742 DSP which will have an external EMIF-NOR as flash device to store the application binary. The setting we are testing our code on right now is the C6748 DSP Development Kit. We have successfully flashed the application and boot it from both the NAND flash the LCDK comes with, and also from an external custom NOR board interfacing with EMIF. In both cases we used sfh_OMAP-L138 application.

From the sfh_OMAP-L138 documentation, the target flag can be set to: OMAPL138, OMAPL138_LCDK, AM1808, AM1810, C6748, C6746, C6748_LCDK (default is OMAPL138). The flag we have been using so far is "C6748_LCDK". Nevertheless, I have seen in this post that this serial flashing utility can also be used to flash a binary application for a C6742 DSP. ¿Is this correct?

If so, considering that BOOT pins are set to the correct setting in the C6742 DPS board to boot from UART0, that is: BOOT[7:0] = [0001 0110] (taking into account that default baud rate is maintained by BOOT[7:5] = 000), ¿which flag should I use when flashing the C6742 DSP based board? ¿Would it work with C6748 flag instead of C6748_LCDK?

Thanks in advance,

David

  • Sorry, the link to the post I referred to does not work. I repeat it here:

    https://e2e.ti.com/support/processors/f/791/t/669954

    David

  • David Rivera said:
    From the sfh_OMAP-L138 documentation, the target flag can be set to: OMAPL138, OMAPL138_LCDK, AM1808, AM1810, C6748, C6746, C6748_LCDK (default is OMAPL138). The flag we have been using so far is "C6748_LCDK". Nevertheless, I have seen in this post that this serial flashing utility can also be used to flash a binary application for a C6742 DSP. ¿Is this correct?

    The utility is designed to work out of the box on superset variant of C6748 and OMAPL138 family. Let me help describe the significance of the targets in the utility. OMAPL138, AM1808 and C6748 refer to the Logic PD EVM (full featured EVM) hardware. This assumes the target has 8 bit NAND and 258 MB mDDR as external memory. The tool explicitly will setup the SOC for interfacing with those components. 

    When you pick the target as C6748_LCDK and OMAPL138, it natively assumes the target to be LCDK HW with 16 bit NAND flash and DDR2 foe external memory interface.

    On C6742, the device speed is limited to 200 Mhz and onchip memory is limited to 128 KB (64 KB L2 and 64KB SRAM), also you may have board level differences like different NAND or mDDR/DDR2 memory.  We recommend that you modify th utility that we provide in source to make sure that you use only available onchip memory and configure the utility for the NAND And DDR that you have used in your design. Hence we provide the instructions to customize the utility:

    https://processors.wiki.ti.com/index.php/Serial_Boot_and_Flash_Loading_Utility_for_OMAP-L138#Modifications_for_Custom_Boards

    Both the devices use the same bootROM code baseline so there is not difference from boot switch and bootROM perspective but for flashing, you will need to make sure the tool adheres to the device datasheet and is designed for your underlying board design. 

    Note in addition to the UART based serial flash tool, we also provide CCS projects where flashing utility can be loaded and run over JTAG. This is easier for debug and customization that the serial flash tool which has a C# based fron end and a C code based SFT code that runs on the target.

    Hope this helps.

  • Thank you so much for your answer.

    First let me describe the C6742 DSP board: In addition to the external NOR, the external RAM device is a SDRAM interfacing via also EMIF, so this is also a difference regarding the LCDK.

    I have seen in this post:

    https://e2e.ti.com/support/processors/f/791/t/256535

    that the SFH tool loads the SFT application in external DDR memory, and you suggest that it would be easier to modify this memory allocation in the CCS based flashing utilities (by modifying the .cmd file). Am I right?

    I am seeking the easiest solution, but just for my understanding, where would I need to "modify its memory map" to allocate this code into internal memory? Just to understand the overall process. I checked the utility code and I found the routine: UTIL_allocMem, in \Common\src\util.c, which is used to allocate into external memory the incoming application received from the serial port and to be flashed, but I did find neither where the variable EXTERNAL_RAM_START is assigned to the DDR memory address nor where the memory mapping is done for the SFT application itself.

    Could you please clarify this a little?

    I have briefly checked the JTAG, CCS-based NORWriter application and I think I have some doubts on how to set it up for our application. If you can confirm us that we should go for this option I can close this thread and eventually open a new one focused on the NOR Writer app.

    Thanks so much,

    David