summaryrefslogtreecommitdiff
path: root/2007/openmoko-foss_in-2007/openmoko-tech.mgp
diff options
context:
space:
mode:
Diffstat (limited to '2007/openmoko-foss_in-2007/openmoko-tech.mgp')
-rw-r--r--2007/openmoko-foss_in-2007/openmoko-tech.mgp438
1 files changed, 438 insertions, 0 deletions
diff --git a/2007/openmoko-foss_in-2007/openmoko-tech.mgp b/2007/openmoko-foss_in-2007/openmoko-tech.mgp
new file mode 100644
index 0000000..bf870e9
--- /dev/null
+++ b/2007/openmoko-foss_in-2007/openmoko-tech.mgp
@@ -0,0 +1,438 @@
+%include "default.mgp"
+%default 1 bgrad
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+%nodefault
+%back "blue"
+
+
+%center
+%size 8
+OpenMoko
+Free Software Phone Architecture
+
+
+%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
+
+
+I have quit working for OpenMoko, Inc. or the FIC group.
+
+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
+ 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
+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.22.5/2.6.24-rc4
+ 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
+ e.g. kernel goal: make vanilla 2.6.25+ kernel have all drivers
+ 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
+
+ We build
+ an embedded linux distribution
+ split in ipk packages (just like dpkg/rpm)
+ ipk feeds (just like apt-get/yum)
+
+ We release
+ full source code in svn
+ all patches to all packages
+ the entire build system (built with OE)
+
+ Our build system is public
+ Everyone can rebuild everything
+ cross-toolchain
+ u-boot / kernel image
+ application/library packages
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+OpenMoko
+Hackable Device
+
+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
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+OpenMoko
+Standards compliance
+
+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
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%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 we e.g. put the Audio codec (under explicit control from the Linux-running AP) between microphone/speaker and the GSM modem
+ So we enable the Linux-running AP to cut power of the GSM modem
+ Thus, free software (and thus the user) remains in ultimate control
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%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
+ lightweight, doesn't have _any_ dependencies aside from glibc
+ we're working on gobject integration on top
+ kernel part scheduled for mainline submission
+ will support different phones / gsm chipsets
+ Various HTC devices with Linux
+ Motorola EZX phones using OpenEZX
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%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 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 (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 done
+ Xglamofb making good progress
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+OpenMoko
+Future Hardware
+
+GTA03
+ not public yet :)
+GTX01
+ not public yet :)
+GTX02
+ not public yet :)
+
+Always in motion, the future is!
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%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+ 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
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%page
+OpenMoko
+Thanks
+
+ Thanks to
+ Free Software Foundation
+ for the GNU Project
+ for the GNU General Public License
+ Motorola
+ for never managing to entirely lock down their EZX device
+ OpenEZX community
+ for continuing the effort that I once started
+ First International Computer, Inc.
+ for believing in a 100% Open Source product
+ for funding OpenMoko
+ mond
+ my girlfriend, whom I've had terribly neglected
+ All my friends
+ for whom I didn't have time a single minute in 18 months
personal git repositories of Harald Welte. Your mileage may vary