CY43012 WiFi, WHD, firmware not booting - CSR clock timeout

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

cross mob
PIHL
Level 3
Level 3
25 sign-ins 10 replies posted 10 sign-ins

Hello,

I try to test WiFi functionality of CY43012 radio chip. To do it I use Cypress WHD Library.

Unfortunately my application fails at function whd_bus_sdio_download_firmware, because of "Timeout while waiting for high throughput clock". It is a moment after firmware upload, where program waits for CY43012 firmware to boot.

At that moment program waits for SDIO_CHIP_CLOCK_CSR (0x1000E) register for SDIO function 1 (BACKPLANE_FUNCTION) to change its state to SBSDIO_HT_AVAIL (0x80), but I get the SBSDIO_ALP_AVAIL (0x40).

 

Is there anything I should consider 1st trying to fix this issue? I am confident with the SDIO part of my program working correctly. Other than that program uses functions from WHD Library.

 

In the firmware upload part of init I upload firmware as array of uint8_t from 43012C0_bin.c. It is converted to uint32_t while sending, the conversion is as in the example below. Is this conversion correct?

[161, 138, 0, 0] = 138*256+161 = 35489

The firmware is transferred with SDIO by 1024 bytes at a time. The command 53 transfer it as 16 blocks of 64 bytes.

I checked the starting RAM address that I write CY43012 firmware to. In the library ATCM_RAM_BASE_ADDRESS for my chip is 0.

 

Thanks,

Piotr

0 Likes
1 Solution
Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

Just to ensure, do you have an external LPO on your board? Also, it seems that you have a custom board in your setup. Can you provide more info on that?

Thanks

Aditi

View solution in original post

7 Replies
Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

Can you share with us the NVRAM image file? If you don't want to share it in an open forum, let us know. Also, from your response I assume that firmware download is failing, right? Can you share the full terminal logs/prints with us?

Thanks

Aditi

0 Likes
lock attach
Attachments are accessible only for community members.
PIHL
Level 3
Level 3
25 sign-ins 10 replies posted 10 sign-ins

Hi,

I took a default nvram image from cypress wiced example that uses the same wireless module - Murata 1LV. 

My console log is:

"Timeout while waiting for high throughput clock
SDIO firmware download error, whd_bus_sdio_init failed at 476"

Does it mean that the device is not booting at all, and it is not an issue with nvram?

I also implemented a function that is reading the firmware after upload and checks if all data is the same as in the image. This function passes so maybe there is an other configuration issue or the firmware image I use is not correct?

I use 43012C0_bin.c from: wifi-host-driver/43012C0_bin.c at master · cypresssemiconductorco/wifi-host-driver · GitHub

Thanks,

Piotr

0 Likes
PIHL
Level 3
Level 3
25 sign-ins 10 replies posted 10 sign-ins

Hi

Is there any module configuration that I need to have done correctly to boot the HT clock? Any specific clocks or pins state?

0 Likes
Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

Just to ensure, do you have an external LPO on your board? Also, it seems that you have a custom board in your setup. Can you provide more info on that?

Thanks

Aditi

PIHL
Level 3
Level 3
25 sign-ins 10 replies posted 10 sign-ins

Hello,

the issue was connected with the LPO, as suggested. After fixing it, the firmware is starting.

Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

Thanks for the update. Glad to know that the issue has been resolved.

Thanks

Aditi

Aditi_B
Moderator
Moderator
Moderator
500 replies posted 5 questions asked 250 replies posted

Hi,

Let us know if the issue is resolved. Please feel free to ask any queries.

Please provide feedback as well for my previous response.

Thanks

Aditi

0 Likes