Bug in switching baud rates in burst_ind branch?

Christian Vogel vogelchr at vogel.cx
Tue Dec 25 20:35:48 UTC 2012


Hi Bhaskar11,

On Tue, 25 Dec 2012 15:35:03 +0100, Bhaskar11 <niceguy108 at gmail.com> wrote:
> If the first attempt to switch to 406250 succeeds, the function exits and
> never reaches the I_HAVE_A_CP210x code which would switch to a higher  
> speed!

> Is this a bug? Or is the lower speed good enough for burst_ind? In which
> case why bother with the I_HAVE_A_CP210x option?

that logic is correct.

> Or have I missed something obvious?

It's not about switching to a slighly higher baudrate of B460800 but  
rather to
switch to the highest baudrate that can sensibly be used on the phone uart  
which
is the non-standard 406250. Some USB/Serial converter chips allow to  
select almost
any baudrate you want out of the box, but CP210x doesn't. If you have a  
CP210x you
modify the eeprom in the serial adapter so that when Linux requests the  
"Standard"
460k, it actually uses the odd 406k.

http://bb.osmocom.org/trac/wiki/Hardware/CP210xTutorial

In src/target/firmware/calypso/uart.c there's the uint16_t divider[] table
of baudrate dividers, and the two highest speeds supported by the calypso
chipset are 406,250 or 812,500 bits per second.

Silabs Application note AN205 explains the Silabs side of things.
   http://www.silabs.com/Support%20Documents/TechnicalDocs/an205.pdf

Greetings,

         Chris




More information about the baseband-devel mailing list