You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm using Pi B+ for my tests if this matters
In EnumerateDevice around line 2645 the function call to HCDGetDescriptor overwrites device->PayLoadId which is right after device->Descriptor in the structure UsbDevice
/* USB ENUMERATION BY THE BOOK STEP 4 = Read Device Descriptor At Address */result=HCDGetDescriptor(
device->Pipe0, // Device control 0 pipeUSB_DESCRIPTOR_TYPE_DEVICE, // Fetch device descriptor 0, // Index 00, // Language 0&device->Descriptor, // Pointer to buffer in device structure sizeof(device->Descriptor), // Ask for entire descriptorbmREQ_GET_DEVICE_DESCRIPTOR, // Recipient device&transferred, true); // Pass in pointer to get bytes transferred backif ((result!=OK) || (transferred!=sizeof(device->Descriptor))) {// This should pass on any valid devicedwc_release_channel(pipectrl.Channel); // Release the channel we are exitingLOG("Enumeration: Step 4 on device %i failed, Result: %#x.\n",
device->Pipe0.Number, result); // Log any errorreturnresult; // Fatal enumeration error of this device
}
This causes USB detection to fail as deviceId becomes 0x82 instead of 0x01 that it should be
I verified this by saving deviceId before the faulty call and restoring it afterwards and USB started working.
uint8_tsavePlByte=device->PayLoadId;
/* USB ENUMERATION BY THE BOOK STEP 4 = Read Device Descriptor At Address */// Make faulty HCDGetDescriptor calldevice->PayLoadId=savePlByte;
Within HCDGetDescriptor I believe the problem might lie in HCDSumbitControlMessage
The text was updated successfully, but these errors were encountered:
I'm using Pi B+ for my tests if this matters
In EnumerateDevice around line 2645 the function call to HCDGetDescriptor overwrites
device->PayLoadId
which is right afterdevice->Descriptor
in the structureUsbDevice
This causes USB detection to fail as deviceId becomes 0x82 instead of 0x01 that it should be
I verified this by saving deviceId before the faulty call and restoring it afterwards and USB started working.
Within HCDGetDescriptor I believe the problem might lie in HCDSumbitControlMessage
The text was updated successfully, but these errors were encountered: