EM7455 error with USBComp over cdc-wdm0

I’ve followed a lot of similar threads on this, like:

I know about the swi_setusbcomp.pl script, but I’m running in openWRT and I can’t get all the perl packages the script requires, so right now, I’m sending the commands manually using either perl’s pack, or PHP’s pack and I get the same results.

I have the 7455 in MBIM only with no com ports and I’m trying to get them back. I can do three out of the four steps, but I get an error with the actual 0x555c and I don’t know what it is. Here are the streams:

MBIM Open Send:
01 00 00 00 10 00 00 00 01 00 00 00 00 10 00 00
Receive:
01 00 00 80 10 00 00 00 01 00 00 00 00 00 00 00

QMI DMS CID send:
03 00 00 00 40 00 00 00 05 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 01 00 00 00 10 00 00 00 01 0f 00 00 00 00 00 04 22 00 04 00 01 01 00 02
Receive:
03 00 00 80 48 00 00 00 05 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 00 00 00 00 18 00 00 00 01 17 00 80 00 00 01 04 22 00 0c 00 02 04 00 00 00 00 00 01 02 00 02 03

So, I have 03 as the CID, and I do a 0x555b check of allowed comps:
Send:
03 00 00 00 3d 00 00 00 07 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 01 00 00 00 0d 00 00 00 01 0c 00 00 02 03 00 06 00 5b 55 00 00
Receive:
03 00 00 80 4f 00 00 00 07 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 00 00 00 00 1f 00 00 00 01 1e 00 80 02 03 02 06 00 5b 55 12 00 02 04 00 00 00 00 00 10 01 00 08 11 04 00 03 06 08 09

So, allowed comps are 06, 08, 09. I’m trying now using CID 03, comp 06:
03 00 00 00 3d 00 00 00 07 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 01 00 00 00 11 00 00 00 01 10 00 00 02 03 00 08 00 5c 55 04 00 01 01 00 06
Receive:
04 00 00 80 10 00 00 00 07 00 00 00 03 00 00 00

I don’t know what the 04 response means. I saw another example in another post where two bytes before the 5c 55 is 02 instead of 08, but I get the same 04 string as a response.

Am I missing something obvious?

Thanks

So, as far as I can tell looking online, 0x80000004 is a function error, and the last int is 0x00000003 which is MBIM_ERROR_LENGTH_MISMATCH ?

After the 5c 55 is 04 00, and there are 4 bytes after that, and I see a length of 10 for the QMI string, which seems right, and 11 for the length of the QMI over MBIM, which seems right, too?

Hi Peter,
the MBIM_ERROR_LENGTH_MISMATCH refers to the MBIM Message Length which is set to 61 (0x3d) but the complete MBIM message is 65 bytes as can be seen from tshark -x output:

DLT: 152, Payload: mbim.control (Mobile Broadband Interface Model)
Mobile Broadband Interface Model
Message Header
Message Type: COMMAND_MSG (0x00000003)
Message Length: 61
Transaction Id: 7
Fragment Header
Total Fragments: 1
Current Fragment: 0
Device Service Id: UUID_QMI (d1a30bc2-f97a-6e43-bf65-c7e24fb0f0d3)
CID: QMI (1)
Command Type: Set (1)
Information Buffer Length: 17
Information Buffer
Buffer: 0110000002030008005c55040001010006

0000 03 00 00 00 3d 00 00 00 07 00 00 00 01 00 00 00 …=…
0010 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 …znC.e…
0020 4f b0 f0 d3 01 00 00 00 01 00 00 00 11 00 00 00 O…
0030 01 10 00 00 02 03 00 08 00 5c 55 04 00 01 01 00 …\U…
0040 06 .

Regards,
Reinhard

Yes! That’s what I get for cut and paste. I knew the other byte counters, but not that one.

New command should be:
03 00 00 00 41 00 00 00 07 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 01 00 00 00 11 00 00 00 01 10 00 00 02 03 00 08 00 5c 55 04 00 01 01 00 06

Then, I released the CID:
03 00 00 00 41 00 00 00 09 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 01 00 00 00 11 00 00 00 01 10 00 00 00 00 00 08 23 00 05 00 01 02 00 02 03

Rebooted, and I got my com ports.

Thanks for the pointer!