Flashing the GSM Firmware

From Openmoko

Revision as of 12:25, 28 October 2008 by JOERG (Talk | contribs)

Jump to: navigation, search

Introduction

This is a step-by-step description of how the firmware is upgraded on a GTA02 with FLUID running on the 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 et al.

Warning: there are chances to _completely_ brick your GSM modem on messing around with FLUID!

Phase 1: Preparations

  • Download and install a distribution to your device that gives you SSH access. We recommend the fso-console image:
mickey@amethyst$ cd /tmp
mickey@amethyst$ wget http://people.openmoko.org/mickey/images/openmoko-fso-console-image-glibc-ipk--20081028-om-gta02.rootfs.jffs2.summary
mickey@amethyst$ dfu-util -a rootfs -R -D ./openmoko-fso-console-image-glibc-ipk--20081028-om-gta02.rootfs.jffs2.summary
mickey@amethyst$ wget http://people.openmoko.org/mickey/images/uImage-2.6.24+r10+gitr75999+54524f4531c8b262431b794fea610d81bb351c86-r10-om-gta02.bin
mickey@amethyst$ dfu-util -a kernel -R -D ./uImage-2.6.24+r10+gitr75999+54524f4531c8b262431b794fea610d81bb351c86-r10-om-gta02.bin
root@om-gta02:~# opkg install http://people.openmoko.org/joerg/calypso_moko_FW/fluid_0.0+svn20070817-r2_armv4t_eabi.ipk
root@om-gta02:~# opkg install http://people.openmoko.org/joerg/calypso_moko_FW/s3c24xx-gpio_1.0+svnr4130-r2.1_armv4t.ipk
root@om-gta02:~# cd $HOME
root@om-gta02:~# wget http://people.openmoko.org/joerg/calypso_moko_FW/gsm_ac_gp_fd_pu_em_cph_ds_vc_cal35_ri_36_amd8_ts0-moko9-beta1.m0

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.
  • Powercycle the modem:
root@om-gta02:~# echo 0 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on
root@om-gta02:~# echo 1 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on
root@om-gta02:~# s3c24xx-gpio b7=0
root@om-gta02:~# echo "AT@POFF" >/dev/ttySAC0
  • Launch the FLUID binary:
root@om-gta02:~# cd /usr/sbin
root@om-gta02:/usr/sbin# FLUID_PORT=/dev/ttySAC0 FLUID_FLOWCONTROL=h fluid.exe \
-oO -b 115200 \
-f $HOME/gsm_ac_gp_fd_pu_em_cph_ds_vc_cal35_ri_36_amd8_ts0-moko9-beta1.m0

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

FLUID Revision 2.27, ...
Bootloader: (reset target)
  • Start a second SSH session and start the modem:
root@om-gta02:~# s3c24xx-gpio b7=1

FLUID should now say something like this:

(fluid, version 3) ok
Checksumming (269 * 8kB = 2152kB):  ok
Flash Detect: (0xEC, 0x22A0) Samsung K5A3240CT ok
Program: (34 sectors, 267*8k=2136k) (*******************) ok

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.

  • To verify that everything went well, do this in either of the two sessions:
root@om-gta02:~# cat /dev/ttySAC0 &
root@om-gta02:~# echo -en 'AT\r' >/dev/ttySAC0
root@om-gta02:~# echo -en 'AT+CGMR\r' >/dev/ttySAC0
+CGMR: "HW: GTA, GSM: gsm_ac_gp_fd_pu_em_cph_ds_vc_cal_amd8_ts0-Moko9-beta1"
root@om-gta02:~# kill %1
Personal tools

Introduction

This is a step-by-step description of how the firmware is upgraded on a GTA02 with FLUID running on the 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 et al.

Warning: there are chances to _completely_ brick your GSM modem on messing around with FLUID!

Phase 1: Preparations

  • Download and install a distribution to your device that gives you SSH access. We recommend the fso-console image:
mickey@amethyst$ cd /tmp
mickey@amethyst$ wget http://people.openmoko.org/mickey/images/openmoko-fso-console-image-glibc-ipk--20081028-om-gta02.rootfs.jffs2.summary
mickey@amethyst$ dfu-util -a rootfs -R -D ./openmoko-fso-console-image-glibc-ipk--20081028-om-gta02.rootfs.jffs2.summary
mickey@amethyst$ wget http://people.openmoko.org/mickey/images/uImage-2.6.24+r10+gitr75999+54524f4531c8b262431b794fea610d81bb351c86-r10-om-gta02.bin
mickey@amethyst$ dfu-util -a kernel -R -D ./uImage-2.6.24+r10+gitr75999+54524f4531c8b262431b794fea610d81bb351c86-r10-om-gta02.bin
root@om-gta02:~# opkg install http://people.openmoko.org/joerg/calypso_moko_FW/fluid_0.0+svn20070817-r2_armv4t_eabi.ipk
root@om-gta02:~# opkg install http://people.openmoko.org/joerg/calypso_moko_FW/s3c24xx-gpio_1.0+svnr4130-r2.1_armv4t.ipk
root@om-gta02:~# cd $HOME
root@om-gta02:~# wget http://people.openmoko.org/joerg/calypso_moko_FW/gsm_ac_gp_fd_pu_em_cph_ds_vc_cal35_ri_36_amd8_ts0-moko9-beta1.m0

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.
  • Powercycle the modem:
root@om-gta02:~# echo 0 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on
root@om-gta02:~# echo 1 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on
root@om-gta02:~# s3c24xx-gpio b7=0
root@om-gta02:~# echo "AT@POFF" >/dev/ttySAC0
  • Launch the FLUID binary:
root@om-gta02:~# cd /usr/sbin
root@om-gta02:/usr/sbin# FLUID_PORT=/dev/ttySAC0 FLUID_FLOWCONTROL=h fluid.exe \
-oO -b 115200 \
-f $HOME/gsm_ac_gp_fd_pu_em_cph_ds_vc_cal35_ri_36_amd8_ts0-moko9-beta1.m0

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

FLUID Revision 2.27, ...
Bootloader: (reset target)
  • Start a second SSH session and start the modem:
root@om-gta02:~# s3c24xx-gpio b7=1

FLUID should now say something like this:

(fluid, version 3) ok
Checksumming (269 * 8kB = 2152kB):  ok
Flash Detect: (0xEC, 0x22A0) Samsung K5A3240CT ok
Program: (34 sectors, 267*8k=2136k) (*******************) ok

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.

  • To verify that everything went well, do this in either of the two sessions:
root@om-gta02:~# cat /dev/ttySAC0 &
root@om-gta02:~# echo -en 'AT\r' >/dev/ttySAC0
root@om-gta02:~# echo -en 'AT+CGMR\r' >/dev/ttySAC0
+CGMR: "HW: GTA, GSM: gsm_ac_gp_fd_pu_em_cph_ds_vc_cal_amd8_ts0-Moko9-beta1"
root@om-gta02:~# kill %1