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