Contents

Introduction

This is a step-by-step description of how the firmware is upgraded on a Neo with the "FLUID" tool running on the device (FLUID stands for "Flash Loader Utility Independent of Device"). Note that this process tolerates almost no variations. Stray from the instructions at your own peril. Instructions based on a posting by Werner (http://lists.openmoko.org/pipermail/openmoko-devel/2008-April/002605.html), thanks.

Please note: Update to MOKO9-beta firmware isn't recommended by OM, and probably won't fix any recent issues like #1024 at all. Use the latest firmware version instead.

For now there is some moko11, which should fix #666 (compatibility with some 3G sim cards), and also has a new command AT+CSIM. It also includes fixes related to hardware flow control and wakeup interrupt.

This version is not supposed to fix #1024 (constant re-registrations leading to lost calls and messages). For a workaround use a distro where deep sleep mode can be deactivated.

We are planning to include this version in the factory image of the A7 run.

We recommend you don't update by following this procedure, unless you feel very comfortable with commandline. Don't miss-spell any FLUID command!

There is an SD-image, that greatly simplifies the whole GSM-update process - we suggest everybody who's not feeling completely comfortable with the procedure described herein use the image instead (not applicable to gta01 owners).

Warning: there are chances to _irrecoverably_ damage your GSM modem calibration data, thus rendering it useless on messing around with FLUID! Use only the commands from this wiki page! Never downgrade to a version earlier than Moko6, or you will render the GSM unusable (certain internal data structures changed between Moko5 and Moko6).

The GSM-firmware didn't differ from GTA01 to GTA02, as the GSM-hardware didn't either. This means you can flash MOKO11 (or any other recent GSM-FW) to GTA01 as well.
According to mwester, this worked for him to update from MOKO1 on a GTA01Bv4 to MOKO10b2, by following the steps described herein (if the main firmware can't be started, see troubleshooting section for additional instructions).

Any reports on successful update, as well as problems encountered, or SIMs seen to work after update, all highly appreciated. Please add to the "discussion" tab of this wikipage. Thanks!

Phase 1: Preparations

Download and install a distribution to your device that gives you SSH access. We recommend the fso-console image:

Phase 2: The Lobotomy

Make sure nothing is accessing the GSM modem. If you're using the fso-console image from the link above, this will happen automagically on boot. On other systems, kill processes as you see fit (for FSO it's zhone, frameworkd and gsm0710muxd; for SHR it's ophonekitd, frameworkd and gsm0710muxd). If you're using a stable (or andy-tracking) kernel from Feb 26 or later on GTA02, see below for simplified instructions on powering the modem on/off (if you use the simplified method to turn it off, you must also use the simplified method to turn it on; no s3c24xx-gpio invocations are needed).

It should say something like this (takes a few seconds to load the file):

FLUID Revision 2.27, ...
Bootloader: (reset target)

(this fluid command works even if the previous flashing was aborted and you have a broken and non-functional gsm-firmware due to this, as it uses the calypso ROM bootloader instead of the firmware bootloader. But in the case of non-functional gsm-firmware there's no way to power off the modem with AT@POFF command, therefore GTA02 users need to follow "modern kernel" (they might work even with older kernels) instructions and GTA01 users the troubleshooting section. Changing the -b to some lower baudrate might improve stability of flashing-process - the bootloader does autobaud, so you're free to use any rate)

Start a second SSH session and start the modem:

root@om-gta02:~# s3c24xx-gpio b7=1

FLUID should now say something like this (it will take a couple of minutes to finish):

Note: If you get this instead: MESSAGE: File cmd.m0 not found, then you didn't do the cd /usr/sbin. Please pay attention ;-)

If FLUID does nothing, curse your bad luck and repeat the reset sequence, this is the whole 'echo 0/1, b7=0/1 stuff'.

To verify that everything went well, do this in either of the two sessions (this doesn't always work but you can be sure that if fluid didn't report any errors, everything went well; you can check AT+CGMR output later with mickeyterm):

Hints

It means the checksums of all sectors in calypso's FW and the new file to flash are identical. Probably you're trying to flash same version of FW that's already installed.

With modern kernels on GTA02 you can use this single command to "Power off the modem":

echo 0 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on

Now you can start fluid as described above.

To "start the modem" you need to issue:

echo 1 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on

Troubleshooting

Some users weren't able to complete the upgrade since they got an error while the firmware was uploading in the GSM chip (like Flash operation timeout).

However a solution has been found and it allows to use again the GSM modem.
(please note this topic resides on devel-ML. Don't spread over multiple lists please, as it won't help in getting a response to your request just in time, and most people following the main thread likely will miss your postings anyway)

Half-flashed GTA01bv4 GSM Modem

For GTA01 the process of flashing when the main firmware is absent is more complicated as we have no easy way to power-cycle the modem.

I recently had to do a special process to recover my GTA01bv4 after breaking the gsm modem with a failed flash. The process is actually fairly simple.

Unplug USB and remove the battery for about 10s to ensure that the GSM chipset is powered off, then replace the battery and re-connect the USB

boot up from a distro that is neutered so that it does not access or turn on the gsm modem at all (this is a really important prerequisitive, as nothing should turn on the modem by touching MODEM_ON line until fluid is ready to connect to it); one can do that simply by disabling start of ophonekitd (and to be on the safe side framworkd too) on SHR

After this, the flashing proceeded as expected. You don't need to do any special checks to ensure you have successfully flashed; if fluid reports everything is ok, it is actually ok.

uSD-card Image

We recommend to update all devices by using the uSD-image for flashing MOKO11 to GTA02 Freerunner only (not suitable for GTA01 Neo1973).
The procedure has proven to do a reliable job on flashing MOKO11 to GTA02. Chances anything fails are minimal if you _strictly_ follow the instructions. There's no way to do any harm to your device by using this method. Take special care though about the destination of `dd`, it has to be the *physical* device (e.g. foo0), *not* any partition (e.g. foo0p1). Also make sure there are *no* mounted partitions left on the uSD when starting `dd`!

NOTE

If you don't have a uSD reader on your PC, you can `dd` from neo: install task-base-smbfs, u(n)mount /media/card, mount the directory in which you have the "flash-moko11-2.image" file and do the dd stuff. This will take about 12 minutes.

NOTE 2

If you have Qi installed ((no, *always*, see above!)) as your boot loader, power up to the NoR menu (Hold AUX Key, press Power button) and select Boot from SD (fat/ext2) to begin the installation process (per DocScrutinizer in #openmoko). Do not let Qi boot the uSD. Although it still seems to flash OK, the green "d_o_n_e" does not show up, to give you the warm feeling that everything is OK.

You can confirm the firmware version number using the mickeyterm. In SHR-Settings, Phone/Modem Information will supply the same number.

((please also refer to this thread on devel-ML))Please note the uSD-method mentioned end of this page is the recommended procedure, and it's also recommended to do update to *all* devices GTA02

Introduction

This is a step-by-step description of how the firmware is upgraded on a Neo with the "FLUID" tool running on the device (FLUID stands for "Flash Loader Utility Independent of Device"). Note that this process tolerates almost no variations. Stray from the instructions at your own peril. Instructions based on a posting by Werner (http://lists.openmoko.org/pipermail/openmoko-devel/2008-April/002605.html), thanks.

Please note: Update to MOKO9-beta firmware isn't recommended by OM, and probably won't fix any recent issues like #1024 at all. Use the latest firmware version instead.

For now there is some moko11, which should fix #666 (compatibility with some 3G sim cards), and also has a new command AT+CSIM. It also includes fixes related to hardware flow control and wakeup interrupt.

This version is not supposed to fix #1024 (constant re-registrations leading to lost calls and messages). For a workaround use a distro where deep sleep mode can be deactivated.

We are planning to include this version in the factory image of the A7 run.

We recommend you don't update by following this procedure, unless you feel very comfortable with commandline. Don't miss-spell any FLUID command!

There is an SD-image, that greatly simplifies the whole GSM-update process - we suggest everybody who's not feeling completely comfortable with the procedure described herein use the image instead (not applicable to gta01 owners).

Warning: there are chances to _irrecoverably_ damage your GSM modem calibration data, thus rendering it useless on messing around with FLUID! Use only the commands from this wiki page! Never downgrade to a version earlier than Moko6, or you will render the GSM unusable (certain internal data structures changed between Moko5 and Moko6).

The GSM-firmware didn't differ from GTA01 to GTA02, as the GSM-hardware didn't either. This means you can flash MOKO11 (or any other recent GSM-FW) to GTA01 as well.
According to mwester, this worked for him to update from MOKO1 on a GTA01Bv4 to MOKO10b2, by following the steps described herein (if the main firmware can't be started, see troubleshooting section for additional instructions).

Any reports on successful update, as well as problems encountered, or SIMs seen to work after update, all highly appreciated. Please add to the "discussion" tab of this wikipage. Thanks!

Phase 1: Preparations

Download and install a distribution to your device that gives you SSH access. We recommend the fso-console image:

Phase 2: The Lobotomy

Make sure nothing is accessing the GSM modem. If you're using the fso-console image from the link above, this will happen automagically on boot. On other systems, kill processes as you see fit (for FSO it's zhone, frameworkd and gsm0710muxd; for SHR it's ophonekitd, frameworkd and gsm0710muxd). If you're using a stable (or andy-tracking) kernel from Feb 26 or later on GTA02, see below for simplified instructions on powering the modem on/off (if you use the simplified method to turn it off, you must also use the simplified method to turn it on; no s3c24xx-gpio invocations are needed).

It should say something like this (takes a few seconds to load the file):

FLUID Revision 2.27, ...
Bootloader: (reset target)

(this fluid command works even if the previous flashing was aborted and you have a broken and non-functional gsm-firmware due to this, as it uses the calypso ROM bootloader instead of the firmware bootloader. But in the case of non-functional gsm-firmware there's no way to power off the modem with AT@POFF command, therefore GTA02 users need to follow "modern kernel" (they might work even with older kernels) instructions and GTA01 users the troubleshooting section. Changing the -b to some lower baudrate might improve stability of flashing-process - the bootloader does autobaud, so you're free to use any rate)

Start a second SSH session and start the modem:

root@om-gta02:~# s3c24xx-gpio b7=1

FLUID should now say something like this (it will take a couple of minutes to finish):

Note: If you get this instead: MESSAGE: File cmd.m0 not found, then you didn't do the cd /usr/sbin. Please pay attention ;-)

If FLUID does nothing, curse your bad luck and repeat the reset sequence, this is the whole 'echo 0/1, b7=0/1 stuff'.

To verify that everything went well, do this in either of the two sessions (this doesn't always work but you can be sure that if fluid didn't report any errors, everything went well; you can check AT+CGMR output later with mickeyterm):

Hints

It means the checksums of all sectors in calypso's FW and the new file to flash are identical. Probably you're trying to flash same version of FW that's already installed.

With modern kernels on GTA02 you can use this single command to "Power off the modem":

echo 0 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on

Now you can start fluid as described above.

To "start the modem" you need to issue:

echo 1 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on

Troubleshooting

Some users weren't able to complete the upgrade since they got an error while the firmware was uploading in the GSM chip (like Flash operation timeout).

However a solution has been found and it allows to use again the GSM modem.
(please note this topic resides on devel-ML. Don't spread over multiple lists please, as it won't help in getting a response to your request just in time, and most people following the main thread likely will miss your postings anyway)

Half-flashed GTA01bv4 GSM Modem

For GTA01 the process of flashing when the main firmware is absent is more complicated as we have no easy way to power-cycle the modem.

I recently had to do a special process to recover my GTA01bv4 after breaking the gsm modem with a failed flash. The process is actually fairly simple.

Unplug USB and remove the battery for about 10s to ensure that the GSM chipset is powered off, then replace the battery and re-connect the USB

boot up from a distro that is neutered so that it does not access or turn on the gsm modem at all (this is a really important prerequisitive, as nothing should turn on the modem by touching MODEM_ON line until fluid is ready to connect to it); one can do that simply by disabling start of ophonekitd (and to be on the safe side framworkd too) on SHR

After this, the flashing proceeded as expected. You don't need to do any special checks to ensure you have successfully flashed; if fluid reports everything is ok, it is actually ok.

uSD-card Image

We recommend to update all devices by using the uSD-image for flashing MOKO11 to GTA02 Freerunner only (not suitable for GTA01 Neo1973).
The procedure has proven to do a reliable job on flashing MOKO11 to GTA02. Chances anything fails are minimal if you _strictly_ follow the instructions. There's no way to do any harm to your device by using this method. Take special care though about the destination of `dd`, it has to be the *physical* device (e.g. foo0), *not* any partition (e.g. foo0p1). Also make sure there are *no* mounted partitions left on the uSD when starting `dd`!

NOTE

If you don't have a uSD reader on your PC, you can `dd` from neo: install task-base-smbfs, u(n)mount /media/card, mount the directory in which you have the "flash-moko11-2.image" file and do the dd stuff. This will take about 12 minutes.

NOTE 2

If you have Qi installed ((no, *always*, see above!)) as your boot loader, power up to the NoR menu (Hold AUX Key, press Power button) and select Boot from SD (fat/ext2) to begin the installation process (per DocScrutinizer in #openmoko). Do not let Qi boot the uSD. Although it still seems to flash OK, the green "d_o_n_e" does not show up, to give you the warm feeling that everything is OK.

You can confirm the firmware version number using the mickeyterm. In SHR-Settings, Phone/Modem Information will supply the same number.