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.

Creating Multiple Images in NOR Flash

Other Parts Discussed in Thread: TMS320C6678

I currently have a EVM C6678. I understand that by default the EVM comes with a NOR flash with two images each 10MB in size. What I want to do is to partition the image further. For example, instead of having just 2 images, I would like to make it into 4 images with 5MB each. Can this be done? If creating multiple images is possible, my intention is to make NOR image 0 the default boot, then from there I will decide which image to go to. Can this be done too? If yes, what will be a good way of doing it? Thank you!

  • Hi Lim,

    As far as I know we have only one image in NOR flash. Can you please let me know where did you get this information?

    Thanks,

    Arun.

  • Hi Arun,

    it was provided in the quick start guide as well as getting started guide for the C6678 evaluation board. The information can also be seen in http://processors.wiki.ti.com/index.php/TMDXEVM6678L_EVM_Hardware_Setup, under Boot Mode Dip Switch Settings.

  • Hi,

    Is there anyone that  can give me advice on the issues I have at hand? I would really appreciate it. Thanks!

  • Hi,

    As far as I know it not possible without modify the IBL stored on the EEPROM of the EVM. Its configuraiton structure support 2 boot image for each boot mode. See IBL source code and documentations in the MCSDK.

    I think you can consider two options:

    1. Modify the IBL, for instance using the NAND configuration to boot from NOR

    2. Store in the first NOR boot image a third level boot loader, configuring the IBL to boot from this image even when the switch select the second one. Then, in your custom 3rd level boot loader,  use the image selector SW and the free user switch on the EVM to select between 4 image stored on the NOR.

  • Hi Alberto,

    thank you for your reply and solutions. In fact, option 2 is what I am thinking of doing, the problem is I do not have an idea on how to start. When you say image selector SW, do you happen to have any examples or materials that I can refer to? It would be greatly appreciated if you can provide me with some. Also, modifying the number of  partitions and size are also an issue. Option 1 is a fresh idea that I never thought of, but at the end of it, the issue come back at partitioning the flash. Are there any gurus out there that can assist me? Would really appreciate it. 

  • KeckSoon Lim said:

    When you say image selector SW, do you happen to have any examples or materials that I can refer to?

    Try to look at TMDXEVM6678L Technical Reference manual on the EVM CD. Para.3.3 show you the correspondance between the dip switch and the BOOTMODE pins of the DSP. Also look at BiosMulticoreSDK_2.0_GettingStartedGuide.pdf in MCSDK docs directory, section "TMDXEVM6678L EVM Hardware Setup". You could see that the SW4 pin 1 select the image and that it is connected to the BOOTMODE bit 3, while the SW4[2] select between NOR and NAND..

    The BOOTMODE[0:12], documented in TMS320C6678 Data Manual and can be read in the DEVSTAT register (see data manual §2.5).

    In iblmain.c:main(), IBL reads the DEVSTAT and then extract the bits used to index the boot configuration table.

    The IBL configuration table contains an offset for image that can be changed as you want.

    To access the user switch SW9[2] You have to use the platform lib supplied with the PDK

    Also, modifying the number of  partitions and size are also an issue.

    I'm not sure but paritioning should not be a problem: it is software view, you can choose any number of partitions of any size multiple of the device sector size.

    So far I don't know how big is a sector, but I suppose that a 1M of alignament should be a very conservative choice. You are also free to use logic partition of different sizes.

    Look at the read me in the docs of the nor write (in the MCSDK/tools/writer.