view doc/Freerunner-Howto @ 867:c4da570dca83

int_osx_receive_prim() in gsm-fw/gpf/osx/osx.c: there was an error in the reconstruction of this function from disassembly in the logic that implements special handling for MPHC_RXLEV_REQ messages. The code is now fixed to properly match what the binary object version does; with this fix the firmware now performs the power measurement phase correctly and the initial network registration succeeds.
author Space Falcon <falcon@ivan.Harhan.ORG>
date Sat, 16 May 2015 06:34:09 +0000
parents 4fa939eada22
children 7d3f0910aeb2
line wrap: on
line source

How to play with FreeCalypso GSM firmware on a Neo Freerunner
=============================================================

Aside from the half-source leo2moko fw we produced back in 2013-10 (you can
read all about that one at www.freecalypso.org/leo2moko/), we don't have a
working free GSM firmware version for the Freerunner yet.  What we do have
currently is experimental code that can be built into an image that can be
flashed into a GTA02 modem - but it doesn't really work yet.

If you would like to play with our experimental code on your Neo FR and maybe
help us make it work, here are the instructions:

1. Build the firmware in the gtamodem-gsm configuration - see the Compiling
   document for more details;

2. You should get a flashImage.bin image built; now you need to flash it into
   your FR's modem.  The serial cable method is highly recommended: the only
   thing you'll be able to do with our current non-working firmware is help us
   debug it, and the serial cable will be needed for the latter part anyway.

3. Run fc-loadtool the same way you would if you were flashing leo2moko;

4. The actual flash programming commands are a little different because the
   image is smaller and in a different format:

flash erase 0 0x160000
flash program-bin 0 finlink/flashImage.bin

The second number in the flash erase command needs to be the size of
flashImage.bin rounded up to a multiple of 64 KiB (the flash sector size in the
GTA02 modem); 0x160000 is correct for the fw image size as of this writing, but
please double-check it yourself before flashing.  The 0 argument in the
flash program-bin command is the flash offset at which the image should be
programmed: it will always be 0 for FreeCalypso flashable fw images for gtamodem
and other targets that have the Calypso boot ROM enabled in the hardware.

Once you have flashed our experimental fw into your modem, you can power-cycle
the modem and see the new fw boot.  You should have the serial cable connected,
the serial channel enabled from the Freerunner's AP side and either rvtdump or
rvinterf running on your PC or other development machine when you first power
your modem up with the experimental fw in it: this way you will see whether the
fw boots successfully or crashes.  If it does boot without crashing (whether or
not it does seems to depend on some factors which we have yet to understand),
you will get an AT command interface on the other UART going to the Freerunner's
AP - now go ahead and play from there. :)

To reflash your modem back to stable and working leo2moko aka moko12, execute
the following fc-loadtool commands:

flash erase 0 0x230000
flash program-m0 leo2moko.m0

(Whichever firmware image you are flashing, the flash erase command needs to
 cover the range of flash sectors this image will occupy.  You can erase more
 sectors up to 0x300000, the "natural" boundary of the flash area where fw
 images live, but I prefer to erase only the needed number of sectors: it is
 both faster and imposes less wear on the flash.)