Update - I succeeded in re-enabling CGS compression, however the OTA process from a 2.1.1 image still did not work.
I checked with the developers and the OTA should work.
When I OTA a 2.1 SDK device with a 2.2 image, it repeatedly reboots before starting my application.
When I asked about this previously, I was never able to get it to work, and gave up since there was no clear reason to upgrade. However, this has recently become more important as we have found that some fraction of our devices are failing due to bugs in 2.1.
Can you help me figure out if I am doing something wrong?
Was there some change from 2.1 to 2.2 having to do with the standard image layout or locations that is causing a problem?
Diffing the ota upgrade example app between 2.1 and 2.2 shows no differences.
It would be really great to be able to upgrade fielded units to the new version.
update: it looks like my application can't OTA from 2.2.1 to 2.2.1 either.. so it must be something wrong with the OTA image I am generating with SDK 2.2.1
My board is a design based on the 20736S and I'm using the BCM920736_TAG.. platform to build.
I made a local modification to set the PMU warmup time to 5000, other than that it is pretty much the stock installation.
This is a non-secure OTA correct? Have you tried doing a secure OTA using the TAG3 board, the Windows peer app from the SDK and the guidance provided in WICED Secure Over-the-Air Firmware Upgrade Application Note (SDK 2.1 and TAG3 Board) ?
Not sure what your specific issue is, but it seems if we can find something that works, we can use it as a reference for your specific implementation.
the problem was the WDT is going off when running the OTA image.
It came up with 2.2 only, because of the slower EEPROM/I2C performance on SDK 2.2.
Thanks for the comment - it is insecure yes.
See my other response - I found the issue.
I think the I2C speed is slower when I build with 2.2.x... is there any way to change this?
It causes a really long boot time, etc.
Yes, I did face the WDT issue when migrating to SDK 2.2.
There is such difference (feeding WDT during EEPROM writing) on sample of ota upgrade provided along with SDK.
But I can't find where any configuration changed to prove such evidence. Checking the .btp file didn't give difference on configuration 'DLConfigEEPROMAccessSpeed = 100'.
I would like to know the reason too, in case we need to take care other situation that might cause WDT expire.
The reason is that the system ROM defaults to 100khz as the speed for I2C access.
In previous versions of the SDK (e.g. 2.1) there was an entry in the platform CGS file that overrode this to 400Khz.
In SDK 2.2 for some reason this was omitted, and there was no override, resulting in a default value of 100Khz.
For my application (20736S) I have overridden it by modifying the CGS file to set this value to 1000 KHz and this improves things a lot.
I don't think the setting in the EEPROM file (DLConfigEEPROMAccessSpeed) has an effect.
just add this to the .cgs file in the platform directory you are using:
ENTRY "I2C Speed"
"Speed" = "1000 KHz"