Talking about modem processors used in todays smartphones is a sad story. Most of them are using a binary protocol which is not known by the public. In some cases the linux userland is talking plain AT over a serial line with the modem but that's expected. Let me list some devices:
- Palm Pre/Pre Pus/Pre 2: All three have a MSM6280 modem chip and are using a binary protocol for modem access from the application processor.
- Nokia N900: Uses a modem chip made by nokia with can be accessed with the ISI protocol. Some parts of it are documented but not everything. Furthermore the Linux support from Nokia is dieing with there move to phones powered by Windows Mobile.
- Google Nexus One/S: Both devices have a msm modem chip and are using plain AT commands over a shared memory interface
- Geeksphone: Is build on Qualcomms MSM platform and is using a binary RPC protocol to communicate with the modem.
- HP Veer: Is also build on Qualcomms MSM platform and is using the same RPC protocol than the Geeksphone but in another way. They are sending mostly the same packages as they did with the Palm Pre/Pre Plus/Pre 2.
So I hope you get the point that there is not one way to communicate with a modem in todays smartphones. This makes it a very complicated for a FOSS operating system to be able to run on such a device. Also another problem is when two devices are using the same way there are even differences especially all devices using a msm modem chip. Qualcomm is offering a toolset to smartphone creators, which makes it possible to customize most bits of the modem part of the device even the protocol to communicate with modem … For example between the different webOS versions of the Palm Pre devices Palm changed some bits in the protocol so we have to adjust our protocol implementation as well (which means some more days of reverse engineering).
Especially for the smartphones using a MSM modem chip I am going to fix the communication part for open source software. There should be a open and free distributable implementation available people can use to talk to the modem and do things they want to do. I cannot talk about concrete details yet, but will post here when I can 🙂