Google Sooner


  • Battery
    • Made by Simplo
    • Model EXCA160
    • Rating 3.7 VDC 960mAh
    • Li-ion Polymer Battery
  • ARM Linux Machine Registry
    • 1438 Sardine sardine Brian Swetland
    • 1439 Halibut halibut Brian Swetland
    • 1440 HTC Dream / T-Mobile G1 / ADP1 trout Brian Swetland
    • 1441 Goldfish goldfish Brian Swetland

Sardine is the board type that is considered the Google Sooner

  • White unit
    • EXCA300
    • 5V DC 1A
    • P/N: 99HDH000-00
    • S/N: HT723G700XXX – HT741G70XXX
    • Made in Taiwan
  • Black black
    • EXCA300
    • 5V DC 1A
    • DVT Sample
    • Not FCC authorized sample, not for sale
    • P/N: 99HDH001-00
    • S/N: HT722G700XXX
    • Made in Taiwan


Sooner DVT
ONBL 0.11.1000
SPL 0.11.1000 MFG


Hardware Information
# dmesg
<5>Linux version 2.6.18-omap1 (tony@tony-ubuntu) (gcc version 4.1.1) #1 PREEMPT Tue May 15 18:12:21 CST 2007
<4>CPU: ARM926EJ-S [41069263] revision 3 (ARMv5TEJ), cr=00053177
<4>Machine: Tuttle (OMAP850)
<4>Memory policy: ECC disabled, Data cache writeback
<7>On node 0 totalpages: 15360
<7>  DMA zone: 15360 pages, LIFO batch:3
<4>Unknown OMAP cpu type: 0x00
<4>OMAP0000 revision 1 handled as 00xx id: 6f0359385d900a02
<6>Reserving 992 bytes SRAM at 20026c20
<6>Reserving 40960 bytes SRAM at 20028000
<6>SRAM: Mapped pa 0x20000000 to va 0xd0000000 size: 0x100000
<6>Reserving 307200 bytes SDRAM for frame buffer
<4>CPU0: D VIVT write-back cache
<4>CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
<4>CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
<4>Built 1 zonelists.  Total pages: 15360
<5>Kernel command line: mem=60M root=/dev/ram0 board_tuttle.version=4 console=null
<4>Clocks: ARM_SYSST: 0x1040 DPLL_CTL: 0x2fb3 ARM_CKCTL: 0x6506
<6>Clocking rate (xtal/DPLL1/MPU): 13.0/195.0/0.0 MHz
<4>Total of 96 interrupts in 3 interrupt banks
<6>OMAP730 GPIO hardware
<4>PID hash table entries: 256 (order: 8, 1024 bytes)
<4>Console: colour dummy device 80x30
<4>Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
<4>Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
<6>Memory: 60MB = 60MB total
<5>Memory: 57408KB available (2136K code, 434K data, 100K init)
<7>Calibrating delay loop... 96.00 BogoMIPS (lpj=48000)
<4>Mount-cache hash table entries: 512
<6>CPU: Testing write buffer coherency: ok
<6>Unpacking initramfs... done
<6>Freeing initrd memory: 399K
<4>android_power_init done
<6>NET: Registered protocol family 16
<4>Detected LCD panel: lcd_tuttle_sony
<4>omap_tuttle_init tuttle_version = 4
<4>Could not get uart2_ck
<4>kobject_add failed for omap-keypad with -EEXIST, don't try to register things with the same name in the same directory.
<3>Invalid pin mux index: 116 (33)
<3>Invalid pin mux index: 120 (33)
<3>Invalid pin mux index: 119 (33)
<3>Invalid pin mux index: 117 (33)
<3>Invalid pin mux index: 118 (33)
<3>Invalid pin mux index: 121 (33)
<6>OMAP DMA hardware version 1
<6>DMA capabilities: 000c0000:00000000:01ff:003f:007f
<4>Initializing OMAP McBSP system
<3>mcbsp: could not acquire dsp_ck handle.
<3>omapdsp: unsupported omap architecture.
<4>USB: hmc 0
<6>Bluetooth: Core ver 2.11
<6>NET: Registered protocol family 31
<6>Bluetooth: HCI device and connection manager initialized
<6>Bluetooth: HCI socket layer initialized
<6>NET: Registered protocol family 2
<4>IP route cache hash table entries: 512 (order: -1, 2048 bytes)
<4>TCP established hash table entries: 2048 (order: 1, 8192 bytes)
<4>TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
<6>TCP: Hash tables configured (established 2048 bind 1024)
<6>TCP reno registered
<4>Power Management for TI OMAP.
<4>yaffs May 15 2007 18:09:59 Installing.
<6>io scheduler noop registered (default)
<4>tuttle_sony_panel_probe() 880ccccc
<6>omapfb: configured for panel tuttle
<6>omapfb: LCDC initialized
<4>Console: switching to colour frame buffer device 40x30
<6>omapfb: Framebuffer initialized. Total vram 307200 planes 1
<6>omapfb: Pixclock 9750 kHz hfreq 28.3 kHz vfreq 60.0 Hz
<6>Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
<6>serial8250.0: ttyS0 at MMIO 0xfffb0000 (irq = 47) is a ST16654
<4>Trying to free nonexistent resource <00000000fffb0800-00000000fffb0807>
<6>PPP generic driver version 2.4.2
<6>PPP Deflate Compression module registered
<6>PPP BSD Compression module registered
<7>OneNAND Manufacturer: Samsung (0xec)
<6>OneNAND 128MB 1.8V 16-bit (0x34)
<7>OneNAND version = 0x0121
<6>Scanning device for bad blocks
<5>Scanning onenand for XSR partition table
<5>8 XSR partitions found on MTD device onenand
<5>Creating 8 MTD partitions on "onenand":
<5>0x00000000-0x00020000 : "00000000"
<5>0x00020000-0x000a0000 : "bootloader"
<5>0x000a0000-0x004a0000 : "mfg_and_gsm"
<5>0x004a0000-0x00780000 : "kernel"
<5>0x00780000-0x007a0000 : "2ndstage"
<5>0x007a0000-0x008a0000 : "ramdisk"
<5>0x008a0000-0x03ca0000 : "system"
<5>0x03ca0000-0x07d20000 : "userdata"
<6>udc: OMAP UDC driver, version: 4 October 2004 (iso) (dma)
<6>udc: OMAP UDC rev 3.6
<6>udc: hmc mode 0, integrated transceiver
<6>udc: fifo mode 3, 392 bytes not used
<6>OMAP Keypad Driver
<4>omap-keypad: using gpio debouncing 5000000 ns, timer res 1000000 ns
<6>input: tuttle1 as /class/input/input0
<6>omap_rtc omap_rtc: rtc intf: dev (254:0)
<6>omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
<6>omap_rtc: already running
<6>Bluetooth: HCI UART driver ver 2.2
<6>Bluetooth: HCI H4 protocol initialized
<4>android: omap csmi driver module omap_csmi
<4>validate_gsm_image_info: mailbox size 8, vendor HTC, product Tuttle, version 0
<4>android: usb client driver v0.1
<4>htc_state_init done
<4>@@@HK: htc_battery_test_init completed!
<4>Netfilter messages via NETLINK v0.30.
<4>ip_conntrack version 2.4 (480 buckets, 3840 max) - 212 bytes per conntrack
<4>ip_tables: (C) 2000-2006 Netfilter Core Team
<6>TCP bic registered
<6>TCP westwood registered
<6>TCP veno registered
<6>NET: Registered protocol family 1
<6>Bluetooth: L2CAP ver 2.8
<6>Bluetooth: L2CAP socket layer initialized
<6>Bluetooth: SCO (Voice Link) ver 0.5
<6>Bluetooth: SCO socket layer initialized
<6>Bluetooth: RFCOMM socket layer initialized
<6>Bluetooth: RFCOMM TTY layer initialized
<6>Bluetooth: RFCOMM ver 1.8
<6>Bluetooth: BNEP (Ethernet Emulation) ver 1.2
<6>omap_rtc omap_rtc: setting the system clock to 2007-01-22 12:52:35 (1169470355)
<4>PERSEUS2_MODE1 bit 7 should be 1
<4>wait for GSM
<4>GSM ready
<4>mpu_control_handler, GSM RESET READY 0x00001050 0x010cea2c
<6>Freeing init memory: 100K
<4>Warning: unable to open an initial console.
<6>yaffs: dev is 32505862 name is "mtdblock6"
<4>yaffs: Attempting MTD mount on 31.6, "mtdblock6"
<4>restore entry: isCheckpointed 0
<4>found no more checkpt blocks
<4>checkpoint byte count 0
<4>restore exit: isCheckpointed 0
<4>set_ac: 100
<4>android_power_set_charging_state 0 > 1
<4>android_power_set_charging_state 1 > 4
<6>yaffs: dev is 32505863 name is "mtdblock7"
<4>yaffs: Attempting MTD mount on 31.7, "mtdblock7"
<4>restore entry: isCheckpointed 0
<4>found no more checkpt blocks
<4>checkpoint byte count 0
<4>restore exit: isCheckpointed 0
<4>htcpm: module license 'Proprietary' taints kernel.
<4>Hi! HTC PM
<4>Init DFVM for DDR RAM
<4>HTC Audio Driver version 2007_05_09.
<4>@@@ dma_area @ ffc01000 (phys: 10500000)
<4>@@@ playback lch = 2
<4>@@@ record lch = 3
<4>acoustic_coeff_init: NON_BUILTIN_AEC_ENABLED 1 28473355
<4>omap_csmi_htc_write_syren(0x0500, 0x0080, 0x03ff): register readback returned 1 not 80
<4>enable_BT_port_vsp_bus 6 0
<4>@@@ htc_mfg_test init+
<4>@@@ htc_mfg_test init-
<4>set_headset_state 0,0
<6>udc: USB reset done, gadget android_gadget
<6>udc: USB reset done, gadget android_gadget
<4>binder_open(c04d3884 c0696120) (pid 243) got c34f2000
<4>binder_open(c04d3884 c357bac0) (pid 250) got c3599000
<6>udc: USB reset done, gadget android_gadget
<6>udc: USB reset done, gadget android_gadget
<4>android_power: auto off timeout set to 604800 seconds
<4>binder_open(c04d3884 c1e95e00) (pid 282) got c1eb1000
<4>binder_open(c04d3884 c1f73580) (pid 285) got c1804000
<4>binder_open(c04d3884 c287ebc0) (pid 293) got c1435000
<4>binder_open(c04d3884 c2b22320) (pid 297) got c1605000
<4>binder_open(c04d3884 c25dd0c0) (pid 247) got c17a6000
<4>network status, 0x00000002 0x0104df28
<4>binder_open(c04d3884 c0e99180) (pid 320) got c11f1000
<4>binder_open(c04d3884 c0ef63a0) (pid 317) got c08f5000
<4>binder_open(c04d3884 c11f5160) (pid 328) got c09d8000
<4>binder_release(c04d3884 c287ebc0) (pid 296) pd c1435000
<4>binder_release(c04d3884 c11f5160) (pid 328) pd c09d8000
<4>network status, 0x00000003 0x0104e11c
CPU Info
# cat /proc/cpuinfo
Processor       : ARM926EJ-S rev 3 (v5l)
BogoMIPS        : 96.00
Features        : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 3
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format C
Cache format    : Harvard
I size          : 16384
I assoc         : 4
I line length   : 32
I sets          : 128
D size          : 8192
D assoc         : 4
D line length   : 32
D sets          : 64

