EM7455 network port changes from eth3 to eth4 after AT!RESET

I have a EM7455 cell module running on an embedded Linux board. The board boots up and the cell module network interface shows up as eth3 in ifconfig. After I reboot the cell module using AT!RESET command, the cell module network interface now is on eth4.

Does anyone know why, and is there a way for it to stay at eth3 after the reboot?

Thanks

I cannot reproduce the issue on Ubuntu PC.
do you see something like the following in dmesg which will deregister the eth interface?
[15621.974691] GobiNet 3-1:1.8 eth1: unregister ‘GobiNet’ usb-0000:00:14.0-1, GobiNet Ethernet Device


[15382.348289] usb 3-1: New USB device found, idVendor=1199, idProduct=9071
[15382.348300] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[15382.348307] usb 3-1: Product: Sierra Wireless MC7430 Qualcomm\xffffffc2\xffffffae\xffffffae Snapdragon\xffffffe2\xffffff84\xffffffa2\xffffff84\xffffffa2 X7 LTE-A
[15382.348313] usb 3-1: Manufacturer: Sierra Wireless, Incorporated
[15382.348318] usb 3-1: SerialNumber: LU62630017041012
[15382.349966] GobiSerial 3-1:1.0: GobiSerial converter detected
[15382.350261] usb 3-1: GobiSerial converter now attached to ttyUSB0
[15382.351210] GobiSerial 3-1:1.3: GobiSerial converter detected
[15382.351506] usb 3-1: GobiSerial converter now attached to ttyUSB1
[15382.352606] GobiNet 3-1:1.8 eth1: register ‘GobiNet’ at usb-0000:00:14.0-1, GobiNet Ethernet Device, c6:f9:56:d8:1b:fb
[15382.353040] USB Speed : USB 2.0
[15382.354108] GobiNet 3-1:1.10 eth2: register ‘GobiNet’ at usb-0000:00:14.0-1, GobiNet Ethernet Device, c6:f9:56:d8:1b:fb
[15382.354648] USB Speed : USB 2.0
[15394.425445] creating qcqmi0
[15394.425693] RawIP mode
[15394.517512] creating qcqmi1
[15394.517760] RawIP mode

//here I type
//sudo echo -ne “AT\x21RESET\xd\xa” > /dev/ttyUSB1

[15621.974072] usb 3-1: USB disconnect, device number 44
[15621.974226] GobiSerial driver ttyUSB0: GobiSerial converter now disconnected from ttyUSB0
[15621.974238] GobiSerial 3-1:1.0: device disconnected
[15621.974594] GobiSerial driver ttyUSB1: GobiSerial converter now disconnected from ttyUSB1
[15621.974606] GobiSerial 3-1:1.3: device disconnected
[15621.974691] GobiNet 3-1:1.8 eth1: unregister ‘GobiNet’ usb-0000:00:14.0-1, GobiNet Ethernet Device
[15622.024905] GobiNet 3-1:1.10 eth2: unregister ‘GobiNet’ usb-0000:00:14.0-1, GobiNet Ethernet Device
[15629.461218] usb 3-1: new high-speed USB device number 45 using xhci_hcd
[15629.478449] usb 3-1: config 1 has an invalid interface number: 8 but max is 3
[15629.478459] usb 3-1: config 1 has an invalid interface number: 10 but max is 3
[15629.478465] usb 3-1: config 1 has no interface number 1
[15629.478471] usb 3-1: config 1 has no interface number 2
[15629.479220] usb 3-1: New USB device found, idVendor=1199, idProduct=9071
[15629.479227] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[15629.479234] usb 3-1: Product: Sierra Wireless MC7430 Qualcomm\xffffffc2\xffffffae\xffffffae Snapdragon\xffffffe2\xffffff84\xffffffa2\xffffff84\xffffffa2 X7 LTE-A
[15629.479240] usb 3-1: Manufacturer: Sierra Wireless, Incorporated
[15629.479245] usb 3-1: SerialNumber: LU62630017041012
[15629.480866] GobiSerial 3-1:1.0: GobiSerial converter detected
[15629.481256] usb 3-1: GobiSerial converter now attached to ttyUSB0
[15629.481988] GobiSerial 3-1:1.3: GobiSerial converter detected
[15629.482238] usb 3-1: GobiSerial converter now attached to ttyUSB1
[15629.483295] GobiNet 3-1:1.8 eth1: register ‘GobiNet’ at usb-0000:00:14.0-1, GobiNet Ethernet Device, c6:f9:56:d8:1b:fb
[15629.483822] USB Speed : USB 2.0
[15629.484795] GobiNet 3-1:1.10 eth2: register ‘GobiNet’ at usb-0000:00:14.0-1, GobiNet Ethernet Device, c6:f9:56:d8:1b:fb
[15629.485446] USB Speed : USB 2.0
[15641.548615] creating qcqmi0
[15641.548739] RawIP mode
[15641.552681] creating qcqmi1
[15641.552736] RawIP mode

