About malfunction after update

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

cross mob
hiko_4316286
Level 4
Level 4
50 replies posted 25 replies posted 10 replies posted

The following log is output and the program does not work

Please refer to the confirmation items and answer

・Log

  ************************************************** **

  ** ERROR: WLAN: could not download clm_blob file

  ** FATAL ERROR: system unusable, CLM blob file not found or corrupted.

  ************************************************** **

·Checklist

When updating with OTA, the "Current Application" area is rewritten, but the "File System Image" of "External Flash" is not rewritten (because of ReadOnly).

Therefore, if you update the software that rewrites [\43xxx_Wi-Fi\resources\firmware\4343W\4343WA1.bin]

I think that the error occurs because "File System Image" of "External Flash" is not rewritten and only "Current Application" is rewritten.

*Maybe there is an error in wwd_process_clm_data()

Is the understanding correct?

And is there a solution?

0 Likes
1 Solution

hiko_4316286 I apologize for the delay.

Whenever an APPS.bin is build, irrespective of whether or not it is changed, it is built with respect to the firmware(filesystem.bin) under question.

Now, in your case, since V1 and V3 are very similar in sizes, the what goes where in the memory sectors occupied by the filesystem.bin isn't varying much and hence there is no issue when the APPS.bin changes/remains the same.

In the case of V2, there is a significant change ~20K bytes which has resulted in the what goes where in the memory sectors occupied by the firmware to change, which might be causing the issue of loading the application during the OTA.

Hope my answer helped you understand as to why the OTA might be failing when using V2 as the WLAN firmware.

Let me know if there is something which is still unclear.

View solution in original post

0 Likes
29 Replies
Murali_R
Moderator
Moderator
Moderator
250 sign-ins 250 replies posted 100 solutions authored

Hello hiko_4316286

The ota_fr application by default only performs the application update and doesn't perform the firmware update. So i'm guessing that there are some changes which have been made to update the firmware. Is it possible to share the modified application?

Also from the logs, i see that the error is with the BLOB file. Whenever an application gets built, the CLM BLOB also goes into the filesystem.bin in the build directory. Correct me if i'm wrong here but i think that you trying to update the firmware with \43xxx_Wi-Fi\resources\firmware\4343W\4343WA1.bin which is the reason i think that you are getting the error. Try updating using the filesystem.bin file and the error should go away.

Thanks

0 Likes
The ota_fr application by default only performs the application update and doesn't perform the firmware update. So i'm guessing that there are some changes which have been made to update the firmware. Is it possible to share the modified application?

->Hello MuraliR_36

Regarding OTA, there is no change from the default mechanism.

Performs application updates only, no firmware updates.

In this situation, changing [4343WA1.bin] and updating with the build result (application binary) causes a problem.

I'm guessing that "wwd_process_clm_data ()" causes an error because only the application is updated and the external flash is not updated. Is there a solution?

■ Supplementary information

-About the difference before and after the update, only the difference of 4343WA1.bin

  Differences between 4343WA1.bin before and after update are as follows

  [1] Before update: 4343WA1.bin was originally included in WICED

  [2] After update: Software that was obtained by another route and changed the heat protection temperature setting from 80℃ to 100℃

  (Confirmation status)

  *If the software of [2] is updated by OTA for the module for which the software of [1] is updated, a problem will occur.

  *If the software of [1] is updated in OTA for the module for which the software of [1] is updated, it will start normally.

  *For modules for which the software of [2] has been updated (updated with WICED Studio), if the software of [2] is updated with OTA, it will start normally.

Thanks

0 Likes

There is additional confirmation

On page 3 of WICED-Resource-Filesystem.pdf, "The Resource Filesystem stores data in the FLASH that the Application will use during runtime. It is expected that the data stored in the filesystem is not to be changed over the lifecycle of the device. ."It has been described as.
-Is "File System Image" an area that cannot be updated?

-If I ignore the error in wwd_process_clm_data() or disable the function, is there a problem in operation?
(I do not understand what kind of problem occurs because I do not understand the contents of wwd_process_clm_data())

0 Likes

Sorry to bother you again.

