CX3 Device Descriptor Request Failed

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

cross mob
lock attach
Attachments are accessible only for community members.
AlLe_287991
Level 2
Level 2
First like given

Hello!

I have a device with CX3 chip.

I have a problems with this device and some PCs.

I attach the device to the PC when it completely OFF, then I start the PC and wait when Windows is loaded. When Windows is ready - I got Unknown Device.

If I attach the device to the PC when Windows has been already loaded - everything is good.

The PC - Dell Prestigio M3800.

The reset is more than 15 ms

Device without firmware. Usually I load it in a driver section.

I have attached USB data from analyzer.

BIOS and Windows is up to date.

0 Likes
1 Solution

So What I understand

I have loaded firmware in pnpPowerCallbacks.EvtDevicePrepareHardware

For sending packages I use this function WdfUsbTargetDeviceSendControlTransferSynchronously

And on some PCs the return value  can be not STATUS_SUCCESS

Some PCs set this request to queue and return status STATUS_INVALID_DEVICE_REQUEST

WdfUsbTargetDeviceSendControlTransferSynchronously function (wdfusb.h) - Windows drivers | Microsoft...

When I check for this return value also - my firmware successfully was loaded to CX3

View solution in original post

0 Likes
8 Replies
KandlaguntaR_36
Moderator
Moderator
Moderator
25 solutions authored 10 solutions authored 5 solutions authored

Hello,

Please let me know what is the PMODE settings for your board.

Is it USB Bootloader Mode PMODE[2:0] = Z11?

Regards,

Sridhar

0 Likes

Hello!

No I have SPI -> USB  mode. PMODE[2:0] = 0Z1

I have set VID PID in SPI

0 Likes

Please confirm whether the device is operating in bus power mode.

Please load USBBulkSourceSink and collect the UART logs: C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\basic_examples\cyfxbulksrcsink

Is the issue happening everytime you restart the PC while connecting the CX3 device?

Regards,

Sridhar

0 Likes

I checked it with Denebola RDK. When I set SPI->USB mode with following data in SPI memory

0x43, 0x59, 0x10, 0xb2, 0x22, 0xE3, 0x6a, 0x1c   and have the same problem. So I think the problem is not in my hardware.

When I have loaded USBBulkSourceSink I have good result, the device started properly.

The issue happened every time when I start PC from shutdown.

The restart works well, probably because the power doesn't disappear from USB port.

0 Likes

Then the issue happens when you start the PC from shutdown.

What is happening when you load the USBBulkSourceSink to SPI Memory and set the PMODE to 0Z1 then start the PC from Shutdown.

Looks like you want to enumerate device with your own VID and PID. Hence, you are using B2 image as mentioned in the KBA: FX3 as Custom USB Bootloader - KBA218343 section a.

Can you please probe SPI lines and see whethere the CX3 is getting the data from SPI memory?

What is the result of start the PC from Shutdown with PMODE as USB Bootloader (Z11)? Is it enuemerating as expected?

What is the result if you use 0xB2 image with Cypress VID and PID?

Regards,

Sridhar

0 Likes

Hello!

"What is happening when you load the USBBulkSourceSink to SPI Memory and set the PMODE to 0Z1 then start the PC from Shutdown."

- The CX3 works properly and properly identify in Windows

"Looks like you want to enumerate device with your own VID and PID. Hence, you are using B2 image as mentioned in the KBA: FX3 as Custom USB Bootloader - KBA218343 section a.

Can you please probe SPI lines and see whethere the CX3 is getting the data from SPI memory?"

- Yes I use B2 image, and start with own VID PID. Then I load firmware in driver. As we can see from USB Analyzer log file - CX3 properly read SPI memory and firstly answer with proper VID PID.

1,HS,7607,0:37.252.928,916 ns,8 B,,00,00,  SETUP txn,80 06 00 01 00 00 40 00

1,HS,7611,0:37.252.933,23.398 us,18 B,,00,00,  IN txn  [1 POLL],12 01 00 02 00 00 00 40 6A 1C 22 E3 00 01 01 02 03 01

Then CX3 didn't answer on device descriptor request.

0,HS,9693,0:37.519.309,918 ns,8 B,T,00,00,SETUP txn,80 06 00 01 00 00 40 00

0,HS,9697,0:37.519.313,1.999.995.548 s,,,00,00,[89534 IN-NAK],[Periodic Timeout]

"What is the result of start the PC from Shutdown with PMODE as USB Bootloader (Z11)? Is it enuemerating as expected?"

- Unknown USB device (Device descriptor request failed)

"What is the result if you use 0xB2 image with Cypress VID and PID?"

0x43, 0x59, 0x10, 0xb2, 0xF2, 0xFF, 0xb4, 0x04

- The result is good

So I find out that my driver cause this problem. I have created it based on CyUSB3.sys, I think five years ago, maybe you can provide me the latest sources of the your driver CyUSB3.sys ?

Now I tried to load firmware in pnpPowerCallbacks.EvtDevicePrepareHardware

0 Likes

Hello,

Please find the latest CYUSB3.sys driver with FX3 SDK Page.

CyUSB3_USB_Suite_Source.zip

Regards,

Sridhar

So What I understand

I have loaded firmware in pnpPowerCallbacks.EvtDevicePrepareHardware

For sending packages I use this function WdfUsbTargetDeviceSendControlTransferSynchronously

And on some PCs the return value  can be not STATUS_SUCCESS

Some PCs set this request to queue and return status STATUS_INVALID_DEVICE_REQUEST

WdfUsbTargetDeviceSendControlTransferSynchronously function (wdfusb.h) - Windows drivers | Microsoft...

When I check for this return value also - my firmware successfully was loaded to CX3

0 Likes