Hardware        : Tuttle (OMAP850)
Revision        : 0000
Serial          : 5d900a026f035938
# cat /proc/meminfo
MemTotal:        57976 kB
MemFree:          1428 kB
Buffers:             0 kB
Cached:          17820 kB
SwapCached:          0 kB
Active:          46192 kB
Inactive:         5052 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:        57976 kB
LowFree:          1428 kB
SwapTotal:           0 kB
SwapFree:            0 kB
Dirty:               0 kB
Writeback:           0 kB
AnonPages:       33452 kB
Mapped:           9744 kB
Slab:             2316 kB
PageTables:       1516 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:     28988 kB
Committed_AS:   169196 kB
VmallocTotal:   196608 kB
VmallocUsed:      5580 kB
VmallocChunk:   187388 kB


File system

Developing in Ubuntu

  • Install Ubuntu
    • The version of Ubuntu shouldn’t matter. However, my Dev enviornment was tested with Ubuntu 8.10 Server
  • Once Ubuntu is installed with the default settings we’ll need to edit some system settings to allow the OS to talk with the Google Sooner.
    • touch /etc/udev/rules.d/50-android.rules
      • Add the line SUBSYSTEM==”usb”, SYSFS{idVendor}==”18d1″, MODE=”0666″ where 18d1 is the item listed under lsusb
      • chmod a+rx /etc/udev/rules.d/50-android.rules
      • Run this as root /etc/init.d/udev restart
  • Java for Development
    • apt-get install sun-java6-jdk
    • apt-get install sun-java6-bin
    • sudo update-java-alternatives -s java-6-sun
    • Type java -version and javac -version
      • It should state Java(TM). The output for javac will just list the version number.
  • The Ubuntu OS should now be able to detect the device
    • Plug the phone into the computer.
    • Type lsusb
      • Bus 002 Device 001: ID 0000:0000
      • Bus 001 Device 012: ID 18d1:deed
      • Bus 001 Device 002: ID 0e0f:0002
      • Bus 001 Device 001: ID 0000:0000
    • The device ID of 18d1 is the HTC Sooner Device
  • Install the Google Android SDK
    • From the Android SDK installation directory i.e. /android_sdk_linux_m3-rc22a/tools run ./adb devices
      • It should list something similar to

      1  53590a1587035cc9        device  0

  • To access the Sooner Phone type ./adb shell

Developing in JAVA / OS independent

  • Ensure you have java installed
    • From the command line type java -version and javac -version.
    • The Java SDK should be Sun’s version.

Button Shortcuts

Hard reboot: Hold Menu + Home + Power

Bootloader: Hold SYM + Power. When you see the bootscreen, release the power button.