Is there anything else that OTA cannot rewrite like this time?

If so, is that data likely to be updated due to vulnerability countermeasures?

0 Likes

Hello hiko_4316286

I apologize for the delayed response.

I assumed that there were some changes made to receive the .bin file in the firmware update. By default, to do the update in ota_fr, the application stripped.elf needs to used(available at /43xxx_Wi-Fi/build/cleaned build string/binary/cleaned build string.stripped.elf) and not the .bin file. This is because all applications that are downloaded in WICED are downloaded in the striped.elf format

Is "File System Image" an area that cannot be updated?

--> The ota_fr application can't update the device firmware. What is the host processor being used along with the 4343. This is because if the host processor has sufficient memory, then OTA2 can be considered as an option as this does both the firmware and the application update. Please refer to Over The Air update in CYW43907 , OTA Method for CYW43438+STM32F412 and it may provide further insights.

-If I ignore the error in wwd_process_clm_data() or disable the function, is there a problem in operation?

--> The wwd_process_clm_data() is responsible for processing the .clm_blob file available at /43xxx_Wi-Fi/resources/firmware/4343W and this file contains critical regulatory information which is needed for the functioning of the WLAN chip. So this function is needed.

To get more information on where the issue is being thrown in wwd_process_clm_data() you could enable the below in wiced_defaults.h at /43xxx_Wi-Fi/include

#define WPRINT_ENABLE_WWD_INFO       

#define WPRINT_ENABLE_WWD_DEBUG

#define WPRINT_ENABLE_WWD_ERROR

Is there anything else that OTA cannot rewrite like this time?

-->The ota_fr app only overwrites the application file.

If so, is that data likely to be updated due to vulnerability countermeasures?

--> I'm assuming that you are referring to doing a firmware updates as and when vulnerabilities arise. By default, the firmware can't be updated when using OTA. Although looks like this issue was reported earlier and there was a fix provided by the community at Re: Updating 4343W wifi firmware for our module via OTA . The fix may work but hasn't gone through standard testing procedures at cypress.

Thanks

Hello MuraliR_36

Thank you for your answer.

And I'm sorry to bother you again.

If APPS.bin does not change for external flash data, the following error will not occur even if the filesystem.bin file size changes?

・Error

************************************************** **

** ERROR: WLAN: could not download clm_blob file

** FATAL ERROR: system unusable, CLM blob file not found or corrupted.

************************************************** **

Thanks

0 Likes

hiko_4316286 No issues. Always happy to help  . Is it possible for you to share the application that you are using and provide me with the steps that you are performing to do the OTA update so that i can clear the doubts that you have and figure out if there are any mistakes in the process in a better way.

I'm sorry. The application cannot be shared due to security concerns.

The flow of problem occurrence is as follows (Please point out any errors).

  -4343WA1.bin is replaced and build, filesystem.bin changes.

  -If you update in this state, only the application part will be updated and the external Flash will remain as it was.

   *Because the firmware cannot be updated with OTA.

  -After updating, an error will occur at the same time after restart.

   * It seems that there is an error because there is a difference between the application and the external Flash address.

I think that if APPS.bin does not change, it will work even if the size of filesystem.bin is different. Is this recognition correct?

0 Likes

I will supplement the above question.

*Edited the contents and added the details.

■Prerequisites

It is estimated that APPS.bin has an area that stores the address of "File System Image".

At this time, when each module is built, the same APPS.bin is generated in V1 and V3, and different APPS.bin is generated in V1 and V2.

The size of filesystem.bin of each module is as follows.

・V1: 437650 bytes(External Flash data)

・V2: 414283 bytes(filesystem.bin in the build directory)

・V3: 437646 bytes(filesystem.bin in the build directory)

■ Guess

When updating from V1 to V2, an error will occur, but I think that there are the following factors.

-External Flash cannot be updated on OTA

-Filesystem.bin size is very different from V1(APPS.bin has changed from V1).

■ Question

When updating from V1 to V3, there is a difference in filesystem.bin, but OTA cannot update to external flash. However, the difference in size of filesystem.bin is only 4 bytes from V1, and APPS.bin is not changed, so unlike V2, no error occurs.

