This was reported on the libqmi-devel list, and I don’t have an EM7565 myself yet. So I cannot verify it on the Sierra Wireless QMI SDK. Apologies for that. But the actual issue is completely unrelated to host software. I hope you can investigate the issue. Reproducing it using the QMI SDK should be easy for anyone with the hardware.
The problem is that the band numbers in the “Phy CA Agg SCell Info” and “Phy CA Agg PCell Info” TLVs (0x12 and 0x13) are off by one. Example (for those no fluent in libqmi debug info: the line with 'data =" contains the complete QMI response packet as colon separate ascii hex):
[04 Dec 2017, 07:30:57] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<< length = 91
<<<<<< data =
01:5A:00:80:03:01:02:01:00:AC:00:4E:00:02:04:00:00:00:00:00:10:08:00:05:00:4C:0C:02:00:00:00:11:04:00:05:00:00:00:12:0E:00:04:00:86:0B:05:00:00:00:7F:00:02:00:00:00:13:0A:00:05:00:4C:0C:05:00:00:00:7F:00:14:01:00:01:15:10:00:01:04:00:86:0B:05:00:00:00:7F:00:02:00:00:00:01
[04 Dec 2017, 07:30:57] [Debug] [/dev/cdc-wdm0] received generic response
(translated)...
<<<<<< QMUX:
<<<<<< length = 90
<<<<<< flags = 0x80
<<<<<< service = "nas"
<<<<<< client = 1
<<<<<< QMI:
<<<<<< flags = "response"
<<<<<< transaction = 1
<<<<<< tlv_length = 78
<<<<<< message = "Get LTE Cphy CA Info" (0x00AC)
<<<<<< TLV:
<<<<<< type = "Result" (0x02)
<<<<<< length = 4
<<<<<< value = 00:00:00:00
<<<<<< translated = SUCCESS
<<<<<< TLV:
<<<<<< type = 0x10
<<<<<< length = 8
<<<<<< value = 05:00:4C:0C:02:00:00:00
<<<<<< TLV:
<<<<<< type = "DL Bandwidth" (0x11)
<<<<<< length = 4
<<<<<< value = 05:00:00:00
<<<<<< translated = 20
<<<<<< TLV:
<<<<<< type = "Phy CA Agg SCell Info" (0x12)
<<<<<< length = 14
<<<<<< value = 04:00:86:0B:05:00:00:00:7F:00:02:00:00:00
<<<<<< translated = [ physical_cell_id = '4' rx_channel = '2950'
dl_bandwidth = '20' lte_band = 'eutran-8' state = 'activated' ]
<<<<<< TLV:
<<<<<< type = "Phy CA Agg PCell Info" (0x13)
<<<<<< length = 10
<<<<<< value = 05:00:4C:0C:05:00:00:00:7F:00
<<<<<< translated = [ physical_cell_id = '5' rx_channel = '3148'
dl_bandwidth = '20' lte_band = 'eutran-8' ]
<<<<<< TLV:
<<<<<< type = "SCell index" (0x14)
<<<<<< length = 1
<<<<<< value = 01
<<<<<< translated = 1
<<<<<< TLV:
<<<<<< type = 0x15
<<<<<< length = 16
<<<<<< value = 01:04:00:86:0B:05:00:00:00:7F:00:02:00:00:00:01
Notice that the band values are 0x007F, which maps to EUTRAN-8 as shown by the libqmi debug output. This is obviously incorrect, and does not match the given channel numbers.
Here is a similar example from an EM7455 to illustrate what those TLVs really should have looked like. You see the same channels, but here the band numbers are 0x007E which is correct:
[04 Dec 2017, 07:13:58] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<< length = 61
<<<<<< data =
01:3C:00:80:03:03:02:01:00:AC:00:30:00:02:04:00:00:00:00:00:11:04:00:05:00:00:00:12:0E:00:04:00:86:0B:05:00:00:00:7E:00:02:00:00:00:13:0A:00:05:00:4C:0C:05:00:00:00:7E:00:14:01:00:01
[04 Dec 2017, 07:13:58] [Debug] [/dev/cdc-wdm0] received generic response
(translated)...
<<<<<< QMUX:
<<<<<< length = 60
<<<<<< flags = 0x80
<<<<<< service = "nas"
<<<<<< client = 3
<<<<<< QMI:
<<<<<< flags = "response"
<<<<<< transaction = 1
<<<<<< tlv_length = 48
<<<<<< message = "Get LTE Cphy CA Info" (0x00AC)
<<<<<< TLV:
<<<<<< type = "Result" (0x02)
<<<<<< length = 4
<<<<<< value = 00:00:00:00
<<<<<< translated = SUCCESS
<<<<<< TLV:
<<<<<< type = "DL Bandwidth" (0x11)
<<<<<< length = 4
<<<<<< value = 05:00:00:00
<<<<<< translated = 20
<<<<<< TLV:
<<<<<< type = "Phy CA Agg SCell Info" (0x12)
<<<<<< length = 14
<<<<<< value = 04:00:86:0B:05:00:00:00:7E:00:02:00:00:00
<<<<<< translated = [ physical_cell_id = '4' rx_channel = '2950'
dl_bandwidth = '20' lte_band = 'eutran-7' state = 'activated' ]
<<<<<< TLV:
<<<<<< type = "Phy CA Agg PCell Info" (0x13)
<<<<<< length = 10
<<<<<< value = 05:00:4C:0C:05:00:00:00:7E:00
<<<<<< translated = [ physical_cell_id = '5' rx_channel = '3148'
dl_bandwidth = '20' lte_band = 'eutran-7' ]
<<<<<< TLV:
<<<<<< type = "SCell index" (0x14)
<<<<<< length = 1
<<<<<< value = 01
<<<<<< translated = 1
I guess this is something for Qualcomm. Could you please report the issue to them if you are able to reproduce? This will make a mess of any software trying to use these values.