GTA02 GSM firmware upgrade with FLUID (was Re: status of GSM
firmware)
Werner Almesberger
werner at openmoko.org
Fri Apr 25 04:35:51 CEST 2008
Below is a step-by-step description of how the firmware is upgraded on a
GTA02v5 with FLUID running on the GTA02. Note that this process tolerates
almost no variations. Stray from the instructions at your own peril.
Of course, some of the files you need for this are only available for
internal use, so I'm sorry that I'll have to disappoint most of the
readers. But you may still enjoy reading how it's done ... ;-)
But first, let me clean up some myths that have popped up about the GSM
firmware upgrade process:
- Myth: you can only upgrade the firmware from the outside, using Windows
Truth: it works just fine with Linux. I just reflashed my GSM firmware
three times in a row, without any ill effects
- Myth: this reset procdure will only work once. If you want to do it
again, you have to power-cycle the Neo first.
Truth: nope, it seems to be quite repeatable
- Myth: what one has to do on GTA02 is quite similar to GTA01
Truth: well, that's what I thought several hours ago as well ...
Okay, enough of the prelude. Here we go:
- download the following three files:
http://people.openmoko.org/werner/gpio
https://people.internal.openmoko.org/stefan/fluid_0.0+svn20070817-r2_armv4t_eabi.ipk
https://people.internal.openmoko.org/openmoko/gsm-firmware/TI/gsm_ac_gp_fd_pu_em_cph_ds_vc_cal35_ri_36_amd8_ts0-moko9-beta1.m0
- copy them to the GTA02v5:
pc# ifconfig usb0 192.168.0.200
pc# scp gpio fluid_0.0+svn20070817-r2_armv4t_eabi.ipk \
gsm_ac_gp_fd_pu_em_cph_ds_vc_cal35_ri_36_amd8_ts0-moko9-beta1.m0 \
192.168.0.202:
- log on, prepare the modem for reset, and ready FLUID:
pc# ssh 192.168.0.202
neo# opkg install fluid_0.0\+svn20070817-r2_armv4t_eabi.ipk
neo# /etc/init.d/gsmd stop
neo# echo 0 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on
neo# echo 1 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on
neo# gpio b7=0
neo# echo AT at POFF >/dev/ttySAC0
neo# cd /usr/sbin
neo# 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 session and start the modem:
neo# 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
If you get his 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:
neo# cat /dev/ttySAC0 &
neo# echo -en 'AT+CGMR\r' >/dev/ttySAC0
neo# 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"
neo# kill %1
If you get no version string, you probably didn't send the AT command
twice.
That's all. Enjoy your new firmware ! ;-)
By the way, that "gpio" binary is just
svn.openmoko.org/trunk/src/target/gpio/
Thanks to Joachim, Matt, and Michael for precious hints that got me past
various pitfalls.
- Werner
More information about the openmoko-devel
mailing list