If APPS.bin does not change, is it OK to assume that no error occurs even if filesystem.bin changes?

0 Likes

hiko_4316286 i think that there is some confusion regarding fundamentals of how our OTA (not OTA2) is implemented.

Using OTA, only the application can be updated and not the device firmware(filesystem.bin which contains the 4343WA1.bin and the 4343WA1.clm_blob).

So if at all you are using the OTA, you can only update the application which is on the internal flash using the stripped.elf file and not the APPS.bin file. Say for example if i want to update my application to perform a scan, i need to use the file snip.scan-<your_platform>.stripped.elf available at /43xxx_Wi-Fi/build/snip.scan-<your_platform>/binary/ . The application update can be anything. The ota_fr.c at /43xxx_Wi-Fi/apps/snip/ota_fr/ gives a brief explanation as to how the OTA needs to be performed.

Please go through the WICED-OTA.pdf  at /43xxx_Wi-Fi/doc/ for a clear understanding.

0 Likes
So if at all you are using the OTA, you can only update the application which is on the internal flash using the stripped.elf file and not the APPS.bin file.

  ->I have been successful in updating my internal flash application in OTA using the stripped.elf file.

Since it is not transmitted well, I will explain it in order.

■ Background

V1 is a product already on the market.

Only 4343WA1.bin has been modified from the V1 software, which creates two types of software V2 and V3.

(V2 did not work as described in [Result 1], so I modified 3433WA1.bin to create V3.)

Commercial product software: V1

Software that changed only 4343WA1.bin: V2 (Software comparison result of V1 and V2: APPS.bin and filesystem.bin differ between V1 and V2. There is a difference of 23,367 bytes in filesystem.bin.)

Software that changes only 4434WA1.bin: V3 (Software comparison result of V1 and V3: Only filesystem.bin differs between V1 and V3. APPS.bin is the same. filesystem.bin has a difference of 4 bytes.)

If you use OTA to update your software, you can only update your application. I think I can't update the filesystem.bin and APPS.bin on the external system.

V1 on the market will be updated on OTA.

In that case, the following inconsistencies occur between the application and the external flash.

   -Updated the application to "Software with only 4433WA1.bin changed"

   -External flash filesystem.bin and APPS.bin are not updated from software distributed in the market.

■Confirmation result

□ Result ① (when a commercial product (V1) is updated to V2 software by OTA)

The commercial product (V1) was successfully updated to V2 software using OTA, but when I started it after the software update, it failed with the following error:

  ************************************************** **

  **Error: WLAN: Could not download clm_blob file

  **Fatal error: The system is unusable or the CLM blob file is missing or corrupted.

  ************************************************** **

□ Result ② (when a commercially available product (V1) is updated to V3 software with OTA)

The product on the market (V1) has been successfully updated to V3 software using OTA.

We also check the operation after software update.

・Update the application to V3 software

・Filesystem.bin and APPS.bin of external flash remain V1

The external Flash hasn't been updated, so I think it has some inconsistencies with the application, but it seems to work fine.

■ Guess

According to the above confirmation result, even if there is a difference in filesystem.bin, APPS.bin that stores the address is exactly the same

I don't think there is any problem if you update the commercial product (V1) to V3 with OTA.

*After updating the commercial product (V1) to V3 with OTA, the filesystem.bin and APPS.bin of the external flash are still V1, but since OTA cannot update the external flash, it is allowed.

■ Question

I would like to confirm that the above [Result (2)] does not pose a problem.

Using OTA to update the changes in 4343WA1.bin only updates the application, not the external flash.

At this point, is it okay to assume that the problem isn't going to happen like the Guess above?

0 Likes
HiNa_2357246
Level 5
Level 5
Distributor - Macnica (Japan)
5 likes given 50 replies posted First like given

MuraliR_36

Hi,

Let me add the background and purpose of hiko_4316286 , and description for each versions.

[Description for each version]

"V1" : WLAN FW Version1 + User app Version1

