cancel
Showing results for 
Search instead for 
Did you mean: 

Windows 10 does not recognise ethernet over USB for STM32MP157C-DK2

CRong
Associate II

I connected the board to the OTG port. In the DFU mode, the USB port can be recognised correctly. When switching to the normal mode, Windows 10 cannot recognise the device. I tried to force to install the device as "Remote NDIS Compatible Device". Windows shows device status as "This device cannot start (Code 10)".

I have stuck on this issue for more than 2 weeks. Please help!

18 REPLIES 18
Olivier GALLIEN
ST Employee

Hi @CRong​ 

Could you please confirm you are following the procedure to setup ethernet over USB present in the help of SW4STM32 ?

STM32 MPU Family - MCU Support -> Tips and Tricks -> Ethernet-over-USB Windows 10 Set-up

Thx

Olivier

Olivier GALLIEN
In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
CRong
Associate II

Hi Oliver @Community member​ 

Thanks for your reply.

Yes, I did follow that procedure. The USB0 interface is up. However, in device manager, the OTG usb device is not recognised. It shows as "Unknown device". When using "Let me pick from a list of device drivers on my computer", it does not show "Remote NDIS compatible device" as in the procedure.

Thanks

Chris

I had the same problem on my new PC. But connecting the STM32MP via a USB2.0 HUB makes it work. I think it has something to do with OTG driver and new motherboards which supports usb C.

Thanks, Robin

Just ordered a USB hub. Will give a try ....

CRong
Associate II

Hi, @robin_elecgator​ 

It works now with USB hub ... Thanks a lot.

Good, I'm just wondering on which PC didn't it work? I have it tested only on Dell computers with a 8th gen intel processor.

I had it on both the devkit and a custom board that we designed.

Which type of PC do you use?

I currently have the following 3 options:

A) There is a problem with the drivers of intel

B) There is a problem with the USB gadget driver in the kernel

C) There is a problem in the hw usb driver

But I don't have really the time to pin point it.

Olivier GALLIEN
ST Employee

Hi @robin_elecgator​  and @CRong​ 

We are interesting to pin point the root cause of this.

Could you please both confirm that on target side during boot you have following traces :

[ 442.850073] dwc2 49000000.usb-otg: new device is high-speed

[ 442.885715] dwc2 49000000.usb-otg: new address 8

[ 442.934950] configfs-gadget gadget: high-speed config #1: c

[ 442.939395] IPv6: ADDRCONF(NETDEV_CHANGE): usb0: link 

Then can you please share as many details as possible on your PC and USB controller :

model, USB2 and USB3 controller name and type etc...

Thanks a lot,

Olivier

Olivier GALLIEN
In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

Fact that USB Hub is a workaround can point a problem of power compatibility with PC USB controller.

Could you please try following change for a test :

On target :

root@stm32mp1:~# /sbin/stm32_usbotg_eth_config.sh stop # stop the USB gadget

root@stm32mp1:~# vi /sbin/stm32_usbotg_eth_config.sh #edit the script

replace echo 250 > "${d}/configs/${c}/MaxPower"

with echo 100 > "${d}/configs/${c}/MaxPower"

Save and quit

root@stm32mp1:~# /sbin/stm32_usbotg_eth_config.sh start # restart the Gadget

Check if RNDIS is now up on PC side.

Thx

Olivier

Olivier GALLIEN
In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
robin_elecgator
Associate II

Hi @Community member​ 

I connect my DK2 to my pcb with a Type C to Type C cable. I get the following:

[   16.947132] dwc2 49000000.usb-otg: new device is high-speed
[   16.981167] dwc2 49000000.usb-otg: new address 4
[   17.027155] dwc2 49000000.usb-otg: Failed to exit L1 sleep state in 200us.
[   17.032624] configfs-gadget gadget: high-speed config #1: c
[   17.038284] dwc2 49000000.usb-otg: dwc2_hsotg_enqueue_setup: failed queue (-11)
[   17.045822] dwc2 49000000.usb-otg: Failed to exit L1 sleep state in 200us.
[   17.065150] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[   17.765371] IPv6: ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready
[   22.028030] dwc2 49000000.usb-otg: Failed to exit L1 sleep state in 200us.

The PC is a Dell Precision 3630, with a i7-8700k running on Intel C246 (Cannon lake chipset).

I also your edit. This gives me the following:

root@stm32mp1-disco:~# vi /sbin/stm32_usbotg_eth_config.sh stop
root@stm32mp1-disco:~#  /sbin/stm32_usbotg_eth_config.sh start
[ 1002.974225] using random self ethernet address
[ 1002.977321] using random host ethernet address
[ 1003.018066] usb0: HOST MAC 6e:3e:60:48:19:09
[ 1003.022272] usb0: MAC ca:05:50:a6:2d:81
[ 1003.028168] dwc2 49000000.usb-otg: bound driver configfs-gadget
[ 1003.191413] dwc2 49000000.usb-otg: new device is high-speed
[ 1003.224592] dwc2 49000000.usb-otg: new address 8
[ 1003.252019] dwc2 49000000.usb-otg: Failed to exit L1 sleep state in 200us.
[ 1003.257496] configfs-gadget gadget: high-speed config #1: c
[ 1003.259257] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[ 1003.263135] dwc2 49000000.usb-otg: dwc2_hsotg_enqueue_setup: failed queue (-11)
[ 1003.276536] dwc2 49000000.usb-otg: Failed to exit L1 sleep state in 200us.
[ 1003.283200] IPv6: ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready
ifconfig: SIOCSIFADDR: Invalid argument
root@stm32mp1-disco:~# [ 1008.253305] dwc2 49000000.usb-otg: Failed to exit L1 sleep state in 200us.
[ 1008.259049] dwc2 49000000.usb-otg: Failed to exit L1 sleep state in 200us.