Transaction timing out on 586 embedded CPU
Kai Scharwies
kai at scharwies.de
Mon Dec 3 07:31:42 PST 2012
Hello everybody...
I am trying to bring up a Huawei E398 stick on an Roboard RB110
(www.roboard.com), which has a 586 compatible "Vortex DX" CPU, but not
a single qmicli command works:
qmicli -d /dev/cdc-wdm0 --dms-uim-get-pin-status
error: operation failed: Transaction timed out
When trying with verbose flag it takes forever, too, but some of the
expected output can be seen (however not received on time as it
seems):
qmicli -d /dev/cdc-wdm0 --dms-uim-get-pin-status -v
[04 Dez 2012, 00:51:26] [Debug] QMI Device at '/dev/cdc-wdm0' ready
[04 Dez 2012, 00:51:26] [Debug] [/dev/cdc-wdm0] Assuming service 'dms'
is supported...
[04 Dez 2012, 00:51:26] [Debug] [/dev/cdc-wdm0] Allocating new client ID...
[04 Dez 2012, 00:51:26] [Debug] [/dev/cdc-wdm0] Sent message...
<<<<<< RAW:
<<<<<< length = 16
<<<<<< data = 01:0F:00:00:00:00:00:01:22:00:04:00:01:01:00:02
[04 Dez 2012, 00:51:26] [Debug] [/dev/cdc-wdm0] Sent message (translated)...
<<<<<< QMUX:
<<<<<< length = 15
<<<<<< flags = 0x00
<<<<<< service = "ctl"
<<<<<< client = 0
<<<<<< QMI:
<<<<<< flags = "none"
<<<<<< transaction = 1
<<<<<< tlv_length = 4
<<<<<< message = "Allocate CID" (0x0022)
<<<<<< TLV:
<<<<<< type = "Service" (0x01)
<<<<<< length = 1
<<<<<< value = 02
<<<<<< translated = dms
[04 Dez 2012, 00:51:26] [Debug] [/dev/cdc-wdm0] Received message...
>>>>>> RAW:
>>>>>> length = 24
>>>>>> data = 01:17:00:80:00:00:01:01:22:00:0C:00:02:04:00:00:00:00:00:01:02:00:02:03
[04 Dez 2012, 00:51:26] [Debug] [/dev/cdc-wdm0] Received message (translated)...
>>>>>> QMUX:
>>>>>> length = 23
>>>>>> flags = 0x80
>>>>>> service = "ctl"
>>>>>> client = 0
>>>>>> QMI:
>>>>>> flags = "response"
>>>>>> transaction = 1
>>>>>> tlv_length = 12
>>>>>> message = "Allocate CID" (0x0022)
>>>>>> TLV:
>>>>>> type = "Result" (0x02)
>>>>>> length = 4
>>>>>> value = 00:00:00:00
>>>>>> translated = SUCCESS
>>>>>> TLV:
>>>>>> type = "Allocation Info" (0x01)
>>>>>> length = 2
>>>>>> value = 02:03
>>>>>> translated = [ service = 'dms' cid = '3' ]
[04 Dez 2012, 00:51:26] [Debug] [/dev/cdc-wdm0] Registered 'dms'
(version unknown) client with ID '3'
[04 Dez 2012, 00:51:26] [Debug] Asynchronously getting PIN status...
[04 Dez 2012, 00:51:26] [Debug] [/dev/cdc-wdm0] Sent message...
<<<<<< RAW:
<<<<<< length = 13
<<<<<< data = 01:0C:00:00:02:03:00:01:00:2B:00:00:00
[04 Dez 2012, 00:51:26] [Debug] [/dev/cdc-wdm0] Sent message (translated)...
<<<<<< QMUX:
<<<<<< length = 12
<<<<<< flags = 0x00
<<<<<< service = "dms"
<<<<<< client = 3
<<<<<< QMI:
<<<<<< flags = "none"
<<<<<< transaction = 1
<<<<<< tlv_length = 0
<<<<<< message = "UIM Get PIN Status" (0x002B)
error: operation failed: Transaction timed out
[04 Dez 2012, 00:51:37] [Debug] [/dev/cdc-wdm0] Unregistered 'dms'
client with ID '3'
[04 Dez 2012, 00:51:37] [Debug] [/dev/cdc-wdm0] Sent message...
<<<<<< RAW:
<<<<<< length = 17
<<<<<< data = 01:10:00:00:00:00:00:02:23:00:05:00:01:02:00:02:03
[04 Dez 2012, 00:51:37] [Debug] [/dev/cdc-wdm0] Sent message (translated)...
<<<<<< QMUX:
<<<<<< length = 16
<<<<<< flags = 0x00
<<<<<< service = "ctl"
<<<<<< client = 0
<<<<<< QMI:
<<<<<< flags = "none"
<<<<<< transaction = 2
<<<<<< tlv_length = 5
<<<<<< message = "Release CID" (0x0023)
<<<<<< TLV:
<<<<<< type = "Release Info" (0x01)
<<<<<< length = 2
<<<<<< value = 02:03
<<<<<< translated = [ service = 'dms' cid = '3' ]
[04 Dez 2012, 00:51:37] [Debug] [/dev/cdc-wdm0] Received message...
>>>>>> RAW:
>>>>>> length = 32
>>>>>> data = 01:1F:00:80:02:03:02:01:00:2B:00:13:00:02:04:00:00:00:00:00:12:03:00:01:03:0A:11:03:00:03:03:0A
[04 Dez 2012, 00:51:37] [Debug] [/dev/cdc-wdm0] Received message (translated)...
>>>>>> QMUX:
>>>>>> length = 31
>>>>>> flags = 0x80
>>>>>> service = "dms"
>>>>>> client = 3
>>>>>> QMI:
>>>>>> flags = "response"
>>>>>> transaction = 1
>>>>>> tlv_length = 19
>>>>>> message = "UIM Get PIN Status" (0x002B)
>>>>>> TLV:
>>>>>> type = "Result" (0x02)
>>>>>> length = 4
>>>>>> value = 00:00:00:00
>>>>>> translated = SUCCESS
>>>>>> TLV:
>>>>>> type = "PIN2 Status" (0x12)
>>>>>> length = 3
>>>>>> value = 01:03:0A
>>>>>> translated = [ current_status = 'enabled-not-verified' verify_retries_left = '3' unblock_retries_left = '10' ]
>>>>>> TLV:
>>>>>> type = "PIN1 Status" (0x11)
>>>>>> length = 3
>>>>>> value = 03:03:0A
>>>>>> translated = [ current_status = 'disabled' verify_retries_left = '3' unblock_retries_left = '10' ]
[04 Dez 2012, 00:51:37] [Debug] [/dev/cdc-wdm0] No transaction matched
in received message
[04 Dez 2012, 00:51:37] [Debug] [/dev/cdc-wdm0] Received message...
>>>>>> RAW:
>>>>>> length = 24
>>>>>> data = 01:17:00:80:00:00:01:02:23:00:0C:00:02:04:00:00:00:00:00:01:02:00:02:03
[04 Dez 2012, 00:51:37] [Debug] [/dev/cdc-wdm0] Received message (translated)...
>>>>>> QMUX:
>>>>>> length = 23
>>>>>> flags = 0x80
>>>>>> service = "ctl"
>>>>>> client = 0
>>>>>> QMI:
>>>>>> flags = "response"
>>>>>> transaction = 2
>>>>>> tlv_length = 12
>>>>>> message = "Release CID" (0x0023)
>>>>>> TLV:
>>>>>> type = "Result" (0x02)
>>>>>> length = 4
>>>>>> value = 00:00:00:00
>>>>>> translated = SUCCESS
>>>>>> TLV:
>>>>>> type = "Release Info" (0x01)
>>>>>> length = 2
>>>>>> value = 02:03
>>>>>> translated = [ service = 'dms' cid = '3' ]
[04 Dez 2012, 00:51:37] [Debug] Client released
I tried this with recent kernels (3.4.x, 3.5.x, 3.6.x) and gcc
versions (4.6.2, 4.7.1) - both crosscompiled and directly on target
(either Debian Wheezy or Pengutronix/ptxdist Toolchain) and various
libqmi Versions from git, but mainly with tagged 1.0:
qmicli -V
qmicli 1.0.0
Copyright (2012) Aleksander Morgado
License GPLv2+: GNU GPL version 2 or later
<http://gnu.org/licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Here are some more information on the CPU:
cat /proc/cpuinfo
processor : 0
vendor_id : Vortex86 SoC
cpu family : 5
model : 2
model name : 05/02
stepping : 2
cpu MHz : 933.445
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu tsc cx8
bogomips : 1867.67
clflush size : 32
cache_alignment : 32
address sizes : 32 bits physical, 32 bits virtual
power management:
On Intel Core2Duo and Intel Atom targets/hosts libqmi and qmicli work fine.
Please tell me how we can identify and fix the issue.
Best regards,
Kai
More information about the libqmi-devel
mailing list