Neo 1973 Phase 0
Phase0 Quick Start
See the following sections for quick start instructions for Phase0 developers:
We were using u-boot, kernel and rootfs images from http://people.openmoko.org/werner/devirginate-20070301.tar.gz to pre-install the devices. This is a self-contained devirginator snapshot, and can be used at any given time to fully restore the phone (complete loss of data is implied).
Restoring original Software Image
|NOTE: This is how you do a full restore, including bootloader. This requires a Debug Board. In most cases, it is sufficient to use dfu-util to flash kernel and rootfs partitions|
This is how to restore the phone:
- Download [devirginate-20070301.tar.gz] to the Linux PC that will do the installation.
- Go to a convenient directory, then
tar xfz devirginate-20070301.tar.gz
- Enter the directory:
- Disconnect everything:
- the USB connector of the debug v2 board from the PC
- the USB cable from the Neo
- remove the battery
- Connect the Neo to the debug v2 board.
- Connect USB of the debug v2 board to the PC.
- If you have a serial console, start it now. The device should be something like /dev/ttyUSB0.
- Connect the USB cable of the Neo.
- Insert the battery.
- Power on the Neo. (If it has powered on by itself, that's okay.)
- Start OpenOCD (if you have a local openocd.cfg, please use that one):
tmp/openocd -f tmp/openocd-debugv2.cfg
- OpenOCD should print one line (below) and keep running:
Info: openocd.c:84 main(): Open On-Chip Debugger (2007-01-31 12:00 CET)
If OpenOCD prints an error, please disconnect the USB cable of debug v2 from the PC, connect it again, then restart OpenOCD.
- In another window, start the install script:
./devirginate -0 -1 -2
|NOTE: The -0 option irrecoverably destroys bad block information provided by the chip manufacturer. This is only appropriate for devices from phase 0, or earlier. Instructions will be updated for later models.|
Watch the screen of the Neo. The following things should happen:
- it turns on, showing weird things for about 10-30 seconds
- the screen goes dark for 1-2 minutes
- the screen lights up and shows a smiling face for a few minutes
- the screen goes dark and shows a partial (broken) OpenMoko logo for about 5-10 seconds
- the screen goes dark again, then shows the full OpenMoko logo
- the machine will boot Linux now and start touch screen calibration
power-off while DFU
u-boot can power-off the phone while in DFU mode :(
Either press the AUX button frequently to keep the phone from shutting off while the transfer is in progress, or access the u-boot console to increase boot_menu_timeout to some large value (in seconds) and restart.
Update to a more recent u-boot revision. All builds with svn revision 1284 or later address this issue.
Licenses not in rootfs image
/usr/share/common-licenses is not populated
printed GPL/LGPL included
rootfs update causes what seems like bad blocks
Since we do block-by-block erasing of the flash during DFU, the 'rootfs' partition is not erased completely before writing a new JFFS2 image to NAND, if the rootfs image is smaller than the flash size
Either use the 'pad' option to mkfs.jffs2' when creating the image or use
GTA01Bv3# nand erase clean rootfs
on the bootloader console before using DFU to flash a new rootfs image
Mechanical stress to microSD lid can cause short-circuit
If you operate the microSD slot without a card inserted, while the device is powered on, plus put some mechanical stress to it, it can short-circuit the contact pins, resulting in 3.3V supply voltage short-circuit.
Please do not power the phone without microSD card inserted. Especially, never try to switch cards without unpowering the phone completely.
Random system crashes
Due to a bug in the GPIO initialization routines of our u-boot patchset up to moko5, we had memory corruption as soon as more than 64MB of SDRAM were used.
The real solution is to update to a more recent u-boot revision, such as http://buildhost.openmoko.org/tmp/deploy/images/u-boot-gta01bv3-r3_0_0_1321.bin
Rootfs corrupted after flashing via DFU
The USB DFU code for handling the JFFS2 root filesystem partition did not properly erase the rest of the partition, in case you are flashing an image that is smaller than the physical size of the rootfs partition.
nand erase clean rootfs
on the u-boot commandline before flashing a new rootfs image.
Use a u-boot image svn rev. 1306 or higher.
When battery is empty, it looks like Neo1973 is booting, but then reboots. This cycle repeats every 7 seconds. See bug #212 for more info
Hit the power button once. This should turn the device off, and it should stay off. If that doesn't happen, then try again.
Wait for a few minutes, for the device to charge up a bit.
Be ready for the next few steps - you'll need to act quickly.
Power on the device.
Then get into the bootloader console via ttyACM0. Then type "neo1973 charger fast".
Alternative: Change battery to BL-5C with enough juice.
Alternative: Once you've got out of the reboot cycle, leave it off until it has charged enough to get fully into Linux.
Do not let battery drain to too low level? u-boot update?