Thanks for your help.

I see from your dump that eth1 gets registered again as GobiNet 3-1:1.8, and eth2 gets registered again as GobiNet 3-1:1.10. This is the same as how it was registered at boot time.

For me, here is my dump of the relevant output from dmesg. Before the reset, eth3 is the active network interface.

… after cold boot …

obiSerial 4-1:1.0: GobiSerial converter detected
sb 4-1: GobiSerial converter now attached to ttyUSB0
obiSerial 4-1:1.2: GobiSerial converter detected
sb 4-1: GobiSerial converter now attached to ttyUSB1
obiSerial 4-1:1.3: GobiSerial converter detected
sb 4-1: GobiSerial converter now attached to ttyUSB2
BIFS: recovery needed
obiNet 4-1:1.8: eth3: register ‘GobiNet’ at usb-0002:04:00.0-1, GobiNet Ethernet Device, b6:9c:dd:bb:5e:31
SB Speed : USB 3.0
obiNet 4-1:1.10: eth4: register ‘GobiNet’ at usb-0002:04:00.0-1, GobiNet Ethernet Device, b6:9c:dd:bb:5e:31
SB Speed : USB 3.0

… now I do a AT!RESET …

GobiSerial driver ttyUSB0: GobiSerial converter now disconnected from ttyUSB0
Send ZERO CONF FAIL!
GobiSerial 4-1:1.0: device disconnected
GobiSerial driver ttyUSB1: GobiSerial converter now disconnected from ttyUSB1
GobiSerial 4-1:1.2: device disconnected
GobiSerial driver ttyUSB2: GobiSerial converter now disconnected from ttyUSB2
GobiSerial 4-1:1.3: device disconnected
GobiNet 4-1:1.8: eth3: unregister ‘GobiNet’ usb-0002:04:00.0-1, GobiNet Ethernet Device
GobiNet 4-1:1.10: eth4: unregister ‘GobiNet’ usb-0002:04:00.0-1, GobiNet Ethernet Device
usb 4-1: reset SuperSpeed USB device number 2 using xhci_hcd
xhci_hcd 0002:04:00.0: xHCI xhci_drop_endpoint called with disabled ep db14e92c
xhci_hcd 0002:04:00.0: xHCI xhci_drop_endpoint called with disabled ep db14e900
xhci_hcd 0002:04:00.0: xHCI xhci_drop_endpoint called with disabled ep de0761d8
xhci_hcd 0002:04:00.0: xHCI xhci_drop_endpoint called with disabled ep de0761ac
xhci_hcd 0002:04:00.0: xHCI xhci_drop_endpoint called with disabled ep de076058
xhci_hcd 0002:04:00.0: xHCI xhci_drop_endpoint called with disabled ep de076180
xhci_hcd 0002:04:00.0: xHCI xhci_drop_endpoint called with disabled ep de076118
xhci_hcd 0002:04:00.0: xHCI xhci_drop_endpoint called with disabled ep de07602c
xhci_hcd 0002:04:00.0: xHCI xhci_drop_endpoint called with disabled ep de076418
xhci_hcd 0002:04:00.0: xHCI xhci_drop_endpoint called with disabled ep de076000
xhci_hcd 0002:04:00.0: xHCI xhci_drop_endpoint called with disabled ep de0760ec
xhci_hcd 0002:04:00.0: xHCI xhci_drop_endpoint called with disabled ep de0760c0
xhci_hcd 0002:04:00.0: xHCI xhci_drop_endpoint called with disabled ep de0763ec
xhci_hcd 0002:04:00.0: xHCI xhci_drop_endpoint called with disabled ep de0763c0
GobiNet 4-1:1.10: eth3: register ‘GobiNet’ at usb-0002:04:00.0-1, GobiNet Ethernet Device, b6:9c:dd:bb:5e:31
USB Speed : USB 3.0
GobiNet 4-1:1.8: eth4: register ‘GobiNet’ at usb-0002:04:00.0-1, GobiNet Ethernet Device, b6:9c:dd:bb:5e:31
USB Speed : USB 3.0
GobiSerial 4-1:1.3: GobiSerial converter detected
usb 4-1: GobiSerial converter now attached to ttyUSB0
GobiSerial 4-1:1.2: GobiSerial converter detected
usb 4-1: GobiSerial converter now attached to ttyUSB1
GobiSerial 4-1:1.0: GobiSerial converter detected
usb 4-1: GobiSerial converter now attached to ttyUSB2
creating qcqmi0
RawIP mode
creating qcqmi1
RawIP mode

