IFU sequence, firmware is wiped

@ Chris_MC - going forward this should not be a problem. But I The casea major change happened to tiny booter then a manual update is required.

Sorry Gus, just to be clear, so for this update 4.2.10.1 -> 4.2.11.0 you recommend a manual update to ensure the tinybooter is updated as well?

We always recommend using the latest tinybooter but you can simply test your product and if it worked with older tinybooter you may keep on using it, while still not recommended.

Future SDKs will likely not have a new tinybooter, making this less concerning.

Is there possible to load file from SD/USB ? I don’t think CDC can be a problem but if we can, we should start from the simplest one.

There must be something wrong in your code / or hex file, because, the application can not “boots fine” if there is only firmware2.hex, or, assuming Firmware2.hex (4.2.11.0) + Firmware.hex(4.2.10.1) if IFU did not erase the old one completely.

Edit:

The application can not boot up but can you ping it? It may different library checksum so the application can not start.

I have now tested to put my “loader” methods into a new tiny project which loads firmware from SD to see if it works.

It works as long as I only load firmware files and config.
But if I tries to also load my big main application it hangs :frowning:

I get the feeling when the application is big enough it fails to restart after flash.

My app is about 800.000 bytes, which is about 2254304 bytes in hex file.

Could this be the case?

Have you tested to do a complete IFU with a big application included?

@ Honken -

So now it is working with 2 firmware files + config?

The problem now is only deployment?
You can try a small application first then try with the big one.

But, as you said, firmware files work,it means there is more than 3MB for firmware2.hex, so I don’t think that is a problem.

How you extract that application hex file?

@ Dat -

It works to load 2 firmware files + config.

But when try to also load application (firmware, firmware2, config, application) the firmware is erased.

If I remove the firmware.hex and only load (after G120 update) firmware2, config, application it starts OK.

If I load the application only it works OK.

There must be some overlap between the firmware addresses and a large application when loading with IFU…???

As the firmware always gets corrupt after loading a big application together with firmware.

@ Honken -

Did you try with small application?

is it possible to send us your example application in hex (if it is not effected to your business)

Yes I did, but it still doesn’t work to do a complete update with IFU :frowning:

My “small” app is 218064 bytes in hex file.

@ Honken -

Only make an application to bink LED, it will take you 5 mins to finish that.
This application will be about 3KB, that is small for testing.

Again, how did you create your application in hex?

I will try that.

With FEZ Config.

I have now tried with a small blink led app with a size of 1608 bytes but without any luck.

I get the same result, firmware will not boot :frowning:

@ Honken -

Did you try with SD?

If so I will send you my example which is working well with SD

No haven’t done that yet, will try it.
I have only tested with wrapped CDC stream.

I have calculated the crc16-CCITT of my application (.hex), should this value be the same (after update) as the SystemUpdate.CalculateCRC(SystemUpdate.SystemUpdateType.Deployment) ?

@ Honken -

deployment and config will be different, only firmwares are same if you compare by that way!

I am wondering why don’t you try with SD or USB? there is an example on our website about that, just copy and modify little code, I think, then we can know, that is IFU, CDC or your code?

How did you transfer the hex files? I mean are you using a software on PC?