"V2" : WLAN FW Version2 + User app Version2 (The only change in the User app is the version number value.)

       ->OTA fails.

"V3" : WLAN FW Version3 + User app Version3 (The only change in the User app is the version number value.)

       ->OTA looks like succeeded.

         However, since the WLAN FW (filesystem.bin) has changed, so it cannot be judged as OTA successful.

         At this time, it is not important that the WLAN FW is not updated due to the following background.

[Background of this Case]

- Hundreds of hiko_4316286 products are already on the market with "V1".

- Future products will be shipped out with "V3". (Write "V3" at the factory.Not OTA update)

- "V3" is stored in the their OTA server due to management the entire product.

- Due to product specifications/restrictions, "V1" products will be forced OTA update to server's Version("V3").

  -> Customer's concern is here.

[Key point]

Products written with "V1" will be forcibly updated to "V3".

This time, we think the timing was bad (The WLAN FW has also changed even though WLAN FW cannot OTA update.)

According to the hiko_4316286 , the OTA mechanism has not changed from the WICED studio standard.

In this case, if there is no issues as a result of the customer's sanity check with OTA updated "V3",

is it OK to assume that the OTA has been completed?

Customer is not asking Cypress to guarantee OTA operation including WLAN FW.

Customer is looking for an opinion whether it can be said that this OTA to V3 is no problem as a result.

Best Regards,

0 Likes

There is a correction to the supplementary explanation from HiNa_2357246

-Although it says "OTA fails", OTA is successful

   OTA only updates the application, not the external Flash.

   Therefore, it is presumed that there is an error when loading the external Flash filesystem.bin from the application after restarting after updating.

-In the previous QA, there was an error in the file name of 4343WA1.bin, so I will re-post it.

   Please answer the following [■ Question].

Repost

■ Background

V1 is a product already on the market.

Only 4343WA1.bin has been modified from the V1 software, which creates two types of software V2 and V3.

(V2 did not work as described in [Result 1], so I modified 4343WA1.bin to create V3.)

Commercial product software: V1

Software that changed only 4343WA1.bin: V2 (Software comparison result of V1 and V2: APPS.bin and filesystem.bin differ between V1 and V2. There is a difference of 23,367 bytes in filesystem.bin.)

Software that changes only 4343WA1.bin: V3 (Software comparison result of V1 and V3: Only filesystem.bin differs between V1 and V3. APPS.bin is the same. filesystem.bin has a difference of 4 bytes.)

If you use OTA to update your software, you can only update your application. I think I can't update the filesystem.bin and APPS.bin on the external system.

V1 on the market will be updated on OTA.

In that case, the following inconsistencies occur between the application and the external flash.

   -Updated the application to "Software with only 4343WA1.bin changed"

   -External flash filesystem.bin and APPS.bin are not updated from software distributed in the market.

■Confirmation result

□ Result ① (when a commercial product (V1) is updated to V2 software by OTA)

The commercial product (V1) was successfully updated to V2 software using OTA, but when I started it after the software update, it failed with the following error:

  ************************************************** **

  **Error: WLAN: Could not download clm_blob file

  **Fatal error: The system is unusable or the CLM blob file is missing or corrupted.

  ************************************************** **

□ Result ② (when a commercially available product (V1) is updated to V3 software with OTA)

The product on the market (V1) has been successfully updated to V3 software using OTA.

We also check the operation after software update.

・Update the application to V3 software

・Filesystem.bin and APPS.bin of external flash remain V1

The external Flash hasn't been updated, so I think it has some inconsistencies with the application, but it seems to work fine.

■ Guess

According to the above confirmation result, even if there is a difference in filesystem.bin, APPS.bin that stores the address is exactly the same

I don't think there is any problem if you update the commercial product (V1) to V3 with OTA.

*After updating the commercial product (V1) to V3 with OTA, the filesystem.bin and APPS.bin of the external flash are still V1, but since OTA cannot update the external flash, it is allowed.

■ Question

I would like to confirm that the above [Result (2)] does not pose a problem.

Using OTA to update the changes in 4343WA1.bin only updates the application, not the external flash.

