Content in the OTP on CYW43438

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

cross mob
Anonymous
Not applicable

We are using CYW43438, and I want to know what content should be burned to the OTP while manufacturing.

I searched google and only found the application note - OTP Programming and NVRAM Development in SDIO Mode

It describes how to create and burn a CIS structure to OTP by using command wl cisdump or dump by wl cisdump.

But when I dump the whole OTP using the command wl otpdump, I found that CIS structure was just a part of the whole OTP content, there are more content before and after it which was NOT described in the document above (see below which dumped from CYW43362).

Are there any more documents describe about it ?

Thanks.

pastedImage_3.png

0 Likes
1 Solution
PriyaM_16
Moderator
Moderator
Moderator
250 replies posted 100 replies posted 50 replies posted

Hello,

The OTP contains some module specific information which is used by the board after reset. The user programmable memory starts from the OTP header info:

pastedImage_0.png

Post SDIO header, the board parameters can be entered as mentioned in the App note. Note that all the customizable parameters are mentioned in the nvram file specific to a board. Once the parameters are hardened, selected parameters are written to OTP as it is not big enough to contain all nvram parameters. Also the CIS tuples are not defined for all the nvram parameters.

Module vendors populate the OTP to contains SDIO header, board rev, board type, WLAN MAC addr, sromrev, Module vendor specific ID, OTP end, etc.

ciswrite is used to write specific bits to OTP. cisdump is used to confirm whether the OTP is programmed successfully. If the cisdump is verified to match the OTP binary map(wl otpdump), the OTP programming is complete.

View solution in original post

4 Replies
PriyaM_16
Moderator
Moderator
Moderator
250 replies posted 100 replies posted 50 replies posted

Hello,

The OTP contains some module specific information which is used by the board after reset. The user programmable memory starts from the OTP header info:

pastedImage_0.png

Post SDIO header, the board parameters can be entered as mentioned in the App note. Note that all the customizable parameters are mentioned in the nvram file specific to a board. Once the parameters are hardened, selected parameters are written to OTP as it is not big enough to contain all nvram parameters. Also the CIS tuples are not defined for all the nvram parameters.

Module vendors populate the OTP to contains SDIO header, board rev, board type, WLAN MAC addr, sromrev, Module vendor specific ID, OTP end, etc.

ciswrite is used to write specific bits to OTP. cisdump is used to confirm whether the OTP is programmed successfully. If the cisdump is verified to match the OTP binary map(wl otpdump), the OTP programming is complete.

Anonymous
Not applicable

Hello,

Thanks for your reply.

Does this mean that the OTP content before SDIO header was programmed by the IC vendor?

Actually I'm wondering whether I need to perform crystal oscillator tuning for each module when mass produce.

Because I can't find tuning related CIS tuples in the above document, so I think maybe the tuning value need to write to other section of the OTP (that is why I want to know the detailed description about the OTP content), or maybe I needn't to perform tuning for every module and just need to generate a "golden" OTP file during the development stage(as mentioned in the above document) and then program to all module ?

Thanks.

0 Likes
PriyaM_16
Moderator
Moderator
Moderator
250 replies posted 100 replies posted 50 replies posted

As long as the hardware circuitry is proper (layout guidelines followed and appropriate input/output capacitors added), there are no calibration required for the crystals in firmware.

You can refer the section 3( Frequency References) of datasheet for further details of the LPO.

The only parameter that need to be changed for external crystal oscillator is boardflags3.

boardflags3= 0x04000000  /* Force internal lpo */
boardflags3=0x08000000  /* Force external lpo */

The parameter is in wifi_nvram_image.h file in the specific platform folder in WICED SDK.

Anonymous
Not applicable

OK, thank you very much.

0 Likes