From fca59bea770346cf1c1f9b0e00cb48a61b44a8f3 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 25 Oct 2015 21:00:20 +0100 Subject: import of old now defunct presentation slides svn repo --- 2008/openmoko-cluc2008/images/Gta02v1_bottom.jpg | Bin 0 -> 1045441 bytes .../images/debugboard_v2_concept.jpg | Bin 0 -> 22065 bytes 2008/openmoko-cluc2008/images/gta01b_v3_bottom.jpg | Bin 0 -> 849092 bytes 2008/openmoko-cluc2008/images/gta01bv4_bottom.jpg | Bin 0 -> 928930 bytes 2008/openmoko-cluc2008/images/gta01bv4_top.jpg | Bin 0 -> 824865 bytes .../images/neo1973_debugboard_v2_top_annotated.jpg | Bin 0 -> 318075 bytes 2008/openmoko-cluc2008/notes.txt | 57 +++ 2008/openmoko-cluc2008/openmoko-tech.mgp | 473 +++++++++++++++++++++ 2008/openmoko-cluc2008/openmoko-tech.pdf | Bin 0 -> 42327 bytes 9 files changed, 530 insertions(+) create mode 100644 2008/openmoko-cluc2008/images/Gta02v1_bottom.jpg create mode 100644 2008/openmoko-cluc2008/images/debugboard_v2_concept.jpg create mode 100755 2008/openmoko-cluc2008/images/gta01b_v3_bottom.jpg create mode 100644 2008/openmoko-cluc2008/images/gta01bv4_bottom.jpg create mode 100644 2008/openmoko-cluc2008/images/gta01bv4_top.jpg create mode 100644 2008/openmoko-cluc2008/images/neo1973_debugboard_v2_top_annotated.jpg create mode 100644 2008/openmoko-cluc2008/notes.txt create mode 100644 2008/openmoko-cluc2008/openmoko-tech.mgp create mode 100644 2008/openmoko-cluc2008/openmoko-tech.pdf (limited to '2008/openmoko-cluc2008') 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 Binary files /dev/null and b/2008/openmoko-cluc2008/images/Gta02v1_bottom.jpg 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 Binary files /dev/null and b/2008/openmoko-cluc2008/images/debugboard_v2_concept.jpg 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 Binary files /dev/null and b/2008/openmoko-cluc2008/images/gta01b_v3_bottom.jpg 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 Binary files /dev/null and b/2008/openmoko-cluc2008/images/gta01bv4_bottom.jpg 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 Binary files /dev/null and b/2008/openmoko-cluc2008/images/gta01bv4_top.jpg 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 Binary files /dev/null and b/2008/openmoko-cluc2008/images/neo1973_debugboard_v2_top_annotated.jpg 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 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%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 Binary files /dev/null and b/2008/openmoko-cluc2008/openmoko-tech.pdf differ -- cgit v1.2.3