At this point, is it okay to assume that the problem isn't going to happen like the Guess above?

0 Likes

hiko_4316286 HiNa_2357246

Here is what is understood.

Please correct me if i am wrong even now.

  • V1 is a product in the market with a particular application(lets assume this as 'A') using the firmware(4343WA1.bin)(lets assume this as 'X').
  • V3 is a an update for V1 built using application(lets assume this as 'B') using another firmware(lets assume this as 'Y').

You are trying to perform an OTA update for V1 using V3.

The questions are

  1. Since V1 is built using 'A' and 'X' and V3 is built using 'B' and 'Y'; will it be an issue if the OTA update of V1 is performed using V3?
  2. When V1 was updated using V2, it failed. Will this be an issue?

Here are my observations.

  1. I tried this out in the following way and everything seemed to work fine and i don't see any issues. Although i recommend that you test this thoroughly before rolling out the update to the products on the field.
    • I built and downloaded the ota_fr app and then performed an OTA update of the snip.scan app built using a different firmware version.
    • I built and downloaded the ota_fr app and then performed an OTA update of the snip.apsta app built using a different firmware version.
  2. I'm not sure as to why it failed when using V2 and will be difficult to comment without reproducing the exact issue on my side.

Now coming to your guess, yes it is correct. The .elf file is designed for that purpose itself. The filesystem.bin resides in the external flash. The OTA update is performed on the main application i.e., APP0.

  • V1 is a product in the market with a particular application(lets assume this as 'A') using the firmware(4343WA1.bin)(lets assume this as 'X').
  • V3 is a an update for V1 built using application(lets assume this as 'B') using another firmware(lets assume this as 'Y').

Supplement

The difference between X and Y 4343WA1.bin is the temperature setting for heat protection. X: 80°C, Y: 100°C.

The contents of A and B are the same, only the firmware (4343WA1.bin) is different.

You are trying to perform an OTA update for V1 using V3.

The questions are

  1. Since V1 is built using 'A' and 'X' and V3 is built using 'B' and 'Y'; will it be an issue if the OTA update of V1 is performed using V3?

correction. I want to know the following

V1 is built using "A" and "X", V3 is built using "B" and "Y".

Is it correct to assume that when I perform an OTA update of V1 using V3, if "APPS.bin" is unchanged, then changing "filesystem.bin" will not cause any problems?

2. When V1 was updated using V2, it failed. Will this be an issue?

correction. I want to know the following

I want to understand the cause of the failure.

Is it possible to identify the cause by either "2-1" or "2-2"?

2-1

  ************************************************** **

  **Error: WLAN: Could not download clm_blob file

  **Fatal error: The system is unusable or the CLM blob file is missing or corrupted.

  ************************************************** **

Is it possible to infer the cause from the content of the above error and the information of 4343WA1.bin used in V2 below?

□ Information on 4343WA1.bin used in V2

About the difference between V2 4343WA1.bin and "X"

・Changed WPA3 SAE from enable setting to disable setting

・Changed the temperature setting for heat protection from 80℃ to 100℃

A file has been provided that corresponds to the above. (WPA3 SAE setting was changed to enable⇒disable by mistake)

Software comparison result of V1 and V2: APPS.bin and filesystem.bin are different in V1 and V2. There is a difference of 23,367 bytes in filesystem.bin.

2-2

About the difference between V2 4343WA1.bin and "X"

・See "Information about 4343WA1.bin used in V2" in "2-1"

About the difference between V3 4343WA1.bin(Y) and "X"

・Changed the temperature setting for heat protection from 80℃ to 100℃

A file has been provided that corresponds to the above.

Software comparison result of V1 and V3: Only filesystem.bin is different between V1 and V3. APPS.bin is the same. filesystem.bin has 4 bytes difference.

Is it possible to reproduce the error that occurred in the check at startup after updating V1 using V2 with the above information?

If an error occurs, please let us know the cause.

As Cypress, please contact us if there is no problem attaching the 4343WA1 sent at the time of V2, V3 to this QA. If there is no problem, I will attach it.

0 Likes

I missed asking this before.