Note that eth3 is now registered as GobiNet 4-1:1.10, and eth4 is GobiNet 4-1:1.8. I believe this is why for me, eth4 is now the active network port after the reset.

Note that after reset, even my ttyUSB devices are re-registered differently from before the reset. That may be why after reset, the active AT command port changed from ttyUSB2 to ttyUSB0.

Do you know why for me it is registering differently from yours? Could it be because I am using USB3.0?

Thanks

do you really need two eth interface ? If no, then i think you can change the AT!USBCOMP setting to solve this issue.

No, I think I am fine with just 1 eth interface. Do I send that AT command to the modem? But isn’t the enumeration already done by the time I can issue the AT command to the module?

Thanks

By the way, what is the 2nd eth interface on the EM7455 for?

after you send the AT!USBCOMP to disable the 2nd eth network interface, after reset, I think there should be only eth3 enumerated.

what value should I pass to the AT command?

for those user who needs two data connection interface with different APNs.

Here is what I get when I do AT!USBCOMP?

at!usbcomp?
Config Index: 1
Config Type: 1 (Generic)
Interface bitmask: 0000050D (diag,nmea,modem,rmnet0,rmnet1)

What value should I pass to turn off the 2nd eth port?

please check AT!USBCOMP=? or see the AT command user guide.

Thanks.

Here is AT!USBCOMP=?

at!usbcomp=?
!USBCOMP:
AT!USBCOMP=,,
- configuration index to which the composition applies, should be 1

- 1:Generic, 2:USBIF-MBIM, 3:RNDIS
config type 2/3 should only be used for specific Sierra PIDs: 68B1, 9068
customized VID/PID should use config type 1

- DIAG - 0x00000001,
NMEA - 0x00000004,
MODEM - 0x00000008,
RMNET0 - 0x00000100,
RMNET1 - 0x00000400,
MBIM - 0x00001000,
e.g.
10D - diag, nmea, modem, rmnet interfaces enabled
1009 - diag, modem, mbim interfaces enabled

The default configuration is:
at!usbcomp=1,1,10F

Sounds like I should turn off RMNET1 bit?

maybe you can try at!usbcomp=1,1,10D

Thank you so much for your gracious help. I tried it and reset the module. It worked! Now it only has eth3.

Appreciate very much!