Detecting Dual SIM on EM7455

Aleksander Morgado aleksander at
Tue Apr 6 21:51:20 UTC 2021


On Tue, Apr 6, 2021 at 11:33 PM Jack Broderick
<jbroderick at> wrote:
> Hello,
> 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.

> 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.

> 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

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.


More information about the ModemManager-devel mailing list