Hey,

>> > I have recently upgraded to 1.16.2 on OpenWRT in order to utilize the 
>> > extended SIM features. We integrate both the EM7511 and EM/MC7455. We have 
>> > identified that on boot, the EM7511 will detect both SIM's installed, with 
>> > the EM7455, however, it requires switching between the slots to detect. We 
>> > previously identified this issue when using just qmicli in order to read 
>> > the SIM slots.
>> >
>> > We resolved this issue by "toggling" the SIM slot on boot so qmicli would 
>> > pick up both slots.
>>
>> You're saying that you need to switch SIM on boot, e.g. to the
>> secondary SIM, so that the modem ends up reporting that 2 SIMs are
>> active? If that's the case, I have a theory.
>
>
> The idea isn't necessarily that both need to be active, it's that we would 
> like to see the information for both SIM's that are installed at all times.
>>
>>
>> > It is a bit of a hack, but it works. This becomes an issue, when using 
>> > AT!IMPREF="AUTO-SIM", and using two SIM's that use different profiles. For 
>> > example, if SIM1=AT&T and SIM2=GENERIC, when switching SIM's the modem 
>> > appears to reboot. It is not just a reprobe by ModemManager, the usb 
>> > device detaches and re-attaches.
>>
>> That is actually expected when using AUTO-SIM, as the "active" SIM
>> mandates which carrier config is loaded in the device. If you're
>> switching SIMs actively, the modem will reset itself to boot with the
>> new carrier config automatically selected.
>
>
> Okay, that makes sense, ideally we would be able to still "see" what is in 
> the other SIM slot after this reset.
>>
>>
>> >
>> > The interesting thing is, with the EM7511, both SIM's are reported by both 
>> > mmcli and qmicli without needing to "toggle". I am curious if this issue 
>> > has been seen in any other testing.
>> >
>> > EM7455 After Boot, with modem on SIM1 before reboot:
>> >   -----------------------------------
>> >   SIM      |        primary sim path: /org/freedesktop/ModemManager1/SIM/0
>> >            |          sim slot paths: slot 1: 
>> > /org/freedesktop/ModemManager1/SIM/0 (active)
>> >            |                          slot 2: none
>> >
>> > After running mmcli -m 0 --set-primary-sim-slot=2
>> >
>> >   -----------------------------------
>> >   SIM      |        primary sim path: /org/freedesktop/ModemManager1/SIM/2
>> >            |          sim slot paths: slot 1: 
>> > /org/freedesktop/ModemManager1/SIM/1
>> >            |                          slot 2: 
>> > /org/freedesktop/ModemManager1/SIM/2 (active)
>> >
>> > The modem did not reset because AT!IMPREF="GENERIC" was set, the modem did 
>> > re-enumerate in modemanager, however.
>> >
>>
>> Could you run this qmicli command on the EM7455 after boot?
>> $ qmicli -d /dev/cdc-wdm0 -p --uim-get-card-status
>> $ qmicli -d /dev/cdc-wdm0 -p --uim-get-slot-status
>
>
> root@test:~# qmicli -d /dev/cdc-wdm1 -p --uim-get-card-status
> [/dev/cdc-wdm1] Successfully got card status
> Provisioning applications:
> Primary GW:   slot '1', application '1'
> Primary 1X:   session doesn't exist
> Secondary GW: session doesn't exist
> Secondary 1X: session doesn't exist
> Slot [1]:
> Card state: 'present'
> UPIN state: 'not-initialized'
> UPIN retries: '0'
> UPUK retries: '0'
> Application [1]:
> Application type:  'usim (2)'
> Application state: 'ready'
> Application ID:
> A0:00:00:00:87:10:02:FF:FF:FF:FF:89:06:19:00:00
> Personalization state: 'ready'
> UPIN replaces PIN1: 'no'
> PIN1 state: 'disabled'
> PIN1 retries: '3'
> PUK1 retries: '10'
> PIN2 state: 'enabled-not-verified'
> PIN2 retries: '10'
> PUK2 retries: '10'
> Application [2]:
> Application type:  'isim (5)'
> Application state: 'detected'
> Application ID:
> A0:00:00:00:87:10:04:FF:FF:FF:FF:89:07:03:00:00
> Personalization state: 'unknown'
> UPIN replaces PIN1: 'no'
> PIN1 state: 'not-initialized'
> PIN1 retries: '0'
> PUK1 retries: '0'
> PIN2 state: 'not-initialized'
> PIN2 retries: '0'
> PUK2 retries: '0'
> Slot [2]:
> Card state: 'absent'
> UPIN state: 'not-initialized'
> UPIN retries: '0'
> UPUK retries: '0'
> root@test:~# qmicli -d /dev/cdc-wdm1 -p --uim-get-slot-status
> [/dev/cdc-wdm1] Successfully got slots status
> [/dev/cdc-wdm1] 2 physical slots found:
>   Physical slot 1:
>      Card status: present
>      Slot status: inactive
>            ICCID: unknown
>   Physical slot 2:
>      Card status: present
>      Slot status: active
>     Logical slot: 1
>            ICCID: 8901260882270113639
>
> This is after reboot where Slot 2 as the active slot before reboot (I had 
> just rebooted with that SIM active while debugging).

Could you please test showing the failed case where, upon boot,
--uim-get-card-status shows one single SIM instead of two?

>>
>>
>> My assumption is that you're seeing one single SIM reported because
>> --uim-get-slot-status reports one single SIM. BUT, does
>> --uim-get-card-status report 2 SIMs? ModemManager currently ignores
>> the 2nd SIM in --uim-get-card-status, because in this case both SIMs
>> are really active (unlike the slot status case). Right now MM doesn't
>> support the Dual SIM Dual Active case, although it shouldn't be very
>> difficult to support that (e.g. selecting which SIM will use the data
>> connection done via the GW provisioning session selection and such).
>>
>> So when you manually toggle to select the 2nd SIM we're using
>> --uim-switch-slot and the setup switches to Dual SIM Single Active, so
>> the slots status ends up reporting 2 SIMs now (and card status would
>> report 1 single SIM).
>>
>> Is this assumption in track? If it isn't, it could be some timing
>> issue of some sort, MM debug logs would help.
>
>
> After switching:
> root@test:~# qmicli -d /dev/cdc-wdm1 -p --uim-switch-slot=1
> [/dev/cdc-wdm1] Successfully switched slots
> root@test:~# qmicli -d /dev/cdc-wdm1 -p --uim-get-slot-status
> [/dev/cdc-wdm1] Successfully got slots status
> [/dev/cdc-wdm1] 2 physical slots found:
>   Physical slot 1:
>      Card status: present
>      Slot status: active
>     Logical slot: 1
>            ICCID: 89860000502000180722
>   Physical slot 2:
>      Card status: present
>      Slot status: inactive
>            ICCID: 8901260882270113639
>
> From this, it appears that it may be more of an issue with libqmi than 
> anything else. Maybe not even an issue but the behavior seems to be it will 
> "cache" information for the active SIM and retain that information when the 
> other sim is active.

There is absolutely no cache in libqmi, the qmicli commands just print
what the modem replies :) If anything, it would be an issue in the
modem firmware itself.

I still would like to see --uim-get-card-status and
--uim-get-slot-status for the failing case, i.e. booting and the slot
status reporting one single SIM even if there are 2.

-- 
Aleksander
https://aleksander.es
_______________________________________________
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel

Reply via email to