When you use the V2 firmware and download a basic application onto your device like snip.scan or snip.apsta do you observe the same error or is this something specific to OTA?

Also can you attach all the 3 firmware.bin files here so that i can check using those itself.

lock attach
Attachments are accessible only for community members.
I missed asking this before.

When you use the V2 firmware and download a basic application onto your device like snip.scan or snip.apsta do you observe the same error or is this something specific to OTA?

The error only occurs when I rewrite the application with OTA.

Also can you attach all the 3 firmware.bin files here so that i can check using those itself.

I have attached the file. Please refer to 4343WA1.zip.

0 Likes

I tried out the doing OTA updates using both the V2 and the V3 firmware and yes, I too see some OTA update issues when using V2. Can you let me know the MyCase or the point of contact of cypress' sales/marketing from whom you received these updated firmwares? I will need to check with them as i also see some difference in the build strings used to build the firmware.

Can you let me know the MyCase or the point of contact of cypress' sales/marketing from whom you received these updated firmwares?

We have arranged to contact you via the Cypress retailer.

Did you get in touch?

0 Likes

hiko_4316286 I'm not sure how your cypress retailer tried to contact.

Did they create a Mycase?

0 Likes

I am not sure how to contact you, but it was said that it is currently being adjusted, so please wait a little longer.

While we're waiting, may I get an answer to my previous question?

-Questions ( 9. Re: About malfunction after update )

"If APPS.bin does not change, is it OK to assume that no error occurs even if filesystem.bin changes?"

0 Likes
hiko_4316286 I'm not sure how your cypress retailer tried to contact.

Did they create a Mycase?

We have been informed by a cypress retailer that they have contacted us.

Have you been contacted?

If you've already been contacted, please post your response in the discussion here as well.

0 Likes

HiNa_2357246 contacted me and told his cypress Point of Contact who helped him with the firmware. I am checking with him and will get back to you as soon as i have good results/answers.

If APPS.bin does not change, is it OK to assume that no error occurs even if filesystem.bin changes?"

--> How do you intend on changing filesystem.bin via OTA? or is this just while building the application? If the latter, then you can build the Application using different FW versions and it should be of no issue.

0 Likes
If APPS.bin does not change, is it OK to assume that no error occurs even if filesystem.bin changes?"

--> How do you intend on changing filesystem.bin via OTA? or is this just while building the application? If the latter, then you can build the Application using different FW versions and it should be of no issue.

I don't plan to change anything in particular, but would like to corroborate the problem that has occurred, so I asked this question.

Please refer to my previous article ( 13. Re: About malfunction after update ) for preconditions.

As for the history of the above QA, 4343WA1.bin has been changed, which has changed both the apps.bin and filesystem.bin and caused an error. After this, 4343WA1.bin was changed again and the amount of change in filesystem.bin was reduced and there was no change in apps.bin. At this time, because the error did not occur, I think that if it is a change which does not change the apps.bin, the error does not occur even if the filesystem.bin changes. Is this idea correct?

0 Likes

What's the status of the confirmation?

If you find out anything, please respond.

0 Likes

What's the status of the confirmation?

Please let us know if there are any questions or missing information.

0 Likes

hiko_4316286 I apologize for the delay.

Whenever an APPS.bin is build, irrespective of whether or not it is changed, it is built with respect to the firmware(filesystem.bin) under question.

Now, in your case, since V1 and V3 are very similar in sizes, the what goes where in the memory sectors occupied by the filesystem.bin isn't varying much and hence there is no issue when the APPS.bin changes/remains the same.

In the case of V2, there is a significant change ~20K bytes which has resulted in the what goes where in the memory sectors occupied by the firmware to change, which might be causing the issue of loading the application during the OTA.

Hope my answer helped you understand as to why the OTA might be failing when using V2 as the WLAN firmware.

Let me know if there is something which is still unclear.

0 Likes

Thank you for your answer.

My understanding of the following is that it's OK?

The placement of the external Flash firmware has changed and an error has occurred due to an inconsistency between the placement of memory sectors managed by the application and the placement of the external Flash.

0 Likes

Yes. That's correct.

0 Likes