Hi Sjur, > > > This patch introduces auto discovery of ST-Ericsson modems. > > > ST-Ericsson modems are managed by a Modem Init Daemon which > > > is responsible for start/stop/restart flashing etc. The > > > STE plugin monitors the modem state exposed from the > > > Modem Init Damon Dbus API. When the modem is in state "on" > > > the STE modem is created and registered. > > > > > > The reason for not using the standard udev paradigm is that > > > the CAIF device is up before the modem is ready to setup AT channels. > > > For flashless modems CAIF is used as part of the boot. The Modem Init > > > Daemon is managing the flashless boot procedure and sets the State to > > > "on" when the modem is available. > > > > so I don't like this at all. This looks pretty nasty and like an ugly > > hack to get something working. > > > > Please show us what Modem Init Daemon is actually doing. > > As mentioned above the Modem Init Daemon is responsible for: > - Toggling the different GPIOs, powering the modem on/off. > - Boot the modem and upload the firmware in several stages. > a) Initial Z-Protocol, for handshaking the modem > b) PROTROM boot protocol to upload modem firmware. > c) CAIF Remote File System protocol for further > firmware loading (modules) > d) CAIF Remote File System protocol for serving modem file system. > - Monitoring the GPIOs for modem restart and act upon this. > - Enabling/Disabling the CAIF Link Layer Interface according to > the modem state (GPIO). > - Monitoring Thermal and Battery Warnings URC over AT > and acting upon this. > - In case of modem crash, the crash-dump from the modem > must be downloaded to host. This needs to be synchronized > so that the reboot of the modem is not started before > the dump is complete. > - Modem Init daemon has to expose an API in for: > o triggering restart > o signal modem status > o initiate upgrade > > The Modem Init Daemon will be available in product quality under Apache > License, > and will be in use for several platforms (not just MeeGo) and modem versions. > > The issue we have is that when the CAIF Link Layer Interface is up > it does not necessarily mean that the Modem is fully started. > So we need to have a way to synchronize other services and modem clients > when the modem is ready. The other services that needs this ready notification > are: oFono, Remote File Manager, Logging Daemon. On other platforms than MeeGo > there are AT based clients such as Audio, AGPS, RIL as well. > > We definitely need a synchronization mechanism between Modem Init Daemon > and the other services, so we decided to use a D-Bus API for the > Modem Init Daemon to expose the modem state and an API for initiating > power-off, upgrade and reboot.
do you have a link to the D-Bus of this daemon? I would prefer if you publish it first or at least the part of it used here. Also you can not squeeze this into plugins/ste.c as you have done. You need to have a separate plugin that does modem detection. Like we do with udev for other modems. I am also not sure that we do need this kind of D-Bus API. For example using the differentiation between IFF_UP, IFF_RUNNING and IFF_LOWER_UP could be easily used to define which parts of an interface are up and initialized. We do something similar with wpa_supplicant and WiFi in Linux. Have you looked at doing this properly with kernel available flags instead of just forcing another D-Bus API and daemon? Regards Marcel _______________________________________________ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono