On 18/02/2023 16:47, RichardHo [何明忠] via groups.io wrote:
+ PrintRndisMsg (RndisMsg); + + Status = UsbIo->UsbControlTransfer ( + UsbIo, + &DevReq, + EfiUsbDataOut, + USB_ETHERNET_TRANSFER_TIMEOUT, + RndisMsg, + RndisMsg->MessageLength, + &UsbStatus + ); + + DEBUG ((DEBUG_INFO, "RndisControlMsg: UsbStatus : %x Status : %r RndisMsgResponse : %lx\n", UsbStatus, Status, RndisMsgResponse)); + + // Error or no response expected + if ((EFI_ERROR (Status)) || (RndisMsgResponse == NULL)) { + DEBUG ((DEBUG_INFO, "RndisControlMsg: UsbStatus : %x Status : %r\n", UsbStatus, Status)); + return Status; + } + + for (Index = 0; Index < (RNDIS_CONTROL_TIMEOUT/100); Index++) { + ReadRndisResponseInterrupt (UsbRndisDevice); Could you help review the ReadRndisResponseInterrupt function? (). While using USB Rndis, the Jade platform crashes. I found that AMI had published the same driver here OSF-Aptio-OpenEdition/UsbRndisFunction.c at main · opencomputeproject/OSF-Aptio-OpenEdition (github.com)<https://github.com/opencomputeproject/OSF-Aptio-OpenEdition/blob/main/UsbRndisPkg/UsbRndis/UsbRndisFunction.c>, however the RndisControlMsg function does not call ReadRndisResponseInterrupt. Jade platform (aarch64) works well with this (OSF-Aptio-OpenEdition/UsbRndisFunction.c at main · opencomputeproject/OSF-Aptio-OpenEdition (github.com)<https://github.com/opencomputeproject/OSF-Aptio-OpenEdition/blob/main/UsbRndisPkg/UsbRndis/UsbRndisFunction.c>). Does your x86 system work without this line ? + ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST)); + + DevReq.RequestType = USB_ENDPOINT_DIR_IN | USB_REQ_TYPE_CLASS | USB_TARGET_INTERFACE; + DevReq.Request = GET_ENCAPSULATED_RESPONSE; -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#100395): https://edk2.groups.io/g/devel/message/100395 Mute This Topic: https://groups.io/mt/97046156/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-