Firmware Compatibility between CY8C6247BZI-D34 and CY8C6247BZI-D54

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
UrPl_1236626
Level 4
Level 4
10 likes given First solution authored 50 replies posted

Hi,

Due to lack of stock CY8C6247BZI-D34, new boards came out with CY8C6247BZI-D54 and am figuring out firmware compatibility, as by default JTAG ID is different, and cyacd2 also fails.

From the data-sheet it looks like the -D54 brings the crypto block in addition to what -D34 has, however hex file is different all over when recompiled for D54.

So I wonder do you think the same firmware can run on both CPU (and not using crypto at all) or there are more "fine details" making this impossible?

Kind regards,
Uros

0 Likes
16 Replies
AlenAn14
Moderator
Moderator
Moderator
500 replies posted 100 solutions authored 250 replies posted

Hi @UrPl_1236626 ,

Can you let me know if you are using PSoC Creator or ModusToolbox for your development.
Thank you for your patience.

Regards
Alen

0 Likes
UrPl_1236626
Level 4
Level 4
10 likes given First solution authored 50 replies posted

PSoC Creator.

0 Likes

Hi @UrPl_1236626 ,

Yes the only difference for these 2 devices are the CRYPTO and Secure Boot so if you are not using these 2 blocks, then the firmware would be the same.

But you should know that the .hex developed for CY8C6247BZI-D34 cannot be directly flashed into CY8C6247BZI-D54 device, instead you have to recompile the entire project in PSoC Creator with the device set to CY8C6247BZI-D54 device (so that PSoC Creator corrects the JTAG ID in the hex file for this device). Only then will PSoC Programmer allow you to program CY8C6247BZI-D54 with the new .hex file.

Regards
Alen

0 Likes

Recompilation (already) worked fine.

The goal is to obtain a compatible cyacd2 to simplify in-field upgrade procedure, as then I would not need to differentiate between different firmwares for practically the "same" hardware but one with D34 and another with D54 chip.

What is your opinion about cyacd2?

0 Likes

Hi @UrPl_1236626 ,

If you check the PSoC 6 DFU Software Development Kit Guide, Appendix C, you can see the following description regarding the header in the .cyacd2 file format:

AlenAn14_0-1638417659446.png


The Silicon ID and Silicon Revision will prevent you from using the same .cyacd2 files for  CY8C6247BZI-D34 and CY8C6247BZI-D54  as these parameters changes.
Hence you will have to create 2 different .cycad2 files in your case.

Hope this helps.

Regards
Alen

0 Likes

This I know, and I can "hack" or in the bootloader of D54 accept also ID of the D34, and not vice versa, as D54 has obviously more features.

So that's why my question above was, are there any more fine tricks, i.e. in configuration bitmaps, crypto initial configuration after reset for D54 ... or it can be left in its default state after reset, and possibly other things, that could have non-desired side effects in the future, not observed immediately.

0 Likes

Hi @UrPl_1236626 ,

If you are not using the crypto, then there should be no issues.
But using the same .cyacd2 file is not a recommended approach and you should use 2 separate .cyacd2 files for your devices as this is not tested and not guaranteed to work successfully. 

Regards
Alen

0 Likes

I understand, but the point of this message is "firmware compatibility"  which means from one PSoC Creator project. Having two cyacd2 implies there is no compatibility, since there are two projects, and that was my question below, are there any other differences in bitstreams, etc... I couldn't find difference regarding the arm core.

0 Likes

We tweaked the silicon ID and D34 firmware runs on D54, however as asked before, we would like to learn from you if the firmware is 100% compatible, if crypto and secure boots are not used.

0 Likes

Hi @UrPl_1236626 ,

I tried building .cyacd2 files for both the D34 and D54 devices and found that there is significant difference between the same when comparing them for the same source code (.hex files as well).
I take it from your previous response that you are able to run the .cyacd2 file of D34 on the D54 device.
But unfortunately we cannot guarantee 100% compatibility of the firmware from our side as this approach has not been tested and also not recommended.

We do not recommend the use of a .cyacd2 file of one device with another device in production environment and programming a different .cyacd2 file will void the warranty on the device and in case you face any issues, you would also be not able to avail the related services.

I take it that you want to know of any crypto configurations for the D54 so that you can make the corresponding changes in the D34 .cyacd2 file for flashing D54 ,which we are unaware of ( again , not been tested ) and at the same time is strictly not recommended as it will void the warranty on the device.

In such a case I can only suggest you to recompile the project for the D54 device and use the generated .cyacd2 file. 
We apologize for the inconvenience caused to you by the chip shortage.

Regards
Alen

0 Likes

what difference in files did you find out?

0 Likes

I compared the .cyacd2 and hex files in winmerge which reported multiple difference. The below shows the difference in the .cyacd2 files of the D34 and D54 devices:

AlenAn14_1-1638786048689.png

 

Regards
Alen

0 Likes

Hmm, this is not the way to compare compatibility, I did that myself as well. I had in mind that from your internal team at Cypress could do this a little bit more systematically i.e.:

  • arm M4 looks the same, what I checked at the .h regs definitions
  • bitstream
  • other hardware memory locations +
  • additional hardware and default reset condition of uninitialized hardware
0 Likes
Rakshith
Moderator
Moderator
Moderator
250 likes received 1000 replies posted 750 replies posted

Hi @UrPl_1236626

According to my understanding, you will be using the .cyacd2 file of D34 and bootload it onto D54.
We have not tested programming the hex/cyacd2 on another device and we cannot guarantee the functionality of the application. The user should perform all the tests to ensure the functionality of the application if in case this approach is followed. As @AlenAn14, this will also void the warranty-related services like RMA, etc.  

Thanks and Regards,
Rakshith M B
0 Likes

Hi Rakshith M B,

From functional point of view it works.

But instead of "not tested" and "warranty voids", can we progress further on this (development) topic, as said, m4 core looks the same, we need to find out hw bit stream compatibility, which on first sight looks the same, ... with only addition of crypto block.

BR Uros

0 Likes

Hi @UrPl_1236626 ,

Unfortunately we cannot support you with this compatibility procedure as flashing the firmware built for one MPN into another is not tested and verified and hence we do not have any tests that can help you to verify the compatibility and you will have to verify the firmware functionality on your side if this approach is being used and if it does not work then we will have to ask you to recompile the project for the D54 device and use the resulting .cyacd2 file for programming the same.

Regards
Alen

0 Likes