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.

Flash on dm6437 -spansion versus intel micron -flashburn utility flash usage



Hi,

We have a board that uses intel micron flash. The evm board uses a spansion flash, and so the Flashburn utility, as far as I examined the codes, is written to burn a spansion flash. Is there a intel micron version of Flashburn utility? If not, where should I begin to convert it to a intel micron version?

Thanks in advance,

Erman.

  • Well now I realized intel micron is a not single flash, but two. I am examining the evmdm6437bsl flash source codes and the code is mainly seperated to two by spansion flash and intel_micron flash. But under intel_micron part, there are also some seperations to intel and micron. Though I don't understand the difference yet.

  • The Flashburn utility out of the box is locked to only burn the EVM's flash, since the version of Flashburn that is included with the DVSDK does not include the source to the flash burning algorithm that Flashburn uses it cannot be easily changed. If you wanted to continue using Flashburn on a custom board you would have to purchase the Flashburn Porting Kit from Software Design Solutions, which includes the source to the flash burning algorithm such that you could modify it for whatever end flash device you wanted.

    Alternatively you would have to write your own flash burning application, which would probably amount to a CCS project that has the code to burn the flash which you would run to burn your image to the flash. Underneath this is what Flashburn does, but it makes it much easier by putting the complexity behind a GUI and dealing with transferring the image file.

    In either case you could probably leverage the code you pointed out from the BSL.

  • Thanks Bernie.

    We already purchased the Porting Kit. Currently I am modifiying the source codes using BSL codes and some other codes from my company, but there is some thing wonder; BSL source codes does have the unlock block function but there is no a lock block function. Is locking blocks unnecessary? If yes, then normally, I dont understand why I need to use unlock if there is no lock.

  • I believe you could think of the flash as locked immediately upon completion of a write sequence, locking is not something you do in software, locked is the normal state of the device. If you look at your particular flash device's datasheet it should have a section on writing to the flash and what sequence must be followed, typically this will be some sort of unlock command followed by a write command and than the actual data. This has the advantage of making the flash more resillient to bad code, it is unlikely that bad code will be able to unlock and write to the flash, keeping the contents safe, of course the downside is that you need a software layer to write out to the flash.

  • But then, after completing writing to some specific location in flash, I need to lock the written locations again, am I right?

  • I guess that would depend on your particular flash device, if your write sequence requires you to end in a lock command than you are correct. I think for typical flashes though you only initiate the sequence and write the data, and by virtue of having written the data the data is 'locked' and you would need to perform another unlock sequence for further writes. Also note that to write to a location again you would usually have to erase the area you are writing to before going through the programming sequence, that is unless you are only clearing bits with your write (flash is generally initialized to all 0xFF and writes just clear out bits, an erase operation sets it back to 0xFF).