<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.openmoko.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.openmoko.org/api.php?action=feedcontributions&amp;user=JarodWang&amp;feedformat=atom</id>
		<title>Openmoko - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.openmoko.org/api.php?action=feedcontributions&amp;user=JarodWang&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Special:Contributions/JarodWang"/>
		<updated>2013-05-24T12:26:47Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.6</generator>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Kernel/zh_cn</id>
		<title>Kernel/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Kernel/zh_cn"/>
				<updated>2007-03-22T14:22:08Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 概述 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概述 ==&lt;br /&gt;
&lt;br /&gt;
GTA01上所使用的内核基于来自[http://www.kernel.org/ kernel.org]未经修改的Linux 2.6.20.1内核。 &lt;br /&gt;
&lt;br /&gt;
需要一些额外的补丁针对&lt;br /&gt;
* S3C2410 Usb Device控制器&lt;br /&gt;
** 我们使用来自iPaq H1940 linux项目的驱动程序&lt;br /&gt;
* S3C2410 SD卡控制器&lt;br /&gt;
** We use the driver from the [http://www.tomtom.com/gpl.php TomTom GO kernel]&lt;br /&gt;
* [[QT2410]] machine support&lt;br /&gt;
** This is just some glue that puts all pieces together&lt;br /&gt;
* S3C2410触摸屏驱动程序&lt;br /&gt;
** 来自iPaq H1940 linux项目&lt;br /&gt;
* GTA01 machine support&lt;br /&gt;
** Some glue/configuration to pull all pieces together&lt;br /&gt;
* [[GSM Communication Infrastructure]]&lt;br /&gt;
** The kernel-level part (TS07.10 line discipline, GPRS line discipline)&lt;br /&gt;
&lt;br /&gt;
== 内核补丁 ==&lt;br /&gt;
&lt;br /&gt;
The latest patchset against the abovementioned vanilla kernel can be found at https://svn.openmoko.org/trunk/src/target/kernel/patches/. This is a so-called &amp;quot;[http://savannah.nongnu.org/projects/quilt quilt] patchset&amp;quot;.  In order to apply it, you have to untar it into a &amp;quot;patches&amp;quot; directory below the &amp;quot;linux-2.6.x&amp;quot; directory, and then call &amp;quot;quilt push -a&amp;quot;, which pushes all patches onto the kernel.&lt;br /&gt;
&lt;br /&gt;
== 内核配置 ==&lt;br /&gt;
&lt;br /&gt;
The latest kernel configuration can be found at https://svn.openmoko.org/trunk/oe/packages/linux/linux-gta01/defconfig-fic-gta01.  Just copy it to the linux-2.6.x/.config file.&lt;br /&gt;
&lt;br /&gt;
== 内核构建 ==&lt;br /&gt;
&lt;br /&gt;
The kernel build is executed as normal.  We actually only need the &amp;quot;vmlinux&amp;quot; target, not the &amp;quot;zImage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== 可引导的内核映像 ==&lt;br /&gt;
&lt;br /&gt;
A bootable kernel image called ''uImage'' is available from [https://buildhost.openmoko.org/tmp/gta01/deploy/images/]&lt;br /&gt;
&lt;br /&gt;
== 创建一个可引导的内核映像 ==&lt;br /&gt;
u-boot要求所有的映像文件以uImage格式进行封装(比如内核，initrd，...)。This is basically just a special header adding CRC protection, version information, etc. Pleaes see [[u-boot/zh_cn|u-boot]] for details.&lt;br /&gt;
&lt;br /&gt;
== 内核启动参数 ==&lt;br /&gt;
&lt;br /&gt;
Since the [[QT2410]] can be used with different liquid crystal modules (LCMs), the kernel images for the QT2410 have a boot parameter &amp;quot;tft&amp;quot;:&lt;br /&gt;
* If you boot without any tft= parameter, the 'stock' qt2410 240x320 TFT panel is assumed.&lt;br /&gt;
* If you boot with &amp;quot;tft=b&amp;quot; ('b' for big), the timings for the SHARP 8&amp;quot; 640x480 TFT panel are used.&lt;br /&gt;
* If you boot with &amp;quot;tft=p&amp;quot; ('p' for production), the timings for the 2.8&amp;quot; 480x640 TFT panel are used.&lt;br /&gt;
&lt;br /&gt;
== 内核子系统 ==&lt;br /&gt;
&lt;br /&gt;
In this section we will outline a couple of the GTA01 specific kernel drivers / features / subsystems&lt;br /&gt;
&lt;br /&gt;
=== GSM ===&lt;br /&gt;
&lt;br /&gt;
==== Power Management ====&lt;br /&gt;
&lt;br /&gt;
The '''gta01_pm_gsm''' driver implements GSM power management (this means, if this is compiled as a module, you have to load the gta01_pm_gsm.ko module first)&lt;br /&gt;
&lt;br /&gt;
It exports the following sysfs based interface&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ ls -l /sys/bus/platform/devices/gta01-pm-gsm.0/&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:58 download&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:58 power_on&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:58 reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering up =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/power_on &lt;br /&gt;
gta01-pm-gsm gta01-pm-gsm.0: powering up GSM, thus disconnecting serial console&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering down =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;0&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/power_on &lt;br /&gt;
gta01-pm-gsm gta01-pm-gsm.0: powered down GSM, thus enabling serial console&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 复位 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/reset &lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;0&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/reset &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Activating GSM baseband download mode =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/download&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== De-activating GSM baseband download mode =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;0&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/download&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
==== Power Management ====&lt;br /&gt;
&lt;br /&gt;
The gta01_pm_gps kernel driver offers a sysfs based interface:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ ls -l /sys/bus/platform/devices/gta01-pm-gps.0/     &lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_avdd_3v&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_lp_io_3v3&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_pll_core_2v5&lt;br /&gt;
-rw-r--r--    1 root     root            0 Feb  1 09:14 power_sequence&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_vtxco_2v8&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 pwron&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The power_avdd_3v, power_lp_io_3v3, power_pll_core_2v5, power_vtxco_2v8, pwron and reset files represent the state of the respective signal.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;b&amp;gt;power_sequence&amp;lt;/b&amp;gt; file implements power-up/power-down sequence in accordance with the GlobalLocate data sheet.&lt;br /&gt;
&lt;br /&gt;
===== Powering up =====&lt;br /&gt;
 root@fic-gta01:~$ echo &amp;quot;power_up&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gps.0/power_sequence &lt;br /&gt;
===== Powering down =====&lt;br /&gt;
 root@fic-gta01:~$ echo &amp;quot;power_down&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gps.0/power_sequence&lt;br /&gt;
&lt;br /&gt;
=== Asound driver ===&lt;br /&gt;
&lt;br /&gt;
==== High-level requirements ====&lt;br /&gt;
&lt;br /&gt;
The GTA01 audio subsystem is fairly complex, even though the high-level requirements for the sound driver are simple.&lt;br /&gt;
The features we need to support&lt;br /&gt;
&lt;br /&gt;
* voice call support&lt;br /&gt;
** passing through the microphone signal to the GSM Modem&lt;br /&gt;
** passing through the GSM Modem audio output to the integrated speaker(s)&lt;br /&gt;
** the microphone input mixer gain will be statically configured according to the dynamic requirements&lt;br /&gt;
** the audio volume that is sent to the GSM modem can be adjusted via line out level&lt;br /&gt;
** the audio volume incoming (from GSM modem -&amp;gt; codec) can be adjusted via speaker out level&lt;br /&gt;
* voice call recording support&lt;br /&gt;
** the user is able to record phone conversations on digital storage inside the phone. Format will be ogg (not important to driver)&lt;br /&gt;
** ideally, the user can choose between recording only incoming or outgoing signal, or both.&lt;br /&gt;
** for both, we'd need to mix both microphone and line-in signals before recording. is this possible?&lt;br /&gt;
* voice call playback support&lt;br /&gt;
** the user is able to playback recorded files during a conversation.  this means that PCM playback needs to be mixed with mic input before being passed to line-out (and to the GSM modem)&lt;br /&gt;
* media playback support&lt;br /&gt;
** an audio player can play back mp3/ogg/flac/... files and output sound via integrated speakers or headphone&lt;br /&gt;
* headphone jack switch&lt;br /&gt;
** this is connected to a GPIO of the S3C2410. How to best integrate this with the sound driver? It should just be handled like any other headphone jack reporting of e.g. laptop computers.&lt;br /&gt;
&lt;br /&gt;
For more details see [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
&lt;br /&gt;
We're using the stock bluez implementation of the linux kernel.&lt;br /&gt;
&lt;br /&gt;
==== Power Management ====&lt;br /&gt;
&lt;br /&gt;
The bluetooth basically has the following preconditions&lt;br /&gt;
* BT_EN being set&lt;br /&gt;
* The Voltage regulator set up properly&lt;br /&gt;
* The ohci-hcd driver being loaded&lt;br /&gt;
&lt;br /&gt;
The gta01_pm_bt driver implements the following files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ ls -l /sys/devices/platform/gta01-pm-bt.0&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:52 power_on&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:52 reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering up the device =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;1&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/power_on  &lt;br /&gt;
usb 1-1: new full speed USB device using s3c2410-ohci and address 4&lt;br /&gt;
usb 1-1: configuration #1 chosen from 1 choice&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering down the device =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;0&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/power_on &lt;br /&gt;
usb 1-1: USB disconnect, address 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Asserting reset (low-active) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;0&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/reset &lt;br /&gt;
root@fic-gta01:/$ usb 1-1: USB disconnect, address 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== De-asserting reset (low-active) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;1&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/reset &lt;br /&gt;
s3c2410-ohci s3c2410-ohci: wakeup&lt;br /&gt;
usb 1-1: new full speed USB device using s3c2410-ohci and address 3&lt;br /&gt;
usb 1-1: configuration #1 chosen from 1 choice&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting started ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ hciconfig hci0 up&lt;br /&gt;
root@fic-gta01:~$ hcitool  scan&lt;br /&gt;
Scanning ...&lt;br /&gt;
        00:14:9A:77:A2:02       A780&lt;br /&gt;
root@fic-gta01:~$ hcitool inq 00:14:9A:77:A2:02 &lt;br /&gt;
Inquiring ...&lt;br /&gt;
        00:14:9A:77:A2:02       clock offset: 0x55df    class: 0x502204&lt;br /&gt;
root@fic-gta01:~$ hcitool cc 00:14:9A:77:A2:02 &lt;br /&gt;
root@fic-gta01:~$ hcitool con                 &lt;br /&gt;
Connections:&lt;br /&gt;
        &amp;lt; ACL 00:14:9A:77:A2:02 handle 42 state 1 lm MASTER &lt;br /&gt;
root@fic-gta01:~$ hcitool info 00:14:9A:77:A2:02&lt;br /&gt;
Requesting information ...&lt;br /&gt;
        BD Address:  00:14:9A:77:A2:02&lt;br /&gt;
        Device Name: A780&lt;br /&gt;
        LMP Version: 1.1 (0x1) LMP Subversion: 0x700&lt;br /&gt;
        Manufacturer: Broadcom Corporation (15)&lt;br /&gt;
        Features: 0xff 0xff 0x0d 0x00 0x00 0x00 0x00 0x00&lt;br /&gt;
                &amp;lt;3-slot packets&amp;gt; &amp;lt;5-slot packets&amp;gt; &amp;lt;encryption&amp;gt; &amp;lt;slot offset&amp;gt; &lt;br /&gt;
                &amp;lt;timing accuracy&amp;gt; &amp;lt;role switch&amp;gt; &amp;lt;hold mode&amp;gt; &amp;lt;sniff mode&amp;gt; &lt;br /&gt;
                &amp;lt;park state&amp;gt; &amp;lt;RSSI&amp;gt; &amp;lt;channel quality&amp;gt; &amp;lt;SCO link&amp;gt; &amp;lt;HV2 packets&amp;gt; &lt;br /&gt;
                &amp;lt;HV3 packets&amp;gt; &amp;lt;u-law log&amp;gt; &amp;lt;A-law log&amp;gt; &amp;lt;CVSD&amp;gt; &amp;lt;power control&amp;gt; &lt;br /&gt;
                &amp;lt;transparent SCO&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== AUX Button ===&lt;br /&gt;
&lt;br /&gt;
The AUX button (formerly 911 button) is supported via the &amp;quot;gta01kbd&amp;quot; driver in the kernel (drivers/input/keyboard/gta01kbd.c).  &lt;br /&gt;
&lt;br /&gt;
It creates an input event device that only issues &amp;quot;KEY_PHONE&amp;quot; press/unpress events.&lt;br /&gt;
&lt;br /&gt;
=== Power Management Unit (PMU) ===&lt;br /&gt;
&lt;br /&gt;
The PMU is supported via the &amp;quot;pcf50606&amp;quot; driver in the kernel (drivers/i2c/chips/pcf50606.c).&lt;br /&gt;
&lt;br /&gt;
This driver provides a number of userspace interfaces for the various bits and pieces of the PMU&lt;br /&gt;
&lt;br /&gt;
==== Power Button, Charger insertion ====&lt;br /&gt;
&lt;br /&gt;
The PMU creates an input device that supports the following keys:&lt;br /&gt;
* KEY_POWER: power button of GTA01&lt;br /&gt;
* KEY_POWER2: USB power supply insert/remove&lt;br /&gt;
* KEY_BATTERY: Charger insert/remove&lt;br /&gt;
&lt;br /&gt;
==== 实时时钟 ====&lt;br /&gt;
&lt;br /&gt;
The real-time clock, including the alarm feature, is implemented as standard RTC (/dev/rtc).&lt;br /&gt;
&lt;br /&gt;
==== 看门狗 ====&lt;br /&gt;
&lt;br /&gt;
The PMU-integrated watchdog is implemented using the standard watchdog character device.&lt;br /&gt;
&lt;br /&gt;
==== Voltage Regulators ====&lt;br /&gt;
&lt;br /&gt;
The voltage regulators are exported to userspace using sysfs, much like lm_sensors.&lt;br /&gt;
&lt;br /&gt;
Every regulator can be read (and written!).  The format is ASCII in millivolts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/sys/devices/platform/s3c2410-i2c/i2c-0/0-0008$ ls -l /sys/bus/i2c/devices/0-0008/voltage_*&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_d1reg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_d2reg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_d3reg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_dcd&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_dcde&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_dcud&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_lpreg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_ioreg&lt;br /&gt;
root@fic-gta01:/sys/devices/platform/s3c2410-i2c/i2c-0/0-0008$ cat voltage_dcd&lt;br /&gt;
1300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Battery Voltage ====&lt;br /&gt;
&lt;br /&gt;
The battery voltage (in millivolts) can be read via sysfs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ cat /sys/bus/i2c/devices/0-0008/battvolt &lt;br /&gt;
3767&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Battery charging current ====&lt;br /&gt;
&lt;br /&gt;
The battery charging current (in milliamperes) can be read via sysfs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ cat /sys/bus/i2c/devices/0-0008/chgcur &lt;br /&gt;
0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 电池温度 ====&lt;br /&gt;
&lt;br /&gt;
The battery temperature (in centigrades) can be read via sysfs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ cat /sys/bus/i2c/devices/0-0008/battemp&lt;br /&gt;
25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 内核TODO列表 ==&lt;br /&gt;
&lt;br /&gt;
=== Various ===&lt;br /&gt;
* speed up in-kernel boot process&lt;br /&gt;
** delay calibration&lt;br /&gt;
** framebuffer takes ages&lt;br /&gt;
&lt;br /&gt;
===  TS07.10 multiplex ===&lt;br /&gt;
&lt;br /&gt;
=== PCF50606 ===&lt;br /&gt;
* fix conversion problems when setting alarm time/date&lt;br /&gt;
* check conversion table for temperature&lt;br /&gt;
* implement 'persistent alarm setting' (see mail from mickey)&lt;br /&gt;
&lt;br /&gt;
=== Backlight ===&lt;br /&gt;
* later: implement smooth fade-in, fade-out&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* implement it as LED driver&lt;br /&gt;
* test it&lt;br /&gt;
* later: implement PWM&lt;br /&gt;
&lt;br /&gt;
=== USB设备驱动 ===&lt;br /&gt;
* test switching between usb host and usb device&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
* test, debug and fix suspend on user request&lt;br /&gt;
* test, debug and fix wakeup on&lt;br /&gt;
** IRQ on serial UART (GSM)&lt;br /&gt;
** IRQ on serial UART (GPS)&lt;br /&gt;
** IRQ from PMU (charger insert/remove or the like)&lt;br /&gt;
** IRQ from ADC/touchscreen&lt;br /&gt;
** 911 button press (GPIO IRQ)&lt;br /&gt;
** headphone jack insert/remove&lt;br /&gt;
{{Languages|Kernel}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Kernel/zh_cn</id>
		<title>Kernel/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Kernel/zh_cn"/>
				<updated>2007-03-08T13:46:04Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 可启动的内核映像 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概述 ==&lt;br /&gt;
&lt;br /&gt;
GTA01上所使用的内核基于来自[http://www.kernel.org/ kernel.org]未经修改的Linux 2.6.17.7内核。 &lt;br /&gt;
&lt;br /&gt;
需要一些额外的补丁针对&lt;br /&gt;
* S3C2410 Usb Device控制器&lt;br /&gt;
** 我们使用来自iPaq H1940 linux项目的驱动程序&lt;br /&gt;
* S3C2410 SD卡控制器&lt;br /&gt;
** We use the driver from the [http://www.tomtom.com/gpl.php TomTom GO kernel]&lt;br /&gt;
* [[QT2410]] machine support&lt;br /&gt;
** This is just some glue that puts all pieces together&lt;br /&gt;
* S3C2410触摸屏驱动程序&lt;br /&gt;
** 来自iPaq H1940 linux项目&lt;br /&gt;
* GTA01 machine support&lt;br /&gt;
** Some glue/configuration to pull all pieces together&lt;br /&gt;
* [[GSM Communication Infrastructure]]&lt;br /&gt;
** The kernel-level part (TS07.10 line discipline, GPRS line discipline)&lt;br /&gt;
&lt;br /&gt;
== 内核补丁 ==&lt;br /&gt;
&lt;br /&gt;
The latest patchset against the abovementioned vanilla kernel can be found at https://svn.openmoko.org/trunk/src/target/kernel/patches/. This is a so-called &amp;quot;[http://savannah.nongnu.org/projects/quilt quilt] patchset&amp;quot;.  In order to apply it, you have to untar it into a &amp;quot;patches&amp;quot; directory below the &amp;quot;linux-2.6.x&amp;quot; directory, and then call &amp;quot;quilt push -a&amp;quot;, which pushes all patches onto the kernel.&lt;br /&gt;
&lt;br /&gt;
== 内核配置 ==&lt;br /&gt;
&lt;br /&gt;
The latest kernel configuration can be found at https://svn.openmoko.org/trunk/oe/packages/linux/linux-gta01/defconfig-fic-gta01.  Just copy it to the linux-2.6.x/.config file.&lt;br /&gt;
&lt;br /&gt;
== 内核构建 ==&lt;br /&gt;
&lt;br /&gt;
The kernel build is executed as normal.  We actually only need the &amp;quot;vmlinux&amp;quot; target, not the &amp;quot;zImage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== 可引导的内核映像 ==&lt;br /&gt;
&lt;br /&gt;
A bootable kernel image called ''uImage'' is available from [https://buildhost.openmoko.org/tmp/gta01/deploy/images/]&lt;br /&gt;
&lt;br /&gt;
== 创建一个可引导的内核映像 ==&lt;br /&gt;
u-boot要求所有的映像文件以uImage格式进行封装(比如内核，initrd，...)。This is basically just a special header adding CRC protection, version information, etc. Pleaes see [[u-boot/zh_cn|u-boot]] for details.&lt;br /&gt;
&lt;br /&gt;
== 内核启动参数 ==&lt;br /&gt;
&lt;br /&gt;
Since the [[QT2410]] can be used with different liquid crystal modules (LCMs), the kernel images for the QT2410 have a boot parameter &amp;quot;tft&amp;quot;:&lt;br /&gt;
* If you boot without any tft= parameter, the 'stock' qt2410 240x320 TFT panel is assumed.&lt;br /&gt;
* If you boot with &amp;quot;tft=b&amp;quot; ('b' for big), the timings for the SHARP 8&amp;quot; 640x480 TFT panel are used.&lt;br /&gt;
* If you boot with &amp;quot;tft=p&amp;quot; ('p' for production), the timings for the 2.8&amp;quot; 480x640 TFT panel are used.&lt;br /&gt;
&lt;br /&gt;
== 内核子系统 ==&lt;br /&gt;
&lt;br /&gt;
In this section we will outline a couple of the GTA01 specific kernel drivers / features / subsystems&lt;br /&gt;
&lt;br /&gt;
=== GSM ===&lt;br /&gt;
&lt;br /&gt;
==== Power Management ====&lt;br /&gt;
&lt;br /&gt;
The '''gta01_pm_gsm''' driver implements GSM power management (this means, if this is compiled as a module, you have to load the gta01_pm_gsm.ko module first)&lt;br /&gt;
&lt;br /&gt;
It exports the following sysfs based interface&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ ls -l /sys/bus/platform/devices/gta01-pm-gsm.0/&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:58 download&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:58 power_on&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:58 reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering up =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/power_on &lt;br /&gt;
gta01-pm-gsm gta01-pm-gsm.0: powering up GSM, thus disconnecting serial console&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering down =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;0&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/power_on &lt;br /&gt;
gta01-pm-gsm gta01-pm-gsm.0: powered down GSM, thus enabling serial console&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 复位 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/reset &lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;0&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/reset &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Activating GSM baseband download mode =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/download&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== De-activating GSM baseband download mode =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;0&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/download&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
==== Power Management ====&lt;br /&gt;
&lt;br /&gt;
The gta01_pm_gps kernel driver offers a sysfs based interface:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ ls -l /sys/bus/platform/devices/gta01-pm-gps.0/     &lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_avdd_3v&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_lp_io_3v3&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_pll_core_2v5&lt;br /&gt;
-rw-r--r--    1 root     root            0 Feb  1 09:14 power_sequence&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_vtxco_2v8&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 pwron&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The power_avdd_3v, power_lp_io_3v3, power_pll_core_2v5, power_vtxco_2v8, pwron and reset files represent the state of the respective signal.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;b&amp;gt;power_sequence&amp;lt;/b&amp;gt; file implements power-up/power-down sequence in accordance with the GlobalLocate data sheet.&lt;br /&gt;
&lt;br /&gt;
===== Powering up =====&lt;br /&gt;
 root@fic-gta01:~$ echo &amp;quot;power_up&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gps.0/power_sequence &lt;br /&gt;
===== Powering down =====&lt;br /&gt;
 root@fic-gta01:~$ echo &amp;quot;power_down&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gps.0/power_sequence&lt;br /&gt;
&lt;br /&gt;
=== Asound driver ===&lt;br /&gt;
&lt;br /&gt;
==== High-level requirements ====&lt;br /&gt;
&lt;br /&gt;
The GTA01 audio subsystem is fairly complex, even though the high-level requirements for the sound driver are simple.&lt;br /&gt;
The features we need to support&lt;br /&gt;
&lt;br /&gt;
* voice call support&lt;br /&gt;
** passing through the microphone signal to the GSM Modem&lt;br /&gt;
** passing through the GSM Modem audio output to the integrated speaker(s)&lt;br /&gt;
** the microphone input mixer gain will be statically configured according to the dynamic requirements&lt;br /&gt;
** the audio volume that is sent to the GSM modem can be adjusted via line out level&lt;br /&gt;
** the audio volume incoming (from GSM modem -&amp;gt; codec) can be adjusted via speaker out level&lt;br /&gt;
* voice call recording support&lt;br /&gt;
** the user is able to record phone conversations on digital storage inside the phone. Format will be ogg (not important to driver)&lt;br /&gt;
** ideally, the user can choose between recording only incoming or outgoing signal, or both.&lt;br /&gt;
** for both, we'd need to mix both microphone and line-in signals before recording. is this possible?&lt;br /&gt;
* voice call playback support&lt;br /&gt;
** the user is able to playback recorded files during a conversation.  this means that PCM playback needs to be mixed with mic input before being passed to line-out (and to the GSM modem)&lt;br /&gt;
* media playback support&lt;br /&gt;
** an audio player can play back mp3/ogg/flac/... files and output sound via integrated speakers or headphone&lt;br /&gt;
* headphone jack switch&lt;br /&gt;
** this is connected to a GPIO of the S3C2410. How to best integrate this with the sound driver? It should just be handled like any other headphone jack reporting of e.g. laptop computers.&lt;br /&gt;
&lt;br /&gt;
For more details see [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
&lt;br /&gt;
We're using the stock bluez implementation of the linux kernel.&lt;br /&gt;
&lt;br /&gt;
==== Power Management ====&lt;br /&gt;
&lt;br /&gt;
The bluetooth basically has the following preconditions&lt;br /&gt;
* BT_EN being set&lt;br /&gt;
* The Voltage regulator set up properly&lt;br /&gt;
* The ohci-hcd driver being loaded&lt;br /&gt;
&lt;br /&gt;
The gta01_pm_bt driver implements the following files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ ls -l /sys/devices/platform/gta01-pm-bt.0&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:52 power_on&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:52 reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering up the device =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;1&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/power_on  &lt;br /&gt;
usb 1-1: new full speed USB device using s3c2410-ohci and address 4&lt;br /&gt;
usb 1-1: configuration #1 chosen from 1 choice&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering down the device =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;0&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/power_on &lt;br /&gt;
usb 1-1: USB disconnect, address 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Asserting reset (low-active) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;0&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/reset &lt;br /&gt;
root@fic-gta01:/$ usb 1-1: USB disconnect, address 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== De-asserting reset (low-active) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;1&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/reset &lt;br /&gt;
s3c2410-ohci s3c2410-ohci: wakeup&lt;br /&gt;
usb 1-1: new full speed USB device using s3c2410-ohci and address 3&lt;br /&gt;
usb 1-1: configuration #1 chosen from 1 choice&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting started ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ hciconfig hci0 up&lt;br /&gt;
root@fic-gta01:~$ hcitool  scan&lt;br /&gt;
Scanning ...&lt;br /&gt;
        00:14:9A:77:A2:02       A780&lt;br /&gt;
root@fic-gta01:~$ hcitool inq 00:14:9A:77:A2:02 &lt;br /&gt;
Inquiring ...&lt;br /&gt;
        00:14:9A:77:A2:02       clock offset: 0x55df    class: 0x502204&lt;br /&gt;
root@fic-gta01:~$ hcitool cc 00:14:9A:77:A2:02 &lt;br /&gt;
root@fic-gta01:~$ hcitool con                 &lt;br /&gt;
Connections:&lt;br /&gt;
        &amp;lt; ACL 00:14:9A:77:A2:02 handle 42 state 1 lm MASTER &lt;br /&gt;
root@fic-gta01:~$ hcitool info 00:14:9A:77:A2:02&lt;br /&gt;
Requesting information ...&lt;br /&gt;
        BD Address:  00:14:9A:77:A2:02&lt;br /&gt;
        Device Name: A780&lt;br /&gt;
        LMP Version: 1.1 (0x1) LMP Subversion: 0x700&lt;br /&gt;
        Manufacturer: Broadcom Corporation (15)&lt;br /&gt;
        Features: 0xff 0xff 0x0d 0x00 0x00 0x00 0x00 0x00&lt;br /&gt;
                &amp;lt;3-slot packets&amp;gt; &amp;lt;5-slot packets&amp;gt; &amp;lt;encryption&amp;gt; &amp;lt;slot offset&amp;gt; &lt;br /&gt;
                &amp;lt;timing accuracy&amp;gt; &amp;lt;role switch&amp;gt; &amp;lt;hold mode&amp;gt; &amp;lt;sniff mode&amp;gt; &lt;br /&gt;
                &amp;lt;park state&amp;gt; &amp;lt;RSSI&amp;gt; &amp;lt;channel quality&amp;gt; &amp;lt;SCO link&amp;gt; &amp;lt;HV2 packets&amp;gt; &lt;br /&gt;
                &amp;lt;HV3 packets&amp;gt; &amp;lt;u-law log&amp;gt; &amp;lt;A-law log&amp;gt; &amp;lt;CVSD&amp;gt; &amp;lt;power control&amp;gt; &lt;br /&gt;
                &amp;lt;transparent SCO&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== AUX Button ===&lt;br /&gt;
&lt;br /&gt;
The AUX button (formerly 911 button) is supported via the &amp;quot;gta01kbd&amp;quot; driver in the kernel (drivers/input/keyboard/gta01kbd.c).  &lt;br /&gt;
&lt;br /&gt;
It creates an input event device that only issues &amp;quot;KEY_PHONE&amp;quot; press/unpress events.&lt;br /&gt;
&lt;br /&gt;
=== Power Management Unit (PMU) ===&lt;br /&gt;
&lt;br /&gt;
The PMU is supported via the &amp;quot;pcf50606&amp;quot; driver in the kernel (drivers/i2c/chips/pcf50606.c).&lt;br /&gt;
&lt;br /&gt;
This driver provides a number of userspace interfaces for the various bits and pieces of the PMU&lt;br /&gt;
&lt;br /&gt;
==== Power Button, Charger insertion ====&lt;br /&gt;
&lt;br /&gt;
The PMU creates an input device that supports the following keys:&lt;br /&gt;
* KEY_POWER: power button of GTA01&lt;br /&gt;
* KEY_POWER2: USB power supply insert/remove&lt;br /&gt;
* KEY_BATTERY: Charger insert/remove&lt;br /&gt;
&lt;br /&gt;
==== 实时时钟 ====&lt;br /&gt;
&lt;br /&gt;
The real-time clock, including the alarm feature, is implemented as standard RTC (/dev/rtc).&lt;br /&gt;
&lt;br /&gt;
==== 看门狗 ====&lt;br /&gt;
&lt;br /&gt;
The PMU-integrated watchdog is implemented using the standard watchdog character device.&lt;br /&gt;
&lt;br /&gt;
==== Voltage Regulators ====&lt;br /&gt;
&lt;br /&gt;
The voltage regulators are exported to userspace using sysfs, much like lm_sensors.&lt;br /&gt;
&lt;br /&gt;
Every regulator can be read (and written!).  The format is ASCII in millivolts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/sys/devices/platform/s3c2410-i2c/i2c-0/0-0008$ ls -l /sys/bus/i2c/devices/0-0008/voltage_*&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_d1reg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_d2reg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_d3reg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_dcd&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_dcde&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_dcud&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_lpreg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_ioreg&lt;br /&gt;
root@fic-gta01:/sys/devices/platform/s3c2410-i2c/i2c-0/0-0008$ cat voltage_dcd&lt;br /&gt;
1300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Battery Voltage ====&lt;br /&gt;
&lt;br /&gt;
The battery voltage (in millivolts) can be read via sysfs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ cat /sys/bus/i2c/devices/0-0008/battvolt &lt;br /&gt;
3767&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Battery charging current ====&lt;br /&gt;
&lt;br /&gt;
The battery charging current (in milliamperes) can be read via sysfs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ cat /sys/bus/i2c/devices/0-0008/chgcur &lt;br /&gt;
0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 电池温度 ====&lt;br /&gt;
&lt;br /&gt;
The battery temperature (in centigrades) can be read via sysfs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ cat /sys/bus/i2c/devices/0-0008/battemp&lt;br /&gt;
25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 内核TODO列表 ==&lt;br /&gt;
&lt;br /&gt;
=== Various ===&lt;br /&gt;
* speed up in-kernel boot process&lt;br /&gt;
** delay calibration&lt;br /&gt;
** framebuffer takes ages&lt;br /&gt;
&lt;br /&gt;
===  TS07.10 multiplex ===&lt;br /&gt;
&lt;br /&gt;
=== PCF50606 ===&lt;br /&gt;
* fix conversion problems when setting alarm time/date&lt;br /&gt;
* check conversion table for temperature&lt;br /&gt;
* implement 'persistent alarm setting' (see mail from mickey)&lt;br /&gt;
&lt;br /&gt;
=== Backlight ===&lt;br /&gt;
* later: implement smooth fade-in, fade-out&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* implement it as LED driver&lt;br /&gt;
* test it&lt;br /&gt;
* later: implement PWM&lt;br /&gt;
&lt;br /&gt;
=== USB设备驱动 ===&lt;br /&gt;
* test switching between usb host and usb device&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
* test, debug and fix suspend on user request&lt;br /&gt;
* test, debug and fix wakeup on&lt;br /&gt;
** IRQ on serial UART (GSM)&lt;br /&gt;
** IRQ on serial UART (GPS)&lt;br /&gt;
** IRQ from PMU (charger insert/remove or the like)&lt;br /&gt;
** IRQ from ADC/touchscreen&lt;br /&gt;
** 911 button press (GPIO IRQ)&lt;br /&gt;
** headphone jack insert/remove&lt;br /&gt;
{{Languages|Kernel}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Kernel/zh_cn</id>
		<title>Kernel/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Kernel/zh_cn"/>
				<updated>2007-03-08T13:43:56Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* Creating a bootable kernel image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概述 ==&lt;br /&gt;
&lt;br /&gt;
GTA01上所使用的内核基于来自[http://www.kernel.org/ kernel.org]未经修改的Linux 2.6.17.7内核。 &lt;br /&gt;
&lt;br /&gt;
需要一些额外的补丁针对&lt;br /&gt;
* S3C2410 Usb Device控制器&lt;br /&gt;
** 我们使用来自iPaq H1940 linux项目的驱动程序&lt;br /&gt;
* S3C2410 SD卡控制器&lt;br /&gt;
** We use the driver from the [http://www.tomtom.com/gpl.php TomTom GO kernel]&lt;br /&gt;
* [[QT2410]] machine support&lt;br /&gt;
** This is just some glue that puts all pieces together&lt;br /&gt;
* S3C2410触摸屏驱动程序&lt;br /&gt;
** 来自iPaq H1940 linux项目&lt;br /&gt;
* GTA01 machine support&lt;br /&gt;
** Some glue/configuration to pull all pieces together&lt;br /&gt;
* [[GSM Communication Infrastructure]]&lt;br /&gt;
** The kernel-level part (TS07.10 line discipline, GPRS line discipline)&lt;br /&gt;
&lt;br /&gt;
== 内核补丁 ==&lt;br /&gt;
&lt;br /&gt;
The latest patchset against the abovementioned vanilla kernel can be found at https://svn.openmoko.org/trunk/src/target/kernel/patches/. This is a so-called &amp;quot;[http://savannah.nongnu.org/projects/quilt quilt] patchset&amp;quot;.  In order to apply it, you have to untar it into a &amp;quot;patches&amp;quot; directory below the &amp;quot;linux-2.6.x&amp;quot; directory, and then call &amp;quot;quilt push -a&amp;quot;, which pushes all patches onto the kernel.&lt;br /&gt;
&lt;br /&gt;
== 内核配置 ==&lt;br /&gt;
&lt;br /&gt;
The latest kernel configuration can be found at https://svn.openmoko.org/trunk/oe/packages/linux/linux-gta01/defconfig-fic-gta01.  Just copy it to the linux-2.6.x/.config file.&lt;br /&gt;
&lt;br /&gt;
== 内核构建 ==&lt;br /&gt;
&lt;br /&gt;
The kernel build is executed as normal.  We actually only need the &amp;quot;vmlinux&amp;quot; target, not the &amp;quot;zImage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== 可启动的内核映像 ==&lt;br /&gt;
&lt;br /&gt;
A bootable kernel image called ''uImage'' is available from [https://buildhost.openmoko.org/tmp/gta01/deploy/images/])&lt;br /&gt;
&lt;br /&gt;
== 创建一个可引导的内核映像 ==&lt;br /&gt;
u-boot要求所有的映像文件以uImage格式进行封装(比如内核，initrd，...)。This is basically just a special header adding CRC protection, version information, etc. Pleaes see [[u-boot/zh_cn|u-boot]] for details.&lt;br /&gt;
&lt;br /&gt;
== 内核启动参数 ==&lt;br /&gt;
&lt;br /&gt;
Since the [[QT2410]] can be used with different liquid crystal modules (LCMs), the kernel images for the QT2410 have a boot parameter &amp;quot;tft&amp;quot;:&lt;br /&gt;
* If you boot without any tft= parameter, the 'stock' qt2410 240x320 TFT panel is assumed.&lt;br /&gt;
* If you boot with &amp;quot;tft=b&amp;quot; ('b' for big), the timings for the SHARP 8&amp;quot; 640x480 TFT panel are used.&lt;br /&gt;
* If you boot with &amp;quot;tft=p&amp;quot; ('p' for production), the timings for the 2.8&amp;quot; 480x640 TFT panel are used.&lt;br /&gt;
&lt;br /&gt;
== 内核子系统 ==&lt;br /&gt;
&lt;br /&gt;
In this section we will outline a couple of the GTA01 specific kernel drivers / features / subsystems&lt;br /&gt;
&lt;br /&gt;
=== GSM ===&lt;br /&gt;
&lt;br /&gt;
==== Power Management ====&lt;br /&gt;
&lt;br /&gt;
The '''gta01_pm_gsm''' driver implements GSM power management (this means, if this is compiled as a module, you have to load the gta01_pm_gsm.ko module first)&lt;br /&gt;
&lt;br /&gt;
It exports the following sysfs based interface&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ ls -l /sys/bus/platform/devices/gta01-pm-gsm.0/&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:58 download&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:58 power_on&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:58 reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering up =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/power_on &lt;br /&gt;
gta01-pm-gsm gta01-pm-gsm.0: powering up GSM, thus disconnecting serial console&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering down =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;0&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/power_on &lt;br /&gt;
gta01-pm-gsm gta01-pm-gsm.0: powered down GSM, thus enabling serial console&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 复位 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/reset &lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;0&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/reset &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Activating GSM baseband download mode =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/download&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== De-activating GSM baseband download mode =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;0&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/download&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
==== Power Management ====&lt;br /&gt;
&lt;br /&gt;
The gta01_pm_gps kernel driver offers a sysfs based interface:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ ls -l /sys/bus/platform/devices/gta01-pm-gps.0/     &lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_avdd_3v&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_lp_io_3v3&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_pll_core_2v5&lt;br /&gt;
-rw-r--r--    1 root     root            0 Feb  1 09:14 power_sequence&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_vtxco_2v8&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 pwron&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The power_avdd_3v, power_lp_io_3v3, power_pll_core_2v5, power_vtxco_2v8, pwron and reset files represent the state of the respective signal.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;b&amp;gt;power_sequence&amp;lt;/b&amp;gt; file implements power-up/power-down sequence in accordance with the GlobalLocate data sheet.&lt;br /&gt;
&lt;br /&gt;
===== Powering up =====&lt;br /&gt;
 root@fic-gta01:~$ echo &amp;quot;power_up&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gps.0/power_sequence &lt;br /&gt;
===== Powering down =====&lt;br /&gt;
 root@fic-gta01:~$ echo &amp;quot;power_down&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gps.0/power_sequence&lt;br /&gt;
&lt;br /&gt;
=== Asound driver ===&lt;br /&gt;
&lt;br /&gt;
==== High-level requirements ====&lt;br /&gt;
&lt;br /&gt;
The GTA01 audio subsystem is fairly complex, even though the high-level requirements for the sound driver are simple.&lt;br /&gt;
The features we need to support&lt;br /&gt;
&lt;br /&gt;
* voice call support&lt;br /&gt;
** passing through the microphone signal to the GSM Modem&lt;br /&gt;
** passing through the GSM Modem audio output to the integrated speaker(s)&lt;br /&gt;
** the microphone input mixer gain will be statically configured according to the dynamic requirements&lt;br /&gt;
** the audio volume that is sent to the GSM modem can be adjusted via line out level&lt;br /&gt;
** the audio volume incoming (from GSM modem -&amp;gt; codec) can be adjusted via speaker out level&lt;br /&gt;
* voice call recording support&lt;br /&gt;
** the user is able to record phone conversations on digital storage inside the phone. Format will be ogg (not important to driver)&lt;br /&gt;
** ideally, the user can choose between recording only incoming or outgoing signal, or both.&lt;br /&gt;
** for both, we'd need to mix both microphone and line-in signals before recording. is this possible?&lt;br /&gt;
* voice call playback support&lt;br /&gt;
** the user is able to playback recorded files during a conversation.  this means that PCM playback needs to be mixed with mic input before being passed to line-out (and to the GSM modem)&lt;br /&gt;
* media playback support&lt;br /&gt;
** an audio player can play back mp3/ogg/flac/... files and output sound via integrated speakers or headphone&lt;br /&gt;
* headphone jack switch&lt;br /&gt;
** this is connected to a GPIO of the S3C2410. How to best integrate this with the sound driver? It should just be handled like any other headphone jack reporting of e.g. laptop computers.&lt;br /&gt;
&lt;br /&gt;
For more details see [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
&lt;br /&gt;
We're using the stock bluez implementation of the linux kernel.&lt;br /&gt;
&lt;br /&gt;
==== Power Management ====&lt;br /&gt;
&lt;br /&gt;
The bluetooth basically has the following preconditions&lt;br /&gt;
* BT_EN being set&lt;br /&gt;
* The Voltage regulator set up properly&lt;br /&gt;
* The ohci-hcd driver being loaded&lt;br /&gt;
&lt;br /&gt;
The gta01_pm_bt driver implements the following files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ ls -l /sys/devices/platform/gta01-pm-bt.0&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:52 power_on&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:52 reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering up the device =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;1&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/power_on  &lt;br /&gt;
usb 1-1: new full speed USB device using s3c2410-ohci and address 4&lt;br /&gt;
usb 1-1: configuration #1 chosen from 1 choice&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering down the device =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;0&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/power_on &lt;br /&gt;
usb 1-1: USB disconnect, address 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Asserting reset (low-active) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;0&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/reset &lt;br /&gt;
root@fic-gta01:/$ usb 1-1: USB disconnect, address 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== De-asserting reset (low-active) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;1&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/reset &lt;br /&gt;
s3c2410-ohci s3c2410-ohci: wakeup&lt;br /&gt;
usb 1-1: new full speed USB device using s3c2410-ohci and address 3&lt;br /&gt;
usb 1-1: configuration #1 chosen from 1 choice&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting started ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ hciconfig hci0 up&lt;br /&gt;
root@fic-gta01:~$ hcitool  scan&lt;br /&gt;
Scanning ...&lt;br /&gt;
        00:14:9A:77:A2:02       A780&lt;br /&gt;
root@fic-gta01:~$ hcitool inq 00:14:9A:77:A2:02 &lt;br /&gt;
Inquiring ...&lt;br /&gt;
        00:14:9A:77:A2:02       clock offset: 0x55df    class: 0x502204&lt;br /&gt;
root@fic-gta01:~$ hcitool cc 00:14:9A:77:A2:02 &lt;br /&gt;
root@fic-gta01:~$ hcitool con                 &lt;br /&gt;
Connections:&lt;br /&gt;
        &amp;lt; ACL 00:14:9A:77:A2:02 handle 42 state 1 lm MASTER &lt;br /&gt;
root@fic-gta01:~$ hcitool info 00:14:9A:77:A2:02&lt;br /&gt;
Requesting information ...&lt;br /&gt;
        BD Address:  00:14:9A:77:A2:02&lt;br /&gt;
        Device Name: A780&lt;br /&gt;
        LMP Version: 1.1 (0x1) LMP Subversion: 0x700&lt;br /&gt;
        Manufacturer: Broadcom Corporation (15)&lt;br /&gt;
        Features: 0xff 0xff 0x0d 0x00 0x00 0x00 0x00 0x00&lt;br /&gt;
                &amp;lt;3-slot packets&amp;gt; &amp;lt;5-slot packets&amp;gt; &amp;lt;encryption&amp;gt; &amp;lt;slot offset&amp;gt; &lt;br /&gt;
                &amp;lt;timing accuracy&amp;gt; &amp;lt;role switch&amp;gt; &amp;lt;hold mode&amp;gt; &amp;lt;sniff mode&amp;gt; &lt;br /&gt;
                &amp;lt;park state&amp;gt; &amp;lt;RSSI&amp;gt; &amp;lt;channel quality&amp;gt; &amp;lt;SCO link&amp;gt; &amp;lt;HV2 packets&amp;gt; &lt;br /&gt;
                &amp;lt;HV3 packets&amp;gt; &amp;lt;u-law log&amp;gt; &amp;lt;A-law log&amp;gt; &amp;lt;CVSD&amp;gt; &amp;lt;power control&amp;gt; &lt;br /&gt;
                &amp;lt;transparent SCO&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== AUX Button ===&lt;br /&gt;
&lt;br /&gt;
The AUX button (formerly 911 button) is supported via the &amp;quot;gta01kbd&amp;quot; driver in the kernel (drivers/input/keyboard/gta01kbd.c).  &lt;br /&gt;
&lt;br /&gt;
It creates an input event device that only issues &amp;quot;KEY_PHONE&amp;quot; press/unpress events.&lt;br /&gt;
&lt;br /&gt;
=== Power Management Unit (PMU) ===&lt;br /&gt;
&lt;br /&gt;
The PMU is supported via the &amp;quot;pcf50606&amp;quot; driver in the kernel (drivers/i2c/chips/pcf50606.c).&lt;br /&gt;
&lt;br /&gt;
This driver provides a number of userspace interfaces for the various bits and pieces of the PMU&lt;br /&gt;
&lt;br /&gt;
==== Power Button, Charger insertion ====&lt;br /&gt;
&lt;br /&gt;
The PMU creates an input device that supports the following keys:&lt;br /&gt;
* KEY_POWER: power button of GTA01&lt;br /&gt;
* KEY_POWER2: USB power supply insert/remove&lt;br /&gt;
* KEY_BATTERY: Charger insert/remove&lt;br /&gt;
&lt;br /&gt;
==== 实时时钟 ====&lt;br /&gt;
&lt;br /&gt;
The real-time clock, including the alarm feature, is implemented as standard RTC (/dev/rtc).&lt;br /&gt;
&lt;br /&gt;
==== 看门狗 ====&lt;br /&gt;
&lt;br /&gt;
The PMU-integrated watchdog is implemented using the standard watchdog character device.&lt;br /&gt;
&lt;br /&gt;
==== Voltage Regulators ====&lt;br /&gt;
&lt;br /&gt;
The voltage regulators are exported to userspace using sysfs, much like lm_sensors.&lt;br /&gt;
&lt;br /&gt;
Every regulator can be read (and written!).  The format is ASCII in millivolts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/sys/devices/platform/s3c2410-i2c/i2c-0/0-0008$ ls -l /sys/bus/i2c/devices/0-0008/voltage_*&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_d1reg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_d2reg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_d3reg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_dcd&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_dcde&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_dcud&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_lpreg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_ioreg&lt;br /&gt;
root@fic-gta01:/sys/devices/platform/s3c2410-i2c/i2c-0/0-0008$ cat voltage_dcd&lt;br /&gt;
1300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Battery Voltage ====&lt;br /&gt;
&lt;br /&gt;
The battery voltage (in millivolts) can be read via sysfs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ cat /sys/bus/i2c/devices/0-0008/battvolt &lt;br /&gt;
3767&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Battery charging current ====&lt;br /&gt;
&lt;br /&gt;
The battery charging current (in milliamperes) can be read via sysfs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ cat /sys/bus/i2c/devices/0-0008/chgcur &lt;br /&gt;
0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 电池温度 ====&lt;br /&gt;
&lt;br /&gt;
The battery temperature (in centigrades) can be read via sysfs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ cat /sys/bus/i2c/devices/0-0008/battemp&lt;br /&gt;
25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 内核TODO列表 ==&lt;br /&gt;
&lt;br /&gt;
=== Various ===&lt;br /&gt;
* speed up in-kernel boot process&lt;br /&gt;
** delay calibration&lt;br /&gt;
** framebuffer takes ages&lt;br /&gt;
&lt;br /&gt;
===  TS07.10 multiplex ===&lt;br /&gt;
&lt;br /&gt;
=== PCF50606 ===&lt;br /&gt;
* fix conversion problems when setting alarm time/date&lt;br /&gt;
* check conversion table for temperature&lt;br /&gt;
* implement 'persistent alarm setting' (see mail from mickey)&lt;br /&gt;
&lt;br /&gt;
=== Backlight ===&lt;br /&gt;
* later: implement smooth fade-in, fade-out&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* implement it as LED driver&lt;br /&gt;
* test it&lt;br /&gt;
* later: implement PWM&lt;br /&gt;
&lt;br /&gt;
=== USB设备驱动 ===&lt;br /&gt;
* test switching between usb host and usb device&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
* test, debug and fix suspend on user request&lt;br /&gt;
* test, debug and fix wakeup on&lt;br /&gt;
** IRQ on serial UART (GSM)&lt;br /&gt;
** IRQ on serial UART (GPS)&lt;br /&gt;
** IRQ from PMU (charger insert/remove or the like)&lt;br /&gt;
** IRQ from ADC/touchscreen&lt;br /&gt;
** 911 button press (GPIO IRQ)&lt;br /&gt;
** headphone jack insert/remove&lt;br /&gt;
{{Languages|Kernel}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Kernel/zh_cn</id>
		<title>Kernel/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Kernel/zh_cn"/>
				<updated>2007-03-08T13:39:56Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 概述 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概述 ==&lt;br /&gt;
&lt;br /&gt;
GTA01上所使用的内核基于来自[http://www.kernel.org/ kernel.org]未经修改的Linux 2.6.17.7内核。 &lt;br /&gt;
&lt;br /&gt;
需要一些额外的补丁针对&lt;br /&gt;
* S3C2410 Usb Device控制器&lt;br /&gt;
** 我们使用来自iPaq H1940 linux项目的驱动程序&lt;br /&gt;
* S3C2410 SD卡控制器&lt;br /&gt;
** We use the driver from the [http://www.tomtom.com/gpl.php TomTom GO kernel]&lt;br /&gt;
* [[QT2410]] machine support&lt;br /&gt;
** This is just some glue that puts all pieces together&lt;br /&gt;
* S3C2410触摸屏驱动程序&lt;br /&gt;
** 来自iPaq H1940 linux项目&lt;br /&gt;
* GTA01 machine support&lt;br /&gt;
** Some glue/configuration to pull all pieces together&lt;br /&gt;
* [[GSM Communication Infrastructure]]&lt;br /&gt;
** The kernel-level part (TS07.10 line discipline, GPRS line discipline)&lt;br /&gt;
&lt;br /&gt;
== 内核补丁 ==&lt;br /&gt;
&lt;br /&gt;
The latest patchset against the abovementioned vanilla kernel can be found at https://svn.openmoko.org/trunk/src/target/kernel/patches/. This is a so-called &amp;quot;[http://savannah.nongnu.org/projects/quilt quilt] patchset&amp;quot;.  In order to apply it, you have to untar it into a &amp;quot;patches&amp;quot; directory below the &amp;quot;linux-2.6.x&amp;quot; directory, and then call &amp;quot;quilt push -a&amp;quot;, which pushes all patches onto the kernel.&lt;br /&gt;
&lt;br /&gt;
== 内核配置 ==&lt;br /&gt;
&lt;br /&gt;
The latest kernel configuration can be found at https://svn.openmoko.org/trunk/oe/packages/linux/linux-gta01/defconfig-fic-gta01.  Just copy it to the linux-2.6.x/.config file.&lt;br /&gt;
&lt;br /&gt;
== 内核构建 ==&lt;br /&gt;
&lt;br /&gt;
The kernel build is executed as normal.  We actually only need the &amp;quot;vmlinux&amp;quot; target, not the &amp;quot;zImage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== 可启动的内核映像 ==&lt;br /&gt;
&lt;br /&gt;
A bootable kernel image called ''uImage'' is available from [https://buildhost.openmoko.org/tmp/gta01/deploy/images/])&lt;br /&gt;
&lt;br /&gt;
== Creating a bootable kernel image ==&lt;br /&gt;
u-boot needs all images (such as kernel, initrd, ...) in the form of an uImage.  This is basically just a special header adding CRC protection, version information, etc. Pleaes see [[u-boot]] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 内核启动参数 ==&lt;br /&gt;
&lt;br /&gt;
Since the [[QT2410]] can be used with different liquid crystal modules (LCMs), the kernel images for the QT2410 have a boot parameter &amp;quot;tft&amp;quot;:&lt;br /&gt;
* If you boot without any tft= parameter, the 'stock' qt2410 240x320 TFT panel is assumed.&lt;br /&gt;
* If you boot with &amp;quot;tft=b&amp;quot; ('b' for big), the timings for the SHARP 8&amp;quot; 640x480 TFT panel are used.&lt;br /&gt;
* If you boot with &amp;quot;tft=p&amp;quot; ('p' for production), the timings for the 2.8&amp;quot; 480x640 TFT panel are used.&lt;br /&gt;
&lt;br /&gt;
== 内核子系统 ==&lt;br /&gt;
&lt;br /&gt;
In this section we will outline a couple of the GTA01 specific kernel drivers / features / subsystems&lt;br /&gt;
&lt;br /&gt;
=== GSM ===&lt;br /&gt;
&lt;br /&gt;
==== Power Management ====&lt;br /&gt;
&lt;br /&gt;
The '''gta01_pm_gsm''' driver implements GSM power management (this means, if this is compiled as a module, you have to load the gta01_pm_gsm.ko module first)&lt;br /&gt;
&lt;br /&gt;
It exports the following sysfs based interface&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ ls -l /sys/bus/platform/devices/gta01-pm-gsm.0/&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:58 download&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:58 power_on&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:58 reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering up =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/power_on &lt;br /&gt;
gta01-pm-gsm gta01-pm-gsm.0: powering up GSM, thus disconnecting serial console&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering down =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;0&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/power_on &lt;br /&gt;
gta01-pm-gsm gta01-pm-gsm.0: powered down GSM, thus enabling serial console&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 复位 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/reset &lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;0&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/reset &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Activating GSM baseband download mode =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;1&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/download&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== De-activating GSM baseband download mode =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ echo &amp;quot;0&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gsm.0/download&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== GPS ===&lt;br /&gt;
&lt;br /&gt;
==== Power Management ====&lt;br /&gt;
&lt;br /&gt;
The gta01_pm_gps kernel driver offers a sysfs based interface:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ ls -l /sys/bus/platform/devices/gta01-pm-gps.0/     &lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_avdd_3v&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_lp_io_3v3&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_pll_core_2v5&lt;br /&gt;
-rw-r--r--    1 root     root            0 Feb  1 09:14 power_sequence&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 power_vtxco_2v8&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 pwron&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:14 reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The power_avdd_3v, power_lp_io_3v3, power_pll_core_2v5, power_vtxco_2v8, pwron and reset files represent the state of the respective signal.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;b&amp;gt;power_sequence&amp;lt;/b&amp;gt; file implements power-up/power-down sequence in accordance with the GlobalLocate data sheet.&lt;br /&gt;
&lt;br /&gt;
===== Powering up =====&lt;br /&gt;
 root@fic-gta01:~$ echo &amp;quot;power_up&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gps.0/power_sequence &lt;br /&gt;
===== Powering down =====&lt;br /&gt;
 root@fic-gta01:~$ echo &amp;quot;power_down&amp;quot; &amp;gt; /sys/bus/platform/devices/gta01-pm-gps.0/power_sequence&lt;br /&gt;
&lt;br /&gt;
=== Asound driver ===&lt;br /&gt;
&lt;br /&gt;
==== High-level requirements ====&lt;br /&gt;
&lt;br /&gt;
The GTA01 audio subsystem is fairly complex, even though the high-level requirements for the sound driver are simple.&lt;br /&gt;
The features we need to support&lt;br /&gt;
&lt;br /&gt;
* voice call support&lt;br /&gt;
** passing through the microphone signal to the GSM Modem&lt;br /&gt;
** passing through the GSM Modem audio output to the integrated speaker(s)&lt;br /&gt;
** the microphone input mixer gain will be statically configured according to the dynamic requirements&lt;br /&gt;
** the audio volume that is sent to the GSM modem can be adjusted via line out level&lt;br /&gt;
** the audio volume incoming (from GSM modem -&amp;gt; codec) can be adjusted via speaker out level&lt;br /&gt;
* voice call recording support&lt;br /&gt;
** the user is able to record phone conversations on digital storage inside the phone. Format will be ogg (not important to driver)&lt;br /&gt;
** ideally, the user can choose between recording only incoming or outgoing signal, or both.&lt;br /&gt;
** for both, we'd need to mix both microphone and line-in signals before recording. is this possible?&lt;br /&gt;
* voice call playback support&lt;br /&gt;
** the user is able to playback recorded files during a conversation.  this means that PCM playback needs to be mixed with mic input before being passed to line-out (and to the GSM modem)&lt;br /&gt;
* media playback support&lt;br /&gt;
** an audio player can play back mp3/ogg/flac/... files and output sound via integrated speakers or headphone&lt;br /&gt;
* headphone jack switch&lt;br /&gt;
** this is connected to a GPIO of the S3C2410. How to best integrate this with the sound driver? It should just be handled like any other headphone jack reporting of e.g. laptop computers.&lt;br /&gt;
&lt;br /&gt;
For more details see [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
&lt;br /&gt;
We're using the stock bluez implementation of the linux kernel.&lt;br /&gt;
&lt;br /&gt;
==== Power Management ====&lt;br /&gt;
&lt;br /&gt;
The bluetooth basically has the following preconditions&lt;br /&gt;
* BT_EN being set&lt;br /&gt;
* The Voltage regulator set up properly&lt;br /&gt;
* The ohci-hcd driver being loaded&lt;br /&gt;
&lt;br /&gt;
The gta01_pm_bt driver implements the following files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ ls -l /sys/devices/platform/gta01-pm-bt.0&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:52 power_on&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Feb  1 09:52 reset&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering up the device =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;1&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/power_on  &lt;br /&gt;
usb 1-1: new full speed USB device using s3c2410-ohci and address 4&lt;br /&gt;
usb 1-1: configuration #1 chosen from 1 choice&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Powering down the device =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;0&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/power_on &lt;br /&gt;
usb 1-1: USB disconnect, address 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Asserting reset (low-active) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;0&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/reset &lt;br /&gt;
root@fic-gta01:/$ usb 1-1: USB disconnect, address 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== De-asserting reset (low-active) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/$ echo &amp;quot;1&amp;quot; &amp;gt;  /sys/devices/platform/gta01-pm-bt.0/reset &lt;br /&gt;
s3c2410-ohci s3c2410-ohci: wakeup&lt;br /&gt;
usb 1-1: new full speed USB device using s3c2410-ohci and address 3&lt;br /&gt;
usb 1-1: configuration #1 chosen from 1 choice&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting started ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ hciconfig hci0 up&lt;br /&gt;
root@fic-gta01:~$ hcitool  scan&lt;br /&gt;
Scanning ...&lt;br /&gt;
        00:14:9A:77:A2:02       A780&lt;br /&gt;
root@fic-gta01:~$ hcitool inq 00:14:9A:77:A2:02 &lt;br /&gt;
Inquiring ...&lt;br /&gt;
        00:14:9A:77:A2:02       clock offset: 0x55df    class: 0x502204&lt;br /&gt;
root@fic-gta01:~$ hcitool cc 00:14:9A:77:A2:02 &lt;br /&gt;
root@fic-gta01:~$ hcitool con                 &lt;br /&gt;
Connections:&lt;br /&gt;
        &amp;lt; ACL 00:14:9A:77:A2:02 handle 42 state 1 lm MASTER &lt;br /&gt;
root@fic-gta01:~$ hcitool info 00:14:9A:77:A2:02&lt;br /&gt;
Requesting information ...&lt;br /&gt;
        BD Address:  00:14:9A:77:A2:02&lt;br /&gt;
        Device Name: A780&lt;br /&gt;
        LMP Version: 1.1 (0x1) LMP Subversion: 0x700&lt;br /&gt;
        Manufacturer: Broadcom Corporation (15)&lt;br /&gt;
        Features: 0xff 0xff 0x0d 0x00 0x00 0x00 0x00 0x00&lt;br /&gt;
                &amp;lt;3-slot packets&amp;gt; &amp;lt;5-slot packets&amp;gt; &amp;lt;encryption&amp;gt; &amp;lt;slot offset&amp;gt; &lt;br /&gt;
                &amp;lt;timing accuracy&amp;gt; &amp;lt;role switch&amp;gt; &amp;lt;hold mode&amp;gt; &amp;lt;sniff mode&amp;gt; &lt;br /&gt;
                &amp;lt;park state&amp;gt; &amp;lt;RSSI&amp;gt; &amp;lt;channel quality&amp;gt; &amp;lt;SCO link&amp;gt; &amp;lt;HV2 packets&amp;gt; &lt;br /&gt;
                &amp;lt;HV3 packets&amp;gt; &amp;lt;u-law log&amp;gt; &amp;lt;A-law log&amp;gt; &amp;lt;CVSD&amp;gt; &amp;lt;power control&amp;gt; &lt;br /&gt;
                &amp;lt;transparent SCO&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== AUX Button ===&lt;br /&gt;
&lt;br /&gt;
The AUX button (formerly 911 button) is supported via the &amp;quot;gta01kbd&amp;quot; driver in the kernel (drivers/input/keyboard/gta01kbd.c).  &lt;br /&gt;
&lt;br /&gt;
It creates an input event device that only issues &amp;quot;KEY_PHONE&amp;quot; press/unpress events.&lt;br /&gt;
&lt;br /&gt;
=== Power Management Unit (PMU) ===&lt;br /&gt;
&lt;br /&gt;
The PMU is supported via the &amp;quot;pcf50606&amp;quot; driver in the kernel (drivers/i2c/chips/pcf50606.c).&lt;br /&gt;
&lt;br /&gt;
This driver provides a number of userspace interfaces for the various bits and pieces of the PMU&lt;br /&gt;
&lt;br /&gt;
==== Power Button, Charger insertion ====&lt;br /&gt;
&lt;br /&gt;
The PMU creates an input device that supports the following keys:&lt;br /&gt;
* KEY_POWER: power button of GTA01&lt;br /&gt;
* KEY_POWER2: USB power supply insert/remove&lt;br /&gt;
* KEY_BATTERY: Charger insert/remove&lt;br /&gt;
&lt;br /&gt;
==== 实时时钟 ====&lt;br /&gt;
&lt;br /&gt;
The real-time clock, including the alarm feature, is implemented as standard RTC (/dev/rtc).&lt;br /&gt;
&lt;br /&gt;
==== 看门狗 ====&lt;br /&gt;
&lt;br /&gt;
The PMU-integrated watchdog is implemented using the standard watchdog character device.&lt;br /&gt;
&lt;br /&gt;
==== Voltage Regulators ====&lt;br /&gt;
&lt;br /&gt;
The voltage regulators are exported to userspace using sysfs, much like lm_sensors.&lt;br /&gt;
&lt;br /&gt;
Every regulator can be read (and written!).  The format is ASCII in millivolts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:/sys/devices/platform/s3c2410-i2c/i2c-0/0-0008$ ls -l /sys/bus/i2c/devices/0-0008/voltage_*&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_d1reg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_d2reg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_d3reg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_dcd&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_dcde&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_dcud&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_lpreg&lt;br /&gt;
-rw-r--r--    1 root     root         4096 Sep  3 11:55 /sys/bus/i2c/devices/0-0008/voltage_ioreg&lt;br /&gt;
root@fic-gta01:/sys/devices/platform/s3c2410-i2c/i2c-0/0-0008$ cat voltage_dcd&lt;br /&gt;
1300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Battery Voltage ====&lt;br /&gt;
&lt;br /&gt;
The battery voltage (in millivolts) can be read via sysfs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ cat /sys/bus/i2c/devices/0-0008/battvolt &lt;br /&gt;
3767&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Battery charging current ====&lt;br /&gt;
&lt;br /&gt;
The battery charging current (in milliamperes) can be read via sysfs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ cat /sys/bus/i2c/devices/0-0008/chgcur &lt;br /&gt;
0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 电池温度 ====&lt;br /&gt;
&lt;br /&gt;
The battery temperature (in centigrades) can be read via sysfs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ cat /sys/bus/i2c/devices/0-0008/battemp&lt;br /&gt;
25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 内核TODO列表 ==&lt;br /&gt;
&lt;br /&gt;
=== Various ===&lt;br /&gt;
* speed up in-kernel boot process&lt;br /&gt;
** delay calibration&lt;br /&gt;
** framebuffer takes ages&lt;br /&gt;
&lt;br /&gt;
===  TS07.10 multiplex ===&lt;br /&gt;
&lt;br /&gt;
=== PCF50606 ===&lt;br /&gt;
* fix conversion problems when setting alarm time/date&lt;br /&gt;
* check conversion table for temperature&lt;br /&gt;
* implement 'persistent alarm setting' (see mail from mickey)&lt;br /&gt;
&lt;br /&gt;
=== Backlight ===&lt;br /&gt;
* later: implement smooth fade-in, fade-out&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* implement it as LED driver&lt;br /&gt;
* test it&lt;br /&gt;
* later: implement PWM&lt;br /&gt;
&lt;br /&gt;
=== USB设备驱动 ===&lt;br /&gt;
* test switching between usb host and usb device&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
* test, debug and fix suspend on user request&lt;br /&gt;
* test, debug and fix wakeup on&lt;br /&gt;
** IRQ on serial UART (GSM)&lt;br /&gt;
** IRQ on serial UART (GPS)&lt;br /&gt;
** IRQ from PMU (charger insert/remove or the like)&lt;br /&gt;
** IRQ from ADC/touchscreen&lt;br /&gt;
** 911 button press (GPIO IRQ)&lt;br /&gt;
** headphone jack insert/remove&lt;br /&gt;
{{Languages|Kernel}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn</id>
		<title>Neo1973 Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn"/>
				<updated>2007-03-08T13:05:58Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* Distinguishing hardware revisions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==阶段0硬件的用户体验==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== 物理尺寸 ==&lt;br /&gt;
* 120.7 x 62 x 18.5 毫米 (4.75 x 2.44 x 0.728 英寸)&lt;br /&gt;
* 184 +/- 5 克 (6.5 盎司)&lt;br /&gt;
&lt;br /&gt;
== 主要元件 ==&lt;br /&gt;
=== 处理器 ===&lt;br /&gt;
Neo1973的主处理器(CPU)是一个Samsung S3C2410AL-26 (可运行在266 MHz)&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* 用户手册: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL文件: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO分配: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== 闪存 ===&lt;br /&gt;
与S3C2410 NAND控制器相连的64MB Samsung NAND闪存(K9F1208U0B)。&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* 被连接到: S3C2410 NAND控制器&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems. For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== 内存 ===&lt;br /&gt;
与S3C2410 SDRAM控制器相连的128MB SDRAM (2片Samsung K4M511633C)&lt;br /&gt;
* 产品主页: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* 被连接到: S3C2410&lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD卡 ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD显示模块 ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== 触摸屏 ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== 立体声放大器 ====&lt;br /&gt;
WM8753模拟音频输出到一个国家半导体立体声放大器 [[LM4857]] &lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* 数据手册: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* 被连接到: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== 电池 ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3之后的变化 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== 识别硬件版本 ==&lt;br /&gt;
=== [[Bootloader/zh_cn|引导装载程序]]内部 ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== [[Kernel/zh_cn|内核]]内部 ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== 从用户空间 ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn</id>
		<title>Neo1973 Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn"/>
				<updated>2007-03-08T13:04:09Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* Inside the Bootloader */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==阶段0硬件的用户体验==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== 物理尺寸 ==&lt;br /&gt;
* 120.7 x 62 x 18.5 毫米 (4.75 x 2.44 x 0.728 英寸)&lt;br /&gt;
* 184 +/- 5 克 (6.5 盎司)&lt;br /&gt;
&lt;br /&gt;
== 主要元件 ==&lt;br /&gt;
=== 处理器 ===&lt;br /&gt;
Neo1973的主处理器(CPU)是一个Samsung S3C2410AL-26 (可运行在266 MHz)&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* 用户手册: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL文件: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO分配: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== 闪存 ===&lt;br /&gt;
与S3C2410 NAND控制器相连的64MB Samsung NAND闪存(K9F1208U0B)。&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* 被连接到: S3C2410 NAND控制器&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems. For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== 内存 ===&lt;br /&gt;
与S3C2410 SDRAM控制器相连的128MB SDRAM (2片Samsung K4M511633C)&lt;br /&gt;
* 产品主页: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* 被连接到: S3C2410&lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD卡 ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD显示模块 ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== 触摸屏 ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== 立体声放大器 ====&lt;br /&gt;
WM8753模拟音频输出到一个国家半导体立体声放大器 [[LM4857]] &lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* 数据手册: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* 被连接到: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== 电池 ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3之后的变化 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== [[Bootloader/zh_cn|引导装载程序]] 内部 ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn</id>
		<title>Neo1973 Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn"/>
				<updated>2007-03-08T13:02:41Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==阶段0硬件的用户体验==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== 物理尺寸 ==&lt;br /&gt;
* 120.7 x 62 x 18.5 毫米 (4.75 x 2.44 x 0.728 英寸)&lt;br /&gt;
* 184 +/- 5 克 (6.5 盎司)&lt;br /&gt;
&lt;br /&gt;
== 主要元件 ==&lt;br /&gt;
=== 处理器 ===&lt;br /&gt;
Neo1973的主处理器(CPU)是一个Samsung S3C2410AL-26 (可运行在266 MHz)&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* 用户手册: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL文件: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO分配: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== 闪存 ===&lt;br /&gt;
与S3C2410 NAND控制器相连的64MB Samsung NAND闪存(K9F1208U0B)。&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* 被连接到: S3C2410 NAND控制器&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems. For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== 内存 ===&lt;br /&gt;
与S3C2410 SDRAM控制器相连的128MB SDRAM (2片Samsung K4M511633C)&lt;br /&gt;
* 产品主页: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* 被连接到: S3C2410&lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD卡 ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD显示模块 ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== 触摸屏 ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== 立体声放大器 ====&lt;br /&gt;
WM8753模拟音频输出到一个国家半导体立体声放大器 [[LM4857]] &lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* 数据手册: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* 被连接到: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== 电池 ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3之后的变化 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn</id>
		<title>Neo1973 Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn"/>
				<updated>2007-03-08T13:00:40Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 立体声放大器 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==阶段0硬件的用户体验==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== 物理尺寸 ==&lt;br /&gt;
* 120.7 x 62 x 18.5 毫米 (4.75 x 2.44 x 0.728 英寸)&lt;br /&gt;
* 184 +/- 5 克 (6.5 盎司)&lt;br /&gt;
&lt;br /&gt;
== 主要元件 ==&lt;br /&gt;
=== 处理器 ===&lt;br /&gt;
Neo1973的主处理器(CPU)是一个Samsung S3C2410AL-26 (可运行在266 MHz)&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* 用户手册: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL文件: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO分配: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== 闪存 ===&lt;br /&gt;
与S3C2410 NAND控制器相连的64MB Samsung NAND闪存(K9F1208U0B)。&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* 被连接到: S3C2410 NAND控制器&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems. For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== 内存 ===&lt;br /&gt;
与S3C2410 SDRAM控制器相连的128MB SDRAM (2片Samsung K4M511633C)&lt;br /&gt;
* 产品主页: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* 被连接到: S3C2410&lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD卡 ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD显示模块 ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== 触摸屏 ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== 立体声放大器 ====&lt;br /&gt;
WM8753模拟音频输出到一个国家半导体立体声放大器 [[LM4857]] &lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* 数据手册: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* 被连接到: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== 电池 ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== Changes from GTA01Bv3 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn</id>
		<title>Neo1973 Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn"/>
				<updated>2007-03-08T12:59:50Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* Stereo Amplifier */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==阶段0硬件的用户体验==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== 物理尺寸 ==&lt;br /&gt;
* 120.7 x 62 x 18.5 毫米 (4.75 x 2.44 x 0.728 英寸)&lt;br /&gt;
* 184 +/- 5 克 (6.5 盎司)&lt;br /&gt;
&lt;br /&gt;
== 主要元件 ==&lt;br /&gt;
=== 处理器 ===&lt;br /&gt;
Neo1973的主处理器(CPU)是一个Samsung S3C2410AL-26 (可运行在266 MHz)&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* 用户手册: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL文件: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO分配: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== 闪存 ===&lt;br /&gt;
与S3C2410 NAND控制器相连的64MB Samsung NAND闪存(K9F1208U0B)。&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* 被连接到: S3C2410 NAND控制器&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems. For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== 内存 ===&lt;br /&gt;
与S3C2410 SDRAM控制器相连的128MB SDRAM (2片Samsung K4M511633C)&lt;br /&gt;
* 产品主页: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* 被连接到: S3C2410&lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD卡 ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD显示模块 ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== 触摸屏 ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== 立体声放大器 ====&lt;br /&gt;
WM8753模拟音频输出到一个国家半导体立体声放大器[[LM4857]] &lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* 数据手册: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* 被连接到: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== 电池 ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== Changes from GTA01Bv3 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn</id>
		<title>Neo1973 Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn"/>
				<updated>2007-03-08T12:45:45Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 内存 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==阶段0硬件的用户体验==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== 物理尺寸 ==&lt;br /&gt;
* 120.7 x 62 x 18.5 毫米 (4.75 x 2.44 x 0.728 英寸)&lt;br /&gt;
* 184 +/- 5 克 (6.5 盎司)&lt;br /&gt;
&lt;br /&gt;
== 主要元件 ==&lt;br /&gt;
=== 处理器 ===&lt;br /&gt;
Neo1973的主处理器(CPU)是一个Samsung S3C2410AL-26 (可运行在266 MHz)&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* 用户手册: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL文件: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO分配: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== 闪存 ===&lt;br /&gt;
与S3C2410 NAND控制器相连的64MB Samsung NAND闪存(K9F1208U0B)。&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* 被连接到: S3C2410 NAND控制器&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems. For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== 内存 ===&lt;br /&gt;
与S3C2410 SDRAM控制器相连的128MB SDRAM (2片Samsung K4M511633C)&lt;br /&gt;
* 产品主页: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* 被连接到: S3C2410&lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD卡 ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD显示模块 ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== 触摸屏 ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== Stereo Amplifier ====&lt;br /&gt;
There's a National Semiconductor [[LM4857]] Stereo Amplifier at the analog audio output of the WM8753&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* Data Sheet: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* Connects to: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== 电池 ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== Changes from GTA01Bv3 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn</id>
		<title>Neo1973 Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn"/>
				<updated>2007-03-08T12:45:22Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 内存 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==阶段0硬件的用户体验==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== 物理尺寸 ==&lt;br /&gt;
* 120.7 x 62 x 18.5 毫米 (4.75 x 2.44 x 0.728 英寸)&lt;br /&gt;
* 184 +/- 5 克 (6.5 盎司)&lt;br /&gt;
&lt;br /&gt;
== 主要元件 ==&lt;br /&gt;
=== 处理器 ===&lt;br /&gt;
Neo1973的主处理器(CPU)是一个Samsung S3C2410AL-26 (可运行在266 MHz)&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* 用户手册: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL文件: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO分配: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== 闪存 ===&lt;br /&gt;
与S3C2410 NAND控制器相连的64MB Samsung NAND闪存(K9F1208U0B)。&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* 被连接到: S3C2410 NAND控制器&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems. For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== 内存 ===&lt;br /&gt;
S3C2410 SDRAM控制器128MB SDRAM (2片Samsung K4M511633C)&lt;br /&gt;
* 产品主页: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* 被连接到: S3C2410&lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD卡 ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD显示模块 ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== 触摸屏 ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== Stereo Amplifier ====&lt;br /&gt;
There's a National Semiconductor [[LM4857]] Stereo Amplifier at the analog audio output of the WM8753&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* Data Sheet: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* Connects to: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== 电池 ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== Changes from GTA01Bv3 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn</id>
		<title>Neo1973 Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn"/>
				<updated>2007-03-08T12:36:13Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 闪存 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==阶段0硬件的用户体验==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== 物理尺寸 ==&lt;br /&gt;
* 120.7 x 62 x 18.5 毫米 (4.75 x 2.44 x 0.728 英寸)&lt;br /&gt;
* 184 +/- 5 克 (6.5 盎司)&lt;br /&gt;
&lt;br /&gt;
== 主要元件 ==&lt;br /&gt;
=== 处理器 ===&lt;br /&gt;
Neo1973的主处理器(CPU)是一个Samsung S3C2410AL-26 (可运行在266 MHz)&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* 用户手册: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL文件: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO分配: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== 闪存 ===&lt;br /&gt;
与S3C2410 NAND控制器相连的64MB Samsung NAND闪存(K9F1208U0B)。&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* 数据手册: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* 被连接到: S3C2410 NAND控制器&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems. For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== 内存 ===&lt;br /&gt;
128MB SDRAM (2x Samsung K4M511633C) attached to S3C2410 SDRAM controller&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* Connected to: S3C2410 &lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD卡 ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD显示模块 ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== 触摸屏 ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== Stereo Amplifier ====&lt;br /&gt;
There's a National Semiconductor [[LM4857]] Stereo Amplifier at the analog audio output of the WM8753&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* Data Sheet: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* Connects to: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== 电池 ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== Changes from GTA01Bv3 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn</id>
		<title>Neo1973 Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn"/>
				<updated>2007-03-08T12:32:50Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 处理器 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==阶段0硬件的用户体验==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== 物理尺寸 ==&lt;br /&gt;
* 120.7 x 62 x 18.5 毫米 (4.75 x 2.44 x 0.728 英寸)&lt;br /&gt;
* 184 +/- 5 克 (6.5 盎司)&lt;br /&gt;
&lt;br /&gt;
== 主要元件 ==&lt;br /&gt;
=== 处理器 ===&lt;br /&gt;
Neo1973的主处理器(CPU)是一个Samsung S3C2410AL-26 (可运行在266 MHz)&lt;br /&gt;
&lt;br /&gt;
* 产品主页: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* 用户手册: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL文件: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO分配: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== 闪存 ===&lt;br /&gt;
与S3C2410 NAND控制器相连的64MB Samsung NAND闪存(K9F1208U0B)。&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* Connected to: S3C2410 NAND controller&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems.  For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== 内存 ===&lt;br /&gt;
128MB SDRAM (2x Samsung K4M511633C) attached to S3C2410 SDRAM controller&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* Connected to: S3C2410 &lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD卡 ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD显示模块 ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== 触摸屏 ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== Stereo Amplifier ====&lt;br /&gt;
There's a National Semiconductor [[LM4857]] Stereo Amplifier at the analog audio output of the WM8753&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* Data Sheet: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* Connects to: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== 电池 ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== Changes from GTA01Bv3 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn</id>
		<title>Neo1973 Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn"/>
				<updated>2007-03-08T12:30:42Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* Physical Dimensions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==阶段0硬件的用户体验==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== 物理尺寸 ==&lt;br /&gt;
* 120.7 x 62 x 18.5 毫米 (4.75 x 2.44 x 0.728 英寸)&lt;br /&gt;
* 184 +/- 5 克 (6.5 盎司)&lt;br /&gt;
&lt;br /&gt;
== 主要元件 ==&lt;br /&gt;
=== 处理器 ===&lt;br /&gt;
The main Processor (CPU) of the Neo1973 is a Samsung S3C2410AL-26 (Capable of running up to 266 MHz)&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* User Manual: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL File: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO Assignments: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== 闪存 ===&lt;br /&gt;
与S3C2410 NAND控制器相连的64MB Samsung NAND闪存(K9F1208U0B)。&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* Connected to: S3C2410 NAND controller&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems.  For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== 内存 ===&lt;br /&gt;
128MB SDRAM (2x Samsung K4M511633C) attached to S3C2410 SDRAM controller&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* Connected to: S3C2410 &lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD卡 ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD显示模块 ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== 触摸屏 ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== Stereo Amplifier ====&lt;br /&gt;
There's a National Semiconductor [[LM4857]] Stereo Amplifier at the analog audio output of the WM8753&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* Data Sheet: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* Connects to: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== 电池 ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== Changes from GTA01Bv3 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn</id>
		<title>Neo1973 Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn"/>
				<updated>2007-03-08T12:29:52Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* User experiences of Phase 0 hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==阶段0硬件的用户体验==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== Physical Dimensions ==&lt;br /&gt;
* 120.7 x 62 x 18.5 mm (4.75 x 2.44 x 0.728 inch)&lt;br /&gt;
* 184 +/- 5 g (6.5 ounces)&lt;br /&gt;
&lt;br /&gt;
== 主要元件 ==&lt;br /&gt;
=== 处理器 ===&lt;br /&gt;
The main Processor (CPU) of the Neo1973 is a Samsung S3C2410AL-26 (Capable of running up to 266 MHz)&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* User Manual: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL File: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO Assignments: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== 闪存 ===&lt;br /&gt;
与S3C2410 NAND控制器相连的64MB Samsung NAND闪存(K9F1208U0B)。&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* Connected to: S3C2410 NAND controller&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems.  For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== 内存 ===&lt;br /&gt;
128MB SDRAM (2x Samsung K4M511633C) attached to S3C2410 SDRAM controller&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* Connected to: S3C2410 &lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD卡 ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD显示模块 ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== 触摸屏 ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== Stereo Amplifier ====&lt;br /&gt;
There's a National Semiconductor [[LM4857]] Stereo Amplifier at the analog audio output of the WM8753&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* Data Sheet: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* Connects to: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== 电池 ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== Changes from GTA01Bv3 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn</id>
		<title>Neo1973 Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn"/>
				<updated>2007-03-08T12:26:22Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* Main components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==User experiences of Phase 0 hardware==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== Physical Dimensions ==&lt;br /&gt;
* 120.7 x 62 x 18.5 mm (4.75 x 2.44 x 0.728 inch)&lt;br /&gt;
* 184 +/- 5 g (6.5 ounces)&lt;br /&gt;
&lt;br /&gt;
== 主要元件 ==&lt;br /&gt;
=== 处理器 ===&lt;br /&gt;
The main Processor (CPU) of the Neo1973 is a Samsung S3C2410AL-26 (Capable of running up to 266 MHz)&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* User Manual: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL File: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO Assignments: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== 闪存 ===&lt;br /&gt;
与S3C2410 NAND控制器相连的64MB Samsung NAND闪存(K9F1208U0B)。&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* Connected to: S3C2410 NAND controller&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems.  For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== 内存 ===&lt;br /&gt;
128MB SDRAM (2x Samsung K4M511633C) attached to S3C2410 SDRAM controller&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* Connected to: S3C2410 &lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD卡 ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD显示模块 ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== 触摸屏 ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== 蓝牙 ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== Stereo Amplifier ====&lt;br /&gt;
There's a National Semiconductor [[LM4857]] Stereo Amplifier at the analog audio output of the WM8753&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* Data Sheet: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* Connects to: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== 电池 ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== Changes from GTA01Bv3 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Hardware/zh_cn</id>
		<title>Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Hardware/zh_cn"/>
				<updated>2007-03-08T12:13:21Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* Neo1973 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Neo1973 =&lt;br /&gt;
&lt;br /&gt;
* [[Neo1973 Hardware/zh_cn|Neo1973硬件]] - 概观我们所使用的元件，PCB照片&lt;br /&gt;
** [[Disassembling Neo1973]] - A photo story about disassembling the hardware&lt;br /&gt;
** [[Neo1973 Power Management]]&lt;br /&gt;
*** [[Battery|Batteries]] in general&lt;br /&gt;
*** The [[Neo1973 Battery]]&lt;br /&gt;
*** [[PCF50606]] - Power Management Unit&lt;br /&gt;
** [[Hardware:AT Commands| AT Commands]] of the gsm module&lt;br /&gt;
** [[Hardware:AGPS|AGPS]]&lt;br /&gt;
** [[I2C]] - Small communication bus between chips&lt;br /&gt;
** [[LM4857]] Amplifier&lt;br /&gt;
* [[USB]]&lt;br /&gt;
* [[Debug Board]] - The Debug Board for the Neo1973&lt;br /&gt;
** [[Connecting Neo1973 with Debug Board v2]]&lt;br /&gt;
** [[Debug Board v1]] - The old version of the Debug Board&lt;br /&gt;
*** [[Connecting GTA01Bv2 with Debug Board]] (old, outdated)&lt;br /&gt;
&lt;br /&gt;
== FAQs and alike ==&lt;br /&gt;
&lt;br /&gt;
* [[Unresolved Hardware Questions]]&lt;br /&gt;
&lt;br /&gt;
= QT2410 =&lt;br /&gt;
&lt;br /&gt;
* [[QT2410]] - A S3C2410 development board that we used during early development&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/zh_cn</id>
		<title>Main Page/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/zh_cn"/>
				<updated>2007-03-08T12:12:31Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 硬件参考文档 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
  |__TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&amp;lt;big&amp;gt;'''欢迎来到OpenMoko公共维基'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;其他语言版本请看本页面[[#bottom|底部]]。&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
这是逐渐形成的，权威的[[Neo1973]]开发资源 -- 运行[[OpenMoko]]的GSM+[[Hardware:AGPS|AGPS]]智能手机。本维基的目的是协作改进和更新此站点上的所有信息。&lt;br /&gt;
&lt;br /&gt;
== 简介 ==&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/zh_cn|简介]] - OpenMoko是什么&lt;br /&gt;
** [[Introduction/zh_cn#照片|照片]]&lt;br /&gt;
** [[Introduction/zh_cn#视频|视频]]&lt;br /&gt;
* [[FAQ/zh_cn|常见问题与解答]]&lt;br /&gt;
&lt;br /&gt;
== 项目资源 ==&lt;br /&gt;
* [[Development resources/zh_cn|开发资源]] - 资源(邮件列表，svn， ...)&lt;br /&gt;
** [[Development resources/zh_cn#邮件列表|邮件列表]]&lt;br /&gt;
** [[Development resources/zh_cn#维基|维基]]&lt;br /&gt;
** [[Development resources/zh_cn#Bugzilla|Bugzilla]]&lt;br /&gt;
** [[Development resources/zh_cn#IRC频道|IRC频道]]&lt;br /&gt;
** [[Development resources/zh_cn#SVN|svn + svnweb]]&lt;br /&gt;
** [[Development resources/zh_cn#项目|项目]]&lt;br /&gt;
&lt;br /&gt;
== 开发者文档 ==&lt;br /&gt;
&lt;br /&gt;
=== 实践指南 ===&lt;br /&gt;
* [[Getting Started with your Neo1973]]&lt;br /&gt;
* [[MokoMakefile|Building OpenMoko using the MokoMakefile]] ([[MokoMakefile/ru|Rus]])&lt;br /&gt;
* [[Building OpenMoko from scratch (pre-BBT)]]&lt;br /&gt;
* [[Migration to bad block tolerant builds]]&lt;br /&gt;
* [[Getting Openmoko working on host with Xoo]]&lt;br /&gt;
&lt;br /&gt;
=== 硬件参考文档 ===&lt;br /&gt;
&lt;br /&gt;
* 所有[[Hardware/zh_cn|硬件]]相关文档和说明书&lt;br /&gt;
* [[Neo1973 Hardware/zh_cn|Neo1973硬件]] - 概观我们所使用的元件，PCB照片&lt;br /&gt;
** [[Disassembling Neo1973|拆解Neo1973]] - 硬件拆解过程图解&lt;br /&gt;
* [[Debug Board|调试板]] - 针对Neo1973的调试板&lt;br /&gt;
** [[Connecting Neo1973 with Debug Board v2|连接Neo1973和调试板v2]]&lt;br /&gt;
* [[QT2410/zh_cn|QT2410]] - 一个我们在开发早期阶段所使用的S3C2410开发板&lt;br /&gt;
&lt;br /&gt;
=== 软件参考文档 ===&lt;br /&gt;
* 软件架构&lt;br /&gt;
** [[OpenMokoFramework]] - OpenMoko应用程序框架&lt;br /&gt;
* 主机端工具&lt;br /&gt;
** [[dfu-util/zh_cn|dfu-util]] - 主机端程序[[USB DFU]](Device Firmware Update)&lt;br /&gt;
** [[devirginator]] - A set of scripts to re-program the entire device&lt;br /&gt;
** [[sjf2410-linux]] - a JTAG NAND flashing program, last-resort phone un-bricking&lt;br /&gt;
** [[s3c2410_boot_usb]] - a program for transferring code to the RAM of QT2410 (not Neo1973)&lt;br /&gt;
** [[Toolchain]] - 我们用来进行程序编译的工具链&lt;br /&gt;
** [[Neo1973 OpenOCD]] - 我们用来进行开发的片上调试器&lt;br /&gt;
** [[OpenEmbedded]] - The distribution building framework&lt;br /&gt;
* 设备软件&lt;br /&gt;
** 底层&lt;br /&gt;
*** [[u-boot/zh_cn|u-boot]] - 我们使用的引导装载程序，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
*** [[kernel/zh_cn|内核]] - 我们使用的Linux内核，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
** 用户空间&lt;br /&gt;
*** [[gsmd]] - the GSM daemon managing the GSM Modem&lt;br /&gt;
*** [[gpsd]] - the AGPS (Assisted GPS) daemon&lt;br /&gt;
*** [[OpenMoko]] - The OpenMoko distribution&lt;br /&gt;
**** [[OpenMoko2007]] - The first intended release of it&lt;br /&gt;
**** [[Userspace root image]]&lt;br /&gt;
&lt;br /&gt;
==== 用户接口相关文档 ====&lt;br /&gt;
* [[Look &amp;amp; Feel]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
* [[Widgets]]&lt;br /&gt;
** [[Widget Inheritance Graph]]&lt;br /&gt;
&lt;br /&gt;
=== 其他开发相关文档 ===&lt;br /&gt;
* [[Templates]]&lt;br /&gt;
* [[PIM Storage]]&lt;br /&gt;
* [[Coding Guidelines]]&lt;br /&gt;
* [[How to run OpenMoko Apps on PC]]&lt;br /&gt;
* [[OpenMoko#Setting_up_an_OpenMoko_SDK|How to setup the OpenMoko SDK]]&lt;br /&gt;
* [[License]] - How we license our code&lt;br /&gt;
* [[Development resources]] - Describes the resources (lists, svn, ...)&lt;br /&gt;
* [[Neo1973 Phase 0]] -- Information for Phase 0 device owners&lt;br /&gt;
&lt;br /&gt;
== 管理/组织 ==&lt;br /&gt;
&lt;br /&gt;
* [[Shipping Notes]] - Information to help FIC how to ship products to you&lt;br /&gt;
* [[My Account]] - Ideas for what sort of account based services FIC should provide with the phone.&lt;br /&gt;
&lt;br /&gt;
== 其他 ==&lt;br /&gt;
* [[Neo1973 and Windows]] - If you want to commit that offence ;)&lt;br /&gt;
* [[Press Coverage]] - 媒体眼中的OpenMoko项目&lt;br /&gt;
* [[mFAQ]] - The OpenMoko Misinformation FAQ ('''mFAQ''') - What the press '''''incorrectly''''' says about the OpenMoko project&lt;br /&gt;
* [[Wish List]] - A collection of ideas and ideals we'd like to see implemented some day&lt;br /&gt;
* [[Wish List - Hardware]] - A collection of ideas we'd like to see in the next Neo release&lt;br /&gt;
* [[Media Content]] - What types of media on the device can we use (that is non-software)?&lt;br /&gt;
* [[Testimonials]] - How did you get to OpenMoko?&lt;br /&gt;
* [[Buying Interest List]] - (Not official and not a pre-order page) Have you have put money aside for Neo1973? Put your nick here.&lt;br /&gt;
* [[Style Sheet]] - The '''''correct''''' way to spell OpenMoko and other words&lt;br /&gt;
* [[iPhone]] - Apple iPhone和FIC Neo1973的比较&lt;br /&gt;
* [[Translation]] -  Translation of OpenMoko&lt;br /&gt;
&lt;br /&gt;
== FIC / OpenMoko at Events ==&lt;br /&gt;
&lt;br /&gt;
* [http://pingwinaria.linux.org.pl/PLUG/imprezy/pingwinaria/2007/agenda Pingwinaria 2007] - Krynica, Poland - 15-18 March 2007 - Tomasz Zieliński will give a talk about OpenMoko and Marcin Juszkiewicz will talk about OpenEmbedded&lt;br /&gt;
* [http://fostel2007.fostel.org/index.php/Main_Page FOSTEL] - Paris, France - 4-5 April 2007 - Sean Moss-Pultz will be there&lt;br /&gt;
&lt;br /&gt;
===Past Events===&lt;br /&gt;
* [[FOSDEM]] - Brussels, Belgium - 23 to 25 Februari 2007&lt;br /&gt;
* [[ETel]] - Tuesday, February 27 through Thursday, March 1, 2007, near San Francisco&lt;br /&gt;
* [http://www.linuxforum.dk/2007/ Linux Forum] - Copenhagen Denmark. 2.-3. March 2007. [http://www.linuxforum.dk/2007/program/saturday/Martin_Hansen.shtml Presentation] about OpenMoko on Saturday by Martin Hansen and Ole Tange.&lt;br /&gt;
&lt;br /&gt;
== 针对不同目标读者的章节 ==&lt;br /&gt;
&lt;br /&gt;
* [[Basic End-user/zh_cn|初级终端用户]] - Information for end users that want basic functionality and no surprises&lt;br /&gt;
* [[Advanced End-user/zh_cn|高级终端用户]] - Information for advanced end-users that want advanced and experimental functionality but who are not programmers&lt;br /&gt;
* [[Application Developer/zh_cn|应用程序开发人员]] - Information for application developers including ideas and specifications for applications, and tools to build them&lt;br /&gt;
* [[System Developer/zh_cn|系统开发人员]] - 针对系统开发人员的信息，包括引导装载程序，内核和程序库&lt;br /&gt;
* [[Hardware Developer/zh_cn|硬件开发人员]] - Information for the hardware developer including hardware specs, and debug board&lt;br /&gt;
&lt;br /&gt;
== 维基起步 ==&lt;br /&gt;
&lt;br /&gt;
* 请阅读我们的[[OpenMoko Wiki Editing Guidelines/zh_cn|OpenMoko维基编辑指南]]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference MediaWiki Wikitext Reference]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Languages|Main_Page}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn</id>
		<title>Neo1973 Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo1973_Hardware/zh_cn"/>
				<updated>2007-03-08T12:10:07Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==User experiences of Phase 0 hardware==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== Physical Dimensions ==&lt;br /&gt;
* 120.7 x 62 x 18.5 mm (4.75 x 2.44 x 0.728 inch)&lt;br /&gt;
* 184 +/- 5 g (6.5 ounces)&lt;br /&gt;
&lt;br /&gt;
== Main components ==&lt;br /&gt;
=== Processor ===&lt;br /&gt;
The main Processor (CPU) of the Neo1973 is a Samsung S3C2410AL-26 (Capable of running up to 266 MHz)&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* User Manual: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL File: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO Assignments: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== Flash ===&lt;br /&gt;
64MB Samsung NAND flash (K9F1208U0B) attached to S3C2410 NAND controller.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* Connected to: S3C2410 NAND controller&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems.  For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== RAM ===&lt;br /&gt;
128MB SDRAM (2x Samsung K4M511633C) attached to S3C2410 SDRAM controller&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* Connected to: S3C2410 &lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD-Card ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD Display Module (LCM) ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== Touch Screen ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== Stereo Amplifier ====&lt;br /&gt;
There's a National Semiconductor [[LM4857]] Stereo Amplifier at the analog audio output of the WM8753&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* Data Sheet: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* Connects to: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== Battery ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== Changes from GTA01Bv3 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_1973_hardware</id>
		<title>Neo 1973 hardware</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_1973_hardware"/>
				<updated>2007-03-08T12:07:32Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* From Userspace */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==User experiences of Phase 0 hardware==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== Physical Dimensions ==&lt;br /&gt;
* 120.7 x 62 x 18.5 mm (4.75 x 2.44 x 0.728 inch)&lt;br /&gt;
* 184 +/- 5 g (6.5 ounces)&lt;br /&gt;
&lt;br /&gt;
== Main components ==&lt;br /&gt;
=== Processor ===&lt;br /&gt;
The main Processor (CPU) of the Neo1973 is a Samsung S3C2410AL-26 (Capable of running up to 266 MHz)&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* User Manual: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL File: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO Assignments: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== Flash ===&lt;br /&gt;
64MB Samsung NAND flash (K9F1208U0B) attached to S3C2410 NAND controller.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* Connected to: S3C2410 NAND controller&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems.  For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== RAM ===&lt;br /&gt;
128MB SDRAM (2x Samsung K4M511633C) attached to S3C2410 SDRAM controller&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* Connected to: S3C2410 &lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD-Card ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD Display Module (LCM) ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== Touch Screen ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== Stereo Amplifier ====&lt;br /&gt;
There's a National Semiconductor [[LM4857]] Stereo Amplifier at the analog audio output of the WM8753&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* Data Sheet: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* Connects to: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== Battery ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== Changes from GTA01Bv3 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Hardware/zh_cn</id>
		<title>Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Hardware/zh_cn"/>
				<updated>2007-03-08T12:04:34Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Neo1973 =&lt;br /&gt;
&lt;br /&gt;
* [[Neo1973 Hardware]] - Overview about the Components we use, PCB Photographs&lt;br /&gt;
** [[Disassembling Neo1973]] - A photo story about disassembling the hardware&lt;br /&gt;
** [[Neo1973 Power Management]]&lt;br /&gt;
*** [[Battery|Batteries]] in general&lt;br /&gt;
*** The [[Neo1973 Battery]]&lt;br /&gt;
*** [[PCF50606]] - Power Management Unit&lt;br /&gt;
** [[Hardware:AT Commands| AT Commands]] of the gsm module&lt;br /&gt;
** [[Hardware:AGPS|AGPS]]&lt;br /&gt;
** [[I2C]] - Small communication bus between chips&lt;br /&gt;
** [[LM4857]] Amplifier&lt;br /&gt;
* [[USB]]&lt;br /&gt;
* [[Debug Board]] - The Debug Board for the Neo1973&lt;br /&gt;
** [[Connecting Neo1973 with Debug Board v2]]&lt;br /&gt;
** [[Debug Board v1]] - The old version of the Debug Board&lt;br /&gt;
*** [[Connecting GTA01Bv2 with Debug Board]] (old, outdated)&lt;br /&gt;
&lt;br /&gt;
== FAQs and alike ==&lt;br /&gt;
&lt;br /&gt;
* [[Unresolved Hardware Questions]]&lt;br /&gt;
&lt;br /&gt;
= QT2410 =&lt;br /&gt;
&lt;br /&gt;
* [[QT2410]] - A S3C2410 development board that we used during early development&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Hardware/zh_cn</id>
		<title>Hardware/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Hardware/zh_cn"/>
				<updated>2007-03-08T12:00:29Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==User experiences of Phase 0 hardware==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== Physical Dimensions ==&lt;br /&gt;
* 120.7 x 62 x 18.5 mm (4.75 x 2.44 x 0.728 inch)&lt;br /&gt;
* 184 +/- 5 g (6.5 ounces)&lt;br /&gt;
&lt;br /&gt;
== Main components ==&lt;br /&gt;
=== Processor ===&lt;br /&gt;
The main Processor (CPU) of the Neo1973 is a Samsung S3C2410AL-26 (Capable of running up to 266 MHz)&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* User Manual: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL File: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO Assignments: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== Flash ===&lt;br /&gt;
64MB Samsung NAND flash (K9F1208U0B) attached to S3C2410 NAND controller.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* Connected to: S3C2410 NAND controller&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems.  For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== RAM ===&lt;br /&gt;
128MB SDRAM (2x Samsung K4M511633C) attached to S3C2410 SDRAM controller&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* Connected to: S3C2410 &lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD-Card ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD Display Module (LCM) ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== Touch Screen ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== Stereo Amplifier ====&lt;br /&gt;
There's a National Semiconductor [[LM4857]] Stereo Amplifier at the analog audio output of the WM8753&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* Data Sheet: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* Connects to: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== Battery ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== Changes from GTA01Bv3 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
{{Languages|Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_1973_hardware</id>
		<title>Neo 1973 hardware</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_1973_hardware"/>
				<updated>2007-03-08T11:59:20Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==User experiences of Phase 0 hardware==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== Physical Dimensions ==&lt;br /&gt;
* 120.7 x 62 x 18.5 mm (4.75 x 2.44 x 0.728 inch)&lt;br /&gt;
* 184 +/- 5 g (6.5 ounces)&lt;br /&gt;
&lt;br /&gt;
== Main components ==&lt;br /&gt;
=== Processor ===&lt;br /&gt;
The main Processor (CPU) of the Neo1973 is a Samsung S3C2410AL-26 (Capable of running up to 266 MHz)&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* User Manual: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL File: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO Assignments: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== Flash ===&lt;br /&gt;
64MB Samsung NAND flash (K9F1208U0B) attached to S3C2410 NAND controller.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* Connected to: S3C2410 NAND controller&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems.  For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== RAM ===&lt;br /&gt;
128MB SDRAM (2x Samsung K4M511633C) attached to S3C2410 SDRAM controller&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* Connected to: S3C2410 &lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: Could we at least know the [http://en.wikipedia.org/wiki/Gprs#The_GPRS_capability_classes GPRS capabilitiy class and the GPRS multislot class] ?&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151]&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector (specify the kind: SMB, SMA, ..?)&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD-Card ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems.&lt;br /&gt;
As there are no microSD cards over 2G at the moment, it hasn't been tested.&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD Display Module (LCM) ===&lt;br /&gt;
This is a 2.8&amp;quot; 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller&lt;br /&gt;
&lt;br /&gt;
==== Touch Screen ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== Stereo Amplifier ====&lt;br /&gt;
There's a National Semiconductor [[LM4857]] Stereo Amplifier at the analog audio output of the WM8753&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* Data Sheet: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* Connects to: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== Battery ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# A Power Button&lt;br /&gt;
# A &amp;quot;911&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== Changes from GTA01Bv3 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Hardware}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/zh_cn</id>
		<title>Main Page/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/zh_cn"/>
				<updated>2007-03-07T09:59:56Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 软件参考文档 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
  |__TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&amp;lt;big&amp;gt;'''欢迎来到OpenMoko公共维基'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;其他语言版本请看本页面[[#bottom|底部]]。&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
这是逐渐形成的，权威的[[Neo1973]]开发资源 -- 运行[[OpenMoko]]的GSM+[[Hardware:AGPS|AGPS]]智能手机。本维基的目的是协作改进和更新此站点上的所有信息。&lt;br /&gt;
&lt;br /&gt;
== 简介 ==&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/zh_cn|简介]] - OpenMoko是什么&lt;br /&gt;
** [[Introduction/zh_cn#照片|照片]]&lt;br /&gt;
** [[Introduction/zh_cn#视频|视频]]&lt;br /&gt;
* [[FAQ/zh_cn|常见问题与解答]]&lt;br /&gt;
&lt;br /&gt;
== 项目资源 ==&lt;br /&gt;
* [[Development resources/zh_cn|开发资源]] - 资源(邮件列表，svn， ...)&lt;br /&gt;
** [[Development resources/zh_cn#邮件列表|邮件列表]]&lt;br /&gt;
** [[Development resources/zh_cn#维基|维基]]&lt;br /&gt;
** [[Development resources/zh_cn#Bugzilla|Bugzilla]]&lt;br /&gt;
** [[Development resources/zh_cn#IRC频道|IRC频道]]&lt;br /&gt;
** [[Development resources/zh_cn#SVN|svn + svnweb]]&lt;br /&gt;
** [[Development resources/zh_cn#项目|项目]]&lt;br /&gt;
&lt;br /&gt;
== 开发者文档 ==&lt;br /&gt;
&lt;br /&gt;
=== 实践指南 ===&lt;br /&gt;
* [[Getting Started with your Neo1973]]&lt;br /&gt;
* [[MokoMakefile|Building OpenMoko using the MokoMakefile]] ([[MokoMakefile/ru|Rus]])&lt;br /&gt;
* [[Building OpenMoko from scratch (pre-BBT)]]&lt;br /&gt;
* [[Migration to bad block tolerant builds]]&lt;br /&gt;
* [[Getting Openmoko working on host with Xoo]]&lt;br /&gt;
&lt;br /&gt;
=== 硬件参考文档 ===&lt;br /&gt;
&lt;br /&gt;
* 所有[[Hardware/zh_cn|硬件]]相关文档和说明书&lt;br /&gt;
* [[Neo1973 Hardware|Neo1973硬件]] - 概观我们所使用的元件，PCB照片&lt;br /&gt;
** [[Disassembling Neo1973|拆解Neo1973]] - 硬件拆解过程图解&lt;br /&gt;
* [[Debug Board|调试板]] - 针对Neo1973的调试板&lt;br /&gt;
** [[Connecting Neo1973 with Debug Board v2|连接Neo1973和调试板v2]]&lt;br /&gt;
* [[QT2410/zh_cn|QT2410]] - 一个我们在开发早期阶段所使用的S3C2410开发板&lt;br /&gt;
&lt;br /&gt;
=== 软件参考文档 ===&lt;br /&gt;
* 软件架构&lt;br /&gt;
** [[OpenMokoFramework]] - OpenMoko应用程序框架&lt;br /&gt;
* 主机端工具&lt;br /&gt;
** [[dfu-util/zh_cn|dfu-util]] - 主机端程序[[USB DFU]](Device Firmware Update)&lt;br /&gt;
** [[devirginator]] - A set of scripts to re-program the entire device&lt;br /&gt;
** [[sjf2410-linux]] - a JTAG NAND flashing program, last-resort phone un-bricking&lt;br /&gt;
** [[s3c2410_boot_usb]] - a program for transferring code to the RAM of QT2410 (not Neo1973)&lt;br /&gt;
** [[Toolchain]] - 我们用来进行程序编译的工具链&lt;br /&gt;
** [[Neo1973 OpenOCD]] - 我们用来进行开发的片上调试器&lt;br /&gt;
** [[OpenEmbedded]] - The distribution building framework&lt;br /&gt;
* 设备软件&lt;br /&gt;
** 底层&lt;br /&gt;
*** [[u-boot/zh_cn|u-boot]] - 我们使用的引导装载程序，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
*** [[kernel/zh_cn|内核]] - 我们使用的Linux内核，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
** 用户空间&lt;br /&gt;
*** [[gsmd]] - the GSM daemon managing the GSM Modem&lt;br /&gt;
*** [[gpsd]] - the AGPS (Assisted GPS) daemon&lt;br /&gt;
*** [[OpenMoko]] - The OpenMoko distribution&lt;br /&gt;
**** [[OpenMoko2007]] - The first intended release of it&lt;br /&gt;
**** [[Userspace root image]]&lt;br /&gt;
&lt;br /&gt;
==== 用户接口相关文档 ====&lt;br /&gt;
* [[Look &amp;amp; Feel]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
* [[Widgets]]&lt;br /&gt;
** [[Widget Inheritance Graph]]&lt;br /&gt;
&lt;br /&gt;
=== 其他开发相关文档 ===&lt;br /&gt;
* [[Templates]]&lt;br /&gt;
* [[PIM Storage]]&lt;br /&gt;
* [[Coding Guidelines]]&lt;br /&gt;
* [[How to run OpenMoko Apps on PC]]&lt;br /&gt;
* [[OpenMoko#Setting_up_an_OpenMoko_SDK|How to setup the OpenMoko SDK]]&lt;br /&gt;
* [[License]] - How we license our code&lt;br /&gt;
* [[Development resources]] - Describes the resources (lists, svn, ...)&lt;br /&gt;
* [[Neo1973 Phase 0]] -- Information for Phase 0 device owners&lt;br /&gt;
&lt;br /&gt;
== 管理/组织 ==&lt;br /&gt;
&lt;br /&gt;
* [[Shipping Notes]] - Information to help FIC how to ship products to you&lt;br /&gt;
* [[My Account]] - Ideas for what sort of account based services FIC should provide with the phone.&lt;br /&gt;
&lt;br /&gt;
== 其他 ==&lt;br /&gt;
* [[Neo1973 and Windows]] - If you want to commit that offence ;)&lt;br /&gt;
* [[Press Coverage]] - 媒体眼中的OpenMoko项目&lt;br /&gt;
* [[mFAQ]] - The OpenMoko Misinformation FAQ ('''mFAQ''') - What the press '''''incorrectly''''' says about the OpenMoko project&lt;br /&gt;
* [[Wish List]] - A collection of ideas and ideals we'd like to see implemented some day&lt;br /&gt;
* [[Wish List - Hardware]] - A collection of ideas we'd like to see in the next Neo release&lt;br /&gt;
* [[Media Content]] - What types of media on the device can we use (that is non-software)?&lt;br /&gt;
* [[Testimonials]] - How did you get to OpenMoko?&lt;br /&gt;
* [[Buying Interest List]] - (Not official and not a pre-order page) Have you have put money aside for Neo1973? Put your nick here.&lt;br /&gt;
* [[Style Sheet]] - The '''''correct''''' way to spell OpenMoko and other words&lt;br /&gt;
* [[iPhone]] - Apple iPhone和FIC Neo1973的比较&lt;br /&gt;
* [[Translation]] -  Translation of OpenMoko&lt;br /&gt;
&lt;br /&gt;
== FIC / OpenMoko at Events ==&lt;br /&gt;
&lt;br /&gt;
* [http://pingwinaria.linux.org.pl/PLUG/imprezy/pingwinaria/2007/agenda Pingwinaria 2007] - Krynica, Poland - 15-18 March 2007 - Tomasz Zieliński will give a talk about OpenMoko and Marcin Juszkiewicz will talk about OpenEmbedded&lt;br /&gt;
* [http://fostel2007.fostel.org/index.php/Main_Page FOSTEL] - Paris, France - 4-5 April 2007 - Sean Moss-Pultz will be there&lt;br /&gt;
&lt;br /&gt;
===Past Events===&lt;br /&gt;
* [[FOSDEM]] - Brussels, Belgium - 23 to 25 Februari 2007&lt;br /&gt;
* [[ETel]] - Tuesday, February 27 through Thursday, March 1, 2007, near San Francisco&lt;br /&gt;
* [http://www.linuxforum.dk/2007/ Linux Forum] - Copenhagen Denmark. 2.-3. March 2007. [http://www.linuxforum.dk/2007/program/saturday/Martin_Hansen.shtml Presentation] about OpenMoko on Saturday by Martin Hansen and Ole Tange.&lt;br /&gt;
&lt;br /&gt;
== 针对不同目标读者的章节 ==&lt;br /&gt;
&lt;br /&gt;
* [[Basic End-user/zh_cn|初级终端用户]] - Information for end users that want basic functionality and no surprises&lt;br /&gt;
* [[Advanced End-user/zh_cn|高级终端用户]] - Information for advanced end-users that want advanced and experimental functionality but who are not programmers&lt;br /&gt;
* [[Application Developer/zh_cn|应用程序开发人员]] - Information for application developers including ideas and specifications for applications, and tools to build them&lt;br /&gt;
* [[System Developer/zh_cn|系统开发人员]] - 针对系统开发人员的信息，包括引导装载程序，内核和程序库&lt;br /&gt;
* [[Hardware Developer/zh_cn|硬件开发人员]] - Information for the hardware developer including hardware specs, and debug board&lt;br /&gt;
&lt;br /&gt;
== 维基起步 ==&lt;br /&gt;
&lt;br /&gt;
* 请阅读我们的[[OpenMoko Wiki Editing Guidelines/zh_cn|OpenMoko维基编辑指南]]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference MediaWiki Wikitext Reference]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Languages|Main_Page}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Hardware_Developer/zh_cn</id>
		<title>Hardware Developer/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Hardware_Developer/zh_cn"/>
				<updated>2007-03-07T09:46:19Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this section you will find information geared towards hardware developers.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
* [[Neo1973 Hardware]] - The first FIC phone with OpenMoko&lt;br /&gt;
** [[Disassembling Neo1973]] - A photo story about disassembling the hardware&lt;br /&gt;
* [[Debug Board]] -- The debug board for Neo1973 hardware&lt;br /&gt;
** [[Connecting Neo1973 with Debug Board v2]] (This is for the new v2 Debug Board)&lt;br /&gt;
** [[Connecting_GTA01Bv2_with_Debug_Board]] (This is for the old v1 Debug Board)&lt;br /&gt;
** [[Debug Board v1]] - The previous version of the Debug Board&lt;br /&gt;
* [[QT2410/zh_cn]] - A S3C2410 development board that was used during early development&lt;br /&gt;
{{Languages|Hardware_Developer}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Hardware_Developer</id>
		<title>Hardware Developer</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Hardware_Developer"/>
				<updated>2007-03-07T09:45:50Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this section you will find information geared towards hardware developers.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
* [[Neo1973 Hardware]] - The first FIC phone with OpenMoko&lt;br /&gt;
** [[Disassembling Neo1973]] - A photo story about disassembling the hardware&lt;br /&gt;
* [[Debug Board]] -- The debug board for Neo1973 hardware&lt;br /&gt;
** [[Connecting Neo1973 with Debug Board v2]] (This is for the new v2 Debug Board)&lt;br /&gt;
** [[Connecting_GTA01Bv2_with_Debug_Board]] (This is for the old v1 Debug Board)&lt;br /&gt;
** [[Debug Board v1]] - The previous version of the Debug Board&lt;br /&gt;
* [[QT2410]] - A S3C2410 development board that was used during early development&lt;br /&gt;
{{Languages|Hardware_Developer}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Advanced_End-user</id>
		<title>Advanced End-user</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Advanced_End-user"/>
				<updated>2007-03-07T09:41:00Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this section you will find information geared towards users that wants to experiment with their Neo, but without doing actual programming.&lt;br /&gt;
&lt;br /&gt;
This will include installing experimental software, configuring advanced options, and making scripts for automating tasks.&lt;br /&gt;
&lt;br /&gt;
As most advanced use with the phone currently requires programming this section is currently empty.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
* [[System Developer]]&lt;br /&gt;
* [[Application Developer]]&lt;br /&gt;
{{Languages|Advanced_End-user}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Basic_End-user/zh_cn</id>
		<title>Basic End-user/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Basic_End-user/zh_cn"/>
				<updated>2007-03-07T09:38:42Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this section you will find information geared towards users that just wants their smartphone to work without getting problems, or who want to get general information on the phone.&lt;br /&gt;
&lt;br /&gt;
* [[Press Coverage]] - What the press tells about the OpenMoko project&lt;br /&gt;
* [[Shipping Notes]] - Information to help FIC ship phones to you&lt;br /&gt;
* [[Wish List]] - A collection of ideas and ideals we'd like to see implemented someday&lt;br /&gt;
* [[Wish List - Hardware]] - A collection of features we woud like to see in the next revisions of the Neo1973&lt;br /&gt;
* [[OpenMoko compatible cellphone providers]] - This is a breakdown of OpenMoko-compatible providers around the world&lt;br /&gt;
{{Languages|Basic_End-user}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Basic_End-user</id>
		<title>Basic End-user</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Basic_End-user"/>
				<updated>2007-03-07T09:38:29Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this section you will find information geared towards users that just wants their smartphone to work without getting problems, or who want to get general information on the phone.&lt;br /&gt;
&lt;br /&gt;
* [[Press Coverage]] - What the press tells about the OpenMoko project&lt;br /&gt;
* [[Shipping Notes]] - Information to help FIC ship phones to you&lt;br /&gt;
* [[Wish List]] - A collection of ideas and ideals we'd like to see implemented someday&lt;br /&gt;
* [[Wish List - Hardware]] - A collection of features we woud like to see in the next revisions of the Neo1973&lt;br /&gt;
* [[OpenMoko compatible cellphone providers]] - This is a breakdown of OpenMoko-compatible providers around the world&lt;br /&gt;
{{Languages|Basic_End-user}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Basic_End-user/zh_cn</id>
		<title>Basic End-user/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Basic_End-user/zh_cn"/>
				<updated>2007-03-07T09:38:07Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: Create Basic_End-user/zh_cn for future editing.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Basic_End-user}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:JarodWang</id>
		<title>User:JarodWang</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:JarodWang"/>
				<updated>2007-03-07T09:33:14Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jarod Wang is a postgraduate in &lt;br /&gt;
&lt;br /&gt;
School of Computer Science&lt;br /&gt;
&lt;br /&gt;
Wuhan University of Technology, Wuhan, P. R. China&lt;br /&gt;
&lt;br /&gt;
and he is an advocate of open source software.&lt;br /&gt;
&lt;br /&gt;
More information about him can be found at [http://jarodwang.cublog.cn his Blog](in Chinese Simplified).&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:JarodWang</id>
		<title>User:JarodWang</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:JarodWang"/>
				<updated>2007-03-07T09:32:39Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jarod Wang is a postgraduate in &lt;br /&gt;
&lt;br /&gt;
School of Computer Science&lt;br /&gt;
&lt;br /&gt;
Wuhan University of Technology, Wuhan, P. R. China&lt;br /&gt;
&lt;br /&gt;
and he is an advocate of open source software.&lt;br /&gt;
&lt;br /&gt;
More information about him can be found at [http://jarodwang.cublog.cn his Blog].&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:JarodWang</id>
		<title>User:JarodWang</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:JarodWang"/>
				<updated>2007-03-07T09:28:13Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jarod Wang is an advocate of open source software.&lt;br /&gt;
&lt;br /&gt;
School of Computer Science&lt;br /&gt;
&lt;br /&gt;
Wuhan University of Technology, Wuhan, P. R. China&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/zh_cn</id>
		<title>Main Page/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/zh_cn"/>
				<updated>2007-03-07T09:20:49Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 按目标读者分类 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
  |__TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&amp;lt;big&amp;gt;'''欢迎来到OpenMoko公共维基'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;其他语言版本请看本页面[[#bottom|底部]]。&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
这是逐渐形成的，权威的[[Neo1973]]开发资源 -- 运行[[OpenMoko]]的GSM+[[Hardware:AGPS|AGPS]]智能手机。本维基的目的是协作改进和更新此站点上的所有信息。&lt;br /&gt;
&lt;br /&gt;
== 简介 ==&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/zh_cn|简介]] - OpenMoko是什么&lt;br /&gt;
** [[Introduction/zh_cn#照片|照片]]&lt;br /&gt;
** [[Introduction/zh_cn#视频|视频]]&lt;br /&gt;
* [[FAQ/zh_cn|常见问题与解答]]&lt;br /&gt;
&lt;br /&gt;
== 项目资源 ==&lt;br /&gt;
* [[Development resources/zh_cn|开发资源]] - 资源(邮件列表，svn， ...)&lt;br /&gt;
** [[Development resources/zh_cn#邮件列表|邮件列表]]&lt;br /&gt;
** [[Development resources/zh_cn#维基|维基]]&lt;br /&gt;
** [[Development resources/zh_cn#Bugzilla|Bugzilla]]&lt;br /&gt;
** [[Development resources/zh_cn#IRC频道|IRC频道]]&lt;br /&gt;
** [[Development resources/zh_cn#SVN|svn + svnweb]]&lt;br /&gt;
** [[Development resources/zh_cn#项目|项目]]&lt;br /&gt;
&lt;br /&gt;
== 开发者文档 ==&lt;br /&gt;
&lt;br /&gt;
=== 实践指南 ===&lt;br /&gt;
* [[Getting Started with your Neo1973]]&lt;br /&gt;
* [[MokoMakefile|Building OpenMoko using the MokoMakefile]] ([[MokoMakefile/ru|Rus]])&lt;br /&gt;
* [[Building OpenMoko from scratch (pre-BBT)]]&lt;br /&gt;
* [[Migration to bad block tolerant builds]]&lt;br /&gt;
* [[Getting Openmoko working on host with Xoo]]&lt;br /&gt;
&lt;br /&gt;
=== 硬件参考文档 ===&lt;br /&gt;
&lt;br /&gt;
* 所有[[Hardware/zh_cn|硬件]]相关文档和说明书&lt;br /&gt;
* [[Neo1973 Hardware|Neo1973硬件]] - 概观我们所使用的元件，PCB照片&lt;br /&gt;
** [[Disassembling Neo1973|拆解Neo1973]] - 硬件拆解过程图解&lt;br /&gt;
* [[Debug Board|调试板]] - 针对Neo1973的调试板&lt;br /&gt;
** [[Connecting Neo1973 with Debug Board v2|连接Neo1973和调试板v2]]&lt;br /&gt;
* [[QT2410/zh_cn|QT2410]] - 一个我们在开发早期阶段所使用的S3C2410开发板&lt;br /&gt;
&lt;br /&gt;
=== 软件参考文档 ===&lt;br /&gt;
* 软件架构&lt;br /&gt;
** [[OpenMokoFramework]] - OpenMoko应用程序框架&lt;br /&gt;
* 主机端工具&lt;br /&gt;
** [[dfu-util/zh_cn|dfu-util]] - 主机端程序[[USB DFU]](Device Firmware Update)&lt;br /&gt;
** [[devirginator]] - A set of scripts to re-program the entire device&lt;br /&gt;
** [[sjf2410-linux]] - a JTAG NAND flashing program, last-resort phone un-bricking&lt;br /&gt;
** [[s3c2410_boot_usb]] - a program for transferring code to the RAM of QT2410 (not Neo1973)&lt;br /&gt;
** [[Toolchain]] - 我们用来进行程序编译的工具链&lt;br /&gt;
** [[Neo1973 OpenOCD]] - The On-Chip Debugger we use for development&lt;br /&gt;
** [[OpenEmbedded]] - The distribution building framework&lt;br /&gt;
* 设备软件&lt;br /&gt;
** 底层&lt;br /&gt;
*** [[u-boot/zh_cn|u-boot]] - 我们使用的引导装载程序，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
*** [[kernel]] - 我们使用的Linux内核，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
** 用户空间&lt;br /&gt;
*** [[gsmd]] - the GSM daemon managing the GSM Modem&lt;br /&gt;
*** [[gpsd]] - the AGPS (Assisted GPS) daemon&lt;br /&gt;
*** [[OpenMoko]] - The OpenMoko distribution&lt;br /&gt;
**** [[OpenMoko2007]] - The first intended release of it&lt;br /&gt;
**** [[Userspace root image]]&lt;br /&gt;
&lt;br /&gt;
==== 用户接口相关文档 ====&lt;br /&gt;
* [[Look &amp;amp; Feel]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
* [[Widgets]]&lt;br /&gt;
** [[Widget Inheritance Graph]]&lt;br /&gt;
&lt;br /&gt;
=== 其他开发相关文档 ===&lt;br /&gt;
* [[Templates]]&lt;br /&gt;
* [[PIM Storage]]&lt;br /&gt;
* [[Coding Guidelines]]&lt;br /&gt;
* [[How to run OpenMoko Apps on PC]]&lt;br /&gt;
* [[OpenMoko#Setting_up_an_OpenMoko_SDK|How to setup the OpenMoko SDK]]&lt;br /&gt;
* [[License]] - How we license our code&lt;br /&gt;
* [[Development resources]] - Describes the resources (lists, svn, ...)&lt;br /&gt;
* [[Neo1973 Phase 0]] -- Information for Phase 0 device owners&lt;br /&gt;
&lt;br /&gt;
== 管理/组织 ==&lt;br /&gt;
&lt;br /&gt;
* [[Shipping Notes]] - Information to help FIC how to ship products to you&lt;br /&gt;
* [[My Account]] - Ideas for what sort of account based services FIC should provide with the phone.&lt;br /&gt;
&lt;br /&gt;
== 其他 ==&lt;br /&gt;
* [[Neo1973 and Windows]] - If you want to commit that offence ;)&lt;br /&gt;
* [[Press Coverage]] - 媒体眼中的OpenMoko项目&lt;br /&gt;
* [[mFAQ]] - The OpenMoko Misinformation FAQ ('''mFAQ''') - What the press '''''incorrectly''''' says about the OpenMoko project&lt;br /&gt;
* [[Wish List]] - A collection of ideas and ideals we'd like to see implemented some day&lt;br /&gt;
* [[Wish List - Hardware]] - A collection of ideas we'd like to see in the next Neo release&lt;br /&gt;
* [[Media Content]] - What types of media on the device can we use (that is non-software)?&lt;br /&gt;
* [[Testimonials]] - How did you get to OpenMoko?&lt;br /&gt;
* [[Buying Interest List]] - (Not official and not a pre-order page) Have you have put money aside for Neo1973? Put your nick here.&lt;br /&gt;
* [[Style Sheet]] - The '''''correct''''' way to spell OpenMoko and other words&lt;br /&gt;
* [[iPhone]] - Apple iPhone和FIC Neo1973的比较&lt;br /&gt;
* [[Translation]] -  Translation of OpenMoko&lt;br /&gt;
&lt;br /&gt;
== FIC / OpenMoko at Events ==&lt;br /&gt;
&lt;br /&gt;
* [http://pingwinaria.linux.org.pl/PLUG/imprezy/pingwinaria/2007/agenda Pingwinaria 2007] - Krynica, Poland - 15-18 March 2007 - Tomasz Zieliński will give a talk about OpenMoko and Marcin Juszkiewicz will talk about OpenEmbedded&lt;br /&gt;
* [http://fostel2007.fostel.org/index.php/Main_Page FOSTEL] - Paris, France - 4-5 April 2007 - Sean Moss-Pultz will be there&lt;br /&gt;
&lt;br /&gt;
===Past Events===&lt;br /&gt;
* [[FOSDEM]] - Brussels, Belgium - 23 to 25 Februari 2007&lt;br /&gt;
* [[ETel]] - Tuesday, February 27 through Thursday, March 1, 2007, near San Francisco&lt;br /&gt;
* [http://www.linuxforum.dk/2007/ Linux Forum] - Copenhagen Denmark. 2.-3. March 2007. [http://www.linuxforum.dk/2007/program/saturday/Martin_Hansen.shtml Presentation] about OpenMoko on Saturday by Martin Hansen and Ole Tange.&lt;br /&gt;
&lt;br /&gt;
== 针对不同目标读者的章节 ==&lt;br /&gt;
&lt;br /&gt;
* [[Basic End-user/zh_cn|初级终端用户]] - Information for end users that want basic functionality and no surprises&lt;br /&gt;
* [[Advanced End-user/zh_cn|高级终端用户]] - Information for advanced end-users that want advanced and experimental functionality but who are not programmers&lt;br /&gt;
* [[Application Developer/zh_cn|应用程序开发人员]] - Information for application developers including ideas and specifications for applications, and tools to build them&lt;br /&gt;
* [[System Developer/zh_cn|系统开发人员]] - 针对系统开发人员的信息，包括引导装载程序，内核和程序库&lt;br /&gt;
* [[Hardware Developer/zh_cn|硬件开发人员]] - Information for the hardware developer including hardware specs, and debug board&lt;br /&gt;
&lt;br /&gt;
== 维基起步 ==&lt;br /&gt;
&lt;br /&gt;
* 请阅读我们的[[OpenMoko Wiki Editing Guidelines/zh_cn|OpenMoko维基编辑指南]]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference MediaWiki Wikitext Reference]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Languages|Main_Page}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/zh_cn</id>
		<title>Main Page/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/zh_cn"/>
				<updated>2007-03-07T09:18:37Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 硬件参考文档 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
  |__TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&amp;lt;big&amp;gt;'''欢迎来到OpenMoko公共维基'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;其他语言版本请看本页面[[#bottom|底部]]。&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
这是逐渐形成的，权威的[[Neo1973]]开发资源 -- 运行[[OpenMoko]]的GSM+[[Hardware:AGPS|AGPS]]智能手机。本维基的目的是协作改进和更新此站点上的所有信息。&lt;br /&gt;
&lt;br /&gt;
== 简介 ==&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/zh_cn|简介]] - OpenMoko是什么&lt;br /&gt;
** [[Introduction/zh_cn#照片|照片]]&lt;br /&gt;
** [[Introduction/zh_cn#视频|视频]]&lt;br /&gt;
* [[FAQ/zh_cn|常见问题与解答]]&lt;br /&gt;
&lt;br /&gt;
== 项目资源 ==&lt;br /&gt;
* [[Development resources/zh_cn|开发资源]] - 资源(邮件列表，svn， ...)&lt;br /&gt;
** [[Development resources/zh_cn#邮件列表|邮件列表]]&lt;br /&gt;
** [[Development resources/zh_cn#维基|维基]]&lt;br /&gt;
** [[Development resources/zh_cn#Bugzilla|Bugzilla]]&lt;br /&gt;
** [[Development resources/zh_cn#IRC频道|IRC频道]]&lt;br /&gt;
** [[Development resources/zh_cn#SVN|svn + svnweb]]&lt;br /&gt;
** [[Development resources/zh_cn#项目|项目]]&lt;br /&gt;
&lt;br /&gt;
== 开发者文档 ==&lt;br /&gt;
&lt;br /&gt;
=== 实践指南 ===&lt;br /&gt;
* [[Getting Started with your Neo1973]]&lt;br /&gt;
* [[MokoMakefile|Building OpenMoko using the MokoMakefile]] ([[MokoMakefile/ru|Rus]])&lt;br /&gt;
* [[Building OpenMoko from scratch (pre-BBT)]]&lt;br /&gt;
* [[Migration to bad block tolerant builds]]&lt;br /&gt;
* [[Getting Openmoko working on host with Xoo]]&lt;br /&gt;
&lt;br /&gt;
=== 硬件参考文档 ===&lt;br /&gt;
&lt;br /&gt;
* 所有[[Hardware/zh_cn|硬件]]相关文档和说明书&lt;br /&gt;
* [[Neo1973 Hardware|Neo1973硬件]] - 概观我们所使用的元件，PCB照片&lt;br /&gt;
** [[Disassembling Neo1973|拆解Neo1973]] - 硬件拆解过程图解&lt;br /&gt;
* [[Debug Board|调试板]] - 针对Neo1973的调试板&lt;br /&gt;
** [[Connecting Neo1973 with Debug Board v2|连接Neo1973和调试板v2]]&lt;br /&gt;
* [[QT2410/zh_cn|QT2410]] - 一个我们在开发早期阶段所使用的S3C2410开发板&lt;br /&gt;
&lt;br /&gt;
=== 软件参考文档 ===&lt;br /&gt;
* 软件架构&lt;br /&gt;
** [[OpenMokoFramework]] - OpenMoko应用程序框架&lt;br /&gt;
* 主机端工具&lt;br /&gt;
** [[dfu-util/zh_cn|dfu-util]] - 主机端程序[[USB DFU]](Device Firmware Update)&lt;br /&gt;
** [[devirginator]] - A set of scripts to re-program the entire device&lt;br /&gt;
** [[sjf2410-linux]] - a JTAG NAND flashing program, last-resort phone un-bricking&lt;br /&gt;
** [[s3c2410_boot_usb]] - a program for transferring code to the RAM of QT2410 (not Neo1973)&lt;br /&gt;
** [[Toolchain]] - 我们用来进行程序编译的工具链&lt;br /&gt;
** [[Neo1973 OpenOCD]] - The On-Chip Debugger we use for development&lt;br /&gt;
** [[OpenEmbedded]] - The distribution building framework&lt;br /&gt;
* 设备软件&lt;br /&gt;
** 底层&lt;br /&gt;
*** [[u-boot/zh_cn|u-boot]] - 我们使用的引导装载程序，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
*** [[kernel]] - 我们使用的Linux内核，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
** 用户空间&lt;br /&gt;
*** [[gsmd]] - the GSM daemon managing the GSM Modem&lt;br /&gt;
*** [[gpsd]] - the AGPS (Assisted GPS) daemon&lt;br /&gt;
*** [[OpenMoko]] - The OpenMoko distribution&lt;br /&gt;
**** [[OpenMoko2007]] - The first intended release of it&lt;br /&gt;
**** [[Userspace root image]]&lt;br /&gt;
&lt;br /&gt;
==== 用户接口相关文档 ====&lt;br /&gt;
* [[Look &amp;amp; Feel]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
* [[Widgets]]&lt;br /&gt;
** [[Widget Inheritance Graph]]&lt;br /&gt;
&lt;br /&gt;
=== 其他开发相关文档 ===&lt;br /&gt;
* [[Templates]]&lt;br /&gt;
* [[PIM Storage]]&lt;br /&gt;
* [[Coding Guidelines]]&lt;br /&gt;
* [[How to run OpenMoko Apps on PC]]&lt;br /&gt;
* [[OpenMoko#Setting_up_an_OpenMoko_SDK|How to setup the OpenMoko SDK]]&lt;br /&gt;
* [[License]] - How we license our code&lt;br /&gt;
* [[Development resources]] - Describes the resources (lists, svn, ...)&lt;br /&gt;
* [[Neo1973 Phase 0]] -- Information for Phase 0 device owners&lt;br /&gt;
&lt;br /&gt;
== 管理/组织 ==&lt;br /&gt;
&lt;br /&gt;
* [[Shipping Notes]] - Information to help FIC how to ship products to you&lt;br /&gt;
* [[My Account]] - Ideas for what sort of account based services FIC should provide with the phone.&lt;br /&gt;
&lt;br /&gt;
== 其他 ==&lt;br /&gt;
* [[Neo1973 and Windows]] - If you want to commit that offence ;)&lt;br /&gt;
* [[Press Coverage]] - 媒体眼中的OpenMoko项目&lt;br /&gt;
* [[mFAQ]] - The OpenMoko Misinformation FAQ ('''mFAQ''') - What the press '''''incorrectly''''' says about the OpenMoko project&lt;br /&gt;
* [[Wish List]] - A collection of ideas and ideals we'd like to see implemented some day&lt;br /&gt;
* [[Wish List - Hardware]] - A collection of ideas we'd like to see in the next Neo release&lt;br /&gt;
* [[Media Content]] - What types of media on the device can we use (that is non-software)?&lt;br /&gt;
* [[Testimonials]] - How did you get to OpenMoko?&lt;br /&gt;
* [[Buying Interest List]] - (Not official and not a pre-order page) Have you have put money aside for Neo1973? Put your nick here.&lt;br /&gt;
* [[Style Sheet]] - The '''''correct''''' way to spell OpenMoko and other words&lt;br /&gt;
* [[iPhone]] - Apple iPhone和FIC Neo1973的比较&lt;br /&gt;
* [[Translation]] -  Translation of OpenMoko&lt;br /&gt;
&lt;br /&gt;
== FIC / OpenMoko at Events ==&lt;br /&gt;
&lt;br /&gt;
* [http://pingwinaria.linux.org.pl/PLUG/imprezy/pingwinaria/2007/agenda Pingwinaria 2007] - Krynica, Poland - 15-18 March 2007 - Tomasz Zieliński will give a talk about OpenMoko and Marcin Juszkiewicz will talk about OpenEmbedded&lt;br /&gt;
* [http://fostel2007.fostel.org/index.php/Main_Page FOSTEL] - Paris, France - 4-5 April 2007 - Sean Moss-Pultz will be there&lt;br /&gt;
&lt;br /&gt;
===Past Events===&lt;br /&gt;
* [[FOSDEM]] - Brussels, Belgium - 23 to 25 Februari 2007&lt;br /&gt;
* [[ETel]] - Tuesday, February 27 through Thursday, March 1, 2007, near San Francisco&lt;br /&gt;
* [http://www.linuxforum.dk/2007/ Linux Forum] - Copenhagen Denmark. 2.-3. March 2007. [http://www.linuxforum.dk/2007/program/saturday/Martin_Hansen.shtml Presentation] about OpenMoko on Saturday by Martin Hansen and Ole Tange.&lt;br /&gt;
&lt;br /&gt;
== 按目标读者分类 ==&lt;br /&gt;
&lt;br /&gt;
* [[Basic End-user/zh_cn|初级终端用户]] - Information for end users that want basic functionality and no surprises&lt;br /&gt;
* [[Advanced End-user/zh_cn|高级终端用户]] - Information for advanced end-users that want advanced and experimental functionality but who are not programmers&lt;br /&gt;
* [[Application Developer/zh_cn|应用程序开发人员]] - Information for application developers including ideas and specifications for applications, and tools to build them&lt;br /&gt;
* [[System Developer/zh_cn|系统开发人员]] - 针对系统开发人员的信息，包括引导装载程序，内核和程序库&lt;br /&gt;
* [[Hardware Developer/zh_cn|硬件开发人员]] - Information for the hardware developer including hardware specs, and debug board&lt;br /&gt;
&lt;br /&gt;
== 维基起步 ==&lt;br /&gt;
&lt;br /&gt;
* 请阅读我们的[[OpenMoko Wiki Editing Guidelines/zh_cn|OpenMoko维基编辑指南]]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference MediaWiki Wikitext Reference]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Languages|Main_Page}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/zh_cn</id>
		<title>Main Page/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/zh_cn"/>
				<updated>2007-03-07T09:16:42Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* Sections by target audience */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
  |__TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&amp;lt;big&amp;gt;'''欢迎来到OpenMoko公共维基'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;其他语言版本请看本页面[[#bottom|底部]]。&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
这是逐渐形成的，权威的[[Neo1973]]开发资源 -- 运行[[OpenMoko]]的GSM+[[Hardware:AGPS|AGPS]]智能手机。本维基的目的是协作改进和更新此站点上的所有信息。&lt;br /&gt;
&lt;br /&gt;
== 简介 ==&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/zh_cn|简介]] - OpenMoko是什么&lt;br /&gt;
** [[Introduction/zh_cn#照片|照片]]&lt;br /&gt;
** [[Introduction/zh_cn#视频|视频]]&lt;br /&gt;
* [[FAQ/zh_cn|常见问题与解答]]&lt;br /&gt;
&lt;br /&gt;
== 项目资源 ==&lt;br /&gt;
* [[Development resources/zh_cn|开发资源]] - 资源(邮件列表，svn， ...)&lt;br /&gt;
** [[Development resources/zh_cn#邮件列表|邮件列表]]&lt;br /&gt;
** [[Development resources/zh_cn#维基|维基]]&lt;br /&gt;
** [[Development resources/zh_cn#Bugzilla|Bugzilla]]&lt;br /&gt;
** [[Development resources/zh_cn#IRC频道|IRC频道]]&lt;br /&gt;
** [[Development resources/zh_cn#SVN|svn + svnweb]]&lt;br /&gt;
** [[Development resources/zh_cn#项目|项目]]&lt;br /&gt;
&lt;br /&gt;
== 开发者文档 ==&lt;br /&gt;
&lt;br /&gt;
=== 实践指南 ===&lt;br /&gt;
* [[Getting Started with your Neo1973]]&lt;br /&gt;
* [[MokoMakefile|Building OpenMoko using the MokoMakefile]] ([[MokoMakefile/ru|Rus]])&lt;br /&gt;
* [[Building OpenMoko from scratch (pre-BBT)]]&lt;br /&gt;
* [[Migration to bad block tolerant builds]]&lt;br /&gt;
* [[Getting Openmoko working on host with Xoo]]&lt;br /&gt;
&lt;br /&gt;
=== 硬件参考文档 ===&lt;br /&gt;
&lt;br /&gt;
* 所有[[Hardware/zh_cn|硬件]]相关文档和说明书&lt;br /&gt;
* [[Neo1973 Hardware|Neo1973硬件]] - 概观我们所使用的元件，PCB照片&lt;br /&gt;
** [[Disassembling Neo1973|拆解Neo1973]] - 一个硬件拆解的插图故事&lt;br /&gt;
* [[Debug Board|调试板]] - 针对Neo1973的调试板&lt;br /&gt;
** [[Connecting Neo1973 with Debug Board v2|连接Neo1973和调试板v2]]&lt;br /&gt;
* [[QT2410/zh_cn|QT2410]] - 一个我们在开发早期阶段所使用的S3C2410开发板&lt;br /&gt;
&lt;br /&gt;
=== 软件参考文档 ===&lt;br /&gt;
* 软件架构&lt;br /&gt;
** [[OpenMokoFramework]] - OpenMoko应用程序框架&lt;br /&gt;
* 主机端工具&lt;br /&gt;
** [[dfu-util/zh_cn|dfu-util]] - 主机端程序[[USB DFU]](Device Firmware Update)&lt;br /&gt;
** [[devirginator]] - A set of scripts to re-program the entire device&lt;br /&gt;
** [[sjf2410-linux]] - a JTAG NAND flashing program, last-resort phone un-bricking&lt;br /&gt;
** [[s3c2410_boot_usb]] - a program for transferring code to the RAM of QT2410 (not Neo1973)&lt;br /&gt;
** [[Toolchain]] - 我们用来进行程序编译的工具链&lt;br /&gt;
** [[Neo1973 OpenOCD]] - The On-Chip Debugger we use for development&lt;br /&gt;
** [[OpenEmbedded]] - The distribution building framework&lt;br /&gt;
* 设备软件&lt;br /&gt;
** 底层&lt;br /&gt;
*** [[u-boot/zh_cn|u-boot]] - 我们使用的引导装载程序，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
*** [[kernel]] - 我们使用的Linux内核，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
** 用户空间&lt;br /&gt;
*** [[gsmd]] - the GSM daemon managing the GSM Modem&lt;br /&gt;
*** [[gpsd]] - the AGPS (Assisted GPS) daemon&lt;br /&gt;
*** [[OpenMoko]] - The OpenMoko distribution&lt;br /&gt;
**** [[OpenMoko2007]] - The first intended release of it&lt;br /&gt;
**** [[Userspace root image]]&lt;br /&gt;
&lt;br /&gt;
==== 用户接口相关文档 ====&lt;br /&gt;
* [[Look &amp;amp; Feel]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
* [[Widgets]]&lt;br /&gt;
** [[Widget Inheritance Graph]]&lt;br /&gt;
&lt;br /&gt;
=== 其他开发相关文档 ===&lt;br /&gt;
* [[Templates]]&lt;br /&gt;
* [[PIM Storage]]&lt;br /&gt;
* [[Coding Guidelines]]&lt;br /&gt;
* [[How to run OpenMoko Apps on PC]]&lt;br /&gt;
* [[OpenMoko#Setting_up_an_OpenMoko_SDK|How to setup the OpenMoko SDK]]&lt;br /&gt;
* [[License]] - How we license our code&lt;br /&gt;
* [[Development resources]] - Describes the resources (lists, svn, ...)&lt;br /&gt;
* [[Neo1973 Phase 0]] -- Information for Phase 0 device owners&lt;br /&gt;
&lt;br /&gt;
== 管理/组织 ==&lt;br /&gt;
&lt;br /&gt;
* [[Shipping Notes]] - Information to help FIC how to ship products to you&lt;br /&gt;
* [[My Account]] - Ideas for what sort of account based services FIC should provide with the phone.&lt;br /&gt;
&lt;br /&gt;
== 其他 ==&lt;br /&gt;
* [[Neo1973 and Windows]] - If you want to commit that offence ;)&lt;br /&gt;
* [[Press Coverage]] - 媒体眼中的OpenMoko项目&lt;br /&gt;
* [[mFAQ]] - The OpenMoko Misinformation FAQ ('''mFAQ''') - What the press '''''incorrectly''''' says about the OpenMoko project&lt;br /&gt;
* [[Wish List]] - A collection of ideas and ideals we'd like to see implemented some day&lt;br /&gt;
* [[Wish List - Hardware]] - A collection of ideas we'd like to see in the next Neo release&lt;br /&gt;
* [[Media Content]] - What types of media on the device can we use (that is non-software)?&lt;br /&gt;
* [[Testimonials]] - How did you get to OpenMoko?&lt;br /&gt;
* [[Buying Interest List]] - (Not official and not a pre-order page) Have you have put money aside for Neo1973? Put your nick here.&lt;br /&gt;
* [[Style Sheet]] - The '''''correct''''' way to spell OpenMoko and other words&lt;br /&gt;
* [[iPhone]] - Apple iPhone和FIC Neo1973的比较&lt;br /&gt;
* [[Translation]] -  Translation of OpenMoko&lt;br /&gt;
&lt;br /&gt;
== FIC / OpenMoko at Events ==&lt;br /&gt;
&lt;br /&gt;
* [http://pingwinaria.linux.org.pl/PLUG/imprezy/pingwinaria/2007/agenda Pingwinaria 2007] - Krynica, Poland - 15-18 March 2007 - Tomasz Zieliński will give a talk about OpenMoko and Marcin Juszkiewicz will talk about OpenEmbedded&lt;br /&gt;
* [http://fostel2007.fostel.org/index.php/Main_Page FOSTEL] - Paris, France - 4-5 April 2007 - Sean Moss-Pultz will be there&lt;br /&gt;
&lt;br /&gt;
===Past Events===&lt;br /&gt;
* [[FOSDEM]] - Brussels, Belgium - 23 to 25 Februari 2007&lt;br /&gt;
* [[ETel]] - Tuesday, February 27 through Thursday, March 1, 2007, near San Francisco&lt;br /&gt;
* [http://www.linuxforum.dk/2007/ Linux Forum] - Copenhagen Denmark. 2.-3. March 2007. [http://www.linuxforum.dk/2007/program/saturday/Martin_Hansen.shtml Presentation] about OpenMoko on Saturday by Martin Hansen and Ole Tange.&lt;br /&gt;
&lt;br /&gt;
== 按目标读者分类 ==&lt;br /&gt;
&lt;br /&gt;
* [[Basic End-user/zh_cn|初级终端用户]] - Information for end users that want basic functionality and no surprises&lt;br /&gt;
* [[Advanced End-user/zh_cn|高级终端用户]] - Information for advanced end-users that want advanced and experimental functionality but who are not programmers&lt;br /&gt;
* [[Application Developer/zh_cn|应用程序开发人员]] - Information for application developers including ideas and specifications for applications, and tools to build them&lt;br /&gt;
* [[System Developer/zh_cn|系统开发人员]] - 针对系统开发人员的信息，包括引导装载程序，内核和程序库&lt;br /&gt;
* [[Hardware Developer/zh_cn|硬件开发人员]] - Information for the hardware developer including hardware specs, and debug board&lt;br /&gt;
&lt;br /&gt;
== 维基起步 ==&lt;br /&gt;
&lt;br /&gt;
* 请阅读我们的[[OpenMoko Wiki Editing Guidelines/zh_cn|OpenMoko维基编辑指南]]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference MediaWiki Wikitext Reference]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Languages|Main_Page}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/zh_cn</id>
		<title>Main Page/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/zh_cn"/>
				<updated>2007-03-07T09:11:51Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 简介 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
  |__TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&amp;lt;big&amp;gt;'''欢迎来到OpenMoko公共维基'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;其他语言版本请看本页面[[#bottom|底部]]。&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
这是逐渐形成的，权威的[[Neo1973]]开发资源 -- 运行[[OpenMoko]]的GSM+[[Hardware:AGPS|AGPS]]智能手机。本维基的目的是协作改进和更新此站点上的所有信息。&lt;br /&gt;
&lt;br /&gt;
== 简介 ==&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/zh_cn|简介]] - OpenMoko是什么&lt;br /&gt;
** [[Introduction/zh_cn#照片|照片]]&lt;br /&gt;
** [[Introduction/zh_cn#视频|视频]]&lt;br /&gt;
* [[FAQ/zh_cn|常见问题与解答]]&lt;br /&gt;
&lt;br /&gt;
== 项目资源 ==&lt;br /&gt;
* [[Development resources/zh_cn|开发资源]] - 资源(邮件列表，svn， ...)&lt;br /&gt;
** [[Development resources/zh_cn#邮件列表|邮件列表]]&lt;br /&gt;
** [[Development resources/zh_cn#维基|维基]]&lt;br /&gt;
** [[Development resources/zh_cn#Bugzilla|Bugzilla]]&lt;br /&gt;
** [[Development resources/zh_cn#IRC频道|IRC频道]]&lt;br /&gt;
** [[Development resources/zh_cn#SVN|svn + svnweb]]&lt;br /&gt;
** [[Development resources/zh_cn#项目|项目]]&lt;br /&gt;
&lt;br /&gt;
== 开发者文档 ==&lt;br /&gt;
&lt;br /&gt;
=== 实践指南 ===&lt;br /&gt;
* [[Getting Started with your Neo1973]]&lt;br /&gt;
* [[MokoMakefile|Building OpenMoko using the MokoMakefile]] ([[MokoMakefile/ru|Rus]])&lt;br /&gt;
* [[Building OpenMoko from scratch (pre-BBT)]]&lt;br /&gt;
* [[Migration to bad block tolerant builds]]&lt;br /&gt;
* [[Getting Openmoko working on host with Xoo]]&lt;br /&gt;
&lt;br /&gt;
=== 硬件参考文档 ===&lt;br /&gt;
&lt;br /&gt;
* 所有[[Hardware/zh_cn|硬件]]相关文档和说明书&lt;br /&gt;
* [[Neo1973 Hardware|Neo1973硬件]] - 概观我们所使用的元件，PCB照片&lt;br /&gt;
** [[Disassembling Neo1973|拆解Neo1973]] - 一个硬件拆解的插图故事&lt;br /&gt;
* [[Debug Board|调试板]] - 针对Neo1973的调试板&lt;br /&gt;
** [[Connecting Neo1973 with Debug Board v2|连接Neo1973和调试板v2]]&lt;br /&gt;
* [[QT2410/zh_cn|QT2410]] - 一个我们在开发早期阶段所使用的S3C2410开发板&lt;br /&gt;
&lt;br /&gt;
=== 软件参考文档 ===&lt;br /&gt;
* 软件架构&lt;br /&gt;
** [[OpenMokoFramework]] - OpenMoko应用程序框架&lt;br /&gt;
* 主机端工具&lt;br /&gt;
** [[dfu-util/zh_cn|dfu-util]] - 主机端程序[[USB DFU]](Device Firmware Update)&lt;br /&gt;
** [[devirginator]] - A set of scripts to re-program the entire device&lt;br /&gt;
** [[sjf2410-linux]] - a JTAG NAND flashing program, last-resort phone un-bricking&lt;br /&gt;
** [[s3c2410_boot_usb]] - a program for transferring code to the RAM of QT2410 (not Neo1973)&lt;br /&gt;
** [[Toolchain]] - 我们用来进行程序编译的工具链&lt;br /&gt;
** [[Neo1973 OpenOCD]] - The On-Chip Debugger we use for development&lt;br /&gt;
** [[OpenEmbedded]] - The distribution building framework&lt;br /&gt;
* 设备软件&lt;br /&gt;
** 底层&lt;br /&gt;
*** [[u-boot/zh_cn|u-boot]] - 我们使用的引导装载程序，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
*** [[kernel]] - 我们使用的Linux内核，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
** 用户空间&lt;br /&gt;
*** [[gsmd]] - the GSM daemon managing the GSM Modem&lt;br /&gt;
*** [[gpsd]] - the AGPS (Assisted GPS) daemon&lt;br /&gt;
*** [[OpenMoko]] - The OpenMoko distribution&lt;br /&gt;
**** [[OpenMoko2007]] - The first intended release of it&lt;br /&gt;
**** [[Userspace root image]]&lt;br /&gt;
&lt;br /&gt;
==== 用户接口相关文档 ====&lt;br /&gt;
* [[Look &amp;amp; Feel]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
* [[Widgets]]&lt;br /&gt;
** [[Widget Inheritance Graph]]&lt;br /&gt;
&lt;br /&gt;
=== 其他开发相关文档 ===&lt;br /&gt;
* [[Templates]]&lt;br /&gt;
* [[PIM Storage]]&lt;br /&gt;
* [[Coding Guidelines]]&lt;br /&gt;
* [[How to run OpenMoko Apps on PC]]&lt;br /&gt;
* [[OpenMoko#Setting_up_an_OpenMoko_SDK|How to setup the OpenMoko SDK]]&lt;br /&gt;
* [[License]] - How we license our code&lt;br /&gt;
* [[Development resources]] - Describes the resources (lists, svn, ...)&lt;br /&gt;
* [[Neo1973 Phase 0]] -- Information for Phase 0 device owners&lt;br /&gt;
&lt;br /&gt;
== 管理/组织 ==&lt;br /&gt;
&lt;br /&gt;
* [[Shipping Notes]] - Information to help FIC how to ship products to you&lt;br /&gt;
* [[My Account]] - Ideas for what sort of account based services FIC should provide with the phone.&lt;br /&gt;
&lt;br /&gt;
== 其他 ==&lt;br /&gt;
* [[Neo1973 and Windows]] - If you want to commit that offence ;)&lt;br /&gt;
* [[Press Coverage]] - 媒体眼中的OpenMoko项目&lt;br /&gt;
* [[mFAQ]] - The OpenMoko Misinformation FAQ ('''mFAQ''') - What the press '''''incorrectly''''' says about the OpenMoko project&lt;br /&gt;
* [[Wish List]] - A collection of ideas and ideals we'd like to see implemented some day&lt;br /&gt;
* [[Wish List - Hardware]] - A collection of ideas we'd like to see in the next Neo release&lt;br /&gt;
* [[Media Content]] - What types of media on the device can we use (that is non-software)?&lt;br /&gt;
* [[Testimonials]] - How did you get to OpenMoko?&lt;br /&gt;
* [[Buying Interest List]] - (Not official and not a pre-order page) Have you have put money aside for Neo1973? Put your nick here.&lt;br /&gt;
* [[Style Sheet]] - The '''''correct''''' way to spell OpenMoko and other words&lt;br /&gt;
* [[iPhone]] - Apple iPhone和FIC Neo1973的比较&lt;br /&gt;
* [[Translation]] -  Translation of OpenMoko&lt;br /&gt;
&lt;br /&gt;
== FIC / OpenMoko at Events ==&lt;br /&gt;
&lt;br /&gt;
* [http://pingwinaria.linux.org.pl/PLUG/imprezy/pingwinaria/2007/agenda Pingwinaria 2007] - Krynica, Poland - 15-18 March 2007 - Tomasz Zieliński will give a talk about OpenMoko and Marcin Juszkiewicz will talk about OpenEmbedded&lt;br /&gt;
* [http://fostel2007.fostel.org/index.php/Main_Page FOSTEL] - Paris, France - 4-5 April 2007 - Sean Moss-Pultz will be there&lt;br /&gt;
&lt;br /&gt;
===Past Events===&lt;br /&gt;
* [[FOSDEM]] - Brussels, Belgium - 23 to 25 Februari 2007&lt;br /&gt;
* [[ETel]] - Tuesday, February 27 through Thursday, March 1, 2007, near San Francisco&lt;br /&gt;
* [http://www.linuxforum.dk/2007/ Linux Forum] - Copenhagen Denmark. 2.-3. March 2007. [http://www.linuxforum.dk/2007/program/saturday/Martin_Hansen.shtml Presentation] about OpenMoko on Saturday by Martin Hansen and Ole Tange.&lt;br /&gt;
&lt;br /&gt;
== Sections by target audience ==&lt;br /&gt;
&lt;br /&gt;
* [[Basic End-user]] - Information for end users that want basic functionality and no surprises&lt;br /&gt;
* [[Advanced End-user]] - Information for advanced end-users that want advanced and experimental functionality but who are not programmers&lt;br /&gt;
* [[Application Developer]] - Information for application developers including ideas and specifications for applications, and tools to build them&lt;br /&gt;
* [[System Developer/zh_cn|系统开发人员]] - 针对系统开发人员的信息，包括引导装载程序，内核和程序库&lt;br /&gt;
* [[Hardware Developer]] - Information for the hardware developer including hardware specs, and debug board&lt;br /&gt;
&lt;br /&gt;
== 维基起步 ==&lt;br /&gt;
&lt;br /&gt;
* 请阅读我们的[[OpenMoko Wiki Editing Guidelines/zh_cn|OpenMoko维基编辑指南]]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference MediaWiki Wikitext Reference]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Languages|Main_Page}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/zh_cn</id>
		<title>Main Page/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/zh_cn"/>
				<updated>2007-03-07T09:10:57Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 硬件参考文档 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
  |__TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&amp;lt;big&amp;gt;'''欢迎来到OpenMoko公共维基'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;其他语言版本请看本页面[[#bottom|底部]]。&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
这是逐渐形成的，权威的[[Neo1973]]开发资源 -- 运行[[OpenMoko]]的GSM+[[Hardware:AGPS|AGPS]]智能手机。本维基的目的是协作改进和更新此站点上的所有信息。&lt;br /&gt;
&lt;br /&gt;
== 简介 ==&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/zh_cn|简介]] - OpenMoko是什么.&lt;br /&gt;
** [[Introduction/zh_cn#照片|照片]]&lt;br /&gt;
** [[Introduction/zh_cn#视频|视频]]&lt;br /&gt;
* [[FAQ/zh_cn|常见问题与解答]]&lt;br /&gt;
&lt;br /&gt;
== 项目资源 ==&lt;br /&gt;
* [[Development resources/zh_cn|开发资源]] - 资源(邮件列表，svn， ...)&lt;br /&gt;
** [[Development resources/zh_cn#邮件列表|邮件列表]]&lt;br /&gt;
** [[Development resources/zh_cn#维基|维基]]&lt;br /&gt;
** [[Development resources/zh_cn#Bugzilla|Bugzilla]]&lt;br /&gt;
** [[Development resources/zh_cn#IRC频道|IRC频道]]&lt;br /&gt;
** [[Development resources/zh_cn#SVN|svn + svnweb]]&lt;br /&gt;
** [[Development resources/zh_cn#项目|项目]]&lt;br /&gt;
&lt;br /&gt;
== 开发者文档 ==&lt;br /&gt;
&lt;br /&gt;
=== 实践指南 ===&lt;br /&gt;
* [[Getting Started with your Neo1973]]&lt;br /&gt;
* [[MokoMakefile|Building OpenMoko using the MokoMakefile]] ([[MokoMakefile/ru|Rus]])&lt;br /&gt;
* [[Building OpenMoko from scratch (pre-BBT)]]&lt;br /&gt;
* [[Migration to bad block tolerant builds]]&lt;br /&gt;
* [[Getting Openmoko working on host with Xoo]]&lt;br /&gt;
&lt;br /&gt;
=== 硬件参考文档 ===&lt;br /&gt;
&lt;br /&gt;
* 所有[[Hardware/zh_cn|硬件]]相关文档和说明书&lt;br /&gt;
* [[Neo1973 Hardware|Neo1973硬件]] - 概观我们所使用的元件，PCB照片&lt;br /&gt;
** [[Disassembling Neo1973|拆解Neo1973]] - 一个硬件拆解的插图故事&lt;br /&gt;
* [[Debug Board|调试板]] - 针对Neo1973的调试板&lt;br /&gt;
** [[Connecting Neo1973 with Debug Board v2|连接Neo1973和调试板v2]]&lt;br /&gt;
* [[QT2410/zh_cn|QT2410]] - 一个我们在开发早期阶段所使用的S3C2410开发板&lt;br /&gt;
&lt;br /&gt;
=== 软件参考文档 ===&lt;br /&gt;
* 软件架构&lt;br /&gt;
** [[OpenMokoFramework]] - OpenMoko应用程序框架&lt;br /&gt;
* 主机端工具&lt;br /&gt;
** [[dfu-util/zh_cn|dfu-util]] - 主机端程序[[USB DFU]](Device Firmware Update)&lt;br /&gt;
** [[devirginator]] - A set of scripts to re-program the entire device&lt;br /&gt;
** [[sjf2410-linux]] - a JTAG NAND flashing program, last-resort phone un-bricking&lt;br /&gt;
** [[s3c2410_boot_usb]] - a program for transferring code to the RAM of QT2410 (not Neo1973)&lt;br /&gt;
** [[Toolchain]] - 我们用来进行程序编译的工具链&lt;br /&gt;
** [[Neo1973 OpenOCD]] - The On-Chip Debugger we use for development&lt;br /&gt;
** [[OpenEmbedded]] - The distribution building framework&lt;br /&gt;
* 设备软件&lt;br /&gt;
** 底层&lt;br /&gt;
*** [[u-boot/zh_cn|u-boot]] - 我们使用的引导装载程序，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
*** [[kernel]] - 我们使用的Linux内核，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
** 用户空间&lt;br /&gt;
*** [[gsmd]] - the GSM daemon managing the GSM Modem&lt;br /&gt;
*** [[gpsd]] - the AGPS (Assisted GPS) daemon&lt;br /&gt;
*** [[OpenMoko]] - The OpenMoko distribution&lt;br /&gt;
**** [[OpenMoko2007]] - The first intended release of it&lt;br /&gt;
**** [[Userspace root image]]&lt;br /&gt;
&lt;br /&gt;
==== 用户接口相关文档 ====&lt;br /&gt;
* [[Look &amp;amp; Feel]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
* [[Widgets]]&lt;br /&gt;
** [[Widget Inheritance Graph]]&lt;br /&gt;
&lt;br /&gt;
=== 其他开发相关文档 ===&lt;br /&gt;
* [[Templates]]&lt;br /&gt;
* [[PIM Storage]]&lt;br /&gt;
* [[Coding Guidelines]]&lt;br /&gt;
* [[How to run OpenMoko Apps on PC]]&lt;br /&gt;
* [[OpenMoko#Setting_up_an_OpenMoko_SDK|How to setup the OpenMoko SDK]]&lt;br /&gt;
* [[License]] - How we license our code&lt;br /&gt;
* [[Development resources]] - Describes the resources (lists, svn, ...)&lt;br /&gt;
* [[Neo1973 Phase 0]] -- Information for Phase 0 device owners&lt;br /&gt;
&lt;br /&gt;
== 管理/组织 ==&lt;br /&gt;
&lt;br /&gt;
* [[Shipping Notes]] - Information to help FIC how to ship products to you&lt;br /&gt;
* [[My Account]] - Ideas for what sort of account based services FIC should provide with the phone.&lt;br /&gt;
&lt;br /&gt;
== 其他 ==&lt;br /&gt;
* [[Neo1973 and Windows]] - If you want to commit that offence ;)&lt;br /&gt;
* [[Press Coverage]] - 媒体眼中的OpenMoko项目&lt;br /&gt;
* [[mFAQ]] - The OpenMoko Misinformation FAQ ('''mFAQ''') - What the press '''''incorrectly''''' says about the OpenMoko project&lt;br /&gt;
* [[Wish List]] - A collection of ideas and ideals we'd like to see implemented some day&lt;br /&gt;
* [[Wish List - Hardware]] - A collection of ideas we'd like to see in the next Neo release&lt;br /&gt;
* [[Media Content]] - What types of media on the device can we use (that is non-software)?&lt;br /&gt;
* [[Testimonials]] - How did you get to OpenMoko?&lt;br /&gt;
* [[Buying Interest List]] - (Not official and not a pre-order page) Have you have put money aside for Neo1973? Put your nick here.&lt;br /&gt;
* [[Style Sheet]] - The '''''correct''''' way to spell OpenMoko and other words&lt;br /&gt;
* [[iPhone]] - Apple iPhone和FIC Neo1973的比较&lt;br /&gt;
* [[Translation]] -  Translation of OpenMoko&lt;br /&gt;
&lt;br /&gt;
== FIC / OpenMoko at Events ==&lt;br /&gt;
&lt;br /&gt;
* [http://pingwinaria.linux.org.pl/PLUG/imprezy/pingwinaria/2007/agenda Pingwinaria 2007] - Krynica, Poland - 15-18 March 2007 - Tomasz Zieliński will give a talk about OpenMoko and Marcin Juszkiewicz will talk about OpenEmbedded&lt;br /&gt;
* [http://fostel2007.fostel.org/index.php/Main_Page FOSTEL] - Paris, France - 4-5 April 2007 - Sean Moss-Pultz will be there&lt;br /&gt;
&lt;br /&gt;
===Past Events===&lt;br /&gt;
* [[FOSDEM]] - Brussels, Belgium - 23 to 25 Februari 2007&lt;br /&gt;
* [[ETel]] - Tuesday, February 27 through Thursday, March 1, 2007, near San Francisco&lt;br /&gt;
* [http://www.linuxforum.dk/2007/ Linux Forum] - Copenhagen Denmark. 2.-3. March 2007. [http://www.linuxforum.dk/2007/program/saturday/Martin_Hansen.shtml Presentation] about OpenMoko on Saturday by Martin Hansen and Ole Tange.&lt;br /&gt;
&lt;br /&gt;
== Sections by target audience ==&lt;br /&gt;
&lt;br /&gt;
* [[Basic End-user]] - Information for end users that want basic functionality and no surprises&lt;br /&gt;
* [[Advanced End-user]] - Information for advanced end-users that want advanced and experimental functionality but who are not programmers&lt;br /&gt;
* [[Application Developer]] - Information for application developers including ideas and specifications for applications, and tools to build them&lt;br /&gt;
* [[System Developer/zh_cn|系统开发人员]] - 针对系统开发人员的信息，包括引导装载程序，内核和程序库&lt;br /&gt;
* [[Hardware Developer]] - Information for the hardware developer including hardware specs, and debug board&lt;br /&gt;
&lt;br /&gt;
== 维基起步 ==&lt;br /&gt;
&lt;br /&gt;
* 请阅读我们的[[OpenMoko Wiki Editing Guidelines/zh_cn|OpenMoko维基编辑指南]]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference MediaWiki Wikitext Reference]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Languages|Main_Page}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/zh_cn</id>
		<title>Main Page/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/zh_cn"/>
				<updated>2007-03-07T09:05:27Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 硬件参考文档 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
  |__TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&amp;lt;big&amp;gt;'''欢迎来到OpenMoko公共维基'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;其他语言版本请看本页面[[#bottom|底部]]。&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
这是逐渐形成的，权威的[[Neo1973]]开发资源 -- 运行[[OpenMoko]]的GSM+[[Hardware:AGPS|AGPS]]智能手机。本维基的目的是协作改进和更新此站点上的所有信息。&lt;br /&gt;
&lt;br /&gt;
== 简介 ==&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/zh_cn|简介]] - OpenMoko是什么.&lt;br /&gt;
** [[Introduction/zh_cn#照片|照片]]&lt;br /&gt;
** [[Introduction/zh_cn#视频|视频]]&lt;br /&gt;
* [[FAQ/zh_cn|常见问题与解答]]&lt;br /&gt;
&lt;br /&gt;
== 项目资源 ==&lt;br /&gt;
* [[Development resources/zh_cn|开发资源]] - 资源(邮件列表，svn， ...)&lt;br /&gt;
** [[Development resources/zh_cn#邮件列表|邮件列表]]&lt;br /&gt;
** [[Development resources/zh_cn#维基|维基]]&lt;br /&gt;
** [[Development resources/zh_cn#Bugzilla|Bugzilla]]&lt;br /&gt;
** [[Development resources/zh_cn#IRC频道|IRC频道]]&lt;br /&gt;
** [[Development resources/zh_cn#SVN|svn + svnweb]]&lt;br /&gt;
** [[Development resources/zh_cn#项目|项目]]&lt;br /&gt;
&lt;br /&gt;
== 开发者文档 ==&lt;br /&gt;
&lt;br /&gt;
=== 实践指南 ===&lt;br /&gt;
* [[Getting Started with your Neo1973]]&lt;br /&gt;
* [[MokoMakefile|Building OpenMoko using the MokoMakefile]] ([[MokoMakefile/ru|Rus]])&lt;br /&gt;
* [[Building OpenMoko from scratch (pre-BBT)]]&lt;br /&gt;
* [[Migration to bad block tolerant builds]]&lt;br /&gt;
* [[Getting Openmoko working on host with Xoo]]&lt;br /&gt;
&lt;br /&gt;
=== 硬件参考文档 ===&lt;br /&gt;
&lt;br /&gt;
* 所有[[Hardware/zh_cn|硬件]]相关文档和说明书&lt;br /&gt;
* [[Neo1973 Hardware]] - Overview about the Components we use, PCB Photographs&lt;br /&gt;
** [[Disassembling Neo1973]] - A photo story about disassembling the hardware&lt;br /&gt;
* [[Debug Board|调试板]] - 针对Neo1973的调试板&lt;br /&gt;
** [[Connecting Neo1973 with Debug Board v2|连接Neo1973和调试板v2]]&lt;br /&gt;
* [[QT2410/zh_cn|QT2410]] - 一个我们在开发早期阶段所使用的S3C2410开发板&lt;br /&gt;
&lt;br /&gt;
=== 软件参考文档 ===&lt;br /&gt;
* 软件架构&lt;br /&gt;
** [[OpenMokoFramework]] - OpenMoko应用程序框架&lt;br /&gt;
* 主机端工具&lt;br /&gt;
** [[dfu-util/zh_cn|dfu-util]] - 主机端程序[[USB DFU]](Device Firmware Update)&lt;br /&gt;
** [[devirginator]] - A set of scripts to re-program the entire device&lt;br /&gt;
** [[sjf2410-linux]] - a JTAG NAND flashing program, last-resort phone un-bricking&lt;br /&gt;
** [[s3c2410_boot_usb]] - a program for transferring code to the RAM of QT2410 (not Neo1973)&lt;br /&gt;
** [[Toolchain]] - 我们用来进行程序编译的工具链&lt;br /&gt;
** [[Neo1973 OpenOCD]] - The On-Chip Debugger we use for development&lt;br /&gt;
** [[OpenEmbedded]] - The distribution building framework&lt;br /&gt;
* 设备软件&lt;br /&gt;
** 底层&lt;br /&gt;
*** [[u-boot/zh_cn|u-boot]] - 我们使用的引导装载程序，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
*** [[kernel]] - 我们使用的Linux内核，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
** 用户空间&lt;br /&gt;
*** [[gsmd]] - the GSM daemon managing the GSM Modem&lt;br /&gt;
*** [[gpsd]] - the AGPS (Assisted GPS) daemon&lt;br /&gt;
*** [[OpenMoko]] - The OpenMoko distribution&lt;br /&gt;
**** [[OpenMoko2007]] - The first intended release of it&lt;br /&gt;
**** [[Userspace root image]]&lt;br /&gt;
&lt;br /&gt;
==== 用户接口相关文档 ====&lt;br /&gt;
* [[Look &amp;amp; Feel]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
* [[Widgets]]&lt;br /&gt;
** [[Widget Inheritance Graph]]&lt;br /&gt;
&lt;br /&gt;
=== 其他开发相关文档 ===&lt;br /&gt;
* [[Templates]]&lt;br /&gt;
* [[PIM Storage]]&lt;br /&gt;
* [[Coding Guidelines]]&lt;br /&gt;
* [[How to run OpenMoko Apps on PC]]&lt;br /&gt;
* [[OpenMoko#Setting_up_an_OpenMoko_SDK|How to setup the OpenMoko SDK]]&lt;br /&gt;
* [[License]] - How we license our code&lt;br /&gt;
* [[Development resources]] - Describes the resources (lists, svn, ...)&lt;br /&gt;
* [[Neo1973 Phase 0]] -- Information for Phase 0 device owners&lt;br /&gt;
&lt;br /&gt;
== 管理/组织 ==&lt;br /&gt;
&lt;br /&gt;
* [[Shipping Notes]] - Information to help FIC how to ship products to you&lt;br /&gt;
* [[My Account]] - Ideas for what sort of account based services FIC should provide with the phone.&lt;br /&gt;
&lt;br /&gt;
== 其他 ==&lt;br /&gt;
* [[Neo1973 and Windows]] - If you want to commit that offence ;)&lt;br /&gt;
* [[Press Coverage]] - 媒体眼中的OpenMoko项目&lt;br /&gt;
* [[mFAQ]] - The OpenMoko Misinformation FAQ ('''mFAQ''') - What the press '''''incorrectly''''' says about the OpenMoko project&lt;br /&gt;
* [[Wish List]] - A collection of ideas and ideals we'd like to see implemented some day&lt;br /&gt;
* [[Wish List - Hardware]] - A collection of ideas we'd like to see in the next Neo release&lt;br /&gt;
* [[Media Content]] - What types of media on the device can we use (that is non-software)?&lt;br /&gt;
* [[Testimonials]] - How did you get to OpenMoko?&lt;br /&gt;
* [[Buying Interest List]] - (Not official and not a pre-order page) Have you have put money aside for Neo1973? Put your nick here.&lt;br /&gt;
* [[Style Sheet]] - The '''''correct''''' way to spell OpenMoko and other words&lt;br /&gt;
* [[iPhone]] - Apple iPhone和FIC Neo1973的比较&lt;br /&gt;
* [[Translation]] -  Translation of OpenMoko&lt;br /&gt;
&lt;br /&gt;
== FIC / OpenMoko at Events ==&lt;br /&gt;
&lt;br /&gt;
* [http://pingwinaria.linux.org.pl/PLUG/imprezy/pingwinaria/2007/agenda Pingwinaria 2007] - Krynica, Poland - 15-18 March 2007 - Tomasz Zieliński will give a talk about OpenMoko and Marcin Juszkiewicz will talk about OpenEmbedded&lt;br /&gt;
* [http://fostel2007.fostel.org/index.php/Main_Page FOSTEL] - Paris, France - 4-5 April 2007 - Sean Moss-Pultz will be there&lt;br /&gt;
&lt;br /&gt;
===Past Events===&lt;br /&gt;
* [[FOSDEM]] - Brussels, Belgium - 23 to 25 Februari 2007&lt;br /&gt;
* [[ETel]] - Tuesday, February 27 through Thursday, March 1, 2007, near San Francisco&lt;br /&gt;
* [http://www.linuxforum.dk/2007/ Linux Forum] - Copenhagen Denmark. 2.-3. March 2007. [http://www.linuxforum.dk/2007/program/saturday/Martin_Hansen.shtml Presentation] about OpenMoko on Saturday by Martin Hansen and Ole Tange.&lt;br /&gt;
&lt;br /&gt;
== Sections by target audience ==&lt;br /&gt;
&lt;br /&gt;
* [[Basic End-user]] - Information for end users that want basic functionality and no surprises&lt;br /&gt;
* [[Advanced End-user]] - Information for advanced end-users that want advanced and experimental functionality but who are not programmers&lt;br /&gt;
* [[Application Developer]] - Information for application developers including ideas and specifications for applications, and tools to build them&lt;br /&gt;
* [[System Developer/zh_cn|系统开发人员]] - 针对系统开发人员的信息，包括引导装载程序，内核和程序库&lt;br /&gt;
* [[Hardware Developer]] - Information for the hardware developer including hardware specs, and debug board&lt;br /&gt;
&lt;br /&gt;
== 维基起步 ==&lt;br /&gt;
&lt;br /&gt;
* 请阅读我们的[[OpenMoko Wiki Editing Guidelines/zh_cn|OpenMoko维基编辑指南]]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference MediaWiki Wikitext Reference]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Languages|Main_Page}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/QT2410/zh_cn</id>
		<title>QT2410/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/QT2410/zh_cn"/>
				<updated>2007-03-07T09:01:30Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Armzone QT2410&lt;br /&gt;
&lt;br /&gt;
The armzone.com qt2410 is a 90% compatible chinese remake of Samsungs SMDK2410.  Unfortunately it's only 90% compatible, not 100% - and those 10% difference are only marginally documented.&lt;br /&gt;
&lt;br /&gt;
== 概述 ==&lt;br /&gt;
&lt;br /&gt;
The QT2410 consists of a Mainboard and a &amp;quot;Kernel board&amp;quot;.  The kernel board is plugged into a 144pin SD Card socket.&lt;br /&gt;
&lt;br /&gt;
== Boot Selection ==&lt;br /&gt;
&lt;br /&gt;
The QT2410 has a 512kByte NOR flash located on the mainboard (SST39VF400A) plus a 64MB NAND flash located on the kernel board (Samsung K9F1208U0B).  The kernel board features a small switch to select whether to boot from NAND or to boot from NOR.&lt;br /&gt;
&lt;br /&gt;
== USB Downloader in NOR ==&lt;br /&gt;
&lt;br /&gt;
The NOR flash is pre-programmed with a small program called &amp;quot;S3C2410X USB Downloader ver 0.2&amp;quot;.  This program listens on the usb device port for some software download.  After the download has finished, it will jump to the code it has just downloaded.&lt;br /&gt;
&lt;br /&gt;
The original QT2410 ships some bogus windows program to send software to the board.  [[User:HaraldWelte]] has written some code called [[s3c2410_boot_usb]] to interface the USB downloader from a Linux host.&lt;br /&gt;
&lt;br /&gt;
== JTAG flashing ==&lt;br /&gt;
&lt;br /&gt;
The NAND and NOR flash can be flashed via JTAG.  This is discouraged by all means, since it is extremely time-consuming. Samsung / Armzone ship (again) a windows based program for flashing, called sjf2410.&lt;br /&gt;
[[User:HaraldWelte]] has done a Linux port of sjf2410, called [[sjf2410-linux]].  Using it you can re-program the [[Bootloader]] into NAND in case something strange happened.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Memory Layout ==&lt;br /&gt;
&lt;br /&gt;
=== NAND ===&lt;br /&gt;
The 64MB NAND Flash is partitioned as follows:&lt;br /&gt;
&lt;br /&gt;
 0x00000000: u-boot, 196kByte (can shrink later, lots of debug code)&lt;br /&gt;
 0x00030000: u-boot environment, 16kByte (cannot shrink, 16k erase size of NAND)&lt;br /&gt;
 0x00034000: kernel, 2MB (0x200000 bytes)&lt;br /&gt;
 0x00234000: initrd, 4MB (0x400000 bytes)&lt;br /&gt;
 0x00634000: jffs2, 59,184kB (0x39cc000 bytes)&lt;br /&gt;
 0x03ffffff: end&lt;br /&gt;
&lt;br /&gt;
=== Physical ===&lt;br /&gt;
&lt;br /&gt;
 0x00000000: [[S3C2410 Steppingstone]]&lt;br /&gt;
 0x19000300: CS8900A Ethernet&lt;br /&gt;
 0x30000000: SDRAM start&lt;br /&gt;
 0x30000100: Arm-Tag &amp;quot;ATAG&amp;quot; structure passing from bootloader to kernel&lt;br /&gt;
 0x30008000: Default load address for decompressed kernel&lt;br /&gt;
 0x32000000: Default load address for compressed kernel u-boot image&lt;br /&gt;
 0x33d00000: Default frame buffer start address&lt;br /&gt;
 0x33d4b000: Default frame buffer end address (240x320, 16bpp)&lt;br /&gt;
 0x33f5f000: MALLOC_BASE of u-boot&lt;br /&gt;
 0x33f80000: TEXT_BASE of u-boot&lt;br /&gt;
 0x33ffffff: End of RAM&lt;br /&gt;
{{Languages|QT2410}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/QT2410/zh_cn</id>
		<title>QT2410/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/QT2410/zh_cn"/>
				<updated>2007-03-07T08:58:30Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: Create QT2410/zh_cn for future editing.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|QT2410}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/S3C2410_Steppingstone/zh_cn</id>
		<title>S3C2410 Steppingstone/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/S3C2410_Steppingstone/zh_cn"/>
				<updated>2007-03-07T08:55:11Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;S3C2410 Steppingstone是一个能够使得S3C2410直接从NAND闪存引导的特殊的4KB大缓冲区。&lt;br /&gt;
&lt;br /&gt;
Basically some hidden microcode in the S3C2410 takes care of copying the first 4KB of NAND flash into RAM, and re-mapping the first SDRAM page from 0x30000000 to 0x00000000.&lt;br /&gt;
&lt;br /&gt;
The bootloader then needs to have some code to load the remaining bootloader code from NAND before executing itself.&lt;br /&gt;
{{Languages|S3C2410_Steppingstone}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/zh_cn</id>
		<title>Main Page/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/zh_cn"/>
				<updated>2007-03-07T08:52:23Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 软件参考文档 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
  |__TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&amp;lt;big&amp;gt;'''欢迎来到OpenMoko公共维基'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;其他语言版本请看本页面[[#bottom|底部]]。&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
这是逐渐形成的，权威的[[Neo1973]]开发资源 -- 运行[[OpenMoko]]的GSM+[[Hardware:AGPS|AGPS]]智能手机。本维基的目的是协作改进和更新此站点上的所有信息。&lt;br /&gt;
&lt;br /&gt;
== 简介 ==&lt;br /&gt;
&lt;br /&gt;
* [[Introduction/zh_cn|简介]] - OpenMoko是什么.&lt;br /&gt;
** [[Introduction/zh_cn#照片|照片]]&lt;br /&gt;
** [[Introduction/zh_cn#视频|视频]]&lt;br /&gt;
* [[FAQ/zh_cn|常见问题与解答]]&lt;br /&gt;
&lt;br /&gt;
== 项目资源 ==&lt;br /&gt;
* [[Development resources/zh_cn|开发资源]] - 资源(邮件列表，svn， ...)&lt;br /&gt;
** [[Development resources/zh_cn#邮件列表|邮件列表]]&lt;br /&gt;
** [[Development resources/zh_cn#维基|维基]]&lt;br /&gt;
** [[Development resources/zh_cn#Bugzilla|Bugzilla]]&lt;br /&gt;
** [[Development resources/zh_cn#IRC频道|IRC频道]]&lt;br /&gt;
** [[Development resources/zh_cn#SVN|svn + svnweb]]&lt;br /&gt;
** [[Development resources/zh_cn#项目|项目]]&lt;br /&gt;
&lt;br /&gt;
== 开发者文档 ==&lt;br /&gt;
&lt;br /&gt;
=== 实践指南 ===&lt;br /&gt;
* [[Getting Started with your Neo1973]]&lt;br /&gt;
* [[MokoMakefile|Building OpenMoko using the MokoMakefile]] ([[MokoMakefile/ru|Rus]])&lt;br /&gt;
* [[Building OpenMoko from scratch (pre-BBT)]]&lt;br /&gt;
* [[Migration to bad block tolerant builds]]&lt;br /&gt;
* [[Getting Openmoko working on host with Xoo]]&lt;br /&gt;
&lt;br /&gt;
=== 硬件参考文档 ===&lt;br /&gt;
&lt;br /&gt;
* 所有[[Hardware/zh_cn|硬件]]相关文档和说明书&lt;br /&gt;
* [[Neo1973 Hardware]] - Overview about the Components we use, PCB Photographs&lt;br /&gt;
** [[Disassembling Neo1973]] - A photo story about disassembling the hardware&lt;br /&gt;
* [[Debug Board]] - The Debug Board for the Neo1973&lt;br /&gt;
** [[Connecting Neo1973 with Debug Board v2]]&lt;br /&gt;
* [[QT2410]] - A S3C2410 development board that we used during early development&lt;br /&gt;
&lt;br /&gt;
=== 软件参考文档 ===&lt;br /&gt;
* 软件架构&lt;br /&gt;
** [[OpenMokoFramework]] - OpenMoko应用程序框架&lt;br /&gt;
* 主机端工具&lt;br /&gt;
** [[dfu-util/zh_cn|dfu-util]] - 主机端程序[[USB DFU]](Device Firmware Update)&lt;br /&gt;
** [[devirginator]] - A set of scripts to re-program the entire device&lt;br /&gt;
** [[sjf2410-linux]] - a JTAG NAND flashing program, last-resort phone un-bricking&lt;br /&gt;
** [[s3c2410_boot_usb]] - a program for transferring code to the RAM of QT2410 (not Neo1973)&lt;br /&gt;
** [[Toolchain]] - 我们用来进行程序编译的工具链&lt;br /&gt;
** [[Neo1973 OpenOCD]] - The On-Chip Debugger we use for development&lt;br /&gt;
** [[OpenEmbedded]] - The distribution building framework&lt;br /&gt;
* 设备软件&lt;br /&gt;
** 底层&lt;br /&gt;
*** [[u-boot/zh_cn|u-boot]] - 我们使用的引导装载程序，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
*** [[kernel]] - 我们使用的Linux内核，包括针对我们所做的修改部分的一些文档&lt;br /&gt;
** 用户空间&lt;br /&gt;
*** [[gsmd]] - the GSM daemon managing the GSM Modem&lt;br /&gt;
*** [[gpsd]] - the AGPS (Assisted GPS) daemon&lt;br /&gt;
*** [[OpenMoko]] - The OpenMoko distribution&lt;br /&gt;
**** [[OpenMoko2007]] - The first intended release of it&lt;br /&gt;
**** [[Userspace root image]]&lt;br /&gt;
&lt;br /&gt;
==== 用户接口相关文档 ====&lt;br /&gt;
* [[Look &amp;amp; Feel]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
* [[Widgets]]&lt;br /&gt;
** [[Widget Inheritance Graph]]&lt;br /&gt;
&lt;br /&gt;
=== 其他开发相关文档 ===&lt;br /&gt;
* [[Templates]]&lt;br /&gt;
* [[PIM Storage]]&lt;br /&gt;
* [[Coding Guidelines]]&lt;br /&gt;
* [[How to run OpenMoko Apps on PC]]&lt;br /&gt;
* [[OpenMoko#Setting_up_an_OpenMoko_SDK|How to setup the OpenMoko SDK]]&lt;br /&gt;
* [[License]] - How we license our code&lt;br /&gt;
* [[Development resources]] - Describes the resources (lists, svn, ...)&lt;br /&gt;
* [[Neo1973 Phase 0]] -- Information for Phase 0 device owners&lt;br /&gt;
&lt;br /&gt;
== 管理/组织 ==&lt;br /&gt;
&lt;br /&gt;
* [[Shipping Notes]] - Information to help FIC how to ship products to you&lt;br /&gt;
* [[My Account]] - Ideas for what sort of account based services FIC should provide with the phone.&lt;br /&gt;
&lt;br /&gt;
== 其他 ==&lt;br /&gt;
* [[Neo1973 and Windows]] - If you want to commit that offence ;)&lt;br /&gt;
* [[Press Coverage]] - 媒体眼中的OpenMoko项目&lt;br /&gt;
* [[mFAQ]] - The OpenMoko Misinformation FAQ ('''mFAQ''') - What the press '''''incorrectly''''' says about the OpenMoko project&lt;br /&gt;
* [[Wish List]] - A collection of ideas and ideals we'd like to see implemented some day&lt;br /&gt;
* [[Wish List - Hardware]] - A collection of ideas we'd like to see in the next Neo release&lt;br /&gt;
* [[Media Content]] - What types of media on the device can we use (that is non-software)?&lt;br /&gt;
* [[Testimonials]] - How did you get to OpenMoko?&lt;br /&gt;
* [[Buying Interest List]] - (Not official and not a pre-order page) Have you have put money aside for Neo1973? Put your nick here.&lt;br /&gt;
* [[Style Sheet]] - The '''''correct''''' way to spell OpenMoko and other words&lt;br /&gt;
* [[iPhone]] - Apple iPhone和FIC Neo1973的比较&lt;br /&gt;
* [[Translation]] -  Translation of OpenMoko&lt;br /&gt;
&lt;br /&gt;
== FIC / OpenMoko at Events ==&lt;br /&gt;
&lt;br /&gt;
* [http://pingwinaria.linux.org.pl/PLUG/imprezy/pingwinaria/2007/agenda Pingwinaria 2007] - Krynica, Poland - 15-18 March 2007 - Tomasz Zieliński will give a talk about OpenMoko and Marcin Juszkiewicz will talk about OpenEmbedded&lt;br /&gt;
* [http://fostel2007.fostel.org/index.php/Main_Page FOSTEL] - Paris, France - 4-5 April 2007 - Sean Moss-Pultz will be there&lt;br /&gt;
&lt;br /&gt;
===Past Events===&lt;br /&gt;
* [[FOSDEM]] - Brussels, Belgium - 23 to 25 Februari 2007&lt;br /&gt;
* [[ETel]] - Tuesday, February 27 through Thursday, March 1, 2007, near San Francisco&lt;br /&gt;
* [http://www.linuxforum.dk/2007/ Linux Forum] - Copenhagen Denmark. 2.-3. March 2007. [http://www.linuxforum.dk/2007/program/saturday/Martin_Hansen.shtml Presentation] about OpenMoko on Saturday by Martin Hansen and Ole Tange.&lt;br /&gt;
&lt;br /&gt;
== Sections by target audience ==&lt;br /&gt;
&lt;br /&gt;
* [[Basic End-user]] - Information for end users that want basic functionality and no surprises&lt;br /&gt;
* [[Advanced End-user]] - Information for advanced end-users that want advanced and experimental functionality but who are not programmers&lt;br /&gt;
* [[Application Developer]] - Information for application developers including ideas and specifications for applications, and tools to build them&lt;br /&gt;
* [[System Developer/zh_cn|系统开发人员]] - 针对系统开发人员的信息，包括引导装载程序，内核和程序库&lt;br /&gt;
* [[Hardware Developer]] - Information for the hardware developer including hardware specs, and debug board&lt;br /&gt;
&lt;br /&gt;
== 维基起步 ==&lt;br /&gt;
&lt;br /&gt;
* 请阅读我们的[[OpenMoko Wiki Editing Guidelines/zh_cn|OpenMoko维基编辑指南]]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference MediaWiki Wikitext Reference]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Languages|Main_Page}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/U-Boot/zh_cn</id>
		<title>U-Boot/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/U-Boot/zh_cn"/>
				<updated>2007-03-07T08:45:51Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 概述 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Uboot-s3c2410fb.jpg|thumb|300px|Neo1973控制台上的u-boot]] [[Image:Neo1973 uboot splash closeup.jpg|thumb|300px|Neo1973上的u-boot引导菜单]]&lt;br /&gt;
&lt;br /&gt;
== 概述 ==&lt;br /&gt;
&lt;br /&gt;
GTA01使用了[http://u-boot.sourceforge.net/ u-boot]引导装载程序。&lt;br /&gt;
&lt;br /&gt;
关于u-boot的更多信息可以在下列地方找到&lt;br /&gt;
* http://www.denx.de/wiki/DULG&lt;br /&gt;
* http://www.gumstix.org/tikiwiki/tiki-index.php?page=U-Boot&lt;br /&gt;
* http://linuxdevices.com/articles/AT5085702347.html&lt;br /&gt;
&lt;br /&gt;
但是，未经修改的u-boot不支持GTA01所需要的许多特性，比如&lt;br /&gt;
* 利用[[S3C2410 Steppingstone/zh_cn|S3C2410 Steppingstone]]从NAND闪存启动&lt;br /&gt;
* 从SD/Transflash读取内核/initrd&lt;br /&gt;
* S3C2410 NAND闪存&lt;br /&gt;
* 通过S3C2410 USB Device控制器下载程序&lt;br /&gt;
* S3C2410 Framebuffer启动logo/状态显示&lt;br /&gt;
&lt;br /&gt;
[[User:HaraldWelte|Harald Welte]]正在为这些解决问题而工作，并且实际上它们中的大多数已经得到了实现。&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序源代码 ==&lt;br /&gt;
&lt;br /&gt;
The current bootloader patches can be found at http://svn.openmoko.org/trunk/src/target/u-boot/patches/. &lt;br /&gt;
&lt;br /&gt;
Untar the sources, apply the patch.  run &amp;quot;make gta01bv3_config&amp;quot; (or gta01bv2_config, or whatever hardware revision you have), run &amp;quot;make&amp;quot;.  You will get a resulting &amp;quot;u-boot.bin&amp;quot; image, which you can directly flash (either using existing bootloader or [[sjf2410-linux]]) into NAND.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序二进制文件 ==&lt;br /&gt;
&lt;br /&gt;
The latest bootloader binary builds can be found at http://buildhost.openmoko.org/tmp/gta01/deploy/images/ .  It should be written to the NAND flash address 0x00000000 (size 0x30000)&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序开发 ==&lt;br /&gt;
&lt;br /&gt;
=== QT2410 ===&lt;br /&gt;
If you want to do bootloader development on the QT2410, it's easier to work with a bootloader image that can be downloaded via USB into RAM instead of flashing.&lt;br /&gt;
&lt;br /&gt;
To do so, you need to edit the u-boot/include/configs/qt2410.h file, and change the &amp;quot;if 0&amp;quot; in Line 32 into a &amp;quot;if 1&amp;quot;, then recompile with &amp;quot;make&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;quot;u-boot.bin&amp;quot; is _NOT SUITABLE_ for NAND flash, but only for direct execution from within ram, e.g. by using the [[s3c2410_boot_usb]] program.&lt;br /&gt;
&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
&lt;br /&gt;
Doing bootloader development on the GTA01 is a bit more tricky.  first, we don't have any NOR flash.  Second, there is no other way to boot _but_ from NAND.  Therefore, we also don't have a USB downloader like the QT2410.&lt;br /&gt;
&lt;br /&gt;
The main problem is:  The [[S3C2410 Steppingstone]] unconditionally copies the first 4k of flash into its internal SRAM.   That SRAM segment stays unconditionally mapped at physical address zero. How do we get around this&lt;br /&gt;
&lt;br /&gt;
==== 使用JTAG从RAM启动 ====&lt;br /&gt;
&lt;br /&gt;
So how can we boot from RAM? We use JTAG / OpenOCD to&lt;br /&gt;
&lt;br /&gt;
* reset and halt the cpu at PC=0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; reset halt&lt;br /&gt;
target halted in ARM state due to debug request, current mode: Supervisor&lt;br /&gt;
cpsr: 0x400000d3 pc: 0x00000000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download a small piece of code for low-level SDRAM timing initialization (overwrite 4k SRAM of steppingstone)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/foo.bin 0            &lt;br /&gt;
downloaded 332 byte in 0s 21899us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* assert a break point at address 0x33f80000 (which indicates that the low-level code has finished)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; bp 0x33f80000 4 hw&lt;br /&gt;
breakpoint added at address 0x33f80000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* run the code up to the break point&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;gt; Target 0 halted&lt;br /&gt;
target halted in ARM state due to breakpoint, current mode: Supervisor&lt;br /&gt;
cpsr: 0x600000d3 pc: 0x33f80000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download the u-boot RAM image to 0x33f80000&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/u-boot.bin 0x33f80000&lt;br /&gt;
downloaded 135692 byte in 6s 567264us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* resume processing&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, the display backlight gets bright and we see the following familiar prompt on the serial console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.1.6 (Jan 13 2007 - 23:44:23)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
*** Warning - bad CRC or NAND, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv2 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 建立可引导的映像文件 ==&lt;br /&gt;
&lt;br /&gt;
u-boot needs bootable images (such as kernels, but also initrd and others) in form of a so-called ''uImage''.  In order to create a ''uImage'' from e.g. a ''vmlinux'' kernel image, you can proceed as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objcopy -O binary -R .note -R .comment -S vmlinux linux.bin&lt;br /&gt;
gzip -9 linux.bin&lt;br /&gt;
u-boot/tools/mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n &amp;quot;Kernel Image QT2410&amp;quot; -d linux.bin.gz uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 引导菜单 ==&lt;br /&gt;
[[Image:Neo1973 uboot menu.jpg|thumb|400px|u-boot boot menu on Neo1973]]&lt;br /&gt;
&lt;br /&gt;
As of the Phase-0 release, our u-boot version now features an on-screen boot menu.&lt;br /&gt;
&lt;br /&gt;
=== 进入引导菜单 ===&lt;br /&gt;
&lt;br /&gt;
You can access the boot meny by pressing and holding the [[Neo1973 AUX button]] together with the power button while switching the phone on.&lt;br /&gt;
&lt;br /&gt;
=== 使用引导菜单 ===&lt;br /&gt;
&lt;br /&gt;
By pressing the [[Neo1973 AUX button]] you can cycle through the menu items.  Use the ''POWER'' button to select one item.&lt;br /&gt;
&lt;br /&gt;
=== 给引导菜单增加项目 ===&lt;br /&gt;
&lt;br /&gt;
You can add items to the boot menu by setting environment variables.  FIXME.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序命令提示行 ==&lt;br /&gt;
&lt;br /&gt;
=== Accessing the bootloader prompt ===&lt;br /&gt;
The bootloader prompt is available either on the serial console (via [[Debug Board]]), or as virtual USB Serial device (USB CDC_ACM).&lt;br /&gt;
Whether the serial port or usb i used depends on the u-boot environment variables '''stdin''', '''stdout''' and '''stderr'''.&lt;br /&gt;
&lt;br /&gt;
Whether or not you use usbtty, the first couple of messages will always be displayed on the serial console.&lt;br /&gt;
&lt;br /&gt;
The bootloader is currently configured to waid for three seconds.  If a key press on the '''stdin''' is received within those three seconds, auto-boot is aborted.&lt;br /&gt;
&lt;br /&gt;
==== Using usbtty from Linux ====&lt;br /&gt;
&lt;br /&gt;
Just by connecting the phone in u-boot mode to your Linux pc should make it detect a [[CDC ACM]] device, and you should get a new tty device called /dev/ttySAC0.  Use your favourite terminal emulator (minicom, cu, zc, ...) to access it like any other serial port.&lt;br /&gt;
&lt;br /&gt;
First, you should try to check whether the USB device shows up in 'lsusb' while you're running in u-boot mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -v -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        16&lt;br /&gt;
  idVendor           0x1457 &lt;br /&gt;
  idProduct          0x5119 &lt;br /&gt;
  bcdDevice            0.00&lt;br /&gt;
  iManufacturer           1 OpenMoko, Inc&lt;br /&gt;
  iProduct                2 Neo1973 Bootloader U-Boot 1.2.0-g6c7cac8c-dirty-moko3&lt;br /&gt;
  iSerial                 3 0000000&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           85&lt;br /&gt;
    bNumInterfaces          3&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 TTY via USB&lt;br /&gt;
    bmAttributes         0xc0&lt;br /&gt;
      Self Powered&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         2 Communications&lt;br /&gt;
      bInterfaceSubClass      2 Abstract (modem)&lt;br /&gt;
      bInterfaceProtocol      1 AT-commands (v.25ter)&lt;br /&gt;
      iInterface              6 Control Interface&lt;br /&gt;
      CDC Header:&lt;br /&gt;
        bcdCDC               0.6e&lt;br /&gt;
      CDC Call Management:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
        bDataInterface          1&lt;br /&gt;
      CDC ACM:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
      CDC Union:&lt;br /&gt;
        bMasterInterface        0&lt;br /&gt;
        bSlaveInterface         1 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        10 CDC Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              5 Bulk Data Interface&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              7 USB Device Firmware Upgrade&lt;br /&gt;
Device Status:     0x0001&lt;br /&gt;
  Self Powered&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, you can access it using your favourite terminal program.&lt;br /&gt;
&lt;br /&gt;
Then, if the environment is not set correctly, you will need to use the current console (e.g. serial console) to set&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # setenv stderr usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdout usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdin usbtty&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Typical u-boot prompt ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.2.0-moko1 (Feb 16 2007 - 00:36:13)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
Found Environment offset in OOB..&lt;br /&gt;
Video: 640x480x8 31kHz 59Hz&lt;br /&gt;
USB:   S3C2410 USB Deviced&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Commands on the bootloader prompt ===&lt;br /&gt;
&lt;br /&gt;
==== 自动引导 ====&lt;br /&gt;
&lt;br /&gt;
Auto-boot executes the command[s] specified in the ''bootcmd'' environment variable. The default configuration is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # printenv&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This basically tells us that it will load the content of the NAND partition '''kernel''' to memory address 0x32000000 and then try to boot it.  &lt;br /&gt;
&lt;br /&gt;
==== 环境变量 ====&lt;br /&gt;
&lt;br /&gt;
u-boot is configured to manage a non-volatile environment that is stored in NAND flash.  You can use the commands to read/alter/store the environment in the following example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # printenv&lt;br /&gt;
baudrate=115200&lt;br /&gt;
bootargs=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
usbtty=cdc_acm&lt;br /&gt;
bootdelay=10&lt;br /&gt;
stdout=serial&lt;br /&gt;
stderr=serial&lt;br /&gt;
stdin=serial&lt;br /&gt;
mtdparts=mtdparts=neo1973-nand:0x00030000(u-boot),0x0000c000(u-boot_env),0x00200000(kernel),0x00130000(splash),0x03c94000(rootfs)&lt;br /&gt;
mtdids=nand0=neo1973-nand&lt;br /&gt;
bootargs_base=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
pcf50606_int1=0x40&lt;br /&gt;
filesize=160C000&lt;br /&gt;
partition=nand0,0&lt;br /&gt;
mtddevnum=0&lt;br /&gt;
mtddevname=u-boot&lt;br /&gt;
&lt;br /&gt;
Environment size: 670/16380 bytes&lt;br /&gt;
GTA01Bv3 # setenv bootdelay 10&lt;br /&gt;
GTA01Bv3 # printenv bootdelay&lt;br /&gt;
bootdelay=10&lt;br /&gt;
GTA01Bv3 # saveenv&lt;br /&gt;
Saving Environment to NAND...&lt;br /&gt;
Erasing Nand...Writing to Nand... done&lt;br /&gt;
GTA01Bv3 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: When setting multiple commands, e.g. for bootcmd, you need to escape the ';', for instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # setenv bootcmd mmcinit\; ext2load mmc 0 0x32000000 uImage\; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MMC/SD卡 ====&lt;br /&gt;
&lt;br /&gt;
in order to initialize a MMC/SD card, you have to use the ``mmcinit'' command.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # mmcinit&lt;br /&gt;
trying to detect SD Card...&lt;br /&gt;
MMC found. Card desciption is:&lt;br /&gt;
Manufacturer ID = 58d564&lt;br /&gt;
HW/FW Revision = 3 8&lt;br /&gt;
Product Name = 21DN!@X�&lt;br /&gt;
Serial Number = 445303&lt;br /&gt;
Month = 5&lt;br /&gt;
Year = 2000&lt;br /&gt;
READ_BL_LEN=15, C_SIZE_MULT=7, C_SIZE=3197&lt;br /&gt;
size = 4208984064&lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
afterwards, you can read ext2 filesystems like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2ls mmc 0&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 .&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 ..&lt;br /&gt;
&amp;lt;DIR&amp;gt;      12288 lost+found&lt;br /&gt;
         1544788 uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NAND ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # help nand&lt;br /&gt;
nand info                  - show available NAND devices&lt;br /&gt;
nand device [dev]     - show or set current device&lt;br /&gt;
nand read[.jffs2]     - addr off size&lt;br /&gt;
nand write[.jffs2]    - addr off size - read/write `size' bytes starting&lt;br /&gt;
    at offset `off' to/from memory address `addr'&lt;br /&gt;
nand erase [clean] [off size] - erase `size' bytes from&lt;br /&gt;
    offset `off' (entire device if not specified)&lt;br /&gt;
nand bad - show bad blocks&lt;br /&gt;
nand dump[.oob] off - dump page&lt;br /&gt;
nand scrub - really clean NAND erasing bad blocks (UNSAFE)&lt;br /&gt;
nand markbad off - mark bad block at offset (UNSAFE)&lt;br /&gt;
nand biterr off - make a bit error at offset (UNSAFE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Loading Kernel from NAND =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # nand read 0x32000000 kernel&lt;br /&gt;
&lt;br /&gt;
NAND read: device 0 offset 212992, size 2097152 ...  2097152 bytes read: OK&lt;br /&gt;
GTA01Bv3 # bootm 0x32000000&lt;br /&gt;
## Booting image at 32000000 ...&lt;br /&gt;
   Image Name:   OpenMoko Kernel Image Neo1973&lt;br /&gt;
   Created:      2007-02-15  23:54:18 UTC&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (gzip compressed)&lt;br /&gt;
   Data Size:    1546258 Bytes =  1.5 MB&lt;br /&gt;
   Load Address: 30008000&lt;br /&gt;
   Entry Point:  30008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Uncompressing Kernel Image ... OK&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing new bootloader to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file u-boot.bin from ext2/mmc and flashes it into the&lt;br /&gt;
bootloader flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 u-boot.bin&lt;br /&gt;
GTA01Bv3 # nand erase u-boot&lt;br /&gt;
GTA01Bv3 # nand write 0x32000000 u-boot ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing kernel to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file uImage from ext2/mmc and flashes it into the&lt;br /&gt;
kernel flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 uImage&lt;br /&gt;
GTA01Bv3 # nand erase kernel&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 kernel ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing rootfs to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file rootfs.jffs2 from ext2/mmc and flashes it into the&lt;br /&gt;
rootfs flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 rootfs.jffs2&lt;br /&gt;
GTA01Bv3 # nand erase rootfs&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 rootfs ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that this will only work with root file system sizes that are smaller than the amount of memory above 0x32000000, which in the case of 64MB SDRAM is something like 32MB.&lt;br /&gt;
&lt;br /&gt;
==== Neo1973 related commands ====&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot supports a couple of Neo1973 specific commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help neo1973&lt;br /&gt;
neo1973 neo1973 info - display phone informantion&lt;br /&gt;
neo1973 power-off - switch off the phone&lt;br /&gt;
neo1973 charger status - display charger status&lt;br /&gt;
neo1973 charger autofast - enable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger !autofast - disable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger fast - enable fast (500mA) charging&lt;br /&gt;
neo1973 charger off - disable charging&lt;br /&gt;
neo1973 backlight (on|off) - switch backlight on or off&lt;br /&gt;
neo1973 vibrator (on|off) - switch vibrator on or off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Power-off =====&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 power-off&lt;br /&gt;
&lt;br /&gt;
you can switch the device off from the bootloader prompt.&lt;br /&gt;
&lt;br /&gt;
===== Battery charger related =====&lt;br /&gt;
&lt;br /&gt;
For a detailed description of the charger basics, see [[Neo1973 Battery Charger]].&lt;br /&gt;
&lt;br /&gt;
====== Inquiring the charger state ======&lt;br /&gt;
&lt;br /&gt;
You can get the current charger status by issuing&lt;br /&gt;
 neo1973 charger status&lt;br /&gt;
&lt;br /&gt;
The following modes are possible:&lt;br /&gt;
&lt;br /&gt;
* idle - no charging&lt;br /&gt;
* trickle - FIXME&lt;br /&gt;
* pre - Slow (100mA) charging, works in hardware.&lt;br /&gt;
* fast_cccv - Fast (500mA) charging, using Constant-Current followed by Constant Voltage (Li-Ion)&lt;br /&gt;
&lt;br /&gt;
====== Disabling battery charging ======&lt;br /&gt;
&lt;br /&gt;
You can disable battery charging (until the next reboot) by issuing&lt;br /&gt;
 neo1973 charger off&lt;br /&gt;
&lt;br /&gt;
====== Forcing fast charge ======&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 charger fast&lt;br /&gt;
you can force the PMU to try to do a fast (500mA) charge of the battery. It will abort if the battery is in over temperature or some other error condition occurs.&lt;br /&gt;
&lt;br /&gt;
====== Enabling / Disabling automatic fast charge ======&lt;br /&gt;
&lt;br /&gt;
Autofast is a feature of the PCF50606 PMU.  It means that the fast_cccv mode will be automatically selected if a charger with suitable voltage is plugged in, and the battery not in over temperature condition.&lt;br /&gt;
&lt;br /&gt;
{{warning|This is potentially dangerous.  Only enable autofast if you ARE SURE that you can draw 500mA from the USB connector.  This is the case with a wall outlet charger, or if you are attached to a self-powered hub or a desktop PC root hub.  Bus powered hubs and some laptops only provide 100mA on their USB ports and can thus not support fast charging}}&lt;br /&gt;
&lt;br /&gt;
You can enable or disable autofast by &lt;br /&gt;
 neo1973 charger autofast&lt;br /&gt;
and&lt;br /&gt;
 neo1973 charger !autofast&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Backlight =====&lt;br /&gt;
&lt;br /&gt;
You can switch the backlight on and off by using&lt;br /&gt;
 neo1973 backlight on&lt;br /&gt;
and&lt;br /&gt;
 neo1973 backlight off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Vibrator =====&lt;br /&gt;
&lt;br /&gt;
You can switch the vibrator on and off by using&lt;br /&gt;
 neo1973 vibrator on&lt;br /&gt;
and &lt;br /&gt;
 neo1973 vibrator off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
==== S3C2410 specific commands ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help s3c2410&lt;br /&gt;
s3c2410 speed get - display current PLL speed config&lt;br /&gt;
s3c2410 speed list - display supporte PLL speed configs&lt;br /&gt;
s3c2410 speed set - set PLL speed&lt;br /&gt;
GTA01Bv2 # s3c2410 speed list&lt;br /&gt;
50 MHz&lt;br /&gt;
101 MHz&lt;br /&gt;
202 MHz&lt;br /&gt;
266 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 202 MHz, HCLK = 101 MHz, PCLK = 50 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed set 101&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 101 MHz, HCLK = 50 MHz, PCLK = 50 MHz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 266MHz时钟 =====&lt;br /&gt;
&lt;br /&gt;
You can re-configure the [[S3C2410]] PLL to generate a 266 MHz core cpu clock (rather than the 200MHz default) by using&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 266 &lt;br /&gt;
and&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 202&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
{{warning|The current hardware (as of GTA01Bv3) only runs stable at 266MHz if you do not attach aynthing (esp. the FPC / [[Debug Board]] to the Debug Port}}&lt;br /&gt;
&lt;br /&gt;
==== QT2410上的TFTP ====&lt;br /&gt;
&lt;br /&gt;
The QT2410 cs8900a Ethernet can be used to download images via network.&lt;br /&gt;
&lt;br /&gt;
First, you have to make sure that ''ipaddr'', ''serverip'', ''ethaddr' and ''netmaskk'' are set correctly in the environment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # printenv&lt;br /&gt;
ethaddr=00:01:02:03:04:05&lt;br /&gt;
netmask=255.255.255.0&lt;br /&gt;
ipaddr=192.168.100.100&lt;br /&gt;
serverip=192.168.100.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== TFTP kernel download =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # tftpboot 0x32000000&lt;br /&gt;
*** Warning: no boot file name; using 'C0A86464.img'&lt;br /&gt;
TFTP from server 192.168.100.1; our IP address is 192.168.100.100&lt;br /&gt;
Filename 'C0A86464.img'.&lt;br /&gt;
Load address: 0x32000000&lt;br /&gt;
Loading: #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         ##########################################&lt;br /&gt;
done&lt;br /&gt;
Bytes transferred = 1544788 (179254 hex)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you can then commence booting via&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410# bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 设备固件升级 ==&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot also implements [[USB DFU]].&lt;br /&gt;
&lt;br /&gt;
To find out whether your version of u-boot supports this, use the output of&lt;br /&gt;
 $ lsusb -v -d 1457:5119&lt;br /&gt;
while the phone is in u-boot mode.&lt;br /&gt;
&lt;br /&gt;
If it supports DFU, you should see the following snippet towards the end of the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
关于如何进行固件升级的信息，请看[[dfu-util/zh_cn|dfu-util]]。&lt;br /&gt;
{{Languages|Bootloader}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/S3C2410_Steppingstone/zh_cn</id>
		<title>S3C2410 Steppingstone/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/S3C2410_Steppingstone/zh_cn"/>
				<updated>2007-03-07T08:44:41Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The S3C2410 Steppingstone is a special 4KBytes large buffer that allows S3C2410 to boot directly from NAND flash.  &lt;br /&gt;
&lt;br /&gt;
Basically some hidden microcode in the S3C2410 takes care of copying the first 4KB of NAND flash into RAM, and re-mapping the first SDRAM page from 0x30000000 to 0x00000000.&lt;br /&gt;
&lt;br /&gt;
The bootloader then needs to have some code to load the remaining bootloader code from NAND before executing itself.&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/U-Boot/zh_cn</id>
		<title>U-Boot/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/U-Boot/zh_cn"/>
				<updated>2007-03-07T08:42:53Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Uboot-s3c2410fb.jpg|thumb|300px|Neo1973控制台上的u-boot]] [[Image:Neo1973 uboot splash closeup.jpg|thumb|300px|Neo1973上的u-boot引导菜单]]&lt;br /&gt;
&lt;br /&gt;
== 概述 ==&lt;br /&gt;
&lt;br /&gt;
GTA01使用了[http://u-boot.sourceforge.net/ u-boot]引导装载程序。&lt;br /&gt;
&lt;br /&gt;
关于u-boot的更多信息可以在下列地方找到&lt;br /&gt;
* http://www.denx.de/wiki/DULG&lt;br /&gt;
* http://www.gumstix.org/tikiwiki/tiki-index.php?page=U-Boot&lt;br /&gt;
* http://linuxdevices.com/articles/AT5085702347.html&lt;br /&gt;
&lt;br /&gt;
但是，未经修改的u-boot不支持GTA01所需要的许多特性，比如&lt;br /&gt;
* 利用[[S3C2410 Steppingstone]]从NAND闪存启动&lt;br /&gt;
* 从SD/Transflash读取内核/initrd&lt;br /&gt;
* S3C2410 NAND闪存&lt;br /&gt;
* 通过S3C2410 USB Device控制器下载程序&lt;br /&gt;
* S3C2410 Framebuffer启动logo/状态显示&lt;br /&gt;
&lt;br /&gt;
[[User:HaraldWelte|Harald Welte]]正在为这些解决问题而工作，并且实际上它们中的大多数已经得到了实现。&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序源代码 ==&lt;br /&gt;
&lt;br /&gt;
The current bootloader patches can be found at http://svn.openmoko.org/trunk/src/target/u-boot/patches/. &lt;br /&gt;
&lt;br /&gt;
Untar the sources, apply the patch.  run &amp;quot;make gta01bv3_config&amp;quot; (or gta01bv2_config, or whatever hardware revision you have), run &amp;quot;make&amp;quot;.  You will get a resulting &amp;quot;u-boot.bin&amp;quot; image, which you can directly flash (either using existing bootloader or [[sjf2410-linux]]) into NAND.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序二进制文件 ==&lt;br /&gt;
&lt;br /&gt;
The latest bootloader binary builds can be found at http://buildhost.openmoko.org/tmp/gta01/deploy/images/ .  It should be written to the NAND flash address 0x00000000 (size 0x30000)&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序开发 ==&lt;br /&gt;
&lt;br /&gt;
=== QT2410 ===&lt;br /&gt;
If you want to do bootloader development on the QT2410, it's easier to work with a bootloader image that can be downloaded via USB into RAM instead of flashing.&lt;br /&gt;
&lt;br /&gt;
To do so, you need to edit the u-boot/include/configs/qt2410.h file, and change the &amp;quot;if 0&amp;quot; in Line 32 into a &amp;quot;if 1&amp;quot;, then recompile with &amp;quot;make&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;quot;u-boot.bin&amp;quot; is _NOT SUITABLE_ for NAND flash, but only for direct execution from within ram, e.g. by using the [[s3c2410_boot_usb]] program.&lt;br /&gt;
&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
&lt;br /&gt;
Doing bootloader development on the GTA01 is a bit more tricky.  first, we don't have any NOR flash.  Second, there is no other way to boot _but_ from NAND.  Therefore, we also don't have a USB downloader like the QT2410.&lt;br /&gt;
&lt;br /&gt;
The main problem is:  The [[S3C2410 Steppingstone]] unconditionally copies the first 4k of flash into its internal SRAM.   That SRAM segment stays unconditionally mapped at physical address zero. How do we get around this&lt;br /&gt;
&lt;br /&gt;
==== 使用JTAG从RAM启动 ====&lt;br /&gt;
&lt;br /&gt;
So how can we boot from RAM? We use JTAG / OpenOCD to&lt;br /&gt;
&lt;br /&gt;
* reset and halt the cpu at PC=0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; reset halt&lt;br /&gt;
target halted in ARM state due to debug request, current mode: Supervisor&lt;br /&gt;
cpsr: 0x400000d3 pc: 0x00000000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download a small piece of code for low-level SDRAM timing initialization (overwrite 4k SRAM of steppingstone)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/foo.bin 0            &lt;br /&gt;
downloaded 332 byte in 0s 21899us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* assert a break point at address 0x33f80000 (which indicates that the low-level code has finished)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; bp 0x33f80000 4 hw&lt;br /&gt;
breakpoint added at address 0x33f80000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* run the code up to the break point&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;gt; Target 0 halted&lt;br /&gt;
target halted in ARM state due to breakpoint, current mode: Supervisor&lt;br /&gt;
cpsr: 0x600000d3 pc: 0x33f80000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download the u-boot RAM image to 0x33f80000&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/u-boot.bin 0x33f80000&lt;br /&gt;
downloaded 135692 byte in 6s 567264us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* resume processing&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, the display backlight gets bright and we see the following familiar prompt on the serial console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.1.6 (Jan 13 2007 - 23:44:23)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
*** Warning - bad CRC or NAND, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv2 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 建立可引导的映像文件 ==&lt;br /&gt;
&lt;br /&gt;
u-boot needs bootable images (such as kernels, but also initrd and others) in form of a so-called ''uImage''.  In order to create a ''uImage'' from e.g. a ''vmlinux'' kernel image, you can proceed as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objcopy -O binary -R .note -R .comment -S vmlinux linux.bin&lt;br /&gt;
gzip -9 linux.bin&lt;br /&gt;
u-boot/tools/mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n &amp;quot;Kernel Image QT2410&amp;quot; -d linux.bin.gz uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 引导菜单 ==&lt;br /&gt;
[[Image:Neo1973 uboot menu.jpg|thumb|400px|u-boot boot menu on Neo1973]]&lt;br /&gt;
&lt;br /&gt;
As of the Phase-0 release, our u-boot version now features an on-screen boot menu.&lt;br /&gt;
&lt;br /&gt;
=== 进入引导菜单 ===&lt;br /&gt;
&lt;br /&gt;
You can access the boot meny by pressing and holding the [[Neo1973 AUX button]] together with the power button while switching the phone on.&lt;br /&gt;
&lt;br /&gt;
=== 使用引导菜单 ===&lt;br /&gt;
&lt;br /&gt;
By pressing the [[Neo1973 AUX button]] you can cycle through the menu items.  Use the ''POWER'' button to select one item.&lt;br /&gt;
&lt;br /&gt;
=== 给引导菜单增加项目 ===&lt;br /&gt;
&lt;br /&gt;
You can add items to the boot menu by setting environment variables.  FIXME.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序命令提示行 ==&lt;br /&gt;
&lt;br /&gt;
=== Accessing the bootloader prompt ===&lt;br /&gt;
The bootloader prompt is available either on the serial console (via [[Debug Board]]), or as virtual USB Serial device (USB CDC_ACM).&lt;br /&gt;
Whether the serial port or usb i used depends on the u-boot environment variables '''stdin''', '''stdout''' and '''stderr'''.&lt;br /&gt;
&lt;br /&gt;
Whether or not you use usbtty, the first couple of messages will always be displayed on the serial console.&lt;br /&gt;
&lt;br /&gt;
The bootloader is currently configured to waid for three seconds.  If a key press on the '''stdin''' is received within those three seconds, auto-boot is aborted.&lt;br /&gt;
&lt;br /&gt;
==== Using usbtty from Linux ====&lt;br /&gt;
&lt;br /&gt;
Just by connecting the phone in u-boot mode to your Linux pc should make it detect a [[CDC ACM]] device, and you should get a new tty device called /dev/ttySAC0.  Use your favourite terminal emulator (minicom, cu, zc, ...) to access it like any other serial port.&lt;br /&gt;
&lt;br /&gt;
First, you should try to check whether the USB device shows up in 'lsusb' while you're running in u-boot mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -v -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        16&lt;br /&gt;
  idVendor           0x1457 &lt;br /&gt;
  idProduct          0x5119 &lt;br /&gt;
  bcdDevice            0.00&lt;br /&gt;
  iManufacturer           1 OpenMoko, Inc&lt;br /&gt;
  iProduct                2 Neo1973 Bootloader U-Boot 1.2.0-g6c7cac8c-dirty-moko3&lt;br /&gt;
  iSerial                 3 0000000&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           85&lt;br /&gt;
    bNumInterfaces          3&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 TTY via USB&lt;br /&gt;
    bmAttributes         0xc0&lt;br /&gt;
      Self Powered&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         2 Communications&lt;br /&gt;
      bInterfaceSubClass      2 Abstract (modem)&lt;br /&gt;
      bInterfaceProtocol      1 AT-commands (v.25ter)&lt;br /&gt;
      iInterface              6 Control Interface&lt;br /&gt;
      CDC Header:&lt;br /&gt;
        bcdCDC               0.6e&lt;br /&gt;
      CDC Call Management:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
        bDataInterface          1&lt;br /&gt;
      CDC ACM:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
      CDC Union:&lt;br /&gt;
        bMasterInterface        0&lt;br /&gt;
        bSlaveInterface         1 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        10 CDC Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              5 Bulk Data Interface&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              7 USB Device Firmware Upgrade&lt;br /&gt;
Device Status:     0x0001&lt;br /&gt;
  Self Powered&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, you can access it using your favourite terminal program.&lt;br /&gt;
&lt;br /&gt;
Then, if the environment is not set correctly, you will need to use the current console (e.g. serial console) to set&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # setenv stderr usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdout usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdin usbtty&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Typical u-boot prompt ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.2.0-moko1 (Feb 16 2007 - 00:36:13)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
Found Environment offset in OOB..&lt;br /&gt;
Video: 640x480x8 31kHz 59Hz&lt;br /&gt;
USB:   S3C2410 USB Deviced&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Commands on the bootloader prompt ===&lt;br /&gt;
&lt;br /&gt;
==== 自动引导 ====&lt;br /&gt;
&lt;br /&gt;
Auto-boot executes the command[s] specified in the ''bootcmd'' environment variable. The default configuration is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # printenv&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This basically tells us that it will load the content of the NAND partition '''kernel''' to memory address 0x32000000 and then try to boot it.  &lt;br /&gt;
&lt;br /&gt;
==== 环境变量 ====&lt;br /&gt;
&lt;br /&gt;
u-boot is configured to manage a non-volatile environment that is stored in NAND flash.  You can use the commands to read/alter/store the environment in the following example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # printenv&lt;br /&gt;
baudrate=115200&lt;br /&gt;
bootargs=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
usbtty=cdc_acm&lt;br /&gt;
bootdelay=10&lt;br /&gt;
stdout=serial&lt;br /&gt;
stderr=serial&lt;br /&gt;
stdin=serial&lt;br /&gt;
mtdparts=mtdparts=neo1973-nand:0x00030000(u-boot),0x0000c000(u-boot_env),0x00200000(kernel),0x00130000(splash),0x03c94000(rootfs)&lt;br /&gt;
mtdids=nand0=neo1973-nand&lt;br /&gt;
bootargs_base=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
pcf50606_int1=0x40&lt;br /&gt;
filesize=160C000&lt;br /&gt;
partition=nand0,0&lt;br /&gt;
mtddevnum=0&lt;br /&gt;
mtddevname=u-boot&lt;br /&gt;
&lt;br /&gt;
Environment size: 670/16380 bytes&lt;br /&gt;
GTA01Bv3 # setenv bootdelay 10&lt;br /&gt;
GTA01Bv3 # printenv bootdelay&lt;br /&gt;
bootdelay=10&lt;br /&gt;
GTA01Bv3 # saveenv&lt;br /&gt;
Saving Environment to NAND...&lt;br /&gt;
Erasing Nand...Writing to Nand... done&lt;br /&gt;
GTA01Bv3 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: When setting multiple commands, e.g. for bootcmd, you need to escape the ';', for instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # setenv bootcmd mmcinit\; ext2load mmc 0 0x32000000 uImage\; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MMC/SD卡 ====&lt;br /&gt;
&lt;br /&gt;
in order to initialize a MMC/SD card, you have to use the ``mmcinit'' command.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # mmcinit&lt;br /&gt;
trying to detect SD Card...&lt;br /&gt;
MMC found. Card desciption is:&lt;br /&gt;
Manufacturer ID = 58d564&lt;br /&gt;
HW/FW Revision = 3 8&lt;br /&gt;
Product Name = 21DN!@X�&lt;br /&gt;
Serial Number = 445303&lt;br /&gt;
Month = 5&lt;br /&gt;
Year = 2000&lt;br /&gt;
READ_BL_LEN=15, C_SIZE_MULT=7, C_SIZE=3197&lt;br /&gt;
size = 4208984064&lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
afterwards, you can read ext2 filesystems like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2ls mmc 0&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 .&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 ..&lt;br /&gt;
&amp;lt;DIR&amp;gt;      12288 lost+found&lt;br /&gt;
         1544788 uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NAND ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # help nand&lt;br /&gt;
nand info                  - show available NAND devices&lt;br /&gt;
nand device [dev]     - show or set current device&lt;br /&gt;
nand read[.jffs2]     - addr off size&lt;br /&gt;
nand write[.jffs2]    - addr off size - read/write `size' bytes starting&lt;br /&gt;
    at offset `off' to/from memory address `addr'&lt;br /&gt;
nand erase [clean] [off size] - erase `size' bytes from&lt;br /&gt;
    offset `off' (entire device if not specified)&lt;br /&gt;
nand bad - show bad blocks&lt;br /&gt;
nand dump[.oob] off - dump page&lt;br /&gt;
nand scrub - really clean NAND erasing bad blocks (UNSAFE)&lt;br /&gt;
nand markbad off - mark bad block at offset (UNSAFE)&lt;br /&gt;
nand biterr off - make a bit error at offset (UNSAFE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Loading Kernel from NAND =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # nand read 0x32000000 kernel&lt;br /&gt;
&lt;br /&gt;
NAND read: device 0 offset 212992, size 2097152 ...  2097152 bytes read: OK&lt;br /&gt;
GTA01Bv3 # bootm 0x32000000&lt;br /&gt;
## Booting image at 32000000 ...&lt;br /&gt;
   Image Name:   OpenMoko Kernel Image Neo1973&lt;br /&gt;
   Created:      2007-02-15  23:54:18 UTC&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (gzip compressed)&lt;br /&gt;
   Data Size:    1546258 Bytes =  1.5 MB&lt;br /&gt;
   Load Address: 30008000&lt;br /&gt;
   Entry Point:  30008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Uncompressing Kernel Image ... OK&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing new bootloader to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file u-boot.bin from ext2/mmc and flashes it into the&lt;br /&gt;
bootloader flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 u-boot.bin&lt;br /&gt;
GTA01Bv3 # nand erase u-boot&lt;br /&gt;
GTA01Bv3 # nand write 0x32000000 u-boot ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing kernel to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file uImage from ext2/mmc and flashes it into the&lt;br /&gt;
kernel flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 uImage&lt;br /&gt;
GTA01Bv3 # nand erase kernel&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 kernel ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing rootfs to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file rootfs.jffs2 from ext2/mmc and flashes it into the&lt;br /&gt;
rootfs flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 rootfs.jffs2&lt;br /&gt;
GTA01Bv3 # nand erase rootfs&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 rootfs ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that this will only work with root file system sizes that are smaller than the amount of memory above 0x32000000, which in the case of 64MB SDRAM is something like 32MB.&lt;br /&gt;
&lt;br /&gt;
==== Neo1973 related commands ====&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot supports a couple of Neo1973 specific commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help neo1973&lt;br /&gt;
neo1973 neo1973 info - display phone informantion&lt;br /&gt;
neo1973 power-off - switch off the phone&lt;br /&gt;
neo1973 charger status - display charger status&lt;br /&gt;
neo1973 charger autofast - enable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger !autofast - disable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger fast - enable fast (500mA) charging&lt;br /&gt;
neo1973 charger off - disable charging&lt;br /&gt;
neo1973 backlight (on|off) - switch backlight on or off&lt;br /&gt;
neo1973 vibrator (on|off) - switch vibrator on or off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Power-off =====&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 power-off&lt;br /&gt;
&lt;br /&gt;
you can switch the device off from the bootloader prompt.&lt;br /&gt;
&lt;br /&gt;
===== Battery charger related =====&lt;br /&gt;
&lt;br /&gt;
For a detailed description of the charger basics, see [[Neo1973 Battery Charger]].&lt;br /&gt;
&lt;br /&gt;
====== Inquiring the charger state ======&lt;br /&gt;
&lt;br /&gt;
You can get the current charger status by issuing&lt;br /&gt;
 neo1973 charger status&lt;br /&gt;
&lt;br /&gt;
The following modes are possible:&lt;br /&gt;
&lt;br /&gt;
* idle - no charging&lt;br /&gt;
* trickle - FIXME&lt;br /&gt;
* pre - Slow (100mA) charging, works in hardware.&lt;br /&gt;
* fast_cccv - Fast (500mA) charging, using Constant-Current followed by Constant Voltage (Li-Ion)&lt;br /&gt;
&lt;br /&gt;
====== Disabling battery charging ======&lt;br /&gt;
&lt;br /&gt;
You can disable battery charging (until the next reboot) by issuing&lt;br /&gt;
 neo1973 charger off&lt;br /&gt;
&lt;br /&gt;
====== Forcing fast charge ======&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 charger fast&lt;br /&gt;
you can force the PMU to try to do a fast (500mA) charge of the battery. It will abort if the battery is in over temperature or some other error condition occurs.&lt;br /&gt;
&lt;br /&gt;
====== Enabling / Disabling automatic fast charge ======&lt;br /&gt;
&lt;br /&gt;
Autofast is a feature of the PCF50606 PMU.  It means that the fast_cccv mode will be automatically selected if a charger with suitable voltage is plugged in, and the battery not in over temperature condition.&lt;br /&gt;
&lt;br /&gt;
{{warning|This is potentially dangerous.  Only enable autofast if you ARE SURE that you can draw 500mA from the USB connector.  This is the case with a wall outlet charger, or if you are attached to a self-powered hub or a desktop PC root hub.  Bus powered hubs and some laptops only provide 100mA on their USB ports and can thus not support fast charging}}&lt;br /&gt;
&lt;br /&gt;
You can enable or disable autofast by &lt;br /&gt;
 neo1973 charger autofast&lt;br /&gt;
and&lt;br /&gt;
 neo1973 charger !autofast&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Backlight =====&lt;br /&gt;
&lt;br /&gt;
You can switch the backlight on and off by using&lt;br /&gt;
 neo1973 backlight on&lt;br /&gt;
and&lt;br /&gt;
 neo1973 backlight off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Vibrator =====&lt;br /&gt;
&lt;br /&gt;
You can switch the vibrator on and off by using&lt;br /&gt;
 neo1973 vibrator on&lt;br /&gt;
and &lt;br /&gt;
 neo1973 vibrator off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
==== S3C2410 specific commands ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help s3c2410&lt;br /&gt;
s3c2410 speed get - display current PLL speed config&lt;br /&gt;
s3c2410 speed list - display supporte PLL speed configs&lt;br /&gt;
s3c2410 speed set - set PLL speed&lt;br /&gt;
GTA01Bv2 # s3c2410 speed list&lt;br /&gt;
50 MHz&lt;br /&gt;
101 MHz&lt;br /&gt;
202 MHz&lt;br /&gt;
266 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 202 MHz, HCLK = 101 MHz, PCLK = 50 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed set 101&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 101 MHz, HCLK = 50 MHz, PCLK = 50 MHz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 266MHz时钟 =====&lt;br /&gt;
&lt;br /&gt;
You can re-configure the [[S3C2410]] PLL to generate a 266 MHz core cpu clock (rather than the 200MHz default) by using&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 266 &lt;br /&gt;
and&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 202&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
{{warning|The current hardware (as of GTA01Bv3) only runs stable at 266MHz if you do not attach aynthing (esp. the FPC / [[Debug Board]] to the Debug Port}}&lt;br /&gt;
&lt;br /&gt;
==== QT2410上的TFTP ====&lt;br /&gt;
&lt;br /&gt;
The QT2410 cs8900a Ethernet can be used to download images via network.&lt;br /&gt;
&lt;br /&gt;
First, you have to make sure that ''ipaddr'', ''serverip'', ''ethaddr' and ''netmaskk'' are set correctly in the environment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # printenv&lt;br /&gt;
ethaddr=00:01:02:03:04:05&lt;br /&gt;
netmask=255.255.255.0&lt;br /&gt;
ipaddr=192.168.100.100&lt;br /&gt;
serverip=192.168.100.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== TFTP kernel download =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # tftpboot 0x32000000&lt;br /&gt;
*** Warning: no boot file name; using 'C0A86464.img'&lt;br /&gt;
TFTP from server 192.168.100.1; our IP address is 192.168.100.100&lt;br /&gt;
Filename 'C0A86464.img'.&lt;br /&gt;
Load address: 0x32000000&lt;br /&gt;
Loading: #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         ##########################################&lt;br /&gt;
done&lt;br /&gt;
Bytes transferred = 1544788 (179254 hex)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you can then commence booting via&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410# bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 设备固件升级 ==&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot also implements [[USB DFU]].&lt;br /&gt;
&lt;br /&gt;
To find out whether your version of u-boot supports this, use the output of&lt;br /&gt;
 $ lsusb -v -d 1457:5119&lt;br /&gt;
while the phone is in u-boot mode.&lt;br /&gt;
&lt;br /&gt;
If it supports DFU, you should see the following snippet towards the end of the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
关于如何进行固件升级的信息，请看[[dfu-util/zh_cn|dfu-util]]。&lt;br /&gt;
{{Languages|Bootloader}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/U-Boot/zh_cn</id>
		<title>U-Boot/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/U-Boot/zh_cn"/>
				<updated>2007-03-07T08:40:22Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 启动菜单 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Uboot-s3c2410fb.jpg|thumb|300px|Neo1973控制台上的u-boot]] [[Image:Neo1973 uboot splash closeup.jpg|thumb|300px|u-boot boot menu Neo1973上的u-boot引导菜单]]&lt;br /&gt;
&lt;br /&gt;
== 概述 ==&lt;br /&gt;
&lt;br /&gt;
GTA01使用了[http://u-boot.sourceforge.net/ u-boot]引导装载程序。&lt;br /&gt;
&lt;br /&gt;
关于u-boot的更多信息可以在下列地方找到&lt;br /&gt;
* http://www.denx.de/wiki/DULG&lt;br /&gt;
* http://www.gumstix.org/tikiwiki/tiki-index.php?page=U-Boot&lt;br /&gt;
* http://linuxdevices.com/articles/AT5085702347.html&lt;br /&gt;
&lt;br /&gt;
但是，未经修改的u-boot不支持GTA01所需要的许多特性，比如&lt;br /&gt;
* 利用[[S3C2410 Steppingstone]]从NAND闪存启动&lt;br /&gt;
* 从SD/Transflash读取内核/initrd&lt;br /&gt;
* S3C2410 NAND闪存&lt;br /&gt;
* 通过S3C2410 USB Device控制器下载程序&lt;br /&gt;
* S3C2410 Framebuffer启动logo/状态显示&lt;br /&gt;
&lt;br /&gt;
[[User:HaraldWelte|Harald Welte]]正在为这些解决问题而工作，并且实际上它们中的大多数已经得到了实现。&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序源代码 ==&lt;br /&gt;
&lt;br /&gt;
The current bootloader patches can be found at http://svn.openmoko.org/trunk/src/target/u-boot/patches/. &lt;br /&gt;
&lt;br /&gt;
Untar the sources, apply the patch.  run &amp;quot;make gta01bv3_config&amp;quot; (or gta01bv2_config, or whatever hardware revision you have), run &amp;quot;make&amp;quot;.  You will get a resulting &amp;quot;u-boot.bin&amp;quot; image, which you can directly flash (either using existing bootloader or [[sjf2410-linux]]) into NAND.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序二进制文件 ==&lt;br /&gt;
&lt;br /&gt;
The latest bootloader binary builds can be found at http://buildhost.openmoko.org/tmp/gta01/deploy/images/ .  It should be written to the NAND flash address 0x00000000 (size 0x30000)&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序开发 ==&lt;br /&gt;
&lt;br /&gt;
=== QT2410 ===&lt;br /&gt;
If you want to do bootloader development on the QT2410, it's easier to work with a bootloader image that can be downloaded via USB into RAM instead of flashing.&lt;br /&gt;
&lt;br /&gt;
To do so, you need to edit the u-boot/include/configs/qt2410.h file, and change the &amp;quot;if 0&amp;quot; in Line 32 into a &amp;quot;if 1&amp;quot;, then recompile with &amp;quot;make&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;quot;u-boot.bin&amp;quot; is _NOT SUITABLE_ for NAND flash, but only for direct execution from within ram, e.g. by using the [[s3c2410_boot_usb]] program.&lt;br /&gt;
&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
&lt;br /&gt;
Doing bootloader development on the GTA01 is a bit more tricky.  first, we don't have any NOR flash.  Second, there is no other way to boot _but_ from NAND.  Therefore, we also don't have a USB downloader like the QT2410.&lt;br /&gt;
&lt;br /&gt;
The main problem is:  The [[S3C2410 Steppingstone]] unconditionally copies the first 4k of flash into its internal SRAM.   That SRAM segment stays unconditionally mapped at physical address zero. How do we get around this&lt;br /&gt;
&lt;br /&gt;
==== 使用JTAG从RAM启动 ====&lt;br /&gt;
&lt;br /&gt;
So how can we boot from RAM? We use JTAG / OpenOCD to&lt;br /&gt;
&lt;br /&gt;
* reset and halt the cpu at PC=0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; reset halt&lt;br /&gt;
target halted in ARM state due to debug request, current mode: Supervisor&lt;br /&gt;
cpsr: 0x400000d3 pc: 0x00000000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download a small piece of code for low-level SDRAM timing initialization (overwrite 4k SRAM of steppingstone)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/foo.bin 0            &lt;br /&gt;
downloaded 332 byte in 0s 21899us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* assert a break point at address 0x33f80000 (which indicates that the low-level code has finished)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; bp 0x33f80000 4 hw&lt;br /&gt;
breakpoint added at address 0x33f80000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* run the code up to the break point&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;gt; Target 0 halted&lt;br /&gt;
target halted in ARM state due to breakpoint, current mode: Supervisor&lt;br /&gt;
cpsr: 0x600000d3 pc: 0x33f80000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download the u-boot RAM image to 0x33f80000&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/u-boot.bin 0x33f80000&lt;br /&gt;
downloaded 135692 byte in 6s 567264us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* resume processing&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, the display backlight gets bright and we see the following familiar prompt on the serial console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.1.6 (Jan 13 2007 - 23:44:23)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
*** Warning - bad CRC or NAND, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv2 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 建立可引导的映像文件 ==&lt;br /&gt;
&lt;br /&gt;
u-boot needs bootable images (such as kernels, but also initrd and others) in form of a so-called ''uImage''.  In order to create a ''uImage'' from e.g. a ''vmlinux'' kernel image, you can proceed as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objcopy -O binary -R .note -R .comment -S vmlinux linux.bin&lt;br /&gt;
gzip -9 linux.bin&lt;br /&gt;
u-boot/tools/mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n &amp;quot;Kernel Image QT2410&amp;quot; -d linux.bin.gz uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 引导菜单 ==&lt;br /&gt;
[[Image:Neo1973 uboot menu.jpg|thumb|400px|u-boot boot menu on Neo1973]]&lt;br /&gt;
&lt;br /&gt;
As of the Phase-0 release, our u-boot version now features an on-screen boot menu.&lt;br /&gt;
&lt;br /&gt;
=== 进入引导菜单 ===&lt;br /&gt;
&lt;br /&gt;
You can access the boot meny by pressing and holding the [[Neo1973 AUX button]] together with the power button while switching the phone on.&lt;br /&gt;
&lt;br /&gt;
=== 使用引导菜单 ===&lt;br /&gt;
&lt;br /&gt;
By pressing the [[Neo1973 AUX button]] you can cycle through the menu items.  Use the ''POWER'' button to select one item.&lt;br /&gt;
&lt;br /&gt;
=== 给引导菜单增加项目 ===&lt;br /&gt;
&lt;br /&gt;
You can add items to the boot menu by setting environment variables.  FIXME.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序命令提示行 ==&lt;br /&gt;
&lt;br /&gt;
=== Accessing the bootloader prompt ===&lt;br /&gt;
The bootloader prompt is available either on the serial console (via [[Debug Board]]), or as virtual USB Serial device (USB CDC_ACM).&lt;br /&gt;
Whether the serial port or usb i used depends on the u-boot environment variables '''stdin''', '''stdout''' and '''stderr'''.&lt;br /&gt;
&lt;br /&gt;
Whether or not you use usbtty, the first couple of messages will always be displayed on the serial console.&lt;br /&gt;
&lt;br /&gt;
The bootloader is currently configured to waid for three seconds.  If a key press on the '''stdin''' is received within those three seconds, auto-boot is aborted.&lt;br /&gt;
&lt;br /&gt;
==== Using usbtty from Linux ====&lt;br /&gt;
&lt;br /&gt;
Just by connecting the phone in u-boot mode to your Linux pc should make it detect a [[CDC ACM]] device, and you should get a new tty device called /dev/ttySAC0.  Use your favourite terminal emulator (minicom, cu, zc, ...) to access it like any other serial port.&lt;br /&gt;
&lt;br /&gt;
First, you should try to check whether the USB device shows up in 'lsusb' while you're running in u-boot mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -v -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        16&lt;br /&gt;
  idVendor           0x1457 &lt;br /&gt;
  idProduct          0x5119 &lt;br /&gt;
  bcdDevice            0.00&lt;br /&gt;
  iManufacturer           1 OpenMoko, Inc&lt;br /&gt;
  iProduct                2 Neo1973 Bootloader U-Boot 1.2.0-g6c7cac8c-dirty-moko3&lt;br /&gt;
  iSerial                 3 0000000&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           85&lt;br /&gt;
    bNumInterfaces          3&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 TTY via USB&lt;br /&gt;
    bmAttributes         0xc0&lt;br /&gt;
      Self Powered&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         2 Communications&lt;br /&gt;
      bInterfaceSubClass      2 Abstract (modem)&lt;br /&gt;
      bInterfaceProtocol      1 AT-commands (v.25ter)&lt;br /&gt;
      iInterface              6 Control Interface&lt;br /&gt;
      CDC Header:&lt;br /&gt;
        bcdCDC               0.6e&lt;br /&gt;
      CDC Call Management:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
        bDataInterface          1&lt;br /&gt;
      CDC ACM:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
      CDC Union:&lt;br /&gt;
        bMasterInterface        0&lt;br /&gt;
        bSlaveInterface         1 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        10 CDC Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              5 Bulk Data Interface&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              7 USB Device Firmware Upgrade&lt;br /&gt;
Device Status:     0x0001&lt;br /&gt;
  Self Powered&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, you can access it using your favourite terminal program.&lt;br /&gt;
&lt;br /&gt;
Then, if the environment is not set correctly, you will need to use the current console (e.g. serial console) to set&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # setenv stderr usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdout usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdin usbtty&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Typical u-boot prompt ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.2.0-moko1 (Feb 16 2007 - 00:36:13)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
Found Environment offset in OOB..&lt;br /&gt;
Video: 640x480x8 31kHz 59Hz&lt;br /&gt;
USB:   S3C2410 USB Deviced&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Commands on the bootloader prompt ===&lt;br /&gt;
&lt;br /&gt;
==== 自动引导 ====&lt;br /&gt;
&lt;br /&gt;
Auto-boot executes the command[s] specified in the ''bootcmd'' environment variable. The default configuration is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # printenv&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This basically tells us that it will load the content of the NAND partition '''kernel''' to memory address 0x32000000 and then try to boot it.  &lt;br /&gt;
&lt;br /&gt;
==== 环境变量 ====&lt;br /&gt;
&lt;br /&gt;
u-boot is configured to manage a non-volatile environment that is stored in NAND flash.  You can use the commands to read/alter/store the environment in the following example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # printenv&lt;br /&gt;
baudrate=115200&lt;br /&gt;
bootargs=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
usbtty=cdc_acm&lt;br /&gt;
bootdelay=10&lt;br /&gt;
stdout=serial&lt;br /&gt;
stderr=serial&lt;br /&gt;
stdin=serial&lt;br /&gt;
mtdparts=mtdparts=neo1973-nand:0x00030000(u-boot),0x0000c000(u-boot_env),0x00200000(kernel),0x00130000(splash),0x03c94000(rootfs)&lt;br /&gt;
mtdids=nand0=neo1973-nand&lt;br /&gt;
bootargs_base=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
pcf50606_int1=0x40&lt;br /&gt;
filesize=160C000&lt;br /&gt;
partition=nand0,0&lt;br /&gt;
mtddevnum=0&lt;br /&gt;
mtddevname=u-boot&lt;br /&gt;
&lt;br /&gt;
Environment size: 670/16380 bytes&lt;br /&gt;
GTA01Bv3 # setenv bootdelay 10&lt;br /&gt;
GTA01Bv3 # printenv bootdelay&lt;br /&gt;
bootdelay=10&lt;br /&gt;
GTA01Bv3 # saveenv&lt;br /&gt;
Saving Environment to NAND...&lt;br /&gt;
Erasing Nand...Writing to Nand... done&lt;br /&gt;
GTA01Bv3 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: When setting multiple commands, e.g. for bootcmd, you need to escape the ';', for instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # setenv bootcmd mmcinit\; ext2load mmc 0 0x32000000 uImage\; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MMC/SD卡 ====&lt;br /&gt;
&lt;br /&gt;
in order to initialize a MMC/SD card, you have to use the ``mmcinit'' command.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # mmcinit&lt;br /&gt;
trying to detect SD Card...&lt;br /&gt;
MMC found. Card desciption is:&lt;br /&gt;
Manufacturer ID = 58d564&lt;br /&gt;
HW/FW Revision = 3 8&lt;br /&gt;
Product Name = 21DN!@X�&lt;br /&gt;
Serial Number = 445303&lt;br /&gt;
Month = 5&lt;br /&gt;
Year = 2000&lt;br /&gt;
READ_BL_LEN=15, C_SIZE_MULT=7, C_SIZE=3197&lt;br /&gt;
size = 4208984064&lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
afterwards, you can read ext2 filesystems like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2ls mmc 0&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 .&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 ..&lt;br /&gt;
&amp;lt;DIR&amp;gt;      12288 lost+found&lt;br /&gt;
         1544788 uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NAND ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # help nand&lt;br /&gt;
nand info                  - show available NAND devices&lt;br /&gt;
nand device [dev]     - show or set current device&lt;br /&gt;
nand read[.jffs2]     - addr off size&lt;br /&gt;
nand write[.jffs2]    - addr off size - read/write `size' bytes starting&lt;br /&gt;
    at offset `off' to/from memory address `addr'&lt;br /&gt;
nand erase [clean] [off size] - erase `size' bytes from&lt;br /&gt;
    offset `off' (entire device if not specified)&lt;br /&gt;
nand bad - show bad blocks&lt;br /&gt;
nand dump[.oob] off - dump page&lt;br /&gt;
nand scrub - really clean NAND erasing bad blocks (UNSAFE)&lt;br /&gt;
nand markbad off - mark bad block at offset (UNSAFE)&lt;br /&gt;
nand biterr off - make a bit error at offset (UNSAFE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Loading Kernel from NAND =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # nand read 0x32000000 kernel&lt;br /&gt;
&lt;br /&gt;
NAND read: device 0 offset 212992, size 2097152 ...  2097152 bytes read: OK&lt;br /&gt;
GTA01Bv3 # bootm 0x32000000&lt;br /&gt;
## Booting image at 32000000 ...&lt;br /&gt;
   Image Name:   OpenMoko Kernel Image Neo1973&lt;br /&gt;
   Created:      2007-02-15  23:54:18 UTC&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (gzip compressed)&lt;br /&gt;
   Data Size:    1546258 Bytes =  1.5 MB&lt;br /&gt;
   Load Address: 30008000&lt;br /&gt;
   Entry Point:  30008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Uncompressing Kernel Image ... OK&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing new bootloader to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file u-boot.bin from ext2/mmc and flashes it into the&lt;br /&gt;
bootloader flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 u-boot.bin&lt;br /&gt;
GTA01Bv3 # nand erase u-boot&lt;br /&gt;
GTA01Bv3 # nand write 0x32000000 u-boot ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing kernel to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file uImage from ext2/mmc and flashes it into the&lt;br /&gt;
kernel flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 uImage&lt;br /&gt;
GTA01Bv3 # nand erase kernel&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 kernel ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing rootfs to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file rootfs.jffs2 from ext2/mmc and flashes it into the&lt;br /&gt;
rootfs flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 rootfs.jffs2&lt;br /&gt;
GTA01Bv3 # nand erase rootfs&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 rootfs ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that this will only work with root file system sizes that are smaller than the amount of memory above 0x32000000, which in the case of 64MB SDRAM is something like 32MB.&lt;br /&gt;
&lt;br /&gt;
==== Neo1973 related commands ====&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot supports a couple of Neo1973 specific commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help neo1973&lt;br /&gt;
neo1973 neo1973 info - display phone informantion&lt;br /&gt;
neo1973 power-off - switch off the phone&lt;br /&gt;
neo1973 charger status - display charger status&lt;br /&gt;
neo1973 charger autofast - enable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger !autofast - disable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger fast - enable fast (500mA) charging&lt;br /&gt;
neo1973 charger off - disable charging&lt;br /&gt;
neo1973 backlight (on|off) - switch backlight on or off&lt;br /&gt;
neo1973 vibrator (on|off) - switch vibrator on or off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Power-off =====&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 power-off&lt;br /&gt;
&lt;br /&gt;
you can switch the device off from the bootloader prompt.&lt;br /&gt;
&lt;br /&gt;
===== Battery charger related =====&lt;br /&gt;
&lt;br /&gt;
For a detailed description of the charger basics, see [[Neo1973 Battery Charger]].&lt;br /&gt;
&lt;br /&gt;
====== Inquiring the charger state ======&lt;br /&gt;
&lt;br /&gt;
You can get the current charger status by issuing&lt;br /&gt;
 neo1973 charger status&lt;br /&gt;
&lt;br /&gt;
The following modes are possible:&lt;br /&gt;
&lt;br /&gt;
* idle - no charging&lt;br /&gt;
* trickle - FIXME&lt;br /&gt;
* pre - Slow (100mA) charging, works in hardware.&lt;br /&gt;
* fast_cccv - Fast (500mA) charging, using Constant-Current followed by Constant Voltage (Li-Ion)&lt;br /&gt;
&lt;br /&gt;
====== Disabling battery charging ======&lt;br /&gt;
&lt;br /&gt;
You can disable battery charging (until the next reboot) by issuing&lt;br /&gt;
 neo1973 charger off&lt;br /&gt;
&lt;br /&gt;
====== Forcing fast charge ======&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 charger fast&lt;br /&gt;
you can force the PMU to try to do a fast (500mA) charge of the battery. It will abort if the battery is in over temperature or some other error condition occurs.&lt;br /&gt;
&lt;br /&gt;
====== Enabling / Disabling automatic fast charge ======&lt;br /&gt;
&lt;br /&gt;
Autofast is a feature of the PCF50606 PMU.  It means that the fast_cccv mode will be automatically selected if a charger with suitable voltage is plugged in, and the battery not in over temperature condition.&lt;br /&gt;
&lt;br /&gt;
{{warning|This is potentially dangerous.  Only enable autofast if you ARE SURE that you can draw 500mA from the USB connector.  This is the case with a wall outlet charger, or if you are attached to a self-powered hub or a desktop PC root hub.  Bus powered hubs and some laptops only provide 100mA on their USB ports and can thus not support fast charging}}&lt;br /&gt;
&lt;br /&gt;
You can enable or disable autofast by &lt;br /&gt;
 neo1973 charger autofast&lt;br /&gt;
and&lt;br /&gt;
 neo1973 charger !autofast&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Backlight =====&lt;br /&gt;
&lt;br /&gt;
You can switch the backlight on and off by using&lt;br /&gt;
 neo1973 backlight on&lt;br /&gt;
and&lt;br /&gt;
 neo1973 backlight off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Vibrator =====&lt;br /&gt;
&lt;br /&gt;
You can switch the vibrator on and off by using&lt;br /&gt;
 neo1973 vibrator on&lt;br /&gt;
and &lt;br /&gt;
 neo1973 vibrator off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
==== S3C2410 specific commands ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help s3c2410&lt;br /&gt;
s3c2410 speed get - display current PLL speed config&lt;br /&gt;
s3c2410 speed list - display supporte PLL speed configs&lt;br /&gt;
s3c2410 speed set - set PLL speed&lt;br /&gt;
GTA01Bv2 # s3c2410 speed list&lt;br /&gt;
50 MHz&lt;br /&gt;
101 MHz&lt;br /&gt;
202 MHz&lt;br /&gt;
266 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 202 MHz, HCLK = 101 MHz, PCLK = 50 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed set 101&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 101 MHz, HCLK = 50 MHz, PCLK = 50 MHz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 266MHz时钟 =====&lt;br /&gt;
&lt;br /&gt;
You can re-configure the [[S3C2410]] PLL to generate a 266 MHz core cpu clock (rather than the 200MHz default) by using&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 266 &lt;br /&gt;
and&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 202&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
{{warning|The current hardware (as of GTA01Bv3) only runs stable at 266MHz if you do not attach aynthing (esp. the FPC / [[Debug Board]] to the Debug Port}}&lt;br /&gt;
&lt;br /&gt;
==== QT2410上的TFTP ====&lt;br /&gt;
&lt;br /&gt;
The QT2410 cs8900a Ethernet can be used to download images via network.&lt;br /&gt;
&lt;br /&gt;
First, you have to make sure that ''ipaddr'', ''serverip'', ''ethaddr' and ''netmaskk'' are set correctly in the environment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # printenv&lt;br /&gt;
ethaddr=00:01:02:03:04:05&lt;br /&gt;
netmask=255.255.255.0&lt;br /&gt;
ipaddr=192.168.100.100&lt;br /&gt;
serverip=192.168.100.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== TFTP kernel download =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # tftpboot 0x32000000&lt;br /&gt;
*** Warning: no boot file name; using 'C0A86464.img'&lt;br /&gt;
TFTP from server 192.168.100.1; our IP address is 192.168.100.100&lt;br /&gt;
Filename 'C0A86464.img'.&lt;br /&gt;
Load address: 0x32000000&lt;br /&gt;
Loading: #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         ##########################################&lt;br /&gt;
done&lt;br /&gt;
Bytes transferred = 1544788 (179254 hex)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you can then commence booting via&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410# bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 设备固件升级 ==&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot also implements [[USB DFU]].&lt;br /&gt;
&lt;br /&gt;
To find out whether your version of u-boot supports this, use the output of&lt;br /&gt;
 $ lsusb -v -d 1457:5119&lt;br /&gt;
while the phone is in u-boot mode.&lt;br /&gt;
&lt;br /&gt;
If it supports DFU, you should see the following snippet towards the end of the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
关于如何进行固件升级的信息，请看[[dfu-util/zh_cn|dfu-util]]。&lt;br /&gt;
{{Languages|Bootloader}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/U-Boot/zh_cn</id>
		<title>U-Boot/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/U-Boot/zh_cn"/>
				<updated>2007-03-07T08:39:04Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Uboot-s3c2410fb.jpg|thumb|300px|Neo1973控制台上的u-boot]] [[Image:Neo1973 uboot splash closeup.jpg|thumb|300px|u-boot boot menu Neo1973上的u-boot引导菜单]]&lt;br /&gt;
&lt;br /&gt;
== 概述 ==&lt;br /&gt;
&lt;br /&gt;
GTA01使用了[http://u-boot.sourceforge.net/ u-boot]引导装载程序。&lt;br /&gt;
&lt;br /&gt;
关于u-boot的更多信息可以在下列地方找到&lt;br /&gt;
* http://www.denx.de/wiki/DULG&lt;br /&gt;
* http://www.gumstix.org/tikiwiki/tiki-index.php?page=U-Boot&lt;br /&gt;
* http://linuxdevices.com/articles/AT5085702347.html&lt;br /&gt;
&lt;br /&gt;
但是，未经修改的u-boot不支持GTA01所需要的许多特性，比如&lt;br /&gt;
* 利用[[S3C2410 Steppingstone]]从NAND闪存启动&lt;br /&gt;
* 从SD/Transflash读取内核/initrd&lt;br /&gt;
* S3C2410 NAND闪存&lt;br /&gt;
* 通过S3C2410 USB Device控制器下载程序&lt;br /&gt;
* S3C2410 Framebuffer启动logo/状态显示&lt;br /&gt;
&lt;br /&gt;
[[User:HaraldWelte|Harald Welte]]正在为这些解决问题而工作，并且实际上它们中的大多数已经得到了实现。&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序源代码 ==&lt;br /&gt;
&lt;br /&gt;
The current bootloader patches can be found at http://svn.openmoko.org/trunk/src/target/u-boot/patches/. &lt;br /&gt;
&lt;br /&gt;
Untar the sources, apply the patch.  run &amp;quot;make gta01bv3_config&amp;quot; (or gta01bv2_config, or whatever hardware revision you have), run &amp;quot;make&amp;quot;.  You will get a resulting &amp;quot;u-boot.bin&amp;quot; image, which you can directly flash (either using existing bootloader or [[sjf2410-linux]]) into NAND.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序二进制文件 ==&lt;br /&gt;
&lt;br /&gt;
The latest bootloader binary builds can be found at http://buildhost.openmoko.org/tmp/gta01/deploy/images/ .  It should be written to the NAND flash address 0x00000000 (size 0x30000)&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序开发 ==&lt;br /&gt;
&lt;br /&gt;
=== QT2410 ===&lt;br /&gt;
If you want to do bootloader development on the QT2410, it's easier to work with a bootloader image that can be downloaded via USB into RAM instead of flashing.&lt;br /&gt;
&lt;br /&gt;
To do so, you need to edit the u-boot/include/configs/qt2410.h file, and change the &amp;quot;if 0&amp;quot; in Line 32 into a &amp;quot;if 1&amp;quot;, then recompile with &amp;quot;make&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;quot;u-boot.bin&amp;quot; is _NOT SUITABLE_ for NAND flash, but only for direct execution from within ram, e.g. by using the [[s3c2410_boot_usb]] program.&lt;br /&gt;
&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
&lt;br /&gt;
Doing bootloader development on the GTA01 is a bit more tricky.  first, we don't have any NOR flash.  Second, there is no other way to boot _but_ from NAND.  Therefore, we also don't have a USB downloader like the QT2410.&lt;br /&gt;
&lt;br /&gt;
The main problem is:  The [[S3C2410 Steppingstone]] unconditionally copies the first 4k of flash into its internal SRAM.   That SRAM segment stays unconditionally mapped at physical address zero. How do we get around this&lt;br /&gt;
&lt;br /&gt;
==== 使用JTAG从RAM启动 ====&lt;br /&gt;
&lt;br /&gt;
So how can we boot from RAM? We use JTAG / OpenOCD to&lt;br /&gt;
&lt;br /&gt;
* reset and halt the cpu at PC=0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; reset halt&lt;br /&gt;
target halted in ARM state due to debug request, current mode: Supervisor&lt;br /&gt;
cpsr: 0x400000d3 pc: 0x00000000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download a small piece of code for low-level SDRAM timing initialization (overwrite 4k SRAM of steppingstone)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/foo.bin 0            &lt;br /&gt;
downloaded 332 byte in 0s 21899us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* assert a break point at address 0x33f80000 (which indicates that the low-level code has finished)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; bp 0x33f80000 4 hw&lt;br /&gt;
breakpoint added at address 0x33f80000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* run the code up to the break point&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;gt; Target 0 halted&lt;br /&gt;
target halted in ARM state due to breakpoint, current mode: Supervisor&lt;br /&gt;
cpsr: 0x600000d3 pc: 0x33f80000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download the u-boot RAM image to 0x33f80000&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/u-boot.bin 0x33f80000&lt;br /&gt;
downloaded 135692 byte in 6s 567264us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* resume processing&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, the display backlight gets bright and we see the following familiar prompt on the serial console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.1.6 (Jan 13 2007 - 23:44:23)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
*** Warning - bad CRC or NAND, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv2 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 建立可引导的映像文件 ==&lt;br /&gt;
&lt;br /&gt;
u-boot needs bootable images (such as kernels, but also initrd and others) in form of a so-called ''uImage''.  In order to create a ''uImage'' from e.g. a ''vmlinux'' kernel image, you can proceed as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objcopy -O binary -R .note -R .comment -S vmlinux linux.bin&lt;br /&gt;
gzip -9 linux.bin&lt;br /&gt;
u-boot/tools/mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n &amp;quot;Kernel Image QT2410&amp;quot; -d linux.bin.gz uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 启动菜单 ==&lt;br /&gt;
[[Image:Neo1973 uboot menu.jpg|thumb|400px|u-boot boot menu on Neo1973]]&lt;br /&gt;
&lt;br /&gt;
As of the Phase-0 release, our u-boot version now features an on-screen boot menu.&lt;br /&gt;
&lt;br /&gt;
=== Accessing the boot menu ===&lt;br /&gt;
&lt;br /&gt;
You can access the boot meny by pressing and holding the [[Neo1973 AUX button]] together with the power button while switching the phone on.&lt;br /&gt;
&lt;br /&gt;
=== 使用引导菜单 ===&lt;br /&gt;
&lt;br /&gt;
By pressing the [[Neo1973 AUX button]] you can cycle through the menu items.  Use the ''POWER'' button to select one item.&lt;br /&gt;
&lt;br /&gt;
=== Adding items to the boot menu ===&lt;br /&gt;
&lt;br /&gt;
You can add items to the boot menu by setting environment variables.  FIXME.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序命令提示行 ==&lt;br /&gt;
&lt;br /&gt;
=== Accessing the bootloader prompt ===&lt;br /&gt;
The bootloader prompt is available either on the serial console (via [[Debug Board]]), or as virtual USB Serial device (USB CDC_ACM).&lt;br /&gt;
Whether the serial port or usb i used depends on the u-boot environment variables '''stdin''', '''stdout''' and '''stderr'''.&lt;br /&gt;
&lt;br /&gt;
Whether or not you use usbtty, the first couple of messages will always be displayed on the serial console.&lt;br /&gt;
&lt;br /&gt;
The bootloader is currently configured to waid for three seconds.  If a key press on the '''stdin''' is received within those three seconds, auto-boot is aborted.&lt;br /&gt;
&lt;br /&gt;
==== Using usbtty from Linux ====&lt;br /&gt;
&lt;br /&gt;
Just by connecting the phone in u-boot mode to your Linux pc should make it detect a [[CDC ACM]] device, and you should get a new tty device called /dev/ttySAC0.  Use your favourite terminal emulator (minicom, cu, zc, ...) to access it like any other serial port.&lt;br /&gt;
&lt;br /&gt;
First, you should try to check whether the USB device shows up in 'lsusb' while you're running in u-boot mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -v -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        16&lt;br /&gt;
  idVendor           0x1457 &lt;br /&gt;
  idProduct          0x5119 &lt;br /&gt;
  bcdDevice            0.00&lt;br /&gt;
  iManufacturer           1 OpenMoko, Inc&lt;br /&gt;
  iProduct                2 Neo1973 Bootloader U-Boot 1.2.0-g6c7cac8c-dirty-moko3&lt;br /&gt;
  iSerial                 3 0000000&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           85&lt;br /&gt;
    bNumInterfaces          3&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 TTY via USB&lt;br /&gt;
    bmAttributes         0xc0&lt;br /&gt;
      Self Powered&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         2 Communications&lt;br /&gt;
      bInterfaceSubClass      2 Abstract (modem)&lt;br /&gt;
      bInterfaceProtocol      1 AT-commands (v.25ter)&lt;br /&gt;
      iInterface              6 Control Interface&lt;br /&gt;
      CDC Header:&lt;br /&gt;
        bcdCDC               0.6e&lt;br /&gt;
      CDC Call Management:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
        bDataInterface          1&lt;br /&gt;
      CDC ACM:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
      CDC Union:&lt;br /&gt;
        bMasterInterface        0&lt;br /&gt;
        bSlaveInterface         1 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        10 CDC Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              5 Bulk Data Interface&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              7 USB Device Firmware Upgrade&lt;br /&gt;
Device Status:     0x0001&lt;br /&gt;
  Self Powered&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, you can access it using your favourite terminal program.&lt;br /&gt;
&lt;br /&gt;
Then, if the environment is not set correctly, you will need to use the current console (e.g. serial console) to set&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # setenv stderr usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdout usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdin usbtty&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Typical u-boot prompt ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.2.0-moko1 (Feb 16 2007 - 00:36:13)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
Found Environment offset in OOB..&lt;br /&gt;
Video: 640x480x8 31kHz 59Hz&lt;br /&gt;
USB:   S3C2410 USB Deviced&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Commands on the bootloader prompt ===&lt;br /&gt;
&lt;br /&gt;
==== 自动引导 ====&lt;br /&gt;
&lt;br /&gt;
Auto-boot executes the command[s] specified in the ''bootcmd'' environment variable. The default configuration is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # printenv&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This basically tells us that it will load the content of the NAND partition '''kernel''' to memory address 0x32000000 and then try to boot it.  &lt;br /&gt;
&lt;br /&gt;
==== 环境变量 ====&lt;br /&gt;
&lt;br /&gt;
u-boot is configured to manage a non-volatile environment that is stored in NAND flash.  You can use the commands to read/alter/store the environment in the following example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # printenv&lt;br /&gt;
baudrate=115200&lt;br /&gt;
bootargs=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
usbtty=cdc_acm&lt;br /&gt;
bootdelay=10&lt;br /&gt;
stdout=serial&lt;br /&gt;
stderr=serial&lt;br /&gt;
stdin=serial&lt;br /&gt;
mtdparts=mtdparts=neo1973-nand:0x00030000(u-boot),0x0000c000(u-boot_env),0x00200000(kernel),0x00130000(splash),0x03c94000(rootfs)&lt;br /&gt;
mtdids=nand0=neo1973-nand&lt;br /&gt;
bootargs_base=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
pcf50606_int1=0x40&lt;br /&gt;
filesize=160C000&lt;br /&gt;
partition=nand0,0&lt;br /&gt;
mtddevnum=0&lt;br /&gt;
mtddevname=u-boot&lt;br /&gt;
&lt;br /&gt;
Environment size: 670/16380 bytes&lt;br /&gt;
GTA01Bv3 # setenv bootdelay 10&lt;br /&gt;
GTA01Bv3 # printenv bootdelay&lt;br /&gt;
bootdelay=10&lt;br /&gt;
GTA01Bv3 # saveenv&lt;br /&gt;
Saving Environment to NAND...&lt;br /&gt;
Erasing Nand...Writing to Nand... done&lt;br /&gt;
GTA01Bv3 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: When setting multiple commands, e.g. for bootcmd, you need to escape the ';', for instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # setenv bootcmd mmcinit\; ext2load mmc 0 0x32000000 uImage\; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MMC/SD卡 ====&lt;br /&gt;
&lt;br /&gt;
in order to initialize a MMC/SD card, you have to use the ``mmcinit'' command.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # mmcinit&lt;br /&gt;
trying to detect SD Card...&lt;br /&gt;
MMC found. Card desciption is:&lt;br /&gt;
Manufacturer ID = 58d564&lt;br /&gt;
HW/FW Revision = 3 8&lt;br /&gt;
Product Name = 21DN!@X�&lt;br /&gt;
Serial Number = 445303&lt;br /&gt;
Month = 5&lt;br /&gt;
Year = 2000&lt;br /&gt;
READ_BL_LEN=15, C_SIZE_MULT=7, C_SIZE=3197&lt;br /&gt;
size = 4208984064&lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
afterwards, you can read ext2 filesystems like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2ls mmc 0&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 .&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 ..&lt;br /&gt;
&amp;lt;DIR&amp;gt;      12288 lost+found&lt;br /&gt;
         1544788 uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NAND ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # help nand&lt;br /&gt;
nand info                  - show available NAND devices&lt;br /&gt;
nand device [dev]     - show or set current device&lt;br /&gt;
nand read[.jffs2]     - addr off size&lt;br /&gt;
nand write[.jffs2]    - addr off size - read/write `size' bytes starting&lt;br /&gt;
    at offset `off' to/from memory address `addr'&lt;br /&gt;
nand erase [clean] [off size] - erase `size' bytes from&lt;br /&gt;
    offset `off' (entire device if not specified)&lt;br /&gt;
nand bad - show bad blocks&lt;br /&gt;
nand dump[.oob] off - dump page&lt;br /&gt;
nand scrub - really clean NAND erasing bad blocks (UNSAFE)&lt;br /&gt;
nand markbad off - mark bad block at offset (UNSAFE)&lt;br /&gt;
nand biterr off - make a bit error at offset (UNSAFE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Loading Kernel from NAND =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # nand read 0x32000000 kernel&lt;br /&gt;
&lt;br /&gt;
NAND read: device 0 offset 212992, size 2097152 ...  2097152 bytes read: OK&lt;br /&gt;
GTA01Bv3 # bootm 0x32000000&lt;br /&gt;
## Booting image at 32000000 ...&lt;br /&gt;
   Image Name:   OpenMoko Kernel Image Neo1973&lt;br /&gt;
   Created:      2007-02-15  23:54:18 UTC&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (gzip compressed)&lt;br /&gt;
   Data Size:    1546258 Bytes =  1.5 MB&lt;br /&gt;
   Load Address: 30008000&lt;br /&gt;
   Entry Point:  30008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Uncompressing Kernel Image ... OK&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing new bootloader to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file u-boot.bin from ext2/mmc and flashes it into the&lt;br /&gt;
bootloader flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 u-boot.bin&lt;br /&gt;
GTA01Bv3 # nand erase u-boot&lt;br /&gt;
GTA01Bv3 # nand write 0x32000000 u-boot ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing kernel to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file uImage from ext2/mmc and flashes it into the&lt;br /&gt;
kernel flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 uImage&lt;br /&gt;
GTA01Bv3 # nand erase kernel&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 kernel ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing rootfs to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file rootfs.jffs2 from ext2/mmc and flashes it into the&lt;br /&gt;
rootfs flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 rootfs.jffs2&lt;br /&gt;
GTA01Bv3 # nand erase rootfs&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 rootfs ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that this will only work with root file system sizes that are smaller than the amount of memory above 0x32000000, which in the case of 64MB SDRAM is something like 32MB.&lt;br /&gt;
&lt;br /&gt;
==== Neo1973 related commands ====&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot supports a couple of Neo1973 specific commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help neo1973&lt;br /&gt;
neo1973 neo1973 info - display phone informantion&lt;br /&gt;
neo1973 power-off - switch off the phone&lt;br /&gt;
neo1973 charger status - display charger status&lt;br /&gt;
neo1973 charger autofast - enable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger !autofast - disable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger fast - enable fast (500mA) charging&lt;br /&gt;
neo1973 charger off - disable charging&lt;br /&gt;
neo1973 backlight (on|off) - switch backlight on or off&lt;br /&gt;
neo1973 vibrator (on|off) - switch vibrator on or off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Power-off =====&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 power-off&lt;br /&gt;
&lt;br /&gt;
you can switch the device off from the bootloader prompt.&lt;br /&gt;
&lt;br /&gt;
===== Battery charger related =====&lt;br /&gt;
&lt;br /&gt;
For a detailed description of the charger basics, see [[Neo1973 Battery Charger]].&lt;br /&gt;
&lt;br /&gt;
====== Inquiring the charger state ======&lt;br /&gt;
&lt;br /&gt;
You can get the current charger status by issuing&lt;br /&gt;
 neo1973 charger status&lt;br /&gt;
&lt;br /&gt;
The following modes are possible:&lt;br /&gt;
&lt;br /&gt;
* idle - no charging&lt;br /&gt;
* trickle - FIXME&lt;br /&gt;
* pre - Slow (100mA) charging, works in hardware.&lt;br /&gt;
* fast_cccv - Fast (500mA) charging, using Constant-Current followed by Constant Voltage (Li-Ion)&lt;br /&gt;
&lt;br /&gt;
====== Disabling battery charging ======&lt;br /&gt;
&lt;br /&gt;
You can disable battery charging (until the next reboot) by issuing&lt;br /&gt;
 neo1973 charger off&lt;br /&gt;
&lt;br /&gt;
====== Forcing fast charge ======&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 charger fast&lt;br /&gt;
you can force the PMU to try to do a fast (500mA) charge of the battery. It will abort if the battery is in over temperature or some other error condition occurs.&lt;br /&gt;
&lt;br /&gt;
====== Enabling / Disabling automatic fast charge ======&lt;br /&gt;
&lt;br /&gt;
Autofast is a feature of the PCF50606 PMU.  It means that the fast_cccv mode will be automatically selected if a charger with suitable voltage is plugged in, and the battery not in over temperature condition.&lt;br /&gt;
&lt;br /&gt;
{{warning|This is potentially dangerous.  Only enable autofast if you ARE SURE that you can draw 500mA from the USB connector.  This is the case with a wall outlet charger, or if you are attached to a self-powered hub or a desktop PC root hub.  Bus powered hubs and some laptops only provide 100mA on their USB ports and can thus not support fast charging}}&lt;br /&gt;
&lt;br /&gt;
You can enable or disable autofast by &lt;br /&gt;
 neo1973 charger autofast&lt;br /&gt;
and&lt;br /&gt;
 neo1973 charger !autofast&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Backlight =====&lt;br /&gt;
&lt;br /&gt;
You can switch the backlight on and off by using&lt;br /&gt;
 neo1973 backlight on&lt;br /&gt;
and&lt;br /&gt;
 neo1973 backlight off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Vibrator =====&lt;br /&gt;
&lt;br /&gt;
You can switch the vibrator on and off by using&lt;br /&gt;
 neo1973 vibrator on&lt;br /&gt;
and &lt;br /&gt;
 neo1973 vibrator off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
==== S3C2410 specific commands ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help s3c2410&lt;br /&gt;
s3c2410 speed get - display current PLL speed config&lt;br /&gt;
s3c2410 speed list - display supporte PLL speed configs&lt;br /&gt;
s3c2410 speed set - set PLL speed&lt;br /&gt;
GTA01Bv2 # s3c2410 speed list&lt;br /&gt;
50 MHz&lt;br /&gt;
101 MHz&lt;br /&gt;
202 MHz&lt;br /&gt;
266 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 202 MHz, HCLK = 101 MHz, PCLK = 50 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed set 101&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 101 MHz, HCLK = 50 MHz, PCLK = 50 MHz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 266MHz时钟 =====&lt;br /&gt;
&lt;br /&gt;
You can re-configure the [[S3C2410]] PLL to generate a 266 MHz core cpu clock (rather than the 200MHz default) by using&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 266 &lt;br /&gt;
and&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 202&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
{{warning|The current hardware (as of GTA01Bv3) only runs stable at 266MHz if you do not attach aynthing (esp. the FPC / [[Debug Board]] to the Debug Port}}&lt;br /&gt;
&lt;br /&gt;
==== QT2410上的TFTP ====&lt;br /&gt;
&lt;br /&gt;
The QT2410 cs8900a Ethernet can be used to download images via network.&lt;br /&gt;
&lt;br /&gt;
First, you have to make sure that ''ipaddr'', ''serverip'', ''ethaddr' and ''netmaskk'' are set correctly in the environment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # printenv&lt;br /&gt;
ethaddr=00:01:02:03:04:05&lt;br /&gt;
netmask=255.255.255.0&lt;br /&gt;
ipaddr=192.168.100.100&lt;br /&gt;
serverip=192.168.100.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== TFTP kernel download =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # tftpboot 0x32000000&lt;br /&gt;
*** Warning: no boot file name; using 'C0A86464.img'&lt;br /&gt;
TFTP from server 192.168.100.1; our IP address is 192.168.100.100&lt;br /&gt;
Filename 'C0A86464.img'.&lt;br /&gt;
Load address: 0x32000000&lt;br /&gt;
Loading: #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         ##########################################&lt;br /&gt;
done&lt;br /&gt;
Bytes transferred = 1544788 (179254 hex)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you can then commence booting via&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410# bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 设备固件升级 ==&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot also implements [[USB DFU]].&lt;br /&gt;
&lt;br /&gt;
To find out whether your version of u-boot supports this, use the output of&lt;br /&gt;
 $ lsusb -v -d 1457:5119&lt;br /&gt;
while the phone is in u-boot mode.&lt;br /&gt;
&lt;br /&gt;
If it supports DFU, you should see the following snippet towards the end of the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
关于如何进行固件升级的信息，请看[[dfu-util/zh_cn|dfu-util]]。&lt;br /&gt;
{{Languages|Bootloader}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/U-Boot/zh_cn</id>
		<title>U-Boot/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/U-Boot/zh_cn"/>
				<updated>2007-03-07T08:33:10Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 概述 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Uboot-s3c2410fb.jpg|thumb|300px|u-boot on Neo1973 console]] [[Image:Neo1973 uboot splash closeup.jpg|thumb|300px|u-boot boot menu on Neo1973]]&lt;br /&gt;
&lt;br /&gt;
== 概述 ==&lt;br /&gt;
&lt;br /&gt;
GTA01使用了[http://u-boot.sourceforge.net/ u-boot]引导装载程序。&lt;br /&gt;
&lt;br /&gt;
关于u-boot的更多信息可以在下列地方找到&lt;br /&gt;
* http://www.denx.de/wiki/DULG&lt;br /&gt;
* http://www.gumstix.org/tikiwiki/tiki-index.php?page=U-Boot&lt;br /&gt;
* http://linuxdevices.com/articles/AT5085702347.html&lt;br /&gt;
&lt;br /&gt;
但是，未经修改的u-boot不支持GTA01所需要的许多特性，比如&lt;br /&gt;
* 利用[[S3C2410 Steppingstone]]从NAND闪存启动&lt;br /&gt;
* 从SD/Transflash读取内核/initrd&lt;br /&gt;
* S3C2410 NAND闪存&lt;br /&gt;
* 通过S3C2410 USB Device控制器下载程序&lt;br /&gt;
* S3C2410 Framebuffer启动logo/状态显示&lt;br /&gt;
&lt;br /&gt;
[[User:HaraldWelte|Harald Welte]]正在为这些解决问题而工作，并且实际上它们中的大多数已经得到了实现。&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序源代码 ==&lt;br /&gt;
&lt;br /&gt;
The current bootloader patches can be found at http://svn.openmoko.org/trunk/src/target/u-boot/patches/. &lt;br /&gt;
&lt;br /&gt;
Untar the sources, apply the patch.  run &amp;quot;make gta01bv3_config&amp;quot; (or gta01bv2_config, or whatever hardware revision you have), run &amp;quot;make&amp;quot;.  You will get a resulting &amp;quot;u-boot.bin&amp;quot; image, which you can directly flash (either using existing bootloader or [[sjf2410-linux]]) into NAND.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序二进制文件 ==&lt;br /&gt;
&lt;br /&gt;
The latest bootloader binary builds can be found at http://buildhost.openmoko.org/tmp/gta01/deploy/images/ .  It should be written to the NAND flash address 0x00000000 (size 0x30000)&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序开发 ==&lt;br /&gt;
&lt;br /&gt;
=== QT2410 ===&lt;br /&gt;
If you want to do bootloader development on the QT2410, it's easier to work with a bootloader image that can be downloaded via USB into RAM instead of flashing.&lt;br /&gt;
&lt;br /&gt;
To do so, you need to edit the u-boot/include/configs/qt2410.h file, and change the &amp;quot;if 0&amp;quot; in Line 32 into a &amp;quot;if 1&amp;quot;, then recompile with &amp;quot;make&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;quot;u-boot.bin&amp;quot; is _NOT SUITABLE_ for NAND flash, but only for direct execution from within ram, e.g. by using the [[s3c2410_boot_usb]] program.&lt;br /&gt;
&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
&lt;br /&gt;
Doing bootloader development on the GTA01 is a bit more tricky.  first, we don't have any NOR flash.  Second, there is no other way to boot _but_ from NAND.  Therefore, we also don't have a USB downloader like the QT2410.&lt;br /&gt;
&lt;br /&gt;
The main problem is:  The [[S3C2410 Steppingstone]] unconditionally copies the first 4k of flash into its internal SRAM.   That SRAM segment stays unconditionally mapped at physical address zero. How do we get around this&lt;br /&gt;
&lt;br /&gt;
==== Using JTAG to boot from RAM ====&lt;br /&gt;
&lt;br /&gt;
So how can we boot from RAM? We use JTAG / OpenOCD to&lt;br /&gt;
&lt;br /&gt;
* reset and halt the cpu at PC=0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; reset halt&lt;br /&gt;
target halted in ARM state due to debug request, current mode: Supervisor&lt;br /&gt;
cpsr: 0x400000d3 pc: 0x00000000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download a small piece of code for low-level SDRAM timing initialization (overwrite 4k SRAM of steppingstone)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/foo.bin 0            &lt;br /&gt;
downloaded 332 byte in 0s 21899us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* assert a break point at address 0x33f80000 (which indicates that the low-level code has finished)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; bp 0x33f80000 4 hw&lt;br /&gt;
breakpoint added at address 0x33f80000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* run the code up to the break point&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;gt; Target 0 halted&lt;br /&gt;
target halted in ARM state due to breakpoint, current mode: Supervisor&lt;br /&gt;
cpsr: 0x600000d3 pc: 0x33f80000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download the u-boot RAM image to 0x33f80000&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/u-boot.bin 0x33f80000&lt;br /&gt;
downloaded 135692 byte in 6s 567264us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* resume processing&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, the display backlight gets bright and we see the following familiar prompt on the serial console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.1.6 (Jan 13 2007 - 23:44:23)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
*** Warning - bad CRC or NAND, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv2 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating bootable images ==&lt;br /&gt;
&lt;br /&gt;
u-boot needs bootable images (such as kernels, but also initrd and others) in form of a so-called ''uImage''.  In order to create a ''uImage'' from e.g. a ''vmlinux'' kernel image, you can proceed as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objcopy -O binary -R .note -R .comment -S vmlinux linux.bin&lt;br /&gt;
gzip -9 linux.bin&lt;br /&gt;
u-boot/tools/mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n &amp;quot;Kernel Image QT2410&amp;quot; -d linux.bin.gz uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 启动菜单 ==&lt;br /&gt;
[[Image:Neo1973 uboot menu.jpg|thumb|400px|u-boot boot menu on Neo1973]]&lt;br /&gt;
&lt;br /&gt;
As of the Phase-0 release, our u-boot version now features an on-screen boot menu.&lt;br /&gt;
&lt;br /&gt;
=== Accessing the boot menu ===&lt;br /&gt;
&lt;br /&gt;
You can access the boot meny by pressing and holding the [[Neo1973 AUX button]] together with the power button while switching the phone on.&lt;br /&gt;
&lt;br /&gt;
=== Using the boot menu ===&lt;br /&gt;
&lt;br /&gt;
By pressing the [[Neo1973 AUX button]] you can cycle through the menu items.  Use the ''POWER'' button to select one item.&lt;br /&gt;
&lt;br /&gt;
=== Adding items to the boot menu ===&lt;br /&gt;
&lt;br /&gt;
You can add items to the boot menu by setting environment variables.  FIXME.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序命令提示行 ==&lt;br /&gt;
&lt;br /&gt;
=== Accessing the bootloader prompt ===&lt;br /&gt;
The bootloader prompt is available either on the serial console (via [[Debug Board]]), or as virtual USB Serial device (USB CDC_ACM).&lt;br /&gt;
Whether the serial port or usb i used depends on the u-boot environment variables '''stdin''', '''stdout''' and '''stderr'''.&lt;br /&gt;
&lt;br /&gt;
Whether or not you use usbtty, the first couple of messages will always be displayed on the serial console.&lt;br /&gt;
&lt;br /&gt;
The bootloader is currently configured to waid for three seconds.  If a key press on the '''stdin''' is received within those three seconds, auto-boot is aborted.&lt;br /&gt;
&lt;br /&gt;
==== Using usbtty from Linux ====&lt;br /&gt;
&lt;br /&gt;
Just by connecting the phone in u-boot mode to your Linux pc should make it detect a [[CDC ACM]] device, and you should get a new tty device called /dev/ttySAC0.  Use your favourite terminal emulator (minicom, cu, zc, ...) to access it like any other serial port.&lt;br /&gt;
&lt;br /&gt;
First, you should try to check whether the USB device shows up in 'lsusb' while you're running in u-boot mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -v -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        16&lt;br /&gt;
  idVendor           0x1457 &lt;br /&gt;
  idProduct          0x5119 &lt;br /&gt;
  bcdDevice            0.00&lt;br /&gt;
  iManufacturer           1 OpenMoko, Inc&lt;br /&gt;
  iProduct                2 Neo1973 Bootloader U-Boot 1.2.0-g6c7cac8c-dirty-moko3&lt;br /&gt;
  iSerial                 3 0000000&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           85&lt;br /&gt;
    bNumInterfaces          3&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 TTY via USB&lt;br /&gt;
    bmAttributes         0xc0&lt;br /&gt;
      Self Powered&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         2 Communications&lt;br /&gt;
      bInterfaceSubClass      2 Abstract (modem)&lt;br /&gt;
      bInterfaceProtocol      1 AT-commands (v.25ter)&lt;br /&gt;
      iInterface              6 Control Interface&lt;br /&gt;
      CDC Header:&lt;br /&gt;
        bcdCDC               0.6e&lt;br /&gt;
      CDC Call Management:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
        bDataInterface          1&lt;br /&gt;
      CDC ACM:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
      CDC Union:&lt;br /&gt;
        bMasterInterface        0&lt;br /&gt;
        bSlaveInterface         1 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        10 CDC Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              5 Bulk Data Interface&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              7 USB Device Firmware Upgrade&lt;br /&gt;
Device Status:     0x0001&lt;br /&gt;
  Self Powered&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, you can access it using your favourite terminal program.&lt;br /&gt;
&lt;br /&gt;
Then, if the environment is not set correctly, you will need to use the current console (e.g. serial console) to set&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # setenv stderr usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdout usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdin usbtty&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Typical u-boot prompt ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.2.0-moko1 (Feb 16 2007 - 00:36:13)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
Found Environment offset in OOB..&lt;br /&gt;
Video: 640x480x8 31kHz 59Hz&lt;br /&gt;
USB:   S3C2410 USB Deviced&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Commands on the bootloader prompt ===&lt;br /&gt;
&lt;br /&gt;
==== 自动引导 ====&lt;br /&gt;
&lt;br /&gt;
Auto-boot executes the command[s] specified in the ''bootcmd'' environment variable. The default configuration is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # printenv&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This basically tells us that it will load the content of the NAND partition '''kernel''' to memory address 0x32000000 and then try to boot it.  &lt;br /&gt;
&lt;br /&gt;
==== 环境变量 ====&lt;br /&gt;
&lt;br /&gt;
u-boot is configured to manage a non-volatile environment that is stored in NAND flash.  You can use the commands to read/alter/store the environment in the following example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # printenv&lt;br /&gt;
baudrate=115200&lt;br /&gt;
bootargs=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
usbtty=cdc_acm&lt;br /&gt;
bootdelay=10&lt;br /&gt;
stdout=serial&lt;br /&gt;
stderr=serial&lt;br /&gt;
stdin=serial&lt;br /&gt;
mtdparts=mtdparts=neo1973-nand:0x00030000(u-boot),0x0000c000(u-boot_env),0x00200000(kernel),0x00130000(splash),0x03c94000(rootfs)&lt;br /&gt;
mtdids=nand0=neo1973-nand&lt;br /&gt;
bootargs_base=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
pcf50606_int1=0x40&lt;br /&gt;
filesize=160C000&lt;br /&gt;
partition=nand0,0&lt;br /&gt;
mtddevnum=0&lt;br /&gt;
mtddevname=u-boot&lt;br /&gt;
&lt;br /&gt;
Environment size: 670/16380 bytes&lt;br /&gt;
GTA01Bv3 # setenv bootdelay 10&lt;br /&gt;
GTA01Bv3 # printenv bootdelay&lt;br /&gt;
bootdelay=10&lt;br /&gt;
GTA01Bv3 # saveenv&lt;br /&gt;
Saving Environment to NAND...&lt;br /&gt;
Erasing Nand...Writing to Nand... done&lt;br /&gt;
GTA01Bv3 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: When setting multiple commands, e.g. for bootcmd, you need to escape the ';', for instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # setenv bootcmd mmcinit\; ext2load mmc 0 0x32000000 uImage\; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MMC/SD卡 ====&lt;br /&gt;
&lt;br /&gt;
in order to initialize a MMC/SD card, you have to use the ``mmcinit'' command.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # mmcinit&lt;br /&gt;
trying to detect SD Card...&lt;br /&gt;
MMC found. Card desciption is:&lt;br /&gt;
Manufacturer ID = 58d564&lt;br /&gt;
HW/FW Revision = 3 8&lt;br /&gt;
Product Name = 21DN!@X�&lt;br /&gt;
Serial Number = 445303&lt;br /&gt;
Month = 5&lt;br /&gt;
Year = 2000&lt;br /&gt;
READ_BL_LEN=15, C_SIZE_MULT=7, C_SIZE=3197&lt;br /&gt;
size = 4208984064&lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
afterwards, you can read ext2 filesystems like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2ls mmc 0&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 .&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 ..&lt;br /&gt;
&amp;lt;DIR&amp;gt;      12288 lost+found&lt;br /&gt;
         1544788 uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NAND ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # help nand&lt;br /&gt;
nand info                  - show available NAND devices&lt;br /&gt;
nand device [dev]     - show or set current device&lt;br /&gt;
nand read[.jffs2]     - addr off size&lt;br /&gt;
nand write[.jffs2]    - addr off size - read/write `size' bytes starting&lt;br /&gt;
    at offset `off' to/from memory address `addr'&lt;br /&gt;
nand erase [clean] [off size] - erase `size' bytes from&lt;br /&gt;
    offset `off' (entire device if not specified)&lt;br /&gt;
nand bad - show bad blocks&lt;br /&gt;
nand dump[.oob] off - dump page&lt;br /&gt;
nand scrub - really clean NAND erasing bad blocks (UNSAFE)&lt;br /&gt;
nand markbad off - mark bad block at offset (UNSAFE)&lt;br /&gt;
nand biterr off - make a bit error at offset (UNSAFE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Loading Kernel from NAND =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # nand read 0x32000000 kernel&lt;br /&gt;
&lt;br /&gt;
NAND read: device 0 offset 212992, size 2097152 ...  2097152 bytes read: OK&lt;br /&gt;
GTA01Bv3 # bootm 0x32000000&lt;br /&gt;
## Booting image at 32000000 ...&lt;br /&gt;
   Image Name:   OpenMoko Kernel Image Neo1973&lt;br /&gt;
   Created:      2007-02-15  23:54:18 UTC&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (gzip compressed)&lt;br /&gt;
   Data Size:    1546258 Bytes =  1.5 MB&lt;br /&gt;
   Load Address: 30008000&lt;br /&gt;
   Entry Point:  30008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Uncompressing Kernel Image ... OK&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing new bootloader to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file u-boot.bin from ext2/mmc and flashes it into the&lt;br /&gt;
bootloader flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 u-boot.bin&lt;br /&gt;
GTA01Bv3 # nand erase u-boot&lt;br /&gt;
GTA01Bv3 # nand write 0x32000000 u-boot ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing kernel to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file uImage from ext2/mmc and flashes it into the&lt;br /&gt;
kernel flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 uImage&lt;br /&gt;
GTA01Bv3 # nand erase kernel&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 kernel ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing rootfs to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file rootfs.jffs2 from ext2/mmc and flashes it into the&lt;br /&gt;
rootfs flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 rootfs.jffs2&lt;br /&gt;
GTA01Bv3 # nand erase rootfs&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 rootfs ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that this will only work with root file system sizes that are smaller than the amount of memory above 0x32000000, which in the case of 64MB SDRAM is something like 32MB.&lt;br /&gt;
&lt;br /&gt;
==== Neo1973 related commands ====&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot supports a couple of Neo1973 specific commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help neo1973&lt;br /&gt;
neo1973 neo1973 info - display phone informantion&lt;br /&gt;
neo1973 power-off - switch off the phone&lt;br /&gt;
neo1973 charger status - display charger status&lt;br /&gt;
neo1973 charger autofast - enable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger !autofast - disable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger fast - enable fast (500mA) charging&lt;br /&gt;
neo1973 charger off - disable charging&lt;br /&gt;
neo1973 backlight (on|off) - switch backlight on or off&lt;br /&gt;
neo1973 vibrator (on|off) - switch vibrator on or off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Power-off =====&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 power-off&lt;br /&gt;
&lt;br /&gt;
you can switch the device off from the bootloader prompt.&lt;br /&gt;
&lt;br /&gt;
===== Battery charger related =====&lt;br /&gt;
&lt;br /&gt;
For a detailed description of the charger basics, see [[Neo1973 Battery Charger]].&lt;br /&gt;
&lt;br /&gt;
====== Inquiring the charger state ======&lt;br /&gt;
&lt;br /&gt;
You can get the current charger status by issuing&lt;br /&gt;
 neo1973 charger status&lt;br /&gt;
&lt;br /&gt;
The following modes are possible:&lt;br /&gt;
&lt;br /&gt;
* idle - no charging&lt;br /&gt;
* trickle - FIXME&lt;br /&gt;
* pre - Slow (100mA) charging, works in hardware.&lt;br /&gt;
* fast_cccv - Fast (500mA) charging, using Constant-Current followed by Constant Voltage (Li-Ion)&lt;br /&gt;
&lt;br /&gt;
====== Disabling battery charging ======&lt;br /&gt;
&lt;br /&gt;
You can disable battery charging (until the next reboot) by issuing&lt;br /&gt;
 neo1973 charger off&lt;br /&gt;
&lt;br /&gt;
====== Forcing fast charge ======&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 charger fast&lt;br /&gt;
you can force the PMU to try to do a fast (500mA) charge of the battery. It will abort if the battery is in over temperature or some other error condition occurs.&lt;br /&gt;
&lt;br /&gt;
====== Enabling / Disabling automatic fast charge ======&lt;br /&gt;
&lt;br /&gt;
Autofast is a feature of the PCF50606 PMU.  It means that the fast_cccv mode will be automatically selected if a charger with suitable voltage is plugged in, and the battery not in over temperature condition.&lt;br /&gt;
&lt;br /&gt;
{{warning|This is potentially dangerous.  Only enable autofast if you ARE SURE that you can draw 500mA from the USB connector.  This is the case with a wall outlet charger, or if you are attached to a self-powered hub or a desktop PC root hub.  Bus powered hubs and some laptops only provide 100mA on their USB ports and can thus not support fast charging}}&lt;br /&gt;
&lt;br /&gt;
You can enable or disable autofast by &lt;br /&gt;
 neo1973 charger autofast&lt;br /&gt;
and&lt;br /&gt;
 neo1973 charger !autofast&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Backlight =====&lt;br /&gt;
&lt;br /&gt;
You can switch the backlight on and off by using&lt;br /&gt;
 neo1973 backlight on&lt;br /&gt;
and&lt;br /&gt;
 neo1973 backlight off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Vibrator =====&lt;br /&gt;
&lt;br /&gt;
You can switch the vibrator on and off by using&lt;br /&gt;
 neo1973 vibrator on&lt;br /&gt;
and &lt;br /&gt;
 neo1973 vibrator off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
==== S3C2410 specific commands ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help s3c2410&lt;br /&gt;
s3c2410 speed get - display current PLL speed config&lt;br /&gt;
s3c2410 speed list - display supporte PLL speed configs&lt;br /&gt;
s3c2410 speed set - set PLL speed&lt;br /&gt;
GTA01Bv2 # s3c2410 speed list&lt;br /&gt;
50 MHz&lt;br /&gt;
101 MHz&lt;br /&gt;
202 MHz&lt;br /&gt;
266 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 202 MHz, HCLK = 101 MHz, PCLK = 50 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed set 101&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 101 MHz, HCLK = 50 MHz, PCLK = 50 MHz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 266MHz时钟 =====&lt;br /&gt;
&lt;br /&gt;
You can re-configure the [[S3C2410]] PLL to generate a 266 MHz core cpu clock (rather than the 200MHz default) by using&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 266 &lt;br /&gt;
and&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 202&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
{{warning|The current hardware (as of GTA01Bv3) only runs stable at 266MHz if you do not attach aynthing (esp. the FPC / [[Debug Board]] to the Debug Port}}&lt;br /&gt;
&lt;br /&gt;
==== QT2410上的TFTP ====&lt;br /&gt;
&lt;br /&gt;
The QT2410 cs8900a Ethernet can be used to download images via network.&lt;br /&gt;
&lt;br /&gt;
First, you have to make sure that ''ipaddr'', ''serverip'', ''ethaddr' and ''netmaskk'' are set correctly in the environment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # printenv&lt;br /&gt;
ethaddr=00:01:02:03:04:05&lt;br /&gt;
netmask=255.255.255.0&lt;br /&gt;
ipaddr=192.168.100.100&lt;br /&gt;
serverip=192.168.100.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== TFTP kernel download =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # tftpboot 0x32000000&lt;br /&gt;
*** Warning: no boot file name; using 'C0A86464.img'&lt;br /&gt;
TFTP from server 192.168.100.1; our IP address is 192.168.100.100&lt;br /&gt;
Filename 'C0A86464.img'.&lt;br /&gt;
Load address: 0x32000000&lt;br /&gt;
Loading: #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         ##########################################&lt;br /&gt;
done&lt;br /&gt;
Bytes transferred = 1544788 (179254 hex)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you can then commence booting via&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410# bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 设备固件升级 ==&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot also implements [[USB DFU]].&lt;br /&gt;
&lt;br /&gt;
To find out whether your version of u-boot supports this, use the output of&lt;br /&gt;
 $ lsusb -v -d 1457:5119&lt;br /&gt;
while the phone is in u-boot mode.&lt;br /&gt;
&lt;br /&gt;
If it supports DFU, you should see the following snippet towards the end of the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
关于如何进行固件升级的信息，请看[[dfu-util/zh_cn|dfu-util]]。&lt;br /&gt;
{{Languages|Bootloader}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/U-Boot/zh_cn</id>
		<title>U-Boot/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/U-Boot/zh_cn"/>
				<updated>2007-03-07T08:32:07Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 概述 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Uboot-s3c2410fb.jpg|thumb|300px|u-boot on Neo1973 console]] [[Image:Neo1973 uboot splash closeup.jpg|thumb|300px|u-boot boot menu on Neo1973]]&lt;br /&gt;
&lt;br /&gt;
== 概述 ==&lt;br /&gt;
&lt;br /&gt;
GTA01使用了[http://u-boot.sourceforge.net/ u-boot]引导装载程序。&lt;br /&gt;
&lt;br /&gt;
关于u-boot的更多信息可以在下列地方找到&lt;br /&gt;
* http://www.denx.de/wiki/DULG&lt;br /&gt;
* http://www.gumstix.org/tikiwiki/tiki-index.php?page=U-Boot&lt;br /&gt;
* http://linuxdevices.com/articles/AT5085702347.html&lt;br /&gt;
&lt;br /&gt;
但是，未经修改的u-boot不支持GTA01所需要的许多特性，比如&lt;br /&gt;
* 利用[[S3C2410 Steppingstone]]从NAND闪存启动&lt;br /&gt;
* 从SD/Transflash读取内核/initrd&lt;br /&gt;
* S3C2410 NAND闪存&lt;br /&gt;
* 通过S3C2410 USB Device控制器下载程序&lt;br /&gt;
* S3C2410 Framebuffer启动logo/状态显示&lt;br /&gt;
&lt;br /&gt;
[[User:HaraldWelte]]正在为这些解决问题而工作，并且实际上它们中的大多数已经得到了实现。&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序源代码 ==&lt;br /&gt;
&lt;br /&gt;
The current bootloader patches can be found at http://svn.openmoko.org/trunk/src/target/u-boot/patches/. &lt;br /&gt;
&lt;br /&gt;
Untar the sources, apply the patch.  run &amp;quot;make gta01bv3_config&amp;quot; (or gta01bv2_config, or whatever hardware revision you have), run &amp;quot;make&amp;quot;.  You will get a resulting &amp;quot;u-boot.bin&amp;quot; image, which you can directly flash (either using existing bootloader or [[sjf2410-linux]]) into NAND.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序二进制文件 ==&lt;br /&gt;
&lt;br /&gt;
The latest bootloader binary builds can be found at http://buildhost.openmoko.org/tmp/gta01/deploy/images/ .  It should be written to the NAND flash address 0x00000000 (size 0x30000)&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序开发 ==&lt;br /&gt;
&lt;br /&gt;
=== QT2410 ===&lt;br /&gt;
If you want to do bootloader development on the QT2410, it's easier to work with a bootloader image that can be downloaded via USB into RAM instead of flashing.&lt;br /&gt;
&lt;br /&gt;
To do so, you need to edit the u-boot/include/configs/qt2410.h file, and change the &amp;quot;if 0&amp;quot; in Line 32 into a &amp;quot;if 1&amp;quot;, then recompile with &amp;quot;make&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;quot;u-boot.bin&amp;quot; is _NOT SUITABLE_ for NAND flash, but only for direct execution from within ram, e.g. by using the [[s3c2410_boot_usb]] program.&lt;br /&gt;
&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
&lt;br /&gt;
Doing bootloader development on the GTA01 is a bit more tricky.  first, we don't have any NOR flash.  Second, there is no other way to boot _but_ from NAND.  Therefore, we also don't have a USB downloader like the QT2410.&lt;br /&gt;
&lt;br /&gt;
The main problem is:  The [[S3C2410 Steppingstone]] unconditionally copies the first 4k of flash into its internal SRAM.   That SRAM segment stays unconditionally mapped at physical address zero. How do we get around this&lt;br /&gt;
&lt;br /&gt;
==== Using JTAG to boot from RAM ====&lt;br /&gt;
&lt;br /&gt;
So how can we boot from RAM? We use JTAG / OpenOCD to&lt;br /&gt;
&lt;br /&gt;
* reset and halt the cpu at PC=0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; reset halt&lt;br /&gt;
target halted in ARM state due to debug request, current mode: Supervisor&lt;br /&gt;
cpsr: 0x400000d3 pc: 0x00000000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download a small piece of code for low-level SDRAM timing initialization (overwrite 4k SRAM of steppingstone)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/foo.bin 0            &lt;br /&gt;
downloaded 332 byte in 0s 21899us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* assert a break point at address 0x33f80000 (which indicates that the low-level code has finished)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; bp 0x33f80000 4 hw&lt;br /&gt;
breakpoint added at address 0x33f80000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* run the code up to the break point&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;gt; Target 0 halted&lt;br /&gt;
target halted in ARM state due to breakpoint, current mode: Supervisor&lt;br /&gt;
cpsr: 0x600000d3 pc: 0x33f80000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download the u-boot RAM image to 0x33f80000&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/u-boot.bin 0x33f80000&lt;br /&gt;
downloaded 135692 byte in 6s 567264us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* resume processing&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, the display backlight gets bright and we see the following familiar prompt on the serial console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.1.6 (Jan 13 2007 - 23:44:23)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
*** Warning - bad CRC or NAND, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv2 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating bootable images ==&lt;br /&gt;
&lt;br /&gt;
u-boot needs bootable images (such as kernels, but also initrd and others) in form of a so-called ''uImage''.  In order to create a ''uImage'' from e.g. a ''vmlinux'' kernel image, you can proceed as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objcopy -O binary -R .note -R .comment -S vmlinux linux.bin&lt;br /&gt;
gzip -9 linux.bin&lt;br /&gt;
u-boot/tools/mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n &amp;quot;Kernel Image QT2410&amp;quot; -d linux.bin.gz uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 启动菜单 ==&lt;br /&gt;
[[Image:Neo1973 uboot menu.jpg|thumb|400px|u-boot boot menu on Neo1973]]&lt;br /&gt;
&lt;br /&gt;
As of the Phase-0 release, our u-boot version now features an on-screen boot menu.&lt;br /&gt;
&lt;br /&gt;
=== Accessing the boot menu ===&lt;br /&gt;
&lt;br /&gt;
You can access the boot meny by pressing and holding the [[Neo1973 AUX button]] together with the power button while switching the phone on.&lt;br /&gt;
&lt;br /&gt;
=== Using the boot menu ===&lt;br /&gt;
&lt;br /&gt;
By pressing the [[Neo1973 AUX button]] you can cycle through the menu items.  Use the ''POWER'' button to select one item.&lt;br /&gt;
&lt;br /&gt;
=== Adding items to the boot menu ===&lt;br /&gt;
&lt;br /&gt;
You can add items to the boot menu by setting environment variables.  FIXME.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序命令提示行 ==&lt;br /&gt;
&lt;br /&gt;
=== Accessing the bootloader prompt ===&lt;br /&gt;
The bootloader prompt is available either on the serial console (via [[Debug Board]]), or as virtual USB Serial device (USB CDC_ACM).&lt;br /&gt;
Whether the serial port or usb i used depends on the u-boot environment variables '''stdin''', '''stdout''' and '''stderr'''.&lt;br /&gt;
&lt;br /&gt;
Whether or not you use usbtty, the first couple of messages will always be displayed on the serial console.&lt;br /&gt;
&lt;br /&gt;
The bootloader is currently configured to waid for three seconds.  If a key press on the '''stdin''' is received within those three seconds, auto-boot is aborted.&lt;br /&gt;
&lt;br /&gt;
==== Using usbtty from Linux ====&lt;br /&gt;
&lt;br /&gt;
Just by connecting the phone in u-boot mode to your Linux pc should make it detect a [[CDC ACM]] device, and you should get a new tty device called /dev/ttySAC0.  Use your favourite terminal emulator (minicom, cu, zc, ...) to access it like any other serial port.&lt;br /&gt;
&lt;br /&gt;
First, you should try to check whether the USB device shows up in 'lsusb' while you're running in u-boot mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -v -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        16&lt;br /&gt;
  idVendor           0x1457 &lt;br /&gt;
  idProduct          0x5119 &lt;br /&gt;
  bcdDevice            0.00&lt;br /&gt;
  iManufacturer           1 OpenMoko, Inc&lt;br /&gt;
  iProduct                2 Neo1973 Bootloader U-Boot 1.2.0-g6c7cac8c-dirty-moko3&lt;br /&gt;
  iSerial                 3 0000000&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           85&lt;br /&gt;
    bNumInterfaces          3&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 TTY via USB&lt;br /&gt;
    bmAttributes         0xc0&lt;br /&gt;
      Self Powered&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         2 Communications&lt;br /&gt;
      bInterfaceSubClass      2 Abstract (modem)&lt;br /&gt;
      bInterfaceProtocol      1 AT-commands (v.25ter)&lt;br /&gt;
      iInterface              6 Control Interface&lt;br /&gt;
      CDC Header:&lt;br /&gt;
        bcdCDC               0.6e&lt;br /&gt;
      CDC Call Management:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
        bDataInterface          1&lt;br /&gt;
      CDC ACM:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
      CDC Union:&lt;br /&gt;
        bMasterInterface        0&lt;br /&gt;
        bSlaveInterface         1 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        10 CDC Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              5 Bulk Data Interface&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              7 USB Device Firmware Upgrade&lt;br /&gt;
Device Status:     0x0001&lt;br /&gt;
  Self Powered&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, you can access it using your favourite terminal program.&lt;br /&gt;
&lt;br /&gt;
Then, if the environment is not set correctly, you will need to use the current console (e.g. serial console) to set&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # setenv stderr usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdout usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdin usbtty&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Typical u-boot prompt ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.2.0-moko1 (Feb 16 2007 - 00:36:13)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
Found Environment offset in OOB..&lt;br /&gt;
Video: 640x480x8 31kHz 59Hz&lt;br /&gt;
USB:   S3C2410 USB Deviced&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Commands on the bootloader prompt ===&lt;br /&gt;
&lt;br /&gt;
==== 自动引导 ====&lt;br /&gt;
&lt;br /&gt;
Auto-boot executes the command[s] specified in the ''bootcmd'' environment variable. The default configuration is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # printenv&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This basically tells us that it will load the content of the NAND partition '''kernel''' to memory address 0x32000000 and then try to boot it.  &lt;br /&gt;
&lt;br /&gt;
==== 环境变量 ====&lt;br /&gt;
&lt;br /&gt;
u-boot is configured to manage a non-volatile environment that is stored in NAND flash.  You can use the commands to read/alter/store the environment in the following example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # printenv&lt;br /&gt;
baudrate=115200&lt;br /&gt;
bootargs=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
usbtty=cdc_acm&lt;br /&gt;
bootdelay=10&lt;br /&gt;
stdout=serial&lt;br /&gt;
stderr=serial&lt;br /&gt;
stdin=serial&lt;br /&gt;
mtdparts=mtdparts=neo1973-nand:0x00030000(u-boot),0x0000c000(u-boot_env),0x00200000(kernel),0x00130000(splash),0x03c94000(rootfs)&lt;br /&gt;
mtdids=nand0=neo1973-nand&lt;br /&gt;
bootargs_base=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
pcf50606_int1=0x40&lt;br /&gt;
filesize=160C000&lt;br /&gt;
partition=nand0,0&lt;br /&gt;
mtddevnum=0&lt;br /&gt;
mtddevname=u-boot&lt;br /&gt;
&lt;br /&gt;
Environment size: 670/16380 bytes&lt;br /&gt;
GTA01Bv3 # setenv bootdelay 10&lt;br /&gt;
GTA01Bv3 # printenv bootdelay&lt;br /&gt;
bootdelay=10&lt;br /&gt;
GTA01Bv3 # saveenv&lt;br /&gt;
Saving Environment to NAND...&lt;br /&gt;
Erasing Nand...Writing to Nand... done&lt;br /&gt;
GTA01Bv3 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: When setting multiple commands, e.g. for bootcmd, you need to escape the ';', for instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # setenv bootcmd mmcinit\; ext2load mmc 0 0x32000000 uImage\; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MMC/SD卡 ====&lt;br /&gt;
&lt;br /&gt;
in order to initialize a MMC/SD card, you have to use the ``mmcinit'' command.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # mmcinit&lt;br /&gt;
trying to detect SD Card...&lt;br /&gt;
MMC found. Card desciption is:&lt;br /&gt;
Manufacturer ID = 58d564&lt;br /&gt;
HW/FW Revision = 3 8&lt;br /&gt;
Product Name = 21DN!@X�&lt;br /&gt;
Serial Number = 445303&lt;br /&gt;
Month = 5&lt;br /&gt;
Year = 2000&lt;br /&gt;
READ_BL_LEN=15, C_SIZE_MULT=7, C_SIZE=3197&lt;br /&gt;
size = 4208984064&lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
afterwards, you can read ext2 filesystems like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2ls mmc 0&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 .&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 ..&lt;br /&gt;
&amp;lt;DIR&amp;gt;      12288 lost+found&lt;br /&gt;
         1544788 uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NAND ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # help nand&lt;br /&gt;
nand info                  - show available NAND devices&lt;br /&gt;
nand device [dev]     - show or set current device&lt;br /&gt;
nand read[.jffs2]     - addr off size&lt;br /&gt;
nand write[.jffs2]    - addr off size - read/write `size' bytes starting&lt;br /&gt;
    at offset `off' to/from memory address `addr'&lt;br /&gt;
nand erase [clean] [off size] - erase `size' bytes from&lt;br /&gt;
    offset `off' (entire device if not specified)&lt;br /&gt;
nand bad - show bad blocks&lt;br /&gt;
nand dump[.oob] off - dump page&lt;br /&gt;
nand scrub - really clean NAND erasing bad blocks (UNSAFE)&lt;br /&gt;
nand markbad off - mark bad block at offset (UNSAFE)&lt;br /&gt;
nand biterr off - make a bit error at offset (UNSAFE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Loading Kernel from NAND =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # nand read 0x32000000 kernel&lt;br /&gt;
&lt;br /&gt;
NAND read: device 0 offset 212992, size 2097152 ...  2097152 bytes read: OK&lt;br /&gt;
GTA01Bv3 # bootm 0x32000000&lt;br /&gt;
## Booting image at 32000000 ...&lt;br /&gt;
   Image Name:   OpenMoko Kernel Image Neo1973&lt;br /&gt;
   Created:      2007-02-15  23:54:18 UTC&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (gzip compressed)&lt;br /&gt;
   Data Size:    1546258 Bytes =  1.5 MB&lt;br /&gt;
   Load Address: 30008000&lt;br /&gt;
   Entry Point:  30008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Uncompressing Kernel Image ... OK&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing new bootloader to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file u-boot.bin from ext2/mmc and flashes it into the&lt;br /&gt;
bootloader flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 u-boot.bin&lt;br /&gt;
GTA01Bv3 # nand erase u-boot&lt;br /&gt;
GTA01Bv3 # nand write 0x32000000 u-boot ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing kernel to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file uImage from ext2/mmc and flashes it into the&lt;br /&gt;
kernel flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 uImage&lt;br /&gt;
GTA01Bv3 # nand erase kernel&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 kernel ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing rootfs to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file rootfs.jffs2 from ext2/mmc and flashes it into the&lt;br /&gt;
rootfs flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 rootfs.jffs2&lt;br /&gt;
GTA01Bv3 # nand erase rootfs&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 rootfs ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that this will only work with root file system sizes that are smaller than the amount of memory above 0x32000000, which in the case of 64MB SDRAM is something like 32MB.&lt;br /&gt;
&lt;br /&gt;
==== Neo1973 related commands ====&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot supports a couple of Neo1973 specific commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help neo1973&lt;br /&gt;
neo1973 neo1973 info - display phone informantion&lt;br /&gt;
neo1973 power-off - switch off the phone&lt;br /&gt;
neo1973 charger status - display charger status&lt;br /&gt;
neo1973 charger autofast - enable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger !autofast - disable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger fast - enable fast (500mA) charging&lt;br /&gt;
neo1973 charger off - disable charging&lt;br /&gt;
neo1973 backlight (on|off) - switch backlight on or off&lt;br /&gt;
neo1973 vibrator (on|off) - switch vibrator on or off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Power-off =====&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 power-off&lt;br /&gt;
&lt;br /&gt;
you can switch the device off from the bootloader prompt.&lt;br /&gt;
&lt;br /&gt;
===== Battery charger related =====&lt;br /&gt;
&lt;br /&gt;
For a detailed description of the charger basics, see [[Neo1973 Battery Charger]].&lt;br /&gt;
&lt;br /&gt;
====== Inquiring the charger state ======&lt;br /&gt;
&lt;br /&gt;
You can get the current charger status by issuing&lt;br /&gt;
 neo1973 charger status&lt;br /&gt;
&lt;br /&gt;
The following modes are possible:&lt;br /&gt;
&lt;br /&gt;
* idle - no charging&lt;br /&gt;
* trickle - FIXME&lt;br /&gt;
* pre - Slow (100mA) charging, works in hardware.&lt;br /&gt;
* fast_cccv - Fast (500mA) charging, using Constant-Current followed by Constant Voltage (Li-Ion)&lt;br /&gt;
&lt;br /&gt;
====== Disabling battery charging ======&lt;br /&gt;
&lt;br /&gt;
You can disable battery charging (until the next reboot) by issuing&lt;br /&gt;
 neo1973 charger off&lt;br /&gt;
&lt;br /&gt;
====== Forcing fast charge ======&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 charger fast&lt;br /&gt;
you can force the PMU to try to do a fast (500mA) charge of the battery. It will abort if the battery is in over temperature or some other error condition occurs.&lt;br /&gt;
&lt;br /&gt;
====== Enabling / Disabling automatic fast charge ======&lt;br /&gt;
&lt;br /&gt;
Autofast is a feature of the PCF50606 PMU.  It means that the fast_cccv mode will be automatically selected if a charger with suitable voltage is plugged in, and the battery not in over temperature condition.&lt;br /&gt;
&lt;br /&gt;
{{warning|This is potentially dangerous.  Only enable autofast if you ARE SURE that you can draw 500mA from the USB connector.  This is the case with a wall outlet charger, or if you are attached to a self-powered hub or a desktop PC root hub.  Bus powered hubs and some laptops only provide 100mA on their USB ports and can thus not support fast charging}}&lt;br /&gt;
&lt;br /&gt;
You can enable or disable autofast by &lt;br /&gt;
 neo1973 charger autofast&lt;br /&gt;
and&lt;br /&gt;
 neo1973 charger !autofast&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Backlight =====&lt;br /&gt;
&lt;br /&gt;
You can switch the backlight on and off by using&lt;br /&gt;
 neo1973 backlight on&lt;br /&gt;
and&lt;br /&gt;
 neo1973 backlight off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Vibrator =====&lt;br /&gt;
&lt;br /&gt;
You can switch the vibrator on and off by using&lt;br /&gt;
 neo1973 vibrator on&lt;br /&gt;
and &lt;br /&gt;
 neo1973 vibrator off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
==== S3C2410 specific commands ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help s3c2410&lt;br /&gt;
s3c2410 speed get - display current PLL speed config&lt;br /&gt;
s3c2410 speed list - display supporte PLL speed configs&lt;br /&gt;
s3c2410 speed set - set PLL speed&lt;br /&gt;
GTA01Bv2 # s3c2410 speed list&lt;br /&gt;
50 MHz&lt;br /&gt;
101 MHz&lt;br /&gt;
202 MHz&lt;br /&gt;
266 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 202 MHz, HCLK = 101 MHz, PCLK = 50 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed set 101&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 101 MHz, HCLK = 50 MHz, PCLK = 50 MHz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 266MHz时钟 =====&lt;br /&gt;
&lt;br /&gt;
You can re-configure the [[S3C2410]] PLL to generate a 266 MHz core cpu clock (rather than the 200MHz default) by using&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 266 &lt;br /&gt;
and&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 202&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
{{warning|The current hardware (as of GTA01Bv3) only runs stable at 266MHz if you do not attach aynthing (esp. the FPC / [[Debug Board]] to the Debug Port}}&lt;br /&gt;
&lt;br /&gt;
==== QT2410上的TFTP ====&lt;br /&gt;
&lt;br /&gt;
The QT2410 cs8900a Ethernet can be used to download images via network.&lt;br /&gt;
&lt;br /&gt;
First, you have to make sure that ''ipaddr'', ''serverip'', ''ethaddr' and ''netmaskk'' are set correctly in the environment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # printenv&lt;br /&gt;
ethaddr=00:01:02:03:04:05&lt;br /&gt;
netmask=255.255.255.0&lt;br /&gt;
ipaddr=192.168.100.100&lt;br /&gt;
serverip=192.168.100.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== TFTP kernel download =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # tftpboot 0x32000000&lt;br /&gt;
*** Warning: no boot file name; using 'C0A86464.img'&lt;br /&gt;
TFTP from server 192.168.100.1; our IP address is 192.168.100.100&lt;br /&gt;
Filename 'C0A86464.img'.&lt;br /&gt;
Load address: 0x32000000&lt;br /&gt;
Loading: #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         ##########################################&lt;br /&gt;
done&lt;br /&gt;
Bytes transferred = 1544788 (179254 hex)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you can then commence booting via&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410# bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 设备固件升级 ==&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot also implements [[USB DFU]].&lt;br /&gt;
&lt;br /&gt;
To find out whether your version of u-boot supports this, use the output of&lt;br /&gt;
 $ lsusb -v -d 1457:5119&lt;br /&gt;
while the phone is in u-boot mode.&lt;br /&gt;
&lt;br /&gt;
If it supports DFU, you should see the following snippet towards the end of the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
关于如何进行固件升级的信息，请看[[dfu-util/zh_cn|dfu-util]]。&lt;br /&gt;
{{Languages|Bootloader}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/U-Boot/zh_cn</id>
		<title>U-Boot/zh cn</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/U-Boot/zh_cn"/>
				<updated>2007-03-07T08:30:01Z</updated>
		
		<summary type="html">&lt;p&gt;JarodWang: /* 概述 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Uboot-s3c2410fb.jpg|thumb|300px|u-boot on Neo1973 console]] [[Image:Neo1973 uboot splash closeup.jpg|thumb|300px|u-boot boot menu on Neo1973]]&lt;br /&gt;
&lt;br /&gt;
== 概述 ==&lt;br /&gt;
&lt;br /&gt;
GTA01使用了[http://u-boot.sourceforge.net/ u-boot]引导装载程序。&lt;br /&gt;
&lt;br /&gt;
关于u-boot的更多信息可以在下列地方找到&lt;br /&gt;
* http://www.denx.de/wiki/DULG&lt;br /&gt;
* http://www.gumstix.org/tikiwiki/tiki-index.php?page=U-Boot&lt;br /&gt;
* http://linuxdevices.com/articles/AT5085702347.html&lt;br /&gt;
&lt;br /&gt;
但是，未经修改的u-boot不支持GTA01所需要的许多特性，比如&lt;br /&gt;
* 利用[[S3C2410 Steppingstone]]从NAND闪存启动&lt;br /&gt;
* 从SD/Transflash读取内核/initrd&lt;br /&gt;
* S3C2410 NAND闪存&lt;br /&gt;
* S3C2410 USB Device控制器程序下载&lt;br /&gt;
* S3C2410 Framebuffer启动logo/状态显示&lt;br /&gt;
&lt;br /&gt;
[[User:HaraldWelte]] is working on those issues, and in fact most of them have already been implemented.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序源代码 ==&lt;br /&gt;
&lt;br /&gt;
The current bootloader patches can be found at http://svn.openmoko.org/trunk/src/target/u-boot/patches/. &lt;br /&gt;
&lt;br /&gt;
Untar the sources, apply the patch.  run &amp;quot;make gta01bv3_config&amp;quot; (or gta01bv2_config, or whatever hardware revision you have), run &amp;quot;make&amp;quot;.  You will get a resulting &amp;quot;u-boot.bin&amp;quot; image, which you can directly flash (either using existing bootloader or [[sjf2410-linux]]) into NAND.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序二进制文件 ==&lt;br /&gt;
&lt;br /&gt;
The latest bootloader binary builds can be found at http://buildhost.openmoko.org/tmp/gta01/deploy/images/ .  It should be written to the NAND flash address 0x00000000 (size 0x30000)&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序开发 ==&lt;br /&gt;
&lt;br /&gt;
=== QT2410 ===&lt;br /&gt;
If you want to do bootloader development on the QT2410, it's easier to work with a bootloader image that can be downloaded via USB into RAM instead of flashing.&lt;br /&gt;
&lt;br /&gt;
To do so, you need to edit the u-boot/include/configs/qt2410.h file, and change the &amp;quot;if 0&amp;quot; in Line 32 into a &amp;quot;if 1&amp;quot;, then recompile with &amp;quot;make&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;quot;u-boot.bin&amp;quot; is _NOT SUITABLE_ for NAND flash, but only for direct execution from within ram, e.g. by using the [[s3c2410_boot_usb]] program.&lt;br /&gt;
&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
&lt;br /&gt;
Doing bootloader development on the GTA01 is a bit more tricky.  first, we don't have any NOR flash.  Second, there is no other way to boot _but_ from NAND.  Therefore, we also don't have a USB downloader like the QT2410.&lt;br /&gt;
&lt;br /&gt;
The main problem is:  The [[S3C2410 Steppingstone]] unconditionally copies the first 4k of flash into its internal SRAM.   That SRAM segment stays unconditionally mapped at physical address zero. How do we get around this&lt;br /&gt;
&lt;br /&gt;
==== Using JTAG to boot from RAM ====&lt;br /&gt;
&lt;br /&gt;
So how can we boot from RAM? We use JTAG / OpenOCD to&lt;br /&gt;
&lt;br /&gt;
* reset and halt the cpu at PC=0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; reset halt&lt;br /&gt;
target halted in ARM state due to debug request, current mode: Supervisor&lt;br /&gt;
cpsr: 0x400000d3 pc: 0x00000000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download a small piece of code for low-level SDRAM timing initialization (overwrite 4k SRAM of steppingstone)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/foo.bin 0            &lt;br /&gt;
downloaded 332 byte in 0s 21899us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* assert a break point at address 0x33f80000 (which indicates that the low-level code has finished)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; bp 0x33f80000 4 hw&lt;br /&gt;
breakpoint added at address 0x33f80000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* run the code up to the break point&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;gt; Target 0 halted&lt;br /&gt;
target halted in ARM state due to breakpoint, current mode: Supervisor&lt;br /&gt;
cpsr: 0x600000d3 pc: 0x33f80000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download the u-boot RAM image to 0x33f80000&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/u-boot.bin 0x33f80000&lt;br /&gt;
downloaded 135692 byte in 6s 567264us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* resume processing&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, the display backlight gets bright and we see the following familiar prompt on the serial console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.1.6 (Jan 13 2007 - 23:44:23)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
*** Warning - bad CRC or NAND, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv2 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating bootable images ==&lt;br /&gt;
&lt;br /&gt;
u-boot needs bootable images (such as kernels, but also initrd and others) in form of a so-called ''uImage''.  In order to create a ''uImage'' from e.g. a ''vmlinux'' kernel image, you can proceed as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objcopy -O binary -R .note -R .comment -S vmlinux linux.bin&lt;br /&gt;
gzip -9 linux.bin&lt;br /&gt;
u-boot/tools/mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n &amp;quot;Kernel Image QT2410&amp;quot; -d linux.bin.gz uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 启动菜单 ==&lt;br /&gt;
[[Image:Neo1973 uboot menu.jpg|thumb|400px|u-boot boot menu on Neo1973]]&lt;br /&gt;
&lt;br /&gt;
As of the Phase-0 release, our u-boot version now features an on-screen boot menu.&lt;br /&gt;
&lt;br /&gt;
=== Accessing the boot menu ===&lt;br /&gt;
&lt;br /&gt;
You can access the boot meny by pressing and holding the [[Neo1973 AUX button]] together with the power button while switching the phone on.&lt;br /&gt;
&lt;br /&gt;
=== Using the boot menu ===&lt;br /&gt;
&lt;br /&gt;
By pressing the [[Neo1973 AUX button]] you can cycle through the menu items.  Use the ''POWER'' button to select one item.&lt;br /&gt;
&lt;br /&gt;
=== Adding items to the boot menu ===&lt;br /&gt;
&lt;br /&gt;
You can add items to the boot menu by setting environment variables.  FIXME.&lt;br /&gt;
&lt;br /&gt;
== 引导装载程序命令提示行 ==&lt;br /&gt;
&lt;br /&gt;
=== Accessing the bootloader prompt ===&lt;br /&gt;
The bootloader prompt is available either on the serial console (via [[Debug Board]]), or as virtual USB Serial device (USB CDC_ACM).&lt;br /&gt;
Whether the serial port or usb i used depends on the u-boot environment variables '''stdin''', '''stdout''' and '''stderr'''.&lt;br /&gt;
&lt;br /&gt;
Whether or not you use usbtty, the first couple of messages will always be displayed on the serial console.&lt;br /&gt;
&lt;br /&gt;
The bootloader is currently configured to waid for three seconds.  If a key press on the '''stdin''' is received within those three seconds, auto-boot is aborted.&lt;br /&gt;
&lt;br /&gt;
==== Using usbtty from Linux ====&lt;br /&gt;
&lt;br /&gt;
Just by connecting the phone in u-boot mode to your Linux pc should make it detect a [[CDC ACM]] device, and you should get a new tty device called /dev/ttySAC0.  Use your favourite terminal emulator (minicom, cu, zc, ...) to access it like any other serial port.&lt;br /&gt;
&lt;br /&gt;
First, you should try to check whether the USB device shows up in 'lsusb' while you're running in u-boot mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -v -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        16&lt;br /&gt;
  idVendor           0x1457 &lt;br /&gt;
  idProduct          0x5119 &lt;br /&gt;
  bcdDevice            0.00&lt;br /&gt;
  iManufacturer           1 OpenMoko, Inc&lt;br /&gt;
  iProduct                2 Neo1973 Bootloader U-Boot 1.2.0-g6c7cac8c-dirty-moko3&lt;br /&gt;
  iSerial                 3 0000000&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           85&lt;br /&gt;
    bNumInterfaces          3&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 TTY via USB&lt;br /&gt;
    bmAttributes         0xc0&lt;br /&gt;
      Self Powered&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         2 Communications&lt;br /&gt;
      bInterfaceSubClass      2 Abstract (modem)&lt;br /&gt;
      bInterfaceProtocol      1 AT-commands (v.25ter)&lt;br /&gt;
      iInterface              6 Control Interface&lt;br /&gt;
      CDC Header:&lt;br /&gt;
        bcdCDC               0.6e&lt;br /&gt;
      CDC Call Management:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
        bDataInterface          1&lt;br /&gt;
      CDC ACM:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
      CDC Union:&lt;br /&gt;
        bMasterInterface        0&lt;br /&gt;
        bSlaveInterface         1 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        10 CDC Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              5 Bulk Data Interface&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              7 USB Device Firmware Upgrade&lt;br /&gt;
Device Status:     0x0001&lt;br /&gt;
  Self Powered&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, you can access it using your favourite terminal program.&lt;br /&gt;
&lt;br /&gt;
Then, if the environment is not set correctly, you will need to use the current console (e.g. serial console) to set&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # setenv stderr usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdout usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdin usbtty&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Typical u-boot prompt ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.2.0-moko1 (Feb 16 2007 - 00:36:13)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
Found Environment offset in OOB..&lt;br /&gt;
Video: 640x480x8 31kHz 59Hz&lt;br /&gt;
USB:   S3C2410 USB Deviced&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Commands on the bootloader prompt ===&lt;br /&gt;
&lt;br /&gt;
==== 自动引导 ====&lt;br /&gt;
&lt;br /&gt;
Auto-boot executes the command[s] specified in the ''bootcmd'' environment variable. The default configuration is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # printenv&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This basically tells us that it will load the content of the NAND partition '''kernel''' to memory address 0x32000000 and then try to boot it.  &lt;br /&gt;
&lt;br /&gt;
==== 环境变量 ====&lt;br /&gt;
&lt;br /&gt;
u-boot is configured to manage a non-volatile environment that is stored in NAND flash.  You can use the commands to read/alter/store the environment in the following example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # printenv&lt;br /&gt;
baudrate=115200&lt;br /&gt;
bootargs=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
usbtty=cdc_acm&lt;br /&gt;
bootdelay=10&lt;br /&gt;
stdout=serial&lt;br /&gt;
stderr=serial&lt;br /&gt;
stdin=serial&lt;br /&gt;
mtdparts=mtdparts=neo1973-nand:0x00030000(u-boot),0x0000c000(u-boot_env),0x00200000(kernel),0x00130000(splash),0x03c94000(rootfs)&lt;br /&gt;
mtdids=nand0=neo1973-nand&lt;br /&gt;
bootargs_base=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
pcf50606_int1=0x40&lt;br /&gt;
filesize=160C000&lt;br /&gt;
partition=nand0,0&lt;br /&gt;
mtddevnum=0&lt;br /&gt;
mtddevname=u-boot&lt;br /&gt;
&lt;br /&gt;
Environment size: 670/16380 bytes&lt;br /&gt;
GTA01Bv3 # setenv bootdelay 10&lt;br /&gt;
GTA01Bv3 # printenv bootdelay&lt;br /&gt;
bootdelay=10&lt;br /&gt;
GTA01Bv3 # saveenv&lt;br /&gt;
Saving Environment to NAND...&lt;br /&gt;
Erasing Nand...Writing to Nand... done&lt;br /&gt;
GTA01Bv3 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: When setting multiple commands, e.g. for bootcmd, you need to escape the ';', for instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # setenv bootcmd mmcinit\; ext2load mmc 0 0x32000000 uImage\; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MMC/SD卡 ====&lt;br /&gt;
&lt;br /&gt;
in order to initialize a MMC/SD card, you have to use the ``mmcinit'' command.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # mmcinit&lt;br /&gt;
trying to detect SD Card...&lt;br /&gt;
MMC found. Card desciption is:&lt;br /&gt;
Manufacturer ID = 58d564&lt;br /&gt;
HW/FW Revision = 3 8&lt;br /&gt;
Product Name = 21DN!@X�&lt;br /&gt;
Serial Number = 445303&lt;br /&gt;
Month = 5&lt;br /&gt;
Year = 2000&lt;br /&gt;
READ_BL_LEN=15, C_SIZE_MULT=7, C_SIZE=3197&lt;br /&gt;
size = 4208984064&lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
afterwards, you can read ext2 filesystems like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2ls mmc 0&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 .&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 ..&lt;br /&gt;
&amp;lt;DIR&amp;gt;      12288 lost+found&lt;br /&gt;
         1544788 uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NAND ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # help nand&lt;br /&gt;
nand info                  - show available NAND devices&lt;br /&gt;
nand device [dev]     - show or set current device&lt;br /&gt;
nand read[.jffs2]     - addr off size&lt;br /&gt;
nand write[.jffs2]    - addr off size - read/write `size' bytes starting&lt;br /&gt;
    at offset `off' to/from memory address `addr'&lt;br /&gt;
nand erase [clean] [off size] - erase `size' bytes from&lt;br /&gt;
    offset `off' (entire device if not specified)&lt;br /&gt;
nand bad - show bad blocks&lt;br /&gt;
nand dump[.oob] off - dump page&lt;br /&gt;
nand scrub - really clean NAND erasing bad blocks (UNSAFE)&lt;br /&gt;
nand markbad off - mark bad block at offset (UNSAFE)&lt;br /&gt;
nand biterr off - make a bit error at offset (UNSAFE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Loading Kernel from NAND =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # nand read 0x32000000 kernel&lt;br /&gt;
&lt;br /&gt;
NAND read: device 0 offset 212992, size 2097152 ...  2097152 bytes read: OK&lt;br /&gt;
GTA01Bv3 # bootm 0x32000000&lt;br /&gt;
## Booting image at 32000000 ...&lt;br /&gt;
   Image Name:   OpenMoko Kernel Image Neo1973&lt;br /&gt;
   Created:      2007-02-15  23:54:18 UTC&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (gzip compressed)&lt;br /&gt;
   Data Size:    1546258 Bytes =  1.5 MB&lt;br /&gt;
   Load Address: 30008000&lt;br /&gt;
   Entry Point:  30008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Uncompressing Kernel Image ... OK&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing new bootloader to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file u-boot.bin from ext2/mmc and flashes it into the&lt;br /&gt;
bootloader flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 u-boot.bin&lt;br /&gt;
GTA01Bv3 # nand erase u-boot&lt;br /&gt;
GTA01Bv3 # nand write 0x32000000 u-boot ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing kernel to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file uImage from ext2/mmc and flashes it into the&lt;br /&gt;
kernel flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 uImage&lt;br /&gt;
GTA01Bv3 # nand erase kernel&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 kernel ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing rootfs to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file rootfs.jffs2 from ext2/mmc and flashes it into the&lt;br /&gt;
rootfs flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 rootfs.jffs2&lt;br /&gt;
GTA01Bv3 # nand erase rootfs&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 rootfs ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that this will only work with root file system sizes that are smaller than the amount of memory above 0x32000000, which in the case of 64MB SDRAM is something like 32MB.&lt;br /&gt;
&lt;br /&gt;
==== Neo1973 related commands ====&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot supports a couple of Neo1973 specific commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help neo1973&lt;br /&gt;
neo1973 neo1973 info - display phone informantion&lt;br /&gt;
neo1973 power-off - switch off the phone&lt;br /&gt;
neo1973 charger status - display charger status&lt;br /&gt;
neo1973 charger autofast - enable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger !autofast - disable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger fast - enable fast (500mA) charging&lt;br /&gt;
neo1973 charger off - disable charging&lt;br /&gt;
neo1973 backlight (on|off) - switch backlight on or off&lt;br /&gt;
neo1973 vibrator (on|off) - switch vibrator on or off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Power-off =====&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 power-off&lt;br /&gt;
&lt;br /&gt;
you can switch the device off from the bootloader prompt.&lt;br /&gt;
&lt;br /&gt;
===== Battery charger related =====&lt;br /&gt;
&lt;br /&gt;
For a detailed description of the charger basics, see [[Neo1973 Battery Charger]].&lt;br /&gt;
&lt;br /&gt;
====== Inquiring the charger state ======&lt;br /&gt;
&lt;br /&gt;
You can get the current charger status by issuing&lt;br /&gt;
 neo1973 charger status&lt;br /&gt;
&lt;br /&gt;
The following modes are possible:&lt;br /&gt;
&lt;br /&gt;
* idle - no charging&lt;br /&gt;
* trickle - FIXME&lt;br /&gt;
* pre - Slow (100mA) charging, works in hardware.&lt;br /&gt;
* fast_cccv - Fast (500mA) charging, using Constant-Current followed by Constant Voltage (Li-Ion)&lt;br /&gt;
&lt;br /&gt;
====== Disabling battery charging ======&lt;br /&gt;
&lt;br /&gt;
You can disable battery charging (until the next reboot) by issuing&lt;br /&gt;
 neo1973 charger off&lt;br /&gt;
&lt;br /&gt;
====== Forcing fast charge ======&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 charger fast&lt;br /&gt;
you can force the PMU to try to do a fast (500mA) charge of the battery. It will abort if the battery is in over temperature or some other error condition occurs.&lt;br /&gt;
&lt;br /&gt;
====== Enabling / Disabling automatic fast charge ======&lt;br /&gt;
&lt;br /&gt;
Autofast is a feature of the PCF50606 PMU.  It means that the fast_cccv mode will be automatically selected if a charger with suitable voltage is plugged in, and the battery not in over temperature condition.&lt;br /&gt;
&lt;br /&gt;
{{warning|This is potentially dangerous.  Only enable autofast if you ARE SURE that you can draw 500mA from the USB connector.  This is the case with a wall outlet charger, or if you are attached to a self-powered hub or a desktop PC root hub.  Bus powered hubs and some laptops only provide 100mA on their USB ports and can thus not support fast charging}}&lt;br /&gt;
&lt;br /&gt;
You can enable or disable autofast by &lt;br /&gt;
 neo1973 charger autofast&lt;br /&gt;
and&lt;br /&gt;
 neo1973 charger !autofast&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Backlight =====&lt;br /&gt;
&lt;br /&gt;
You can switch the backlight on and off by using&lt;br /&gt;
 neo1973 backlight on&lt;br /&gt;
and&lt;br /&gt;
 neo1973 backlight off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Vibrator =====&lt;br /&gt;
&lt;br /&gt;
You can switch the vibrator on and off by using&lt;br /&gt;
 neo1973 vibrator on&lt;br /&gt;
and &lt;br /&gt;
 neo1973 vibrator off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
==== S3C2410 specific commands ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help s3c2410&lt;br /&gt;
s3c2410 speed get - display current PLL speed config&lt;br /&gt;
s3c2410 speed list - display supporte PLL speed configs&lt;br /&gt;
s3c2410 speed set - set PLL speed&lt;br /&gt;
GTA01Bv2 # s3c2410 speed list&lt;br /&gt;
50 MHz&lt;br /&gt;
101 MHz&lt;br /&gt;
202 MHz&lt;br /&gt;
266 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 202 MHz, HCLK = 101 MHz, PCLK = 50 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed set 101&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 101 MHz, HCLK = 50 MHz, PCLK = 50 MHz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 266MHz时钟 =====&lt;br /&gt;
&lt;br /&gt;
You can re-configure the [[S3C2410]] PLL to generate a 266 MHz core cpu clock (rather than the 200MHz default) by using&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 266 &lt;br /&gt;
and&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 202&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
{{warning|The current hardware (as of GTA01Bv3) only runs stable at 266MHz if you do not attach aynthing (esp. the FPC / [[Debug Board]] to the Debug Port}}&lt;br /&gt;
&lt;br /&gt;
==== QT2410上的TFTP ====&lt;br /&gt;
&lt;br /&gt;
The QT2410 cs8900a Ethernet can be used to download images via network.&lt;br /&gt;
&lt;br /&gt;
First, you have to make sure that ''ipaddr'', ''serverip'', ''ethaddr' and ''netmaskk'' are set correctly in the environment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # printenv&lt;br /&gt;
ethaddr=00:01:02:03:04:05&lt;br /&gt;
netmask=255.255.255.0&lt;br /&gt;
ipaddr=192.168.100.100&lt;br /&gt;
serverip=192.168.100.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== TFTP kernel download =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # tftpboot 0x32000000&lt;br /&gt;
*** Warning: no boot file name; using 'C0A86464.img'&lt;br /&gt;
TFTP from server 192.168.100.1; our IP address is 192.168.100.100&lt;br /&gt;
Filename 'C0A86464.img'.&lt;br /&gt;
Load address: 0x32000000&lt;br /&gt;
Loading: #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         ##########################################&lt;br /&gt;
done&lt;br /&gt;
Bytes transferred = 1544788 (179254 hex)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you can then commence booting via&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410# bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 设备固件升级 ==&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot also implements [[USB DFU]].&lt;br /&gt;
&lt;br /&gt;
To find out whether your version of u-boot supports this, use the output of&lt;br /&gt;
 $ lsusb -v -d 1457:5119&lt;br /&gt;
while the phone is in u-boot mode.&lt;br /&gt;
&lt;br /&gt;
If it supports DFU, you should see the following snippet towards the end of the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
关于如何进行固件升级的信息，请看[[dfu-util/zh_cn|dfu-util]]。&lt;br /&gt;
{{Languages|Bootloader}}&lt;/div&gt;</summary>
		<author><name>JarodWang</name></author>	</entry>

	</feed>