Скачать презентацию Beagle Board 101 Gerald Coley and Jason Kridner Скачать презентацию Beagle Board 101 Gerald Coley and Jason Kridner

ec37cce5501a3d22e3d48da9ae7aea44.ppt

  • Количество слайдов: 132

Beagle Board 101 Gerald Coley and Jason Kridner October 26, 2008 Embedded Systems Conference Beagle Board 101 Gerald Coley and Jason Kridner October 26, 2008 Embedded Systems Conference - Boston

Agenda § § § Overview of the Beagle Board § § § Board features Agenda § § § Overview of the Beagle Board § § § Board features and community Booting the Beagle Board OMAP 3530 applications processor overview Building community and collaborating § § § What, why, who, and how of open source Collaboration tools Community participation with Git Community participation with Open Embedded Managed, native, and web-based UI code development Conclusion § § Running demo images Resources for more information and support

What’s in a name… B ring your own peripherals E ntry-level cost ($149) A What’s in a name… B ring your own peripherals E ntry-level cost ($149) A rm Cortex-A 8 (600 MHz, superscaler) G raphics and DSP / Video accelerated L inux and open source community E nvironment for software innovators

Targeting community development $149 > 900 participants and growing Active & technical community Open Targeting community development $149 > 900 participants and growing Active & technical community Open access to hardware documentation Opportunity to tinker and learn Personally affordable Wikis, blogs, promotion of community activity Freedom to innovate Addressing open source community needs Instant access to >10 million lines of code Free software

Fast, low power, flexible expansion OMAP 3530 Processor § 600 MHz Cortex-A 8 § Fast, low power, flexible expansion OMAP 3530 Processor § 600 MHz Cortex-A 8 § NEON+VFPv 3 § 16 KB/16 KB L 1$ § 256 KB L 2$ § 430 MHz C 64 x+ DSP § 32 K/32 K L 1$ § 48 K L 1 D § 32 K L 2 § Power. VR SGX GPU § 64 K on-chip RAM POP Memory § 128 MB LPDDR RAM § 256 MB NAND flash 3” Peripheral I/O § DVI-D video out § SD/MMC+ § S-Video out § USB 2. 0 HS OTG § I 2 C, I 2 S, SPI, MMC/SD § JTAG § Stereo in/out § Alternate power § RS-232 serial USB Powered § 2 W maximum consumption § OMAP is small % of that § Many adapter options § Car, wall, battery, solar, …

And more… Other Features § 4 LEDs § USR 0 § USR 1 § And more… Other Features § 4 LEDs § USR 0 § USR 1 § PMU_STAT § PWR § 2 buttons § USER § RESET § 4 boot sources § SD/MMC § NAND flash § USB § Serial On-going collaboration at Beagle. Board. org § Live chat via IRC for 24/7 community support § Links to software projects to download 3” Peripheral I/O § DVI-D video out § SD/MMC+ § S-Video out § USB HS OTG § I 2 C, I 2 S, SPI, MMC/SD § JTAG § Stereo in/out § Alternate power § RS-232 serial

Desktop development DVI-D Power Stereo out SD Stereo in USB Note: Beagle Board can Desktop development DVI-D Power Stereo out SD Stereo in USB Note: Beagle Board can be powered from the alternate jack (as shown) or via USB

Development on-the-go Power + IP over USB Serial Port Development on-the-go Power + IP over USB Serial Port

Expand the Beagle Board USRP Stereo out USB Power SD 2 GB Photo by Expand the Beagle Board USRP Stereo out USB Power SD 2 GB Photo by Philip Balister 9

Benefits of low power § No fan for silent operation § Enables use as Benefits of low power § No fan for silent operation § Enables use as a media hub § Use a USB cable to power the board § Avoid carrying an additional power supply § Barrel connector power option § Free USB OTG port for use as a host § May use a USB-to-barrel-connector adapter

Benefits of USB 2. 0 HS OTG § Acts as a ‘device’ when connected Benefits of USB 2. 0 HS OTG § Acts as a ‘device’ when connected to a PC § Provides power to board § Able to emulate a network connection § Acts as a ‘host’ when connected to a hub § Connect to almost endless number of USB peripherals § Requires a mini-A to standard-A adapter cable • See http: //Beagle. Board. org/hardware for sources

Benefits of boot options § Boot from NAND, MMC/SD, serial, or USB § Boot Benefits of boot options § Boot from NAND, MMC/SD, serial, or USB § Boot options all from OMAP 3530 ROM § User button § Selects alternate boot source at boot • Default: NAND USB serial MMC/SD • Button pressed: USB serial MMC/SD NAND § Avoids “bricking” § Reusable in applications § Reset button § Function may be altered with software

Verifying the hardware § Code images, procedure, and sources are provided to verify the Verifying the hardware § Code images, procedure, and sources are provided to verify the board functionality § Links to the diagnostics found at § § http: //Beagle. Board. org/support Includes bootloader, Linux kernel, and minimal file system for testing These sources act as examples for software developers

