summaryrefslogtreecommitdiff
path: root/2008/openmoko-cluc2008
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2015-10-25 21:00:20 +0100
committerHarald Welte <laforge@gnumonks.org>2015-10-25 21:00:20 +0100
commitfca59bea770346cf1c1f9b0e00cb48a61b44a8f3 (patch)
treea2011270df48d3501892ac1a56015c8be57e8a7d /2008/openmoko-cluc2008
import of old now defunct presentation slides svn repo
Diffstat (limited to '2008/openmoko-cluc2008')
-rw-r--r--2008/openmoko-cluc2008/images/Gta02v1_bottom.jpgbin0 -> 1045441 bytes
-rw-r--r--2008/openmoko-cluc2008/images/debugboard_v2_concept.jpgbin0 -> 22065 bytes
-rwxr-xr-x2008/openmoko-cluc2008/images/gta01b_v3_bottom.jpgbin0 -> 849092 bytes
-rw-r--r--2008/openmoko-cluc2008/images/gta01bv4_bottom.jpgbin0 -> 928930 bytes
-rw-r--r--2008/openmoko-cluc2008/images/gta01bv4_top.jpgbin0 -> 824865 bytes
-rw-r--r--2008/openmoko-cluc2008/images/neo1973_debugboard_v2_top_annotated.jpgbin0 -> 318075 bytes
-rw-r--r--2008/openmoko-cluc2008/notes.txt57
-rw-r--r--2008/openmoko-cluc2008/openmoko-tech.mgp473
-rw-r--r--2008/openmoko-cluc2008/openmoko-tech.pdfbin0 -> 42327 bytes
9 files changed, 530 insertions, 0 deletions
diff --git a/2008/openmoko-cluc2008/images/Gta02v1_bottom.jpg b/2008/openmoko-cluc2008/images/Gta02v1_bottom.jpg
new file mode 100644
index 0000000..cefda28
--- /dev/null
+++ b/2008/openmoko-cluc2008/images/Gta02v1_bottom.jpg
Binary files differ
diff --git a/2008/openmoko-cluc2008/images/debugboard_v2_concept.jpg b/2008/openmoko-cluc2008/images/debugboard_v2_concept.jpg
new file mode 100644
index 0000000..3a8be44
--- /dev/null
+++ b/2008/openmoko-cluc2008/images/debugboard_v2_concept.jpg
Binary files differ
diff --git a/2008/openmoko-cluc2008/images/gta01b_v3_bottom.jpg b/2008/openmoko-cluc2008/images/gta01b_v3_bottom.jpg
new file mode 100755
index 0000000..6cfa013
--- /dev/null
+++ b/2008/openmoko-cluc2008/images/gta01b_v3_bottom.jpg
Binary files differ
diff --git a/2008/openmoko-cluc2008/images/gta01bv4_bottom.jpg b/2008/openmoko-cluc2008/images/gta01bv4_bottom.jpg
new file mode 100644
index 0000000..c4e1ba4
--- /dev/null
+++ b/2008/openmoko-cluc2008/images/gta01bv4_bottom.jpg
Binary files differ
diff --git a/2008/openmoko-cluc2008/images/gta01bv4_top.jpg b/2008/openmoko-cluc2008/images/gta01bv4_top.jpg
new file mode 100644
index 0000000..e422509
--- /dev/null
+++ b/2008/openmoko-cluc2008/images/gta01bv4_top.jpg
Binary files differ
diff --git a/2008/openmoko-cluc2008/images/neo1973_debugboard_v2_top_annotated.jpg b/2008/openmoko-cluc2008/images/neo1973_debugboard_v2_top_annotated.jpg
new file mode 100644
index 0000000..b531137
--- /dev/null
+++ b/2008/openmoko-cluc2008/images/neo1973_debugboard_v2_top_annotated.jpg
Binary files differ
diff --git a/2008/openmoko-cluc2008/notes.txt b/2008/openmoko-cluc2008/notes.txt
new file mode 100644
index 0000000..b205322
--- /dev/null
+++ b/2008/openmoko-cluc2008/notes.txt
@@ -0,0 +1,57 @@
+Neo1973 GTA01 hardware
+ SC2410 SoC @ 266MHz
+ 480x640 LCM, 262k colors
+ 128MB SDRAM
+ 128MB SLC NAND (512/16k)
+ USB 1.1 device and host (unpowered)
+ A-GPS (without processor)
+ GSM+GPRS chipset (ARM7 based)
+ 2 stereo speakers (1.2W)
+ CSR4 based Bluetooth
+
+Free Software stack
+ bootloader: u-boot current git
+ kernel: linux 2.6.20.4
+ xserver: kdrive
+ glibc
+ glib
+ gtk+
+ libmokoui
+ libmokocore
+ libgsmd / gsmd
+
+Development Model
+ We actively contribute our code upstream
+ e.g. kernel goal: make vanilla 2.6.22 kernel have all drivers
+ Our build system is public
+ Everyone can rebuild everything
+ cross-toolchain
+ u-boot / kernel image
+ application/library packages
+ Based on OpenEmbedded (OE)
+
+Hackable Device
+ The device shall be under full user control
+ Everyone should be able to hack it, at any level
+ hardware hacking (i2c, spi, gpio on test pads / connector)
+ system-level hacking (bootloader, OS)
+ UI level hacking
+ Make entry barrier for development as easy as possible
+ bootloader prompt via USB serial emulation
+ Serial console
+ JTAG for the people
+ Provide Debug Board with embedded USB JTAG + serial adapter
+
+Standards compliance
+ We use open/documented/available standards wherever possible
+ Use official USB device firmware upgrade protocol
+ Have charger behave 100% to USB spec (100/500mA)
+ Use GSM chipset that follows GSM 07.07/07.10 closely
+
+Application Processor GSM integration
+ kernel line discipline implementation for GSM 07.10
+ userspace GSM daemon with unix domain socket
+ libgsmd with API for applications
+ lightweight, doesn't have _any_ dependencies aside from glibc
+
+
diff --git a/2008/openmoko-cluc2008/openmoko-tech.mgp b/2008/openmoko-cluc2008/openmoko-tech.mgp
new file mode 100644
index 0000000..ac4ee65
--- /dev/null
+++ b/2008/openmoko-cluc2008/openmoko-tech.mgp
@@ -0,0 +1,473 @@
+%include "default.mgp"
+%default 1 bgrad
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+%nodefault
+%back "blue"
+
+
+%center
+%size 5
+Openmoko
+Building a truly hackable device
+
+
+%center
+%size 4
+by
+
+Harald Welte <laforge@openmoko.org>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Introduction
+
+Who is speaking to you?
+
+ an independent Free Software developer, consultant and trainer
+ who is a member of the free software community for 10 years
+ who has worked a lot on the Linux kernel
+ who had originally started OpenEZX for Motorola phones
+ and who's been lead hardware + system software architect for Openmoko until recently
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+WARNING
+
+While I have been the Lead System Architect for hardware and system level software, throughout the first 16 months of the project,
+
+I have quit working for Openmoko, Inc. or the FIC group in November 2007.
+
+Thus, I do not officially represent either of these entities!
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+What is Openmoko
+
+The commercial side
+
+ First International Computer, Inc.
+ A large Taiwanese hardware vendor
+ Has a FIC Mobility business unit
+ Hardware R&D and production of Neo1973 GTA01 and GTA02 handsets
+
+
+ Openmoko, Inc., ("Openmoko, the Company")
+ Part of First International Computer (FIC) Group
+ Funding the Openmoko software R&D
+ Responsible for product definitil, sales, marketing, PR, ...
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+What is Openmoko
+
+The community side
+ Openmoko, the overall Free Software project
+ A FOSS project working on
+ Openmoko kernel/u-boot patches (hardware support)
+ Openmoko GNU/Linux distribution
+ Openmoko UI / framework
+ Funded by Openmoko, Inc.
+
+ Openmoko, the embedded GNU/Linux distribution
+ An OE-built embedded GNU/Linux distribution for mobile communications devices
+ Primarily targetted at Openmoko/FIC handsets
+ Is being ported to other devices by the community
+ Maintained by OE coreteam member employed by Openmoko, Inc.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+What is Openmoko about?
+
+ Open
+ Opening up the formerly-closed mobile world
+ on any achievable level
+
+ Mobile
+ Mobile devices are the future
+
+ Free
+ 100% Free Software from driver through UI
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+What is Openmoko about?
+
+ FIC provides
+ experience in mass production of consumer electronics
+ experience in production of GSM handsets
+ experience in hardware development of GSM handsets
+
+ Openmoko provides
+ good contacts within the FOSS communities
+ strong technical knowledge on GNU/Linux
+ software development
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Neo1973 GTA01 hardware
+
+Neo1973 GTA01 hardware (07/2007)
+ S3C2410 SoC @ 266MHz
+ 2.8" 480x640 LCM, 262k colors
+ 128MB SDRAM
+ 64MB SLC NAND (512/16k)
+ USB 1.1 device and host (unpowered)
+ A-GPS (without processor)
+ GSM+GPRS chipset (ARM7 based)
+ Wolfson audio codec
+ 2 stereo speakers (1.2W)
+ 2.5mm headset jack
+ CSR4 based Bluetooth
+ NXP PCF50606 power management unit
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Application Processor
+
+Closer look at Application Processor
+ SC2410 SoC @ 266MHz
+ three UART's
+ 133MHz SDRAM interface
+ 66MHz external bus
+ Two channels SPI
+ IIS
+ I2C
+ SDIO
+ TFT controller
+ NAND controller
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Neo1973 GTA02 hardware
+
+Neo1973 GTA02 hardware ("soon")
+ S3C2442B SoC @ 400 MHz (500MHz option)
+ 2.8" 480x640 LCM, 262k colors
+ 128MB SDRAM
+ 256MB SLC NAND (2048/128k)
+ USB 1.1 device and host (with power)
+ A-GPS (fully autonomous firmware-based)
+ GSM+GPRS chipset (Ti Calypso, ARM7 based)
+ CSR4 based Bluetooth
+ Atheros AR6k based 802.11b/g WiFi
+ 2 3D accelerometers
+ Smedia Glamo 3362 GPU
+ NXP PCF50633 power management unit
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+GTA02: Smedia Glamo GPU
+
+Smedia Glamo 3362 GPU
+ 8MB internal SDRAM
+ 16bit local bus interface to S3C2410
+ 2D acceleration
+ 3D acceleration
+ H.263 codec (encode/decode)
+ LCM controller
+ SD-Card controller
+ hardware JPEG encoder/decoder
+ Camera interface and imapge processing (unused)
+
+Openmoko is writing 100% FOSS drivers (GPL/MIT licensed)
+ kernel driver for core and framebuffer
+ Xglamofb accelerated X server
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+GSM Modem
+
+Closer look at the GSM Modem
+ Ti Calypso/Iota based chipset
+ As proprietary as any other phone
+ runs proprietary nucleus OS
+ runs proprietary GSM stack
+ Supports GSM voice/data/fax and GPRS
+ Tri-Band GSM
+ Very good TS 07.05 / 07.07 / 07.10 compliance
+ eveyone can download the protocol docs from ETSI.org
+ no user/hacker needs access to NDA'd documents
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Free Software stack
+
+Free Software stack
+ bootloader: u-boot current git (post-1.3)
+ kernel: linux 2.6.24 based
+ xserver: kdrive
+ glibc
+ glib
+ gtk+
+ pulseaudio
+ gsmd / libgsmd
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Development Model
+
+Development Model
+ "do embedded GNU/Linux the right way"
+ use and track current mainline code
+ actively contribute our code upstream
+ all code is immediately committed to public svn repository
+ development discussions happen on public mailinglists
+ all code developed by Openmoko is FOSS licensed
+ everyone can contribute
+ no copyright assignments to Openmoko
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Build System
+
+ Openmoko builds
+ an embedded Linux distribution
+ split in ipk packages (just like dpkg/rpm)
+ ipk feeds (just like apt-get/yum)
+
+ Openmoko release
+ full source code in svn/git
+ all patches to all packages
+ the entire build system (built with OE)
+
+ Openmoko's build system is public
+ Everyone can rebuild everything
+ cross-toolchain
+ u-boot / kernel image
+ application/library packages
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Hackable Device
+
+Hackable Device
+ Standards compliance wherever possible
+ The device shall be under full user control
+ Everyone should be able to hack it, at any level
+ Make entry barrier for development as easy as possible
+ bootloader prompt via USB serial emulation
+ Serial console
+ JTAG for the people
+ Provide Debug Board with embedded USB JTAG + serial adapter
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Standards compliance
+
+Standards compliance
+ Use open/documented/available standards wherever possible
+ Use official USB device firmware upgrade protocol
+ Have charger behave 100% to USB spec (100/500mA)
+ Use GSM chipset that follows GSM 07.07/07.10 closely
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+User control
+
+User control
+ The phone needs to be under control of the user, and the free software he uses
+ Even backdoors or rogue GSM firmware shall not be able to intrude the privacy fo the user
+ So e.g. the Audio codec (under explicit control from the Linux-running AP) between microphone/speaker and the GSM modem
+ So the Linux-running AP is enabled to cut power of the GSM modem
+ Thus, free software (and thus the user) remains in ultimate control
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Hackable at any level
+
+Hardware Hacking
+ Openmoko even encourages hardware hacking
+ I2C, SPI, GPIO and IRQ line on documented test pads and connector
+ allows for attachment of new peripherals to the device
+ even the hardware schematics available under FOSS-permissive NDA
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Hackable at any level
+
+System-level hacking (bootloader, OS)
+ entire bootloader from very first instruction FOSS
+ entire kernel including all drivers FOSS
+ JTAG accessible on debug connector
+ serial console on debug connector
+ debug board (USB JTAG adaptor and USB serial converter)
+ un-brickable through emergency boot loader in read-only NOR flash (GTA02)
+ DFU (Device Firmware Upgrade) for full-system re-flash via USB
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Hackable at any level
+
+Userspace and UI level hacking
+ entire userspace world FOSS (libraries, daemons, UI, X driver, ...)
+ FOSS build system and toolchain/SDK enable anyone to build custom softwar packages and/or flash images
+ provide a programming environment as close as possible to the Linux desktop world
+ allow developers to re-use their existing Linux development skills
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+GSM Integration
+
+Application Processor GSM integration
+ kernel line discipline implementation for GSM 07.10
+ userspace GSM daemon with unix domain socket
+ libgsmd with API for applications
+ kernel part intended for mainline submission
+ will support different phones / gsm chipsets
+ Various HTC devices with Linux
+ Motorola EZX phones using OpenEZX
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+GSM Integration
+
+But you can't hack the GSM stack
+ yes, that is true.
+ pretty much like you can't hack the firmware of your SCSI or RAID controller, WiFi card, Bluetooth chipset, etc.
+ even the firmware of a good old analogue phone line (voice) modem was not hackable
+ having proprietary firmware on a dedicated peripheral CPU is even acceptable to the FSF!
+ And no doubt, anyone inside Openmoko would love to ever have a open source GSM stack. Patches welcome :)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+GSM Integration
+
+But you can't hack the GSM stack
+ so you get the maximum level of freedom that you can get with any other peripheral device:
+ open source low-level (mux, power mgmt) drivers
+ open source high-level drivers (gsm daemon)
+ openly documented serial protocol (TS 07.05, 07.07, 07.10)
+ asking for more freedom on the GSM side is hypocritical when accepting the very same level with other peripheral devices.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+GSM Integration
+
+But you can't hack the GSM stack
+ besides that
+ GTA01 has baseband JTAG on test pins
+ Openmoko does not cryptographically sign GSM firmware images
+ GSM firmware is user-upgradable
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Difference
+
+Difference from other Linux phones
+ 'others' discourage third parties from writing apps
+ you need explicit permission? WTF!
+ 'others' try to make customers pay for a device that's still under manufacturer / GSM operator control
+ 'others' use proprietary kernel modules
+ locks you into some old kernel version
+ 'others' use proprietary bootloaders
+ 'others' dont give you JTAG/serial access
+ 'others' use proprietary UI toolkits
+ vendor lock-in
+ 'others' dont give out their build system
+ 'others' dont give out their firmware update tools
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Neo1973 GTA01 Emulator
+
+The Neo1973 GTA01 emulator
+ based on populer qemu project
+ full GTA01 hardware emulation, including
+ NAND controller
+ LCM controller
+ power management unit
+ GSM modem
+ touchscreen controller
+ SD card controller
+ ...
+ you can run the exact same bootloader/kernel/rootfs images
+ thus, no need to buy real hardware to start hacking
+ e.g. NetBSD port has been done entirely on emulator!
+ http://wiki.openmoko.org/wiki/Openmoko_under_QEMU
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+How to contribute
+
+
+ First: get hands-on experience
+ with emulator (free, based on qemu, full GTA01 emulation)
+ with real hardware (GTA01 now, GTA02 soon)
+ follow instructions on the wiki, improve it with your feedback
+ start local user / developer groups
+ go through bugzilla, look for bugs in your favourite components
+ try to reproduce bug with current images
+ provide feedback
+ help by proividing additional debugging information
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+How to contribute
+
+
+ write your own gtk+/e17 applications fit for 480x640 screen size and limited CPU
+ do development on your host pc (native)
+ then cross-compile for Openmoko
+ then test on emulator or hardware
+ then build and package with OE
+ go through projects.openmoko.org and contact project teams, help them out
+ hang out on mailinglists and #openmoko on freenode.net
+ start sharing your experience with others with your experience
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+Openmoko
+Online Resources
+
+
+ http://www.openmoko.org/
+ portal site, just links everywhere else
+ http://wiki.openmoko.org/
+ everything you (n)ever wanted to know about openmoko ;)
+ http://bugzilla.openmoko.org/
+ documents all known bugs, please add/report and debug!
+ http://lists.openmoko.org/
+ various mailing lists for Q&A and discussions
+ http://planet.openmoko.org/
+ planet aggregating RSS feeds of various blogs
+ irc.freenode.net #openmoko
+ lots of developers hanging out there
+ https://direct.openmoko.com/
+ for buying actual hardware
diff --git a/2008/openmoko-cluc2008/openmoko-tech.pdf b/2008/openmoko-cluc2008/openmoko-tech.pdf
new file mode 100644
index 0000000..e89a584
--- /dev/null
+++ b/2008/openmoko-cluc2008/openmoko-tech.pdf
Binary files differ
personal git repositories of Harald Welte. Your mileage may vary