Detecting SIM REFRESH events

Teijo Kinnunen teijo.kinnunen at uros.com
Fri Aug 28 13:51:18 UTC 2020


Hi,

On 15.8.2020 18.35, Aleksander Morgado wrote:

>> Any ideas which modems do actually support QMI slot status? I
>> would like to try if slot status changes could also be used for this
>> purpose.
> 
> The Sierra Wireless EM7565 at least supports those; the Dual SIM
> Single Standby support
> (https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/330)
> relies on slot status messages.

Thanks, seems that at least newer Sierra modems support it and I
happened to have WP7607 handy which does support it.

I have the code close to ready now, mostly a little more testing needed.

There is quite a lot of code, as I've implemented two fallbacks for
older modems that have more limited QMI support. In the draft I've made,
the event registration is performed within load_sim_slots() method
using the following logic:

- Before Get Slot Status, QMI subscription of physical slot status
   change events is done using Register Events QMI message.
- If Get Slot Status succeeds (indicating that the modem really
   supports physical slot status), no more is done and SIM slot
   scan continues as before. (This happens e.g. on Sierra WP7607.)
- If Get Slot Status fails with an error indicating the command is
   not supported, then:
   * Register Refresh All message is invoked. If it's successful
     (e.g. on Quectel EG25), then return from load_sim_slots.
   * If Register Refresh All fails, use the plain Register Refresh
     function with the ICCID file. This works e.g. on Sierra
     MC8305. The file change notification itself is not interesting,
     but only UICC Reset type of REFRESH will trigger SIM swap check.

Before I can submit the code for review, merging the multi-sim support
(MR !330) is needed first, so any idea when it could be merged? :-)

BR,

- Teijo


More information about the ModemManager-devel mailing list