Typically useful peripherals § Available from Digi-Key § 5 V power supply (T 450 Typically useful peripherals § Available from Digi-Key § 5 V power supply (T 450 -P 5 P-ND) • Frees USB port for use as a host § Null-modem serial cable (AE 9879 -ND) • Useful for bootloader and boot console I/O § HDMI-to-DVI-D cable (AE 10260 -ND) • Enables connection to digital monitors § USB hub (DA-70227 -ND) • Useful for adding USB peripherals § Other § Serial adapter from IDC 10 to DB 9 • Needed for serial console § Hardware specifications and recommended peripherals § § http: //Beagle. Board. org/hardware RSS feed of newly verified peripherals § http: //feeds. feedburner. com/Beagle. Board. Peripherals

Community is ready! Camera streaming application Audio processing Linux home fileserver Fanless multimedia/internet terminal Community is ready! Camera streaming application Audio processing Linux home fileserver Fanless multimedia/internet terminal VLC Video. LAN Low-cost kiosk terminal Development platform for mobile Vo. IP phone CMUcam-style applications Wearable computer Bluez and GUI using direct frame buffering Low cost linux pc/gaming device Smart home Linux thin client I'm interested to buy 2 to 10 rev-B boards LCD picture frame Port xnu (10 preferred ; ) congratulations for your Autonomous robot Port Open. Wrt project and its spirit ! Port Google-Android Networked digital signage Processing images and pattern recognition Home monitoring No idea yet Small linux home fileserver I'm not interested in waiting for the platform Mobile DTV tuner and receiver to mature any longer. Let me know how to get Port Open. Moko Clutter & Qt development Port OKL 4 hold of a beagleboard now. Powerful nas with media server and transcoding capabilities Autonomous vehicles Home security cameras and powered-curtains After discussing with my dev guys, I confirm I would like to order I'd like my students to design and build Bachelor thesis Media centre hardware and software to do for Linux what 20 beagleboards Time. Capsule does for Mac. OS SDR platform Speech recognition applications Vehicle telematics Project for masters degree Linux/Firefox web add-on for the TV in the house How do they get started?

How to get started, step #1 Order via How to get started, step #1 Order via

§ Four primary user activities on site § Buy a board § Learn how § Four primary user activities on site § Buy a board § Learn how to use existing projects § Learn how to join or start a project § Learn about the latest project news § Plans for site § Multi-lingual § Wiki-like editing-through-web § Keep website source open & leverage Open. ID

§ § § Facilitates open source community § § § Aggregates blogs and other § § § Facilitates open source community § § § Aggregates blogs and other important information for users Provide community chat for collaboration and answer exchange “Of, by, and for” community members Promotes community member activities OMAP 3530 collaboration portal § § Focus project developments “upstream” • Establish long-term presence • Solved broadest set of problems Aggregate relevant project news “downstream” • Inform OMAP 3530 users of the broader open source world • Avoid deluge of irrelevant information

Community projects http: //beagleboard. org/project § Ångström Linux Distribution § FFmpeg § § § Community projects http: //beagleboard. org/project § Ångström Linux Distribution § FFmpeg § § § Beagle SDR (low-power software defined radio) Windows Embedded for Beagle. Board Handheld. org’s Mojo Ubuntu port to ARM Android for Beagle Kernel and boot-loader development And growing… § Firefox 3. 0, Epiphany-Web. Kit, etc. § Abi. Word, GIMP, etc. § 720 P-24 MPEG 4 decode on ARM+NEON only 19

Chat, mail, forums, blogs, and wikis! § § § All exist because they all Chat, mail, forums, blogs, and wikis! § § § All exist because they all solve different problems Chat allows you to know someone’s listening #beagle on irc. freenode. net § Great for beginning “stupid” questions and rapid coordination Mail allows you to reach almost anyone http: //groups. google. com/group/beagleboard § § Brings them into the conversation Provides you with a personal log on your computer § Forums helps get the threads organized § Blogs provide emphasis, filtering, and timeliness § https: //community. ti. com/forums/32. aspx (minimal activity to avoid disrupting community critical mass) http: //beagleboard. org/news Wikis enable inputs to become documentation http: //e. Linux. org/Beagle. Board and http: //code. google. com/p/beagleboard/wiki

Booting the Beagle Board Booting the Beagle Board

Equipment at ESC-Boston § DVI-D § For you to keep (see box) § § Equipment at ESC-Boston § DVI-D § For you to keep (see box) § § Beagle Board Rev. B 5 SD Card • Configured using Monta. Vista Linux For you to use in the labs § Hub: § Cables: § Montior § Power USB peripherals SD USB Desktop Computer Configuration • Powered USB 2. 0 HS • USB to Beagle power • Mini-A-plug to standard-A-socket • HDMI to DVI-D • keyboard and mouse 22

Out of the box… § Beagle Board is meant to teach § § § Out of the box… § Beagle Board is meant to teach § § § No Linux kernel or file system is typically provided • This allows for alternative file systems • It encourages others to provide solutions A boot-loader is provided for basic hardware tests • Tries to avoid people thinking the board is dead Boot-loader is not configured to boot from anywhere Serial connection is typical A little help to move the class along § § § 20 “boot config” SD cards to be passed around the room Insert card, hold USER button, apply power, and release They take about a minute to reconfigure the flash • Follow instructions at the two queries (swap SD cards) • Completed when at the “Angstrom” login prompt 23

Typical Beagle Board boot process http: //www. ti. com/litv/pdf/sprufd 6 a § § § Typical Beagle Board boot process http: //www. ti. com/litv/pdf/sprufd 6 a § § § ROM attempts to load boot image from 4 places § Sequence of attempts depends if USER button pressed § X-Loader is loaded by the ROM • Not-pressed: NAND USB serial MMC/SD • Pressed: USB serial MMC/SD NAND X-loader (MLO) loads u-boot. bin directly § § § Often simply from same media MMC/SD boot has formatting requirements • • Boot partition must be marked bootable and be FAT MLO must be the first file loaded into the directory tree Deleted/renamed files in the root directory can disturb boot Low-level format (Cylinders/Heads/Sectors) matters One existing modification tries MMC/SD before flash By default, programmed into the first partition on the flash (mtd 0) By default, loads u-boot stored in the second partition (mtd 1) U-boot loads kernel and passes bootargs Instructions typically stored in environment on flash (mtd 2) § § § Currently supports only a serial console § Typically loads the kernel from flash (mtd 3) or first partition (mmcblk 0 p 1) • A default environment is stored in u-boot for when the flash isn’t programmed • Hack in the u-boot on the “boot config” cards alters this to read environment from SD • Possible to modify to support USB keyboard/mouse and DVI-D monitor Kernel mounts root file system based on bootargs 24

The ESC boot modifications http: //jkridner. s 3. amazonaws. com/esc/readme. txt § U-boot hack The ESC boot modifications http: //jkridner. s 3. amazonaws. com/esc/readme. txt § U-boot hack http: //www. beagleboard. org/uploads/u-boot-omap 3/ignorenv. txt § Started with Steve Sakoman’s u-boot-omap 3 source § In common/env_common. c, calls set_default_env(); § http: //www. beagleboard. org/irclogs/index. php? date=2008 -10 -21 http: //www. sakoman. net/cgi-bin/gitweb. cgi? p=u-boot-omap 3. git; a=summary • Overwrites values read from non-volatile environment • Uses built-in values from include/configs/omap 3_beagle. h In omap 3_beagle. h, altered default environment • Enabled ‘autoscr’ command to execute scripts from memory • Configured bootcmd to automatically run ‘autoscr’ § – mmcinit; fatload mmc 0 801 f 0000 u-boot. img; autoscr 801 f 0000 Created multiple u-boot. img files with ‘mkubootcmd’ • Files must be processed by u-boot tool called ‘mkimage’ • ‘mkubootcmd’ is a shell script that calls ‘mkimage’ • u-boot. img on the SD configures for NAND flash bootload 25

ESC boot modifications continued § Modified ramdisk. gz § Started with Angstrom pre-built console ESC boot modifications continued § Modified ramdisk. gz § Started with Angstrom pre-built console image http: //ewi 546. ewi. utwente. nl/~koen/Angstrom-console-image-glibc-ipk-2008. 1 -test-20080827 -beagleboard. rootfs. tar. bz 2 § Converted to ramdisk image • • • dd if=/dev/zero of=ramdisk bs=1 k count=32768 mkfs. ext 2 ramdisk mount -o loop ramdisk /mnt pushd /mnt; tar -xvjf Angstrom…. tar. bz 2; popd umount /mnt gzip ramdisk § Loaded multiple packages for manipulating the flash § Executes /media/mmcblk 0 p 1/boot. sh • Added /etc/init. d/boot_sh 26

ESC boot modifications continued (2) § boot. sh § Initializes flash (/media/mtdblock 4) • ESC boot modifications continued (2) § boot. sh § Initializes flash (/media/mtdblock 4) • • flash_eraseall /dev/mtd 4 mkdir /empty; pushd /empty; mkfs. jffs 2 -o /dev/mtd 4; popd mkdir /media/mtdblock 4 mount -t jffs 2 /dev/mtdblock 4 /media/mtdblock 4 § Copy files off of the SD card onto the flash • cp -v /media/mmcblk 0 p 1/* /media/mtdblock 4 • pushd /media/mtdblock 4; tar -xvzf /media/mmcblk 0 p 1/rootfs. tgz § Modify provided SD card with MV Linux • Fix a couple of links that were left off by accident • Copy hacked u-boot. bin and commands to load from SD card 27

Typical boot information locations Method USER Bootstrap U-Boot Env Vars Kernel Root Files 1) Typical boot information locations Method USER Bootstrap U-Boot Env Vars Kernel Root Files 1) SD MTD 0 MTD 1 MTD 2 MMC 0 P 1: MMC 0 P 2 u. Image 2) NAND MTD 0 MTD 1 MTD 2 MTD 3 3) Hacked Pressed u-boot. bin MMC 0 P 1: MLO u-boot. bin MMC 0 P 1: u-boot. img MMC 0 P 1: MMC 0 P 2 u. Image RAMDISK Pressed from SD MMC 0 P 1: MLO u-boot. bin MMC 0 P 1: u-boot. img MMC 0 P 1: u. Image ramdisk. gz MTD 4 1) bootargs: root=/dev/mmcblk 0 p 2 rw rootwait rootdelay=1 bootcmd: mmcinit; fatload mmc 0 80200000 u. Image; bootm 80200000 2) bootargs: root=/dev/mtdblock 4 rw rootfstype=jffs 2 bootcmd: nand read 80200000 280000 400000; bootm 80200000 3) bootargs: root=/dev/mmcblk 0 p 2 rw rootwait rootdelay=1 bootcmd: mmcinit; fatload mmc 0 80200000 u. Image; bootm 80200000 4) bootargs: root=/dev/ram 0 rw ramdisk_size=32768 initrd=0 x 81600000, 32 M bootcmd: mmcinit; fatload mmc 0 80200000 u. Image; fatload mmc 0 81600000 ramdisk. gz; bootm 80200000 Common) bootargs: console=tty. S 2, 115200 n 8 console=tty 0 nohz=off 28

U-boot command summary http: //www. denx. de/wiki/DULG/Manual § § Basic commands § § help U-boot command summary http: //www. denx. de/wiki/DULG/Manual § § Basic commands § § help – provide the list of commands (varies by build) printenv – lists the contents of the current environment saveenv – writes the current environment to the flash setenv ‘string’ – sets environment variable MMC/SD § § § mmcinit – initializes the MMC/SD card fatls mmc 0 – reads FAT directory on the first partition fatload mmc 0 – load a file NAND § § § nand unlock – enables writing to the NAND nand ecc – configures ECC mode nand erase – erases portion of NAND flash nand read – reads into RAM nand write – writes from RAM Serial § loadb – reads into RAM via kermit file send 29

What can the Beagle Board do? What can the Beagle Board do?

Interface to the physical world… The Real Signal Analog Signal World Conditioning Conversion to Interface to the physical world… The Real Signal Analog Signal World Conditioning Conversion to Digital Temperature Pressure Position Power Speed Flow Digital Signal Processor Management Humidity Sound Light Signal Conditioning Digital Signal Interface Conversion to Analog Clocks & Timers

…and present within the virtual …and present within the virtual

Linux distributions Kernel Creativity Tools Browser Office Suite Windowing System § § Linux isn’t Linux distributions Kernel Creativity Tools Browser Office Suite Windowing System § § Linux isn’t complete without a distribution Open. Embedded, Ubuntu, Fedora, Android, Gentoo, and ARMedslack are possibilities for the Beagle board

Baseline projects Available today § § § GPL ARM GNU compiler collection version 2007 Baseline projects Available today § § § GPL ARM GNU compiler collection version 2007 q 3 § Code Sourcery Linux/Windows compiler for ARMv 7/Thumb 2 Free C 6000 compiler version 6. 0. x § TI non-commercial Linux compiler for C 64 x+ GPL X-Loader version 1. 41 (Loads U-Boot) § § Configure RAM and boot from NAND flash or MMC/SD (FAT 32) “MLO” image for use with ROM boot-loader GPL U-Boot version 1. 3. 3 (Loads Linux kernel) § § § Interact over UART and program flash Boot from UART, NAND, or MMC/SD (FAT 32) Test UART, DVI-D, S-Video, audio out, NAND, and MMC/SD GPL Linux kernel version 2. 6. 22 for diagnostics § UART, DVI-D, S-Video, ALSA audio, NAND, and MMC/SD

Baseline projects Planned by TI in future § Free 2 D/3 D graphics libraries Baseline projects Planned by TI in future § Free 2 D/3 D graphics libraries (Beta available today for OMAP 35 x EVM) § § § Open. GL ES 1. 1 and 2. 0 (first to market) and Open. VG 1. 0 Framebuffer and Kdrive (X 11) support GPL in the kernel space Binaries object libraries Free DSP interface libraries § Link for loading, messaging, etc. • GPL in the kernel space • GPL-compatible in user space § Codec Engine for task location abstraction (RPC-like) • GPL-compatible interface § DSP/BIOS RTOS and framework components for DSP

Possible projects predicted § Development tools § § § Kernel and drivers § § Possible projects predicted § Development tools § § § Kernel and drivers § § SDIO/USB Wi. Fi, power management, Web. Cam, analog I/O Linux distribution ports § § Programming: gcc for ARM Cortex-A 8 or TI C 64 x+, Eclipse Utilities: DFU-util Maemo, Gentoo, Debian, Android User mode applications § § Productivity: Open. Office, Firefox Gaming: MAME, Quake 3, 2 nd Life Multimedia: Miro, g. Streamer Education: Sugar (OLPC), Alice

More possible projects § Signal processing algorithms § Machine recognition, Audio/video codecs § Weather/security More possible projects § Signal processing algorithms § Machine recognition, Audio/video codecs § Weather/security monitors § Signal processing tools § Matlab integration, filter generation tools § UI innovations § 3 D UI (Clutter, …) § Embedded web services § Java, Helma, JXTA, Facebook/Open. Social plug-ins § Server applications § Beagle. Board. org

OMAP 3530 applications processor OMAP 3530 applications processor

OMAP 35 x™ Processor Block Diagram n Cores § Cortex A-8 with NEON™ Coprocessor OMAP 35 x™ Processor Block Diagram n Cores § Cortex A-8 with NEON™ Coprocessor C 64 x+ DSP-based and video accelerators § 600 MHz / 430 MHz @ 1. 35 V § 550 MHz / 400 MHz @ 1. 27 V § 500 MHz / 360 MHz @ 1. 2 V § 2 D/3 D Graphics Engine (Power. VR SGX) § Up to 10 M polygons per second n Memory § ARM: § 16 k. B I-Cache; 16 k. B D-Cache; 256 k. B L 2 § TMS 320 C 64 x+ DSP and video accelerators § L 1 32 k. B Program Cache/32 k. B Data Cache + § 48 k. B SRAM § L 2 64 k. B Program / Data Cache + 32 k. B SRAM; 16 k. B ROM On Chip: 64 k. B SRAM; 112 k. B ROM n Package Highlights § 12 x 12 mm, 0. 4 mm pitch, Package On Package § § Samples now; production 4 Q’ 08 16 x 16 mm 0. 65 mm pitch. Via Channel Array Tech. Samples 2 Q’ 08; production 4 Q’ 08 Industrial temperature range supported OMAP 35 x Processor C 64 x+™ DSP and video accelerators (3525/3530 only) ARM® Cortex™A 8 CPU 2 D/3 D Graphics (3515/3530 only) Display Subsystem LCD Controller Video 10 bit DAC Enc 10 bit DAC Camera I/F Imag e Pipe Parallel I/F L 3/L 4 Interconnect Peripherals Connectivity Serial Interfaces Mc. BS P x 5 Mc. SP I x 4 I 2 C x 3 USB 2. 0 HS Host OTG Controller x 2 UART w/IRDA System Timers GP x 12 WDT x 2 Program/Data Storage HDQ / 1 -wire SDRC GPMC MMC/ SDIO x 3

ARM® Cortex™-A 8 § § § Up to 600 MHz ARMv 7 Architecture § ARM® Cortex™-A 8 § § § Up to 600 MHz ARMv 7 Architecture § Thumb-2 § MMU Enhancements In-Order, Dual-Issue, Superscalar Microprocessor Core NEON Multimedia Architecture § Over 2 x Performance of ARMv 6 SIMD § Supports Both Integer and Floating Point SIMD Jazelle RCT Execution Environment Architecture Dynamic Branch Prediction § 95% Accurate Branch Target Address Cache • § § across industry benchmarks • 4 -Way. Set-Associative § Global History Buffer § 8 -Entry Return Stack Embedded Trace Macrocell (ETM) Support § Non-Invasive Debug ARM Cortex-A 8 Memory Architecture: § 16 K-Byte Instruction Cache § 16 K-Byte Data Cache § 256 K-Byte L 2 Cache • 4 -Way Set-Associative

ARM Cores Comparison ARM Core ARM 926 ARM 1136 Cortex-A 8 Architecture Version V ARM Cores Comparison ARM Core ARM 926 ARM 1136 Cortex-A 8 Architecture Version V 5 V 6 V 7 Pipeline type In-order scalar In-order, dual-issue superscalar Pipeline stages 5 8 13 ISA Efficiency (DMIPS/MHz) 1. 07 1. 18 2. 05 MMU Yes Yes TLB 8 entry unified 2 u. TLB and LB 2 x 32 full assoc Core to L 1 interface 32 bit 64 bit (256 Neon) L 1 $ Set associativity 4 4 4 Line length 32 B 64 B Branch prediction No 128 entry BTB 512 entry BTB General coprocessor I/F Yes No External Interface 2 AHB 2. 0 5 AHB 2. 5 – 3 x 64 bit, 2 x 32 bit 1 AXI – 64/128 Trust. Zone Support No No Yes Non-Cacheable Fill Buffer 4 word 8 word 16 word Java support Jazelle DBX Jazelle RCT Floating Point / Media No (coprocessor available, VFP 9) VFP 11 attached, V 6 Integer SIMD Neon Integer and FP SIMD, VFP Lite

C 64 x+™ DSP and Accelerators “IVA” Subsystem 64 x+ DSP § Up to C 64 x+™ DSP and Accelerators “IVA” Subsystem 64 x+ DSP § Up to 430 MHz (c 64 x+ DSP) § Dedicated Enhanced Data Memory Access engine (EDMA) to move data to/from memories and peripherals external to the sub-system § Video HWA EDMA Video hardware accelerators § MMU to access external address space (such as memory/peripheral) § Advanced Very-Long-Instruction-Word TMS 320 C 64 x+™ DSP Core § Eight Highly Independent Functional Units • Six ALUs (32 -/40 -Bit), Each Supports Single 32 -Bit, Dual 16 -Bit, or Quad 8 -Bit Arithmetic per Clock Cycle • Two Multipliers Support Four 16 x 16 -B Multiplies (32 -Bit Results) per Clock Cycle or Eight 8 x 8 -Bit Multiplies (16 -B Results) per Clock Cycle § 64 32 -Bit General-Purpose Registers § Instruction Packing Reduces Code Size C 64 x+ L 1/L 2 Memory Architecture § 32 K-Byte L 1 P Program RAM/Cache (Direct Mapped) § 80 K-Byte L 1 D Data RAM/Cache (2 -Way Set-Associative) § 64 K-Byte L 2 Unified Mapped RAM/Cache (4 -Way Set-Associative) § 32 K-Byte L 2 Shared SRAM and 16 K-Byte L 2 ROM C 64 x+ Instruction Set Features § Byte-Addressable (8 -/16 -/32 -/64 -Bit Data) § 8 -Bit Overflow Protection 32 KB L 1 P Cache/RAM 32 KB L 1 D Cache/RAM 48 KB L 1 D RAM 64 KB L 2 Cache/RAM 32 KB L 2 RAM § MMU §

Power. VR™ SGX Graphics Engine § Up to ~111 MHz § § Tile Based Power. VR™ SGX Graphics Engine § Up to ~111 MHz § § Tile Based Architecture with up to 10 MPoly/sec § Universal Scalable Shader Engine: Multi-threaded Engine Incorporating Pixel and Vertex Shader Functionality Industry Standard API Support: § § § Open. GLES 1. 1 and 2. 0 Open. VG 1. 0 Direct 3 D Mobile (TBD) Fine Grained Task Switching, Load Balancing, and Power Management Programmable High Quality Image Anti-Aliasing

Graphics Capability Examples Wave Physics Environment Mapping & Per-Pixel lighting Reflection & Refraction Graphics Capability Examples Wave Physics Environment Mapping & Per-Pixel lighting Reflection & Refraction

Display Subsystem (DSS) § Parallel Digital Output § Up to 24 -Bit RGB § Display Subsystem (DSS) § Parallel Digital Output § Up to 24 -Bit RGB § HD Maximum Resolution § Supports Up to 2 LCD Panels § Support for Remote Frame Buffer § Interface (RFBI) LCD Panels § 2 10 -Bit Digital-to-Analog Converters(DACs) Supporting: § Composite NTSC/PAL Video § Luma/Chroma Separate Video (S-Video) § Rotation 90 -, 180 -, and 270 -degrees § Resize Images From 1/4 x to 8 x § Color Space Converter § 8 -bit Alpha Blending Display Subsystem LCD Controller Video Enc 10 bit DAC

Display Subsystem Examples Pi. P Overlay Scaling HW cursor Display Subsystem Examples Pi. P Overlay Scaling HW cursor

Camera Interface Subsystem (ISP) § § § § § Generic parallel interface example CCD Camera Interface Subsystem (ISP) § § § § § Generic parallel interface example CCD and CMOS Imager Interface Memory Data Input RAW Data Interface BT. 601/BT. 656 Digital YCb. Cr 4: 2: 2 (8 -/16 -Bit) Interface A-Law Compression and Decompression Preview Engine for Real-Time Image Processing Glueless Interface to Common Video Decoders Histogram Module/Auto-Exposure, Auto-White Balance, and Auto-Focus Engine Resize Engine § Resize Images From 1/4 x to 4 x § Separate Horizontal/Vertical Control Not connected on the Beagle Board

Timers § § § 12 32 -bit General Purpose Timers 2 32 -bit Watchdog Timers § § § 12 32 -bit General Purpose Timers 2 32 -bit Watchdog Timers 1 32 -bit 32 -k. Hz Sync Timer

SD / MMC, SDRC, and GPMC Interface § § SDRC GPMC MMC/ SDIO x SD / MMC, SDRC, and GPMC Interface § § SDRC GPMC MMC/ SDIO x 3 § SD / MMC / SDIO § § Three instantiations Compliant with CE-ATA and ATA for MMCA 1 -bit or 4 -bit transfer mode specifications for SD and SDIO cards 1 -bit, 4 -bit, or 8 -bit transfer mode specifications for MMC cards General Purpose Memory Controller (GPMC) § § § Controls all accesses to SRAM and Flash-type memory 8 Chip Selects - 128 MB per CS -1 GB Total space (8 * 128 MB) 16 bit wide bus Multiplexed Addr/Data 2 KB non-multiplexed Support for: NAND/NOR Flash, One NAND Flash, SRAM, One. NAND, & Pseudo. SRAM devices SDRAM Controller (SDRCM) Subsystem § § support for low-power or Mobile single-data-rate (LPSDR or M-SDR) and lowpower double-data-rate SDRAM (LPDDR) 16 Mbits, 32 Mbits, 64 Mbits, 128 Mbits, 256 Mbits, 512 Mbits , 1 Gbit, and 2 Gbits device support

USB § § USB 2. 0 HS OTG Controller USB Host Controller x 2 USB § § USB 2. 0 HS OTG Controller USB Host Controller x 2 USB 2. 0 HS OTG Controller § § USB 2. 0 low-speed (1. 5 M bit/s), full-speed (12 M bit/s), and high-speed (480 M bit/s) host USB 2. 0 full-speed (12 M bit/s), and high-speed (480 M bit/s) peripheral OTG Support PHY interface – ULPI (HS/FS) USB Host Controller § § Host only All 3 ports operate in either HS or FS mode (determined by selected PHY connection) HS Mode • 480 M bit/s • Available Port – 1 & 2 • PHY interface ULPI FS Mode • 12 M bit/s • Available Port – 1, 2, and 3 • PHY interface Serial Asynchronous HS-only EHCI host planned for 1 Q 09 on Beagle Board, USB 2. 0 HS/FS/LS OTG available today

Serial Interfaces and HDQ/1 -Wire § § Mc. BS P x 5 Mc. SP Serial Interfaces and HDQ/1 -Wire § § Mc. BS P x 5 Mc. SP I x 4 I 2 C x 3 UART x 2 3 Master/Slave High-Speed Inter-Integrated Circuit Controllers (I 2 C) 5 Multi Channel Buffered Serial Ports (Mc. BSP) § § § HDQ / 1 -wire UART w/IRDA § § § 512 Byte Transmit/Receive Buffer (Mc. BSP 1/3/4/5) 5 K-Byte Transmit/Receive Buffer (Mc. BSP 2) SIDETONE Core Support (Mc. BSP 2 and 3 Only) For Filter, Gain, and Mix Operations Direct Interface to I 2 S and PCM Device and TDM Buses 128 Channel Transmit/Receive Mode 4 Master/Slave Multi Channel Serial Port Interface (Mc. SPI) 3 UARTs (One with Infrared Data Association [Ir. DA] and Consumer Infrared [CIR] Modes) 1 HDQ / 1 -Wire

Package (1/2) 12 x 12 mm 0. 40 mm pitch 515 pin plastic BGA Package (1/2) 12 x 12 mm 0. 40 mm pitch 515 pin plastic BGA

OMAP 35 x POP Memory Description § § POP = Package on Package Technology OMAP 35 x POP Memory Description § § POP = Package on Package Technology Provides customers the advantage of saving PCB area, m. DDR routing and the flexibility of choosing their own top POP Package memory configuration Combination of fine ball pitch and POP requires more attention to detail on manufacturing than has normally been needed TI has been supporting key memory suppliers, such as Micron and Samsung on the development of POP memories Memory Package 1. 6 mm OMAP 35 x 0. 4 mm pitch 12 x 12 mm 1 Pass Assembly Method 2 Pass Assembly Method

Package (2/2) 16 x 16 mm 0. 65 mm pitch 423 pin plastic BGA Package (2/2) 16 x 16 mm 0. 65 mm pitch 423 pin plastic BGA

Via Channel Array Solution Package Stats: • 0. 65 mm pitch, BUT • 18 Via Channel Array Solution Package Stats: • 0. 65 mm pitch, BUT • 18 mil (0. 45 mm) vias • 5 mil (0. 125 mm) space/trace width • 2 layer routing Comparison with 0. 8 mm: • Requires fewer PCB layers • Cheaper PCB cost due to reduced layers • Bigger via size • Same trace width • Same space width • Only assembly tolerances are tighter Final solution is the OMAP 35 xx package. 423 pins routed out in only 2 signal layers with. 8 mm pitch PCB rules.

Via Channel Array Benefits Summary (Competition) Comparison Micro Vias? Min Trace Min Space Package Via Channel Array Benefits Summary (Competition) Comparison Micro Vias? Min Trace Min Space Package size Area PCB Layers req. Reduction from. 8 mm 0. 8 mm pitch No 5 mils 17 mm x 17 mm (400 pins) 289 mm 2 6 -- (OMAP 35 xx) 0. 65 mm p. w/Via Channels No 5 mils 16 mm x 16 mm (423 pins) 256 mm 2 4 11%

Power Management Introduction Power management aims to improve battery life of equipment by minimizing Power Management Introduction Power management aims to improve battery life of equipment by minimizing power consumption while guaranteeing expected system performance Active power consumption occurs while some processing is on-going § Dynamic power consumption (transistor switching) + Leakage consumption Static (also Standby or Idle) power consumption occurs when limited or no processing is on-going and the system is waiting for a wakeup event § Very limited dynamic power consumption + Leakage consumption § Managed by § Dynamic Voltage & Frequency Scaling (DVFS) § Adaptive Voltage Scaling (AVS) § Dynamic Power Switching (DPS) On OMAP 35 xx, power management is handled by the Power, Reset and Clock Management (PRCM) module

Dynamic Voltage and Frequency § § Higher voltage needed to meet higher performance (frequency) Dynamic Voltage and Frequency § § Higher voltage needed to meet higher performance (frequency) No need to run at the highest frequency (and highest voltage and power) all the time Depending on performance required by the application scenario, can lower clocks and lower voltage, thereby lowering power consumption Define and characterize Operating Performance Points (OPPs) for the device. § § OPP is a voltage and frequency pair, specifying the minimum voltage at which all devices can meet that frequency requirement (i. e. if a device is picked at random and supplied with the OPP voltage, it will be capable of running at the OPP frequency no matter where it falls on the process curve) DVFS applicable to VDD 1 and VDD 2 in OMAP 3

Adaptive Voltage Scaling • • Silicon manufacturing process yields a distribution of performance capability Adaptive Voltage Scaling • • Silicon manufacturing process yields a distribution of performance capability For a given frequency requirement: • Devices on hot/strong/fast end of distribution can meet this at a lower voltage • Devices on cold/weak/slow end of distribution need higher voltage Simple system will set the higher voltage for operating all devices Smarter system will adapt operating voltage per device: Smart. Reflex, TI’s Adaptive Voltage Scaling (AVS) implementation Green line: Hot device Blue line: Cold device

OMAP 35 x Power Domains q 16 different power domains Ø 1 always ON OMAP 35 x Power Domains q 16 different power domains Ø 1 always ON power domain WKUP domain Wake-up domain (ALWAYS active) • WAKEUP Ø 9 power domains controllable (switchable) by user or automatically by PRCM • • • MPU NEON IVA 2 GFX CORE DSS CAM PER EMU Ø 6 power domains controllable only by the PRCM • • • SR EFUSE MPU DPLL (DPLL 1) IVA 2 DPLL (DPLL 2) CORE DPLL (DPLL 3) PERIPHERAL DPLL (DPLL 4) MPU domain NEON domain Micro Processor domain Multimedia Coprocessor domain IVA 2 domain GFX domain Audio Video Processor domain 2 D/3 D graphics engine domain CORE domain DSS domain Interconnect, memory controllers, Peripherals and clock management domain Display domain PER domain CAM domain Low power use cases peripherals domain Camera controller domain EMU domain Emulation domain SMART REFLEX™ domain Micro Processor domain EFUSE domain e. Fuse Farm domain DPLL 1 domain DPLL 2 domain MPU DPLL domain IVA 2 DPLL domain DPLL 3 domain DPLL 4 domain CORE DPLL domain Peripherals DPLL domain

Power Options for OMAP 35 x DVFS & Class-3 Smart. Reflex Capable § § Power Options for OMAP 35 x DVFS & Class-3 Smart. Reflex Capable § § PMIC (multi-output DCDC) § § TPS 65950 TPS 65930 TPS 65920 TPS 65073 (samples available 2 Q 08, RTM 3 Q 08) (samples available 3 Q 08, RTM 4 Q 08) Single Output DCDC § TPS 62350 (in production) DVFS & Class-1 / Class-2 Smart. Reflex Capable § PMIC (multi-output DCDC) § TPS 65023 (in production)

Feature Overview of Analog Solutions Maximum System Integration TPS 65950 TPS 65930 Car-Kit Audio Feature Overview of Analog Solutions Maximum System Integration TPS 65950 TPS 65930 Car-Kit Audio Codec & Drivers CEA MCPC CEA Dual Stereo Tx Dual Stereo Rx Dual Tx Mono Rx TPS 65920 Maximum System Flexibility USB 2. 0 HS OTG PHY Integration Clocking Control, Optional Security RTC 32 k. Hz TPS 65073 Keypad Interface Touchscreen Interface 10 -bit ADC 3 inputs 2 inputs Drivers RGB and Vibra RGB or Vibra Integrated Battery Charger 2 inputs Controller RGB or Vibra 4 inputs w. LED AC & USB w/ DPPM TPS 65023 TPS 62350 Power 3 DCDC 10 LDO 3 DCDC 4 LDO 3 DCDC 2 LDO 1 DCDC I 2 C Interface 2 HS I 2 C 1 I 2 C 1 HS I 2 C

TPS 659 xx Power Block Diagram MPU IVA VDD 1 DCDC VDD 2 DCDC TPS 659 xx Power Block Diagram MPU IVA VDD 1 DCDC VDD 2 DCDC CORE VRTC VIO DCDC IOs Memory Display Wake-Up domains USB CP VDAC Video DAC VPLL USB PHY VAUX VMMC TPS 659 xx VPP or Camera IF MMC 1 OMAP 3530

What, why, who, and how of open source What, why, who, and how of open source

The fourth vector of value Performance Power Dissipation Price The fourth vector of value Performance Power Dissipation Price

The fourth vector of value Performance Participation A-GPS Bluetooth® Power Dissipation Price WLAN The fourth vector of value Performance Participation A-GPS Bluetooth® Power Dissipation Price WLAN

What is “open source”? Form of S/W Delivery S/W Development Model § § Software What is “open source”? Form of S/W Delivery S/W Development Model § § Software source code § § § May require source code be made available to public License accompanies the software package § § Available to general public Relaxed intellectual property restrictions Group of software licenses Often in actual source code Principles and practices § § Promote a collaborative development model Utilize open source software delivery method Culture § Collective decisions shared during development

General benefits of open source § Faster Innovation § Collaborate faster than standard product General benefits of open source § Faster Innovation § Collaborate faster than standard product release cycles § Engage and fuel passionate innovators/developers § Peer-to-peer conversation and open idea exchange § Better Solutions § Software quality through expert peer review § New preferred peer support through community § Faster feedback on product requirements and tools

Why do people participate? Simplified view § Leverage community to solve own problems, then Why do people participate? Simplified view § Leverage community to solve own problems, then share for possible benefits (scratch an itch) § May develop solution on their own § Benefits are generally improvements to the code § Not much benefit required, if no expecting loss § May utilize community to various degrees § Solve community problems for fame and glory § Could just like getting a “pat on the back” § Could get a job or contract

Many are professional developers § Linux § 70% attributed companies § • See table Many are professional developers § Linux § 70% attributed companies § • See table at right Firefox § Google attributed for $56 million § § of Mozilla’s $66 million 2006 revenue Google is the default search engine on Firefox search bar Commercial software vendors § Share development costs § Influence technology direction § Enable their proprietary solutions § Develop core expertise

Commercial vs. community § Beyond commercial benefits of open source § § Success typically Commercial vs. community § Beyond commercial benefits of open source § § Success typically depends heavily on “community” Gartner recommendations for building community § § § § § Allow participants to self-select Eliminate barriers to participation Provide clear engagement rules for consensus Provide fair and reciprocal ownership and access Make visible historic and current work in progress Make visible individual contribution history Implement agreed standards Decompose problem for parallel development Seek continuous improvement and low-cost integration

Community is a conversation § Bill Gatliff (Embedded Systems Conference) § How do we Community is a conversation § Bill Gatliff (Embedded Systems Conference) § How do we motivate embedded systems developers? • [Software support for the platform] is on the mainline • [The platform] just works • What tools are available to me? § Matthew Walster (demo scene) § How do we motivate a demo hacker? • Make it really, really easy –or– • Make it really hard § Tony Lindgren (linux-omap git maintainer) § How do we speak to the Linux kernel developers? • Code is the conversation • More patches, less powerpoints

What motivates participants? Categories courtesy of “Lug. Radio” – it is largely about control What motivates participants? Categories courtesy of “Lug. Radio” – it is largely about control § Community Participant § Likes attention and being part of something big § Tinkerer § Desires to know how things work and to tweak them § Underdog Fan § Likes to cheer on anyone who’ll take on the big guys § Cheap § Want things for free, or as cheap as possible § Freedom Crusader § Desires to prevent others from controlling their destiny

Linux § Most widely utilized open source operating system § § Licensed under GNU Linux § Most widely utilized open source operating system § § Licensed under GNU General Public License (GPL) Directly refers to the kernel (OS), but often used to describe a complete set of applications (or distro) based on the Linux kernel A Linux distribution (distro) is a project that manages a collection of Linux-based software § § Clone of the UNIX operating system Maintained by individuals, loose-knit teams, volunteer organizations, and commercial entities. At $1. 8 bln, Linux servers represent 11. 9% of all server revenue 1 – not bad for “free” software Linux 2. 6. 9 defect rate of 0. 17 defects/klines compared to the standard benchmark of 25 defects/klines for commercial software 2 Source code: http: //www. kernel. org/ Linux Distribution Timeline [1] Source: IDC [2] Source: Coverity

Some Linux statistics § https: //www. linux-foundation. org/publications/linuxkerneldevelopment. php Some Linux statistics § https: //www. linux-foundation. org/publications/linuxkerneldevelopment. php

Getting started with Linux § § Starting references § § § http: //free-electrons/training http: Getting started with Linux § § Starting references § § § http: //free-electrons/training http: //kernelnewbies. org (/Upstream. Merge) The Linux Documentation Project (http: //www. tldp. org/) Device Drivers Book (http: //www. xml. com/ldd/chapter/book/index. html) http: //kerneltrap. org “The” kernel Git. Web § http: //git. kernel. org/? p=linux/kernel/git/torvalds/linux-2. 6. git Linux-omap kernel § § http: //linux. omap. com http: //source. mvista. com/git/ (Tony Lindgren) Others that feed “the” kernel or linux-omap kernel § § § http: //www. linux-arm. org/git? p=linux-2. 6. git http: //www. arm. linux. org. uk/ http: //www. sakoman. net/cgi-bin/gitweb. cgi

Distributed version control § § GIT is different—eliminates often bad assumptions Instead of everyone Distributed version control § § GIT is different—eliminates often bad assumptions Instead of everyone pushing into Linus’ repository § § Linus pulls patches from people he trusts Everyone has all of Linus’ history (and their own) locally Patches enter “system” as e-mail messages When a merge is non-trivial, he simply asks others to rebase Mailing list § § Archives available to everyone Accepted patches applied to ‘git’ repositories Guides to GIT § § § http: //linux. yyz. us/git-howto. html http: //git. or. cz/ http: //www. kernel. org/pub/software/scm/git/docs/

Reproducing diagnostic tests Reproducing diagnostic tests

SD Card § An SD Card is an easy way to boot § May SD Card § An SD Card is an easy way to boot § May eventually be replaced by a full USB boot solution § § § 2 GB SD card recommended USB SD card reader/writer required Utilize HP card format utility § http: //selfdestruct. net/misc/usbboot/SP 27213. exe

Serial Cable § Serial console well-supported in u-boot and kernel § May eventually be Serial Cable § Serial console well-supported in u-boot and kernel § May eventually be replaced by USB § JTAG is an alternate or extension solution § USB networking support in kernel, but consumes port § Null modem cable required for serial console § Female-9 -pin to female-9 -pin with crossover § § AT/Everex adapter cable required Serial terminal software required § Windows: Tera. Term, Hyperterm, … § Linux: Minicom, …

Chat § Install an IRC client § Examine http: //www. beagleboard. org/irclogs § Why Chat § Install an IRC client § Examine http: //www. beagleboard. org/irclogs § Why ? § Outside TI: http: //beagleboard. org/chat § TI: http: //beagleboardtwiki. sc. ti. com/ § IRC is nice for beginners, because you can get § § immediate interactive feedback vs. mailing lists Don’t be shy Everything you say is public, but that’s OK • Avoid making assertions that you don’t know; ignorance is OK • Learn from your mistakes; repeat what you learn

Build environment § Linux PC or virtual machine § Code Sourcery C compiler • Build environment § Linux PC or virtual machine § Code Sourcery C compiler • 2007 q 3 arm-none-linux-gnueabi http: //www. codesourcery. com/gnu_toolchains/arm/releases/2007 q 3 § Git • Version 1. 5. 4. 3 desired/required • Include ‘curl’ support § Windows laptop PC

Source § Clone Linux kernel and U-Boot from “upstream” § Give a couple hours Source § Clone Linux kernel and U-Boot from “upstream” § Give a couple hours for the download § git clone http: //source. mvista. com/git/linux-omap-2. 6. git § git clone http: //git. denx. de/u-boot. git § Download Beagle pre-built images and sources § All released source, binaries, and tools http: //code. google. com/p/beagleboard/downloads/list § Patch 1 -4 for U-Boot v 1. 3. 2 http: //groups. google. com/group/beagleboard/browse_thread/3473 b 44 af 1 e 6 e 326# § Copy all to Linux host

Checkout/patch/build U-Boot § § § cd u-boot git checkout -f v 1. 3. 2 Checkout/patch/build U-Boot § § § cd u-boot git checkout -f v 1. 3. 2 git checkout -b my_branch git tag start patch -p 1 < ~/Desktop/patch 1. diff. txt § Repeat for each of the 4 patch files § § git add. git commit -a export PATH=$PATH: /opt/arm-2007 q 3/bin make distclean § make CROSS_COMPILE=arm-none-linux-gnueabi- § § make CROSS_COMPILE=arm-none-linux-gnueabi- omap 3530 beagle_config cd. .

Checkout/build Linux § cd linux-omap-2. 6 § git checkout d 6 daf 8 d Checkout/build Linux § cd linux-omap-2. 6 § git checkout d 6 daf 8 d 8 cc 5 ccf 90247 def 5551 ee 9 c 3 e 8555 e 848 § § git tag start git checkout -b my_branch § § § make CROSS_COMPILE=arm-none-linux-gnueabi- distclean make CROSS_COMPILE=arm-none-linux-gnueabi- omap 3_beagle_defconfig make CROSS_COMPILE=arm-none-linux-gnueabi- u. Image § cd. .

Boot Beagle from SD card § § § § Format SD card as FAT Boot Beagle from SD card § § § § Format SD card as FAT using HP utility Copy provided MLO (x-load) Copy built v 1. 3. 2 -xxx u-boot. bin Copy built 2. 6. xx-xxx u. Image Copy provided rd-ext 2. bin (ramdisk image) Connect serial cable and insert SD card Hold “User” button and apply power § § Observe “… 40 T…” on serial port Press a key to halt boot if required Give commands at u-boot prompt (OMAP 3 beagleboard. org #) § § setenv bootargs ‘console=tty. S 2, 115200 n 8 root=/dev/ram 0 rw ramdisk_size=8192 rootfstype=ext 2 initrd=0 x 81600000, 8 M’ setenv bootcmd ‘mmcinit; fatload mmc 0 80300000 u. Image; fatload 81600000 rd-ext 2. bin; bootm 80300000’ saveenv run bootcmd

Create SD/MMC patch e-mail § § git diff start git format-patch -s -o start Create SD/MMC patch e-mail § § git diff start git format-patch -s -o start

Post patch to OMAP community § Read http: //www. muru. com/linux/omap/README_OMAP_PATCHES § Post your Post patch to OMAP community § Read http: //www. muru. com/linux/omap/README_OMAP_PATCHES § Post your patch to mailing list [email protected] kernel. org

Collaboration tools Collaboration tools

Chat, mail, forums, blogs, and wikis! § § All exist because they all solve Chat, mail, forums, blogs, and wikis! § § All exist because they all solve different problems Chat allows you to know someone’s listening § Great for beginning and “stupid” questions § Mail allows you to reach almost anyone § Brings them into the conversation § Provides you with a personal log § § § Forums helps get the threads organized Blogs provide emphasis, filtering, and timeliness Wikis enable inputs to become documentation

Chat on IRC § http: //freenode. net § #beagle: discussion regarding the Beagle Board Chat on IRC § http: //freenode. net § #beagle: discussion regarding the Beagle Board § #neuros: discussion § #davinci: discussion regarding TI Da. Vinci products § #ol: discussion regarding OMAP Linux (not active) § IRC clients § http: //pidgin. im § http: //www. mirc. com § http: //en. wikipedia. org/wiki/List_of_IRC_clients § http: //www. ircreviews. org/clients/

E-mail regarding OMAP Linux § § http: //Beagle. Board. org/discuss http: //vger. kernel. org/vger-lists. E-mail regarding OMAP Linux § § http: //Beagle. Board. org/discuss http: //vger. kernel. org/vger-lists. html#linux-omap

Forums § http: //community. ti. com Forums § http: //community. ti. com

Blogs (RSS feeds) § http: //beagleboard. blogspot. com Blogs (RSS feeds) § http: //beagleboard. blogspot. com

Wikis § § § http: //wiki. davincidsp. com http: //tiexpressdsp. com http: //elinux. org/Beagle. Wikis § § § http: //wiki. davincidsp. com http: //tiexpressdsp. com http: //elinux. org/Beagle. Board

Registering Beagle projects http: //code. google. com § § Anyone can create a new Registering Beagle projects http: //code. google. com § § Anyone can create a new open source project Features § § § § Site is “cleaner” than sf. net, but sf. net is OK too Source control is Subversion Issue tracking is custom Provides downloads and wiki support Use common sense and get your manager’s approval Use the tag “beagleboard” Let’s explore: http: //code. google. com/p/beagleboard

Git § What is Git? § § § Git is a popular version control Git § What is Git? § § § Git is a popular version control system designed to handle very large projects with speed and efficiency; it is used mainly for various open source projects, most notably the Linux kernel. Git falls in the category of distributed source code management tools, similar to e. g. GNU Arch or Monotone (or Bit. Keeper in the proprietary world). Every Git working directory is a full-fledged repository with full revision tracking capabilities, not dependent on network access or a central server. Git is an Open Source project covered by the GNU General Public License v 2. It was originally written by Linus Torvalds and is currently maintained by Junio C Hamano. Read more here: § http: //git. or. cz/ Learn from Linus here: § http: //www. youtube. com/watch? v=4 Xpn. KHJAok 8

Community Participation with Git Community Participation with Git

Features of Git § § § Strong support for non-linear development. : Git supports Features of Git § § § Strong support for non-linear development. : Git supports rapid and convenient branching and merging, and includes powerful tools for visualizing and navigating a non-linear development history. Distributed development. Like most other modern version control systems, Git gives each developer a local copy of the entire development history, and changes are copied from one such repository to another. These changes are imported as additional development branches, and can be merged in the same way as a locally developed branch. Repositories can be easily accessed via the efficient Git protocol (optionally wrapped in ssh) or simply using HTTP - you can publish your repository anywhere without any special web server configuration required. Efficient handling of large projects. Git is very fast and scales well even when working with large projects and long histories. It is commonly an order of magnitude faster than most other revision control systems, and several orders of magnitude faster on some operations. It also uses an extremely efficient packed format for long-term revision storage that currently tops any other open source version control system. Cryptographic authentication of history. The Git history is stored in such a way that the name of a particular revision (a "commit" in Git terms) depends upon the complete development history leading up to that commit. Once it is published, it is not possible to change the old versions without it being noticed. Also, tags can be cryptographically signed. Toolkit design. Following the Unix tradition, Git is a collection of many small tools written in C, and a number of scripts that provide convenient wrappers. It is easy to chain the components together to do other clever things.

Everyday Git http: //www. kernel. org/pub/software/scm/git/docs/everyday. html § § § § § git-show-branch(1) to Everyday Git http: //www. kernel. org/pub/software/scm/git/docs/everyday. html § § § § § git-show-branch(1) to see where you are. git-log(1) to see what happened. git-checkout(1) and git-branch(1) to switch branches. git-add(1) to manage the index file. git-diff(1) and git-status(1) to see what you are in the middle of doing. git-commit(1) to advance the current branch. git-reset(1) and git-checkout(1) (with pathname parameters) to undo changes. git-merge(1) to merge between local branches. git-rebase(1) to maintain topic branches. git-tag(1) to mark known point.

How to build Git tool from source Download GIT from: http: //git. or. cz/ How to build Git tool from source Download GIT from: http: //git. or. cz/ How to build GIT ? #> tar –xzvf git-1. 5. 5. 1. tar. gz #> cd #> make How to install GIT ? #> make prefix= install Example: #> make prefix=/home/ubuntu/mygit/ install GIT tools will be installed at /home/ubuntu/mygit/bin (export this PATH to get the GIT commands)

Commands used to pull trees Refer to Tony’s README on muru. com for detailed Commands used to pull trees Refer to Tony’s README on muru. com for detailed description on working with OMAP GIT tree. http: //www. muru. com/linux/omap/README_OMAP_GIT Few important commands: To clone OMAP GIT Tree: $ git clone http: //www. kernel. org/pub/scm/linux/kernel/git/tmlind/linux-omap-2. 6. git Same GIT tree is also hosted/mirrored at mvista’s site here: $ git clone http: //source. mvista. com/gittrees/linux-omap-2. 6. git Note: Setup Proxy Server before cloning the tree: Example: #> export http_proxy=http: //my. proxy. here: port/ To re-sync your branch with mainline: $ git-pull

What do you do with Git? To add new changes: • Open file in What do you do with Git? To add new changes: • Open file in any unix compatible editor. • Do the modifications • Save the file Linus Main Line TAG To store the file in repository: 0 Linux OMAP $ git status $ git update-index arch/arm/plat-omap/myfile. c $ git commit -s To generate patches using GIT tool: 0 My-Clone TAG 1 0 $ git format-patch -o abcdef 0123456789 abcdef 01 Other methods: - Create another local branch and take a normal diff between the too. - Use Quilt. (http: //download. savannah. gnu. org/releases/quilt/) TAG 1

Quilt Help for managing patch sets To create a new patch using Quilt: Go Quilt Help for managing patch sets To create a new patch using Quilt: Go into the Kernel directory: #> cd linux-omap Create a directory called patches that will hold all of our changes #> mkdir patches Create a new patch “patch 1” using quilt #> quilt new patch 1 Add files that will be modified by this new patch. #> quilt add Edit the file, and save the change. To refresh the patch: #> quilt refresh –diff-stat To pop (reverse) the patches on tree #> quilt pop –a To push all the patches on tree #> quilt push

Quilt Continued. . . To add a existing patch to GIT tree using Quilt Quilt Continued. . . To add a existing patch to GIT tree using Quilt • Copy patch to patches directory • Update the series file • Do a #> quilt push –a

Community participation with Open Embedded Community participation with Open Embedded

What is Open Embedded (OE)? http: //www. openembedded. org § OE is like a What is Open Embedded (OE)? http: //www. openembedded. org § OE is like a top-level ‘Makefile’ § Bit. Bake is a python tool core to OE § § Sophisticated layer on top of ‘make’ § Tool for building distributions § Maintains meta-database for building open source § Database is built of recipes for each package § Inheritance for reuse (autotools, …) § Satisfies dependencies and follows build steps • Fetch, unpack, patch, configure, compile, stage, install, & package Opkg tool for package management § Replacement for Debian ‘dpkg’ § Utilizes pre-built package feeds

What role does OE play? § Collaboration on entire distribution § “Ångstrøm” is a What role does OE play? § Collaboration on entire distribution § “Ångstrøm” is a distribution built with OE § Full control over almost every aspect § Tool chain, package set, patches, kernel, . . . § Relatively complete starting point § ‘armv 7 a’ compiled binaries in “Ångstrøm” § Possible to take a “demo” snapshot § Play with higher-level development

What does Ångstrøm provide today? http: //beagleboard. org/project/angstrom § Browsers § Gecko: Firefox 3, What does Ångstrøm provide today? http: //beagleboard. org/project/angstrom § Browsers § Gecko: Firefox 3, Fennec, … § Web. Kit: Epiphany, … § Media § FFmpeg, XMMS, GStreamer, Myth. TV, … § Development § C, Java, Python, Perl, Mono, Ruby, Tk, … § Gaming, Networking, … http: //www. angstrom-distribution. org/repo/

Installing Ångstrøm onto NAND § SD card FAT formatted (default, optionally bootable) § boot/kernel/ramdisk Installing Ångstrøm onto NAND § SD card FAT formatted (default, optionally bootable) § boot/kernel/ramdisk to get into OE console • § § § bootargs = console=tty. S 2, 115200 n 8 ramdisk_size=32768 root=/dev/ram 0 rw rootfstype=ext 2 initrd=0 x 81600000, 32 M bootcmd = mmcinit; fatload mmc 0 80300000 u. Image; fatload mmc 0 81600000 angstrom-console-rd. gz Flash board § § § Copy of tar. bz 2 of full file system image desired Boot console image § § Can store kernel (and ramdisk) in flash opkg install mtd-utils; opkg install mkfs-jffs 2 flash_eraseall /dev/mtd 4; mkfs. jffs 2 -o /dev/mtdblock 4 mkdir /mnt/flash; mount -t jffs 2 /dev/mtdblock 4 /mnt/flash tar xvjf Angstrom-XXX. rootfs. tar. bz 2 -C /mnt/flash Boot new file system § § bootargs = console=tty. S 2, 115200 n 8 console=tty 0 root=/dev/mtdblock 4 rw rootfstype=jffs 2 nohz=off video=omapfb: vram: 2 M, vram: 4 M bootcmd = nand read 80200000 280000 400000; bootm 80200000 http: //beagleboard. org/demo/angstrom

What is Open Embedded made from? § § § Bit. Bake build tool § What is Open Embedded made from? § § § Bit. Bake build tool § § Specifically written for top level make problem space Uses inheritance to factor common support from recipes Simple language with shell sequences Language elements and functions can use Python for advanced cases Meta-data § § § Package recipes and classes A number of distribution definitions A number of platform definitions A version control repository of the meta-data § § Uses Monotone for SCM (moving to Git) Maintains dev and (recently) stable branches

OE reference: typical processing § § Satisfy all dependencies Build (default command) § Fetch OE reference: typical processing § § Satisfy all dependencies Build (default command) § Fetch § Unpack § Patch § Configure § Compile § Stage § Install § Package get the source code extract the source code apply patches (local or fetched) run any configuration steps do actual compilation install locally for use by other packages install product files to temporary directory take installed files and place into packages helloworld, helloworld-dbg, helloworld-dev, helloworld-doc, helloworld-local

Top Level Default OE flow § § § Build toolchain and libraries Build needed Top Level Default OE flow § § § Build toolchain and libraries Build needed components to packages Build file-system image from packages § Will take Gigabytes of storage and hours to perform the above on a clean install

Alternate OE flows § § § Use precompiled toolchain Use pre-downloaded source archives Build Alternate OE flows § § § Use precompiled toolchain Use pre-downloaded source archives Build toolchain and package as an SDK Build collection of packages only Build file-system image from pre-built packages*** This may not be a current capability

What is OE not good for (today) ? § Active development of a given What is OE not good for (today) ? § Active development of a given component § There are ways to use OE in this fashion but it is not a strength and you can lose code if you are not careful § GUI tools to guide and monitor § All config is edit of text files § Build log is very verbose and not visually structured

Limitations and alternatives § § Limitations § § Build environment not always well isolated Limitations and alternatives § § Limitations § § Build environment not always well isolated Many build scripts do native build environment tests Alternatives § Matrix § Mamona § • Sponsored by ARM: http: //linux. onarm. com • Utilizes Scratchbox and QEMU – Reproduces target environment in cross-compile – Relies on emulation on build host • • Targets Nokia Internet Tablets Utilizes Open Embedded, Scratchbox, and QEMU Generates Debian source/binary packages Solves some “partial emulation” problems Native development or managed code environments

Native, managed, and web-based UI code development Native, managed, and web-based UI code development

Native development § Not limited to embedded/cross tools § Reach out to broader developer Native development § Not limited to embedded/cross tools § Reach out to broader developer community § § Native tools easy to install Immediately see impact of your changes § Edit local source files with familiar editors § You still need to manage your code! • Version control with git, svn, cvs, … § Also possible to perform distributed builds § Some packages may require larger memory

Managed code § § Easier to create an emulation environment But what about performance? Managed code § § Easier to create an emulation environment But what about performance? § JIT compilers may be sufficient § Performance bottlenecks are often in just a few places • Just optimize where the issue is, but build the rest fast! • Important to make sure the rest is open for optimization § Certainly not for every market § If you already know C/GTK+/Qt, use what you know! § If you are new, this may be a way to get started

Web-based UI development § § Familiar paradigm for consumers Enables remote control and monitoring Web-based UI development § § Familiar paradigm for consumers Enables remote control and monitoring Many HTML/Java. Script developers Opens up use of other web services § Mapping § Order fulfillment § Storage § Social networking and media http: //www. programmableweb. com/scorecard

Web-based UI development (server) § § Helma is one option for the server side Web-based UI development (server) § § Helma is one option for the server side § Based on Java Servlet Container and Mozilla Rhino § Provides sessions, user management, § Write entire applications in XML/HTML and Java. Script • No recompilation required, allowing for dynamic development • Database options for object storage with automatic persistence – Native XML database for flexibility – Java database connection (JDBC) for scale • Drop-in Java. jar files for access to huge libraries of functions Accessing Linux shell and drivers § rt=Packages. java. lang. Runtime. get. Runtime(); rt. exec(“…”) § new Packages. java. io. File(“…”)

Web-based UI development (client) § § Epiphany-Web. Kit is one option for the client Web-based UI development (client) § § Epiphany-Web. Kit is one option for the client side § Fast rendering, low memory, and good AJAX support § Web. Kit is easy to embed into other applications Demo § beagle-web-control-demo used at ARM Developers’ Conference http: //www. beagleboard. org/gitweb/? p=beagle-web-control-demo. git; a=summary • Toggles LED states from web browser § Uses Angstrom demo setup http: //beagleboard. org/demo/angstrom

Demos and resources for more information and support Demos and resources for more information and support

Many OMAP™ hardware options §TI/Mistral OMAP 35 x EVM §Nokia Internet Tablets §Logic. PD Many OMAP™ hardware options §TI/Mistral OMAP 35 x EVM §Nokia Internet Tablets §Logic. PD Zoom Medical and Mobile Developer Kits §Gumstix Overo §Cogent CSB 740 Gumstix Overo Beagle Board Logic. PD OMAP 35 x Dev. Kit / Medical EVM 5. 75” x 6. 25” Not to scale. Approximate size noted (in inches) 3” x 3” OMAP 35 x EVM 4. 25” x 7” Logic. PD OMAP 34 x Mobile Development Kit 3. 8” x 6. 3” x. 95” OMAP 34 x SDP 8. 5” x 11”

Many tools options http: //focus. ti. com/dsp/docs/dspplatformscontenttp. tsp? section. Id=2&family. Id=1525&tab. Id=2224 The many Many tools options http: //focus. ti. com/dsp/docs/dspplatformscontenttp. tsp? section. Id=2&family. Id=1525&tab. Id=2224 The many OS vendors for are OMAP 35 x not listed here Tool / Top features Debug TI Code Low-level ARM and Composer DSP Studio ARM Real. View Compile Other Low-level ARM (ARMv 7) and DSP (NEON roadmap) Poweraware debug Low-level ARM Application-level ARM (ARMv 7, NEON) Lauterbach Low-level and app ARM and DSP None Extensive trace Green Hills Low-level and app ARM and DSP Low-level ARM Trace Linux application debug Linux kernel/app ARM (ARMv 7, NEON) Code. Sourcery • Cortex-A 8 uses ARMv 7 instructions Additional third party information: here

Many OS vendors for OMAP 35 x § § § Monta. Vista Time. Sys Many OS vendors for OMAP 35 x § § § Monta. Vista Time. Sys Ridge. Run BSquare Many, many more 126

TI OMAP 35 x software architecture http: //www. ti. com/omap 35 x Applications GUI TI OMAP 35 x software architecture http: //www. ti. com/omap 35 x Applications GUI App Framework 2 D/3 D APIs Multimedia Framework GFX Driver Optional DRM Codec Engine and Link Codec Engine Linux Kernel / Win. CE & Power Management GFX ARM audio video image FC BIOS video image audio C 64 x+ DSP and Video Acceleration

Accessing the TMS 320 C 64 x™+ DSP § DSP/BIOS™ Link source available http: Accessing the TMS 320 C 64 x™+ DSP § DSP/BIOS™ Link source available http: //tiexpressdsp. com § Provides code loading and data passing § Kernel portions licensed as GPL § DSP/BIOS RTOS and components http: //tiexpressdsp. com § Enables sharing of the DSP as a resource § Free TI DSP compiler https: //www-a. ti. com/downloads/sds_support/targetcontent/Linux. Dsp. Tools/index. html § Non-commercial use § Full support in Code Composer Studio http: //www. ti. com/expressdsp

The Beagle Board community § § Support for this board is provided through an The Beagle Board community § § Support for this board is provided through an active community of hobbyists and developers Being very open enables developers to share § Keeps costs low § Enables more people to participate § § 24/7 access to fellow developers http: //Beagle. Board. org/discuss Go ahead, ask your questions before you buy… Participate and enjoy!

Participating in the community § Joining the herd of cats § Building Community for Participating in the community § Joining the herd of cats § Building Community for your open source project § Video of Greg Kroah-Hartman on the Linux kernel § Sending kernel patches upstream http: //lwn. net/talks/elc 2007 http: //www. eclipsecon. org/2006/Sub. do? id=268 http: //www. linuxelectrons. com/news/linux/16774/greg-kroah-hartman-linux-kernel http: //wiki. omap. com/index. php? title=Patch_upstream_sending

Summary § § § Open source is very diverse and OMAP 35 x supports Summary § § § Open source is very diverse and OMAP 35 x supports that diversity Beagle Board enables new possibilities for open collaboration Enjoy programming again!

Thank you! § § § jdk@ti. com jkridner@beagleboard. org irc: //jkridner@irc. freenode. net/#beagle Thank you! § § § [email protected] com [email protected] org irc: //[email protected] freenode. net/#beagle