[FSO] add QCT msm7* modem support

Michael 'Mickey' Lauer mickey at openmoko.org
Sun Nov 23 22:36:05 CET 2008


> >> > Let me add on that -- it is always desirable to have more than just
> >> > one channel for usual AT commands, that way you can drastically
> >> > simplify the gsm server logic. I would prefer three independent
> >> > homogenous command channels, if we can have them, one for call
> >> > control, one for unsolicited responses, and one for everything else.
> >>
> >> Why does it simplify gsm server logic?
> Is the gsm server logic fso here?

For example.

> > Example:
> > If you have one channel where you always retrieve unsolicited responses,
> > you can
> > a) disable unsolicited responses on the other channels and use them
> > solely in request/response mode, and
> > b) retrieve unsolicited responses while the other channels are busy (e.g.
> > during dialing the ATD command hangs and blocks any other commands or
> > unsolicited messages coming in)
> My knowledge of the AT communications is poor, so I guess I can't
> judge whether or not it will be worth creating all this extra
> abstraction for the msm7*. Still I would like to understand it. What
> is the benefit in the a) case?

You would not have to check whether you have an outstanding request pending -- 
which you always have to do otherwise you can't differenciate an unsolicited 
response from a solicited response.

> In the b) case, how would ATD hang?

ATD hangs while you are dialling. If you have multiple channels, you can still 
receive signal strength updates, incoming sms, incoming ussd, or whatever 
updates from the network while you are calling. Likewise, when you are doing 
long-lasting commands (scanning for networks e.g.), if you only have one 
channel, you can not do two things simultaneously -- i.e. no dialling during 
SIM access, no SIM access during network scan, etc.

> In  
> case it would, how would the unsolicited-only channel win over the
> normal serial device method? 

The multiplexing mode handles this transparently for you. In MUX mode you have 
(sorry for repeating, but it's the correct description) multiple independent 
channels where you can talk AT.

> If this will require any modification of the arm9 (modem) code like
> modifying the AT communication behaviour, we can't do the multiplex
> stuff. In msm7* we have nothing like ti tools luxury you have for the
> calypso.
> Where can the sources to this soft-multiplexing mechanism used for the
> calypso modem be found?

The modem-part is in the TI Calypso firmware, closed, hidden, proprietary, you 
name it. The userland part is in git.freesmartphone.org -> gsm0710muxd.

> Could you be more specific and name things so
> in future I can have a look at the sources right away?

Abstract terms are important to describe concepts, whereas concrete names 
describe implementations. Therefore it's important to know what to use when.

> > On the Freescale Neptune, we have hard-multiplexing (done in
> > hardware+kernel) giving us 8 channels, however they're not independent
> > nor homogenous. Still they have something like a dedicated channel for
> > several types of commands (i.e. unsolicited), so that's nice as well.
> >
> > Don't get me wrong, we can use a singleline modem fine as well, but you
> > will have to live with certain limitations.
> What are these limitations?

As explained above. Less concurrency, some commands block other commands.

> You mean if we use the single present msm
> AT channel (/dev/smd0) only, we can't recycle as much of the calypso
> modem code in fso for use with msm7* as we could with the
> soft-multiplexing? Or are these limitations on a higher level of
> abstraction than fso?

They are influencing each other. If you can't get a +CRING while you're 
performing a +COPS? the UI will not be able to indicate that someone is 
calling you while you are scanning for networks.

> Assuming I'm brave and I would want to run fso on my kaiser's
> /dev/smd0, which (single line) modem type would I want to pick?
> Calypso?

As I have tried to explain, we don't use the Calypso in single line. I have 
provided a single-line modem type for reference (called 'singleline' 
(sic!)) , but I have never actually tested it. It might make a good starting 
point, if you really have no way to have multiple channels going.

> Could you comment on the AT debug logs I sent?

I thought I did with 
http://lists.openmoko.org/pipermail/devel/2008-November/003349.html -- or are 
you referring to other logs?


More information about the devel mailing list