Presentation is loading. Please wait.

Presentation is loading. Please wait.

Beagle Board 101 Gerald Coley and Jason Kridner October 26, 2008

Similar presentations


Presentation on theme: "Beagle Board 101 Gerald Coley and Jason Kridner October 26, 2008"— Presentation transcript:

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

2 Agenda Overview of the Beagle Board
Board features and community Booting the Beagle Board OMAP3530 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 Overall message to FAEs Empowerment You can push patches back Non-schedule driven development Solve your customer’s problems Benefits You might save other customers’ problems You might get fame and glory Positioning of community development Most benefit to customers on the bleeding edge

3 What’s in a name… B ring your own peripherals E ntry-level cost ($149) A rm Cortex-A8 (600MHz, superscaler) G raphics and DSP / Video accelerated L inux and open source community E nvironment for software innovators Linux upstream BYOP and Entry-level cost: Deferring some costs to the user (ex. LCD), and Inexpensive as possible (Cost: 1000 boards), Is… A give-away to key developers Subsidizing the board (Price: $149+shipping), Is Not… Subsidizing the peripherals, or Free for everyone who contributes We can build more boards if they cost less Because… Include only interfaces to useful peripherals Keep the cost down by limiting the board layers So we will… ARM Cortex-A8: Using standard busses for expansion, and Capable of running real applications, A subset of other OMAP3 EVMs A target for complex kernel builds An all-purpose expansion solution, or The most complete OMAP3 development platform, It allows applications to be ported up to other EVMs It keeps the kernel and debug relatively simple, and Serious customers shouldn’t mind paying $1000, Not add an LCD or features unsupported on other EVMs Include support for an external monitor, MMC/SD, and USB Graphics and DSP/Video accelerated, Linux port, and Environment: OMAP3530 based (ARM Cortex-A8/Neon, 2D/3D, C64x+) Interesting for home applications A consumer electronics product OMAP3503, 3515, or 3525 based (subsets of processors) Stickiness comes from using the ARM+DSP architecture We don’t want to compete with Nokia or Neuros Open source developers may help simplify DSP programming Not target it for any specific end-application (“browser” and “computer” are generic roles) Begin with select partners under NDA, and Wait to publicly announce until after the TI OMAP3530 EVM is announced Leverage community to develop feature-rich robust open source code base on OMAP3530 GOALS 1,000 external developers 10 software IP offerings pushed upstream 10 commercial interests started 50 major internal/external contributors Phase 1 “Close Friends” Baseline software (kernel, bootloader, …) and website CES demonstrations created Phase 2 “100 OMAP-motivated Developers” Baseline applications and “buzz” Launched at TIDC with targeted individuals and partners Phase 3 “1,000 OSS-motivated Developers” Reach open source and web developers Press release in May before summer “blackout” Phase 4 “10,000 Students and Partners” Educational and programming contest programs created API and demonstration applications with partners released 3

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

5 Fast, low power, flexible expansion
OMAP3530 Processor 600MHz Cortex-A8 NEON+VFPv3 16KB/16KB L1$ 256KB L2$ 430MHz C64x+ DSP 32K/32K L1$ 48K L1D 32K L2 PowerVR SGX GPU 64K on-chip RAM POP Memory 128MB LPDDR RAM 256MB NAND flash Peripheral I/O DVI-D video out SD/MMC+ S-Video out USB 2.0 HS OTG I2C, I2S, SPI, MMC/SD JTAG Stereo in/out Alternate power RS-232 serial 3” USB Powered 2W maximum consumption OMAP is small % of that Many adapter options Car, wall, battery, solar, …

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

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

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

9 Expand the Beagle Board
USRP Stereo out USB Power Let’s take a look at an example application – a software radio. A complete SDR system using Beagle is using the on board DSP, software and stereo out and a microphone to communicate over radio waves. Here is more of a HW oriented project. The USRP (universal software radio peripheral – FPGA based board for interfacing to different antennas for SDR. SD 2GB Photo by Philip Balister 9 9

10 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 Now let’s highlight the benefits to you of the low power consumption of BeagleBoard. Low power means NO FANS are needed, which means Silent operation….you can use it in your media center without annoying fan noise. Low power means USB cable power, such that you can take BeagleBoard with you on the road with your laptop or a cell phone charger. NO additional power supply needed. Low power means no heat sinks and smaller size and lower cost board. Or, if you choose, Alternate power means you can use the USB Host for expansion. The alternate power can even be derived from USB!

11 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 for sources The USB 2.0 High Speed On the Go connection on beagleboard is very flexible. BeagleBoard can act as a ‘device’ when connected to a PC via USB. This can be used to provide power to BeagleBoard and to emulate a network connection on BeagleBoard. Via the network connection emulation, you can ‘telnet’ into the board that is loaded with an operating system and use it to perform software development, even without the serial cable. This is useful once you have initialized the board with a working file system, or if a USB-based loader is generated in the future. As another scenario, BeagleBoard can act as a ‘host’ when connected to a USB hub, allowing almost endless array of USB peripherals expansion. This will requires a mini-A to standard-A adapter cable. You can use a standard 5V power supply plugged to the barrel power connector to power BeagleBoard when the USB is being used as host.

12 Benefits of boot options
Boot from NAND, MMC/SD, serial, or USB Boot options all from OMAP3530 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 BeagleBoard has comprehended the need for flexibility of channels for the processor to boot, to avoid inefficient lock ups. Because boot code is in ROM, it is always there, even if the flash is erased. However, you want to modify BeagleBoard code, right! Of course! So when attempting to modify some non-open devices (other than BeagleBoard), you may end up making your device unable to boot without professional tools and therefore becoming as useful as a ‘brick’, thus the term ‘bricking’. To solve this, and overcome “bricking”, the BeagleBoard User button allows you to change boot sequence, for example, boot from USB instead of from NAND. So you never have to worry that bad content in the NAND will prevent you from being able to boot your BeagleBoard, with your new boot code in an SD card, for example. The button’s status is also available to software at times other than boot, so you can make use of it in applications. The reset button is also configurable in software, if you wanted to use it for another purpose.

13 Verifying the hardware
Code images, procedure, and sources are provided to verify the board functionality Links to the diagnostics found at Includes bootloader, Linux kernel, and minimal file system for testing These sources act as examples for software developers The first thing to do once you get BeagleBoard is to verify that the hardware is operating correctly. Only basic software is provided on BeagleBoard, as most of the software is intended to be downloaded from or developed in conjunction with the technical community at BeagleBoard.org. Find the links to the diagnostics code and step by step instructions for beagleboard at Many links to other software can be found via reference from BeagleBoard.org.

14 Typically useful peripherals
Available from Digi-Key 5V power supply (T450-P5P-ND) Frees USB port for use as a host Null-modem serial cable (AE9879-ND) Useful for bootloader and boot console I/O HDMI-to-DVI-D cable (AE10260-ND) Enables connection to digital monitors USB hub (DA ND) Useful for adding USB peripherals Other Serial adapter from IDC10 to DB9 Needed for serial console Hardware specifications and recommended peripherals RSS feed of newly verified peripherals Some typical standard PC like peripherals and connectors that are useful with BeagleBoard, and available from Digi-Key, include: A 5V power supply (T450-P5P-ND) , Which connects into the option barrel power connector for power to free the USB port for use as a host A Null-modem serial cable (AE9879-ND), Which is useful for bootloader and boot console I/O A HDMI-to-DVI-D cable (AE10260-ND), Which enables connection to digital monitors via DVI-D And a USB hub (DA ND), Which is useful for adding USB peripherals Also, a serial adapter to convert from IDC10 to DB9 may be needed for a serial console. To really get the technical scoop on a fresh basis, tap into the Links for hardware specifications and peripherals at And for RSS feed of updates on newly validated peripherals working with BeagleBoard, tap into

15 Community is ready! Camera streaming application Audio processing
Linux home fileserver Fanless multimedia/internet terminal Low-cost kiosk terminal VLC VideoLAN Development platform for mobile VoIP 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 (10 preferred ;) congratulations for your project and its spirit ! LCD picture frame Port xnu Autonomous robot Port OpenWrt Port Google-Android   Networked digital signage Home monitoring Processing images and pattern recognition Small linux home fileserver I'm not interested in waiting for the platform to mature any longer.  Let me know how to get hold of a beagleboard now. No idea yet Mobile DTV tuner and receiver Port OpenMoko Clutter & Qt development Port OKL4 Powerful nas with media server and transcoding capabilities Autonomous vehicles After discussing with my dev guys, I confirm I would like to order 20 beagleboards Home security cameras and powered-curtains Bachelor thesis I'd like my students to design and build hardware and software to do for Linux what TimeCapsule does for MacOS Media centre Speech recognition applications SDR platform Linux/Firefox web add-on for the TV in the house Vehicle telematics Project for masters degree How do they get started?

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

17 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 OpenID Is… Intended to unite multiple audiences Linux hackers/experts and open source zealots Web application developers ARM embedded programmers and integrators DSP programmers and theorists Students and educators Is Not… Just for kernel developers Because… A lot more open source content can leverage OMAP Rich applications will demonstrate OMAP value So we will… Promote and discuss every Beagle application gStreamer, Firefox, Quake, Miro, Java, Helma, drivers, … Provide additional support packages from opensource.ti.com Tools, Graphics, Codecs, CE+Link, … 17

18 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 OMAP3530 collaboration portal Focus project developments “upstream” Establish long-term presence Solved broadest set of problems Aggregate relevant project news “downstream” Inform OMAP3530 users of the broader open source world Avoid deluge of irrelevant information BeagleBoard.org facilitated open source community with blogs and community chat rooms for collaboration and exchange of innovative ideas and support all “of, by, and for” Beagleboard SW developers. 18

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

20 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 Brings them into the conversation Provides you with a personal log on your computer Forums helps get the threads organized (minimal activity to avoid disrupting community critical mass) Blogs provide emphasis, filtering, and timeliness Wikis enable inputs to become documentation and

21 Booting the Beagle Board
21

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

23 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

24 Typical Beagle Board boot process http://www.ti.com/litv/pdf/sprufd6a
ROM attempts to load boot image from 4 places Sequence of attempts depends if USER button pressed Not-pressed: NANDUSBserialMMC/SD Pressed: USBserialMMC/SDNAND X-Loader is loaded by the ROM 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 (mtd0) By default, loads u-boot stored in the second partition (mtd1) U-boot loads kernel and passes bootargs Instructions typically stored in environment on flash (mtd2) 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 Currently supports only a serial console Possible to modify to support USB keyboard/mouse and DVI-D monitor Typically loads the kernel from flash (mtd3) or first partition (mmcblk0p1) Kernel mounts root file system based on bootargs

25 The ESC boot modifications http://jkridner. s3. amazonaws
U-boot hack Started with Steve Sakoman’s u-boot-omap3 source In common/env_common.c, calls set_default_env(); Overwrites values read from non-volatile environment Uses built-in values from include/configs/omap3_beagle.h In omap3_beagle.h, altered default environment Enabled ‘autoscr’ command to execute scripts from memory Configured bootcmd to automatically run ‘autoscr’ mmcinit;fatload mmc 0 801f0000 u-boot.img;autoscr 801f0000 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

26 ESC boot modifications continued
Modified ramdisk.gz Started with Angstrom pre-built console image Converted to ramdisk image dd if=/dev/zero of=ramdisk bs=1k count=32768 mkfs.ext2 ramdisk mount -o loop ramdisk /mnt pushd /mnt; tar -xvjf Angstrom….tar.bz2; popd umount /mnt gzip ramdisk Loaded multiple packages for manipulating the flash Executes /media/mmcblk0p1/boot.sh Added /etc/init.d/boot_sh

27 ESC boot modifications continued (2)
boot.sh Initializes flash (/media/mtdblock4) flash_eraseall /dev/mtd4 mkdir /empty; pushd /empty; mkfs.jffs2 -o /dev/mtd4; popd mkdir /media/mtdblock4 mount -t jffs2 /dev/mtdblock4 /media/mtdblock4 Copy files off of the SD card onto the flash cp -v /media/mmcblk0p1/* /media/mtdblock4 pushd /media/mtdblock4; tar -xvzf /media/mmcblk0p1/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

28 Typical boot information locations
Method USER Bootstrap U-Boot Env Vars Kernel Root Files 1) SD MTD0 MTD1 MTD2 MMC0P1: uImage MMC0P2 2) NAND MTD3 MTD4 3) Hacked u-boot.bin Pressed MMC0P1: MLO MMC0P1: u-boot.bin MMC0P1: u-boot.img RAMDISK from SD MMC0P1: u-boot.bin MMC0P1: uImage MMC0P1: ramdisk.gz bootargs: root=/dev/mmcblk0p2 rw rootwait rootdelay=1 bootcmd: mmcinit;fatload mmc uImage;bootm bootargs: root=/dev/mtdblock4 rw rootfstype=jffs2 bootcmd: nand read ;bootm bootargs:root=/dev/ram0 rw ramdisk_size= initrd=0x ,32M bootcmd: mmcinit;fatload mmc uImage; fatload mmc ramdisk.gz;bootm Common) bootargs: console=ttyS2,115200n8 console=tty0 nohz=off

29 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 <variable> ‘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 <RAM addr> <filename> – load a file NAND nand unlock – enables writing to the NAND nand ecc <sw|hw> – configures ECC mode nand erase <start> <length> – erases portion of NAND flash nand read <RAM addr> <start> <length> – reads into RAM nand write <RAM addr> <start> <length> – writes from RAM Serial loadb <RAM addr> – reads into RAM via kermit file send

30 What can the Beagle Board do?
30

31 Interface to the physical world…
Power Management Signal Conditioning Temperature Pressure Position Speed Flow Humidity Sound Light The Real World Analog Signal Conversion to Digital Digital to Analog Digital Signal Processor Interface Clocks & Timers This illustrates the “signal chain” for electronic devices. What “comes in” is the real world signals. Analog is shaded in pink; there are lots of analog components needed to condition, convert, manage power, and connect to DSP and send back to real world in an understandable format. DSP (yellow) provides the signal compression and decompression and processing that makes systems smarter. TI is the world leader in programmable DSP and will continue to focus on DSPs. TI has across-the-board solutions for each component of the signal chain. Customers don’t care that we are #1 or #2 in each area (although we are). They care about their needs – what can we do to solve their problem? When we solve their main problem (e.g., provide ultra-low power for a medical device), we can look at their other needs (e.g., faster conversion from digital to analog) and help them be more successful. Some competitors may focus on a specific area (e.g., interface) and cannot provide across-the-board solutions for customers. 31

32 …and present within the virtual
32

33 Linux distributions Linux isn’t complete without a distribution
Kernel Creativity Tools Browser Office Suite Windowing System Actual screenshot running on Beagle Linux isn’t complete without a distribution OpenEmbedded, Ubuntu, Fedora, Android, Gentoo, and ARMedslack are possibilities for the Beagle board

34 Baseline projects Available today
GPL ARM GNU compiler collection version 2007q3 Code Sourcery Linux/Windows compiler for ARMv7/Thumb2 Free C6000 compiler version 6.0.x TI non-commercial Linux compiler for C64x+ GPL X-Loader version 1.41 (Loads U-Boot) Configure RAM and boot from NAND flash or MMC/SD (FAT32) “MLO” image for use with ROM boot-loader GPL U-Boot version (Loads Linux kernel) Interact over UART and program flash Boot from UART, NAND, or MMC/SD (FAT32) Test UART, DVI-D, S-Video, audio out, NAND, and MMC/SD GPL Linux kernel version for diagnostics UART, DVI-D, S-Video, ALSA audio, NAND, and MMC/SD 34

35 Baseline projects Planned by TI in future
Free 2D/3D graphics libraries (Beta available today for OMAP35x EVM) OpenGL ES 1.1 and 2.0 (first to market) and OpenVG 1.0 Framebuffer and Kdrive (X11) support GPL in the kernel space Binaries object libraries Free DSP interface libraries Link for loading, messaging, etc. GPL-compatible in user space Codec Engine for task location abstraction (RPC-like) GPL-compatible interface DSP/BIOS RTOS and framework components for DSP 35

36 Possible projects predicted
Development tools Programming: gcc for ARM Cortex-A8 or TI C64x+, Eclipse Utilities: DFU-util Kernel and drivers SDIO/USB WiFi, power management, WebCam, analog I/O Linux distribution ports Maemo, Gentoo, Debian, Android User mode applications Productivity: OpenOffice, Firefox Gaming: MAME, Quake3, 2nd Life Multimedia: Miro, gStreamer Education: Sugar (OLPC), Alice 36

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

38 OMAP3530 applications processor
38

39 OMAP35x™ Processor Block Diagram
Cores Cortex A-8 with NEON™ Coprocessor C64x+ DSP-based and video accelerators 600 MHz / V 550 MHz / V 500 MHz / V 2D/3D Graphics Engine (PowerVR SGX) Up to 10M polygons per second Memory ARM: 16 kB I-Cache; 16 kB D-Cache; 256kB L2 TMS320C64x+ DSP and video accelerators L1 32kB Program Cache/32kB Data Cache + 48kB SRAM L2 64kB Program / Data Cache + 32 kB SRAM; 16 kB ROM On Chip: 64kB SRAM; 112kB ROM Package Highlights 12x12 mm, 0.4mm pitch, Package On Package Samples now; production 4Q’08 16x16 mm 0.65 mm pitch. Via Channel Array Tech. Samples 2Q’08; production 4Q’08 Industrial temperature range supported OMAP35x Processor ARM® Cortex™-A8 CPU C64x+™ DSP and video accelerators (3525/3530 only) Display Subsystem LCD Cont- roller Video Enc 10 bit DAC 10 bit DAC 2D/3D Graphics (3515/3530 only) Camera I/F Image Pipe Parallel I/F L3/L4 Interconnect Peripherals Connectivity System USB 2.0 HS OTG Controller USB Host Controller x2 Timers GP x12 WDT x2 Serial Interfaces Program/Data Storage McBSP x5 I2C x3 UART x2 HDQ / 1-wire SDRC MMC/ SD/ SDIO x3 McSPI x4 UART w/IRDA GPMC

40 ARM® Cortex™-A8 Up to 600 MHz ARMv7 Architecture Thumb-2
MMU Enhancements In-Order, Dual-Issue, Superscalar Microprocessor Core NEON Multimedia Architecture Over 2x Performance of ARMv6 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 Global History Buffer 8-Entry Return Stack Embedded Trace Macrocell (ETM) Support Non-Invasive Debug ARM Cortex-A8 Memory Architecture: 16K-Byte Instruction Cache 4-WaySet-Associative 16K-Byte Data Cache 4-Way Set-Associative 256K-Byte L2 Cache

41 ARM Cores Comparison ARM Core ARM926 ARM1136 Cortex-A8
Architecture Version V5 V6 V7 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 TLB 8 entry unified 2 uTLB and LB 2x32 full assoc Core to L1 interface 32 bit 64 bit 64 bit (256 Neon) L1 $ Set associativity 4 Line length 32B 64B Branch prediction No 128 entry BTB 512 entry BTB General coprocessor I/F External Interface 2 AHB 2.0 5 AHB 2.5 – 3 x 64 bit, 2 x 32 bit 1 AXI – 64/128 TrustZone Support Non-Cacheable Fill Buffer 4 word 8 word 16 word Java support Jazelle DBX Jazelle RCT Floating Point / Media No (coprocessor available, VFP9) VFP11 attached, V6 Integer SIMD Neon Integer and FP SIMD, VFP Lite

42 C64x+™ DSP and Accelerators
Up to 430 MHz (c64x+ DSP) Dedicated Enhanced Data Memory Access engine (EDMA) to move data to/from memories and peripherals external to the sub-system Video hardware accelerators MMU to access external address space (such as memory/peripheral) Advanced Very-Long-Instruction-Word TMS320C64x+™ 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 C64x+ L1/L2 Memory Architecture 32K-Byte L1P Program RAM/Cache (Direct Mapped) 80K-Byte L1D Data RAM/Cache (2-Way Set-Associative) 64K-Byte L2 Unified Mapped RAM/Cache (4-Way Set-Associative) 32K-Byte L2 Shared SRAM and 16K-Byte L2 ROM C64x+ Instruction Set Features Byte-Addressable (8-/16-/32-/64-Bit Data) 8-Bit Overflow Protection “IVA” Subsystem 32KB L1P Cache/RAM 64KB L2 Cache/RAM 32KB L1D Cache/RAM 48KB L1D RAM 32KB L2 RAM MMU 64x+ DSP Video HWA EDMA Much more features in the C64x+ core. Only most significant ones included in this slide

43 PowerVR™ 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: OpenGLES 1.1 and 2.0 OpenVG1.0 Direct3D Mobile (TBD) Fine Grained Task Switching, Load Balancing, and Power Management Programmable High Quality Image Anti-Aliasing

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

45 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/4x to 8x Color Space Converter 8-bit Alpha Blending Display Subsystem 10 bit DAC Video Enc LCD Cont- roller

46 Display Subsystem Examples
Scaling PiP Overlay HW cursor

47 Camera Interface Subsystem (ISP)
Generic parallel interface example CCD and CMOS Imager Interface Memory Data Input RAW Data Interface BT.601/BT.656 Digital YCbCr 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/4x to 4x Separate Horizontal/Vertical Control Not connected on the Beagle Board

48 Timers 12 32-bit General Purpose Timers 2 32-bit Watchdog Timers
1 32-bit 32-kHz Sync Timer

49 SD / MMC, SDRC, and GPMC Interface
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 - 128MB per CS -1GB Total space (8 * 128 MB) 16 bit wide bus Multiplexed Addr/Data 2KB non-multiplexed Support for:NAND/NOR Flash, One NAND Flash, SRAM, OneNAND, & Pseudo-SRAM devices SDRAM Controller (SDRCM) Subsystem support for low-power or Mobile single-data-rate (LPSDR or M-SDR) and low-power double-data-rate SDRAM (LPDDR) 16 Mbits, 32 Mbits, 64 Mbits, 128 Mbits, 256 Mbits, 512 Mbits , 1 Gbit, and 2 Gbits device support MMC/ SD/ SDIO x3 GPMC SDRC

50 USB HS-only EHCI host planned for 1Q09 on Beagle Board,
USB 2.0 HS OTG Controller USB 2.0 low-speed (1.5M bit/s), full-speed (12M bit/s), and high-speed (480M bit/s) host USB 2.0 full-speed (12M bit/s), and high-speed (480M 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 480M bit/s Available Port – 1 & 2 PHY interface ULPI FS Mode 12M bit/s Available Port – 1, 2, and 3 PHY interface Serial Asynchronous USB Host Controller x2 USB 2.0 HS OTG Controller HS-only EHCI host planned for 1Q09 on Beagle Board, USB 2.0 HS/FS/LS OTG available today

51 Serial Interfaces and HDQ/1-Wire
3 Master/Slave High-Speed Inter-Integrated Circuit Controllers (I2C) 5 Multi Channel Buffered Serial Ports (McBSP) 512 Byte Transmit/Receive Buffer (McBSP1/3/4/5) 5K-Byte Transmit/Receive Buffer (McBSP2) SIDETONE Core Support (McBSP2 and 3 Only) For Filter, Gain, and Mix Operations Direct Interface to I2S and PCM Device and TDM Buses 128 Channel Transmit/Receive Mode 4 Master/Slave Multi Channel Serial Port Interface (McSPI) 3 UARTs (One with Infrared Data Association [IrDA] and Consumer Infrared [CIR] Modes) 1 HDQ / 1-Wire I2C x3 UART x2 w/IRDA McBSP x5 McSPI x4 HDQ / 1-wire

52 Package (1/2) 12 x 12 mm 0.40 mm pitch 515 pin plastic BGA

53 OMAP35x POP Memory Description
POP = Package on Package Technology Provides customers the advantage of saving PCB area, mDDR 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 OMAP35x 12x12mm 1.6 mm 0.4mm pitch 1 Pass Assembly Method 2 Pass Assembly Method Under Invesigation Not Recommended POP is new to many PCB manufactures although POP technology is not inherently new. The combination of POP and fine ball pitch requires greater attention to detail than has normally been required. Extra time will be needed to work through challenges as manufacturing houses come up-to-speed. Bringing up pop technology in conjunction with small ball pitch requires close communication with board shop, memory vendor, TI, and customer. Moving ahead with POP should not be trivialized by the customer. This is an investment the customer will have to make to enjoy the many benefits. Once scenario is understood and the learning curve surpassed manufacturing can yield reasonably high yield rates. Before starting a design based on POP memory customers should speak with their TI representative. TI will provide application notes / white papers for guidance on POP assembly. These are targeted for release in early May 2008 The main challenges with POP is not POP in and of itself. It is what the POP package does to OMAP as it cools. The memory balls solidify in the cool down process before the OMAP does which causes the balls on OMAP to be pulled away from the PCB. The soldering issues are between OMAP and the PCB. As the heat comes down from the top, the memory is heated first and cools first. That is where the issues are. Too much solder on the OMAP causes shorts, which cannot be fixed. Not enough causes opens. Pre-assembled POP + memory assemblies are not available. Customers must procure their own memory and OMAP devices. 2 pass assembly method is not recommended at this time due to reliability issues

54 Package (2/2) 16 x 16 mm 0.65 mm pitch 423 pin plastic BGA

55 Via Channel Array Solution
Package Stats: 0.65mm pitch, BUT 18 mil (0.45mm) vias 5 mil (0.125mm) space/trace width 2 layer routing Comparison with 0.8mm: 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 35xx package pins routed out in only 2 signal layers with .8mm pitch PCB rules.

56 Via Channel Array Benefits Summary
(Competition) (OMAP 35xx) Comparison Micro Vias? Min Trace Min Space Package size Area PCB Layers req. Reduction from .8mm 0.8mm pitch No 5 mils 17mm x 17mm (400 pins) 289mm2 6 -- 0.65mm p. w/Via Channels No 5 mils 16mm x 16mm (423 pins) 256mm2 4 11% Conversion between mm and mils 0.075mm = 3 mils (0.003”) (actually 0.076mm) 0.1mm = 4 mils (0.004”) (0.102mm) 0.125mm = 5 mils (0.005”) (0.127mm) 0.2mm = 8 mils (0.008”) (0.203mm) 0.4mm = 16 mils (0.016”) (0.406mm) 0.45mm = 18 mils (0.018”) (0.457mm) 0.5mm = 20 mils (0.020”) (0.508mm)

57 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 OMAP35xx, power management is handled by the Power, Reset and Clock Management (PRCM) module

58 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 VDD1 and VDD2 in OMAP3

59 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: SmartReflex, TI’s Adaptive Voltage Scaling (AVS) implementation Green line: Hot device Blue line: Cold device

60 OMAP35x Power Domains 16 different power domains
1 always ON power domain WAKEUP 9 power domains controllable (switchable) by user or automatically by PRCM MPU NEON IVA2 GFX CORE DSS CAM PER EMU 6 power domains controllable only by the PRCM SR EFUSE MPU DPLL (DPLL1) IVA2 DPLL (DPLL2) CORE DPLL (DPLL3) PERIPHERAL DPLL (DPLL4) WKUP domain Wake-up domain (ALWAYS active) NEON domain Multimedia Coprocessor domain IVA2 domain Audio Video Processor domain MPU domain Micro Processor domain CORE domain Interconnect, memory controllers, Peripherals and clock management domain PER domain Low power use cases peripherals domain GFX domain 2D/3D graphics engine domain DSS domain Display domain CAM domain Camera controller domain EFUSE domain eFuse Farm domain SMART REFLEX™ domain EMU domain Emulation domain DPLL1 domain MPU DPLL domain DPLL2 domain IVA2 DPLL domain DPLL3 domain CORE DPLL domain DPLL4 domain Peripherals DPLL domain

61 Power Options for OMAP35x
DVFS & Class-3 SmartReflex Capable PMIC (multi-output DCDC) TPS65950 (samples available 2Q08, RTM 3Q08) TPS (samples available 3Q08, RTM 4Q08) TPS (samples available 3Q08, RTM 4Q08) TPS65073 (samples available 3Q08, RTM 4Q08) Single Output DCDC TPS (in production) DVFS & Class-1 / Class-2 SmartReflex Capable TPS (in production)

62 Feature Overview of Analog Solutions
Maximum System Flexibility Maximum System Integration TPS65950 TPS65930 Car-Kit CEA MCPC Audio Codec & Drivers Dual Stereo Tx Dual Stereo Rx Dual Tx Mono Rx TPS65920 USB 2.0 HS OTG PHY Clocking Control, Optional Security Integration RTC 32kHz TPS65073 Touchscreen Interface Keypad Interface 10-bit ADC 2 inputs 3 inputs 4 inputs Drivers RGB and Vibra RGB or Vibra wLED Integrated Battery Charger Controller AC & USB w/ DPPM TPS65023 TPS62350 3 DCDC 4 LDO 2 LDO 1 DCDC Power 10 LDO I2C Interface 2 HS I2C 1 HS I2C 1 I2C

63 TPS659xx Power Block Diagram
MPU IVA VDD1 DCDC VDD2 DCDC OMAP3530 CORE VRTC VIO DCDC IOs Memory Display Wake-Up domains USB CP VDAC Video DAC USB PHY PLL VPLL VAUX VPP or Camera IF VMMC MMC1 TPS659xx

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

65 The fourth vector of value
Performance Power Dissipation Price

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

67 What is “open source”? Form of S/W Delivery S/W Development Model
Software source code Available to general public Relaxed intellectual property restrictions Group of software licenses May require source code be made available to public License accompanies the software package 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 Software licensed as redistributable and modifiable source Sharing source is encouraged or required Process for submitting patches is typical Typically surrounded by a community of developers open to collaborative participation

68 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 Productize: Two-way access to early adopters Collaborate: Continue iterative improvements outside of release schedule Peer review: Linus’s law –Eric S. Raymond Why is TI getting more involved in open source? Immense passion pent-up around products not previously available to them We’ve been providing oss in the past, but now we realize we need to be visible about it and show our passion as well Gives an opportunity for our engineers to work directly with our engineers Intimate How will customers benefit? Having newer features in our kernel Getting involved with the latest versions and providing our updates quickly More support via more people exposed to the platform A community to go to for support Ability to promote yourself What is pushing TI to make more visible contributions to open source? Customer push for TI to be better OSS citizen Latest kernels/features aligned with community Broad market: need a scalable strategy for 5,000+ customers OMAP3 is a great product: How do we support the software? What can we do to help customers innovate faster? How do we find markets where OMAP3 is differentiated? Grow our ecosystem and recognize “Innovation Happens Elsewhere” Peer-to-peer marketing: Getting your engineers into open source communities and have them present your message Disrupt competition: Devalue the offerings of early entrants to make you more competitive Quality improvement: Leverage the considerable peer review resources of the open source communities Linus’s law: “Given enough eyeballs, all bugs are shallow” –Eric S. Raymond Enable innovation: Support more speculative features on early adopters and people who must collaborate with you to complete the ideas Reduce cost: Off-load long-term support costs to others as they are looking to extend your offering Collaborate freely: Use processes that extend across businesses that run on own their own timelines Grow expertise: Gain exposure to industry experts, perhaps to grow a talent base you can hire from Engage employees: Make participation possible by all passionate developers at your company, rather than just the ones with the assignment TI already a significant open source consumer What is pushing TI to contribute back? WTBU: Nokia push for TI to be better OSS citizen ASP: need a scalable strategy for 5,000+ customers Grow our ecosystem Enable external innovation Community alignment is a priority at Garmin, Dell, Logitech, and others OSS synergy from being a hardware company We don’t need to make money on software We win when the end consumer buys more gadgets 68

69 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

70 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 The fact quoted is that Mozilla made a lot of money in 2006 and that it was dominated by a single company who has business goals aligned with preventing Microsoft domination of the browser market. If Microsoft controlled the browser market, they could alter search traffic more to other sites than Google. Open source can be big business and is influenced by business. Nevertheless, business alone cannot generate community.

71 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 Open source is just another joint development, but one with special rules that enable more participants

72 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

73 What motivates participants
What motivates participants? Categories courtesy of “LugRadio” – 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 Corporate funding comes for the gains of sharing development costs. Passionate open source developers display these characteristics to varying degrees of priority. “Very productive hobby” How do these co-exist? Open source is libertarian, not socialist.

74 Linux Distribution Timeline
Most widely utilized open source operating system Clone of the UNIX 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 Maintained by individuals, loose-knit teams, volunteer organizations, and commercial entities. At $1.8 bln, Linux servers represent 11.9% of all server revenue1 – not bad for “free” software Linux defect rate of 0.17 defects/klines compared to the standard benchmark of 25 defects/klines for commercial software2 Source code: Linux Distribution Timeline Linux and Firefox are how many people experience open source [1] Source: IDC [2] Source: Coverity

75 Some Linux statistics

76 Getting started with Linux
Starting references (/UpstreamMerge) The Linux Documentation Project ( Device Drivers Book ( “The” kernel GitWeb Linux-omap kernel (Tony Lindgren) Others that feed “the” kernel or linux-omap kernel The Linux kernel repository ARM Linux The Linux Documentation Project Linux Device Drivers News Other

77 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 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

78 Reproducing diagnostic tests
78

79 SD Card An SD Card is an easy way to boot 2GB SD card recommended
May eventually be replaced by a full USB boot solution 2GB SD card recommended USB SD card reader/writer required Utilize HP card format utility

80 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: TeraTerm, Hyperterm, … Linux: Minicom, …

81 Chat Install an IRC client Examine http://www.beagleboard.org/irclogs
Outside TI: TI: Examine Why ? 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

82 Build environment Linux PC or virtual machine Windows laptop PC
Code Sourcery C compiler 2007q3 arm-none-linux-gnueabi Git Version desired/required Include ‘curl’ support Windows laptop PC

83 Source Clone Linux kernel and U-Boot from “upstream”
Give a couple hours for the download git clone git clone Download Beagle pre-built images and sources All released source, binaries, and tools Patch 1-4 for U-Boot v Copy all to Linux host

84 Checkout/patch/build U-Boot
cd u-boot git checkout -f v1.3.2 git checkout -b my_branch git tag start patch -p1 < ~/Desktop/patch1.diff.txt Repeat for each of the 4 patch files git add . git commit -a export PATH=$PATH:/opt/arm-2007q3/bin make distclean make CROSS_COMPILE=arm-none-linux-gnueabi- omap3530beagle_config make CROSS_COMPILE=arm-none-linux-gnueabi- cd ..

85 Checkout/build Linux cd linux-omap-2.6 git tag start
git checkout d6daf8d8cc5ccf90247def5551ee9c3e8555e848 git tag start git checkout -b my_branch make CROSS_COMPILE=arm-none-linux-gnueabi- distclean make CROSS_COMPILE=arm-none-linux-gnueabi- omap3_beagle_defconfig make CROSS_COMPILE=arm-none-linux-gnueabi- uImage cd .. cd linux-omap-2.6 git checkout 59586cd959b31f91f29cf96c1d3f8ff52c3c0607 git tag start git checkout -b my_branch

86 Boot Beagle from SD card
Format SD card as FAT using HP utility Copy provided MLO (x-load) Copy built v1.3.2-xxx u-boot.bin Copy built 2.6.xx-xxx uImage Copy provided rd-ext2.bin (ramdisk image) Connect serial cable and insert SD card Hold “User” button and apply power Observe “…40T…” on serial port Press a key to halt boot if required Give commands at u-boot prompt (OMAP3 beagleboard.org #) setenv bootargs ‘console=ttyS2,115200n8 root=/dev/ram0 rw ramdisk_size=8192 rootfstype=ext2 initrd=0x ,8M’ setenv bootcmd ‘mmcinit;fatload mmc uImage;fatload rd-ext2.bin;bootm ’ saveenv run bootcmd

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

88 Post patch to OMAP community
Read Post your patch to mailing list

89 Collaboration tools 89

90 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

91 Chat on IRC http://freenode.net IRC clients
#beagle: discussion regarding the Beagle Board #neuros: discussion #davinci: discussion regarding TI DaVinci products #ol: discussion regarding OMAP Linux (not active) IRC clients

92 E-mail regarding OMAP Linux

93 Forums

94 Blogs (RSS feeds)

95 Wikis http://wiki.davincidsp.com http://tiexpressdsp.com

96 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:

97 Git What is Git? Read more here: Learn from Linus here:
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 BitKeeper 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 v2. It was originally written by Linus Torvalds and is currently maintained by Junio C Hamano. Read more here: Learn from Linus here:

98 Community Participation with Git
98

99 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.

100 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.

101 How to build Git tool from source
Download GIT from: How to build GIT ? #> tar –xzvf git tar.gz #> cd <to extracted directory> #> make How to install GIT ? #> make prefix=<my directory> 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)

102 Commands used to pull trees
Refer to Tony’s README on muru.com for detailed description on working with OMAP GIT tree. Few important commands: To clone OMAP GIT Tree: $ git clone Same GIT tree is also hosted/mirrored at mvista’s site here: $ git clone Note: Setup Proxy Server before cloning the tree: Example: #> export http_proxy= To re-sync your branch with mainline: $ git-pull

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

104 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 “patch1” using quilt #> quilt new patch1 Add files that will be modified by this new patch. #> quilt add <file name> 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

105 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

106 Community participation with Open Embedded
106

107 What is Open Embedded (OE)? http://www.openembedded.org
OE is like a top-level ‘Makefile’ Sophisticated layer on top of ‘make’ Tool for building distributions Maintains meta-data database for building open source BitBake is a python tool core to OE 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

108 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 ‘armv7a’ compiled binaries in “Ångstrøm” Possible to take a “demo” snapshot Play with higher-level development

109 What does Ångstrøm provide today. http://beagleboard
Browsers Gecko: Firefox 3, Fennec, … WebKit: Epiphany, … Media FFmpeg, XMMS, GStreamer, MythTV, … Development C, Java, Python, Perl, Mono, Ruby, Tk, … Gaming, Networking, …

110 Installing Ångstrøm onto NAND
SD card FAT formatted (default, optionally bootable) boot/kernel/ramdisk to get into OE console Can store kernel (and ramdisk) in flash Copy of tar.bz2 of full file system image desired Boot console image bootargs = console=ttyS2,115200n8 ramdisk_size= root=/dev/ram0 rw rootfstype=ext2 initrd=0x ,32M bootcmd = mmcinit;fatload mmc uImage; fatload mmc angstrom-console-rd.gz Flash board opkg install mtd-utils; opkg install mkfs-jffs2 flash_eraseall /dev/mtd4; mkfs.jffs2 -o /dev/mtdblock4 mkdir /mnt/flash; mount -t jffs2 /dev/mtdblock4 /mnt/flash tar xvjf Angstrom-XXX.rootfs.tar.bz2 -C /mnt/flash Boot new file system bootargs = console=ttyS2,115200n8 console=tty0 root=/dev/mtdblock4 rw rootfstype=jffs2 nohz=off video=omapfb:vram:2M,vram:4M bootcmd = nand read ; bootm

111 What is Open Embedded made from?
BitBake 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

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

113 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

114 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

115 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

116 Limitations and alternatives
Build environment not always well isolated Many build scripts do native build environment tests Alternatives Matrix Sponsored by ARM: Utilizes Scratchbox and QEMU Reproduces target environment in cross-compile Relies on emulation on build host Mamona 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

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

118 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 Make shorter. Version control: git, svn, … Compilers: task-native-sdk/gcc, perl, python, ruby, tcl Java: phoneme_advanced_foundation, cacao, jamvm Other VMs: mono UI kits: Sugar, SWT/Swing, Tcl/Tk, Gnome, … Dynamic repositories: OSGi (Java), some CPAN (Perl)

119 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

120 Web-based UI development
Familiar paradigm for consumers Enables remote control and monitoring Many HTML/JavaScript developers Opens up use of other web services Mapping Order fulfillment Storage Social networking and media

121 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 JavaScript 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.getRuntime(); rt.exec(“…”) new Packages.java.io.File(“…”)

122 Web-based UI development (client)
Epiphany-WebKit is one option for the client side Fast rendering, low memory, and good AJAX support WebKit is easy to embed into other applications Demo beagle-web-control-demo used at ARM Developers’ Conference Toggles LED states from web browser Uses Angstrom demo setup

123 Demos and resources for more information and support
123

124 Many OMAP™ hardware options
TI/Mistral OMAP35x EVM Nokia Internet Tablets LogicPD Zoom Medical and Mobile Developer Kits Gumstix Overo Cogent CSB740 Gumstix Overo Beagle Board 3” x 3” LogicPD OMAP35x Dev. Kit / Medical EVM 5.75” x 6.25” LogicPD OMAP34x Mobile Development Kit 3.8” x 6.3” x .95” OMAP35x EVM 4.25” x 7” OMAP34x SDP 8.5” x 11” Not to scale. Approximate size noted (in inches)

125 Cortex-A8 uses ARMv7 instructions
Many tools options The many OS vendors for are OMAP35x not listed here Tool / Top features Debug Compile Other TI Code Composer Studio Low-level ARM and DSP Low-level ARM (ARMv7) and DSP (NEON roadmap) Power-aware debug ARM RealView Low-level ARM Application-level ARM (ARMv7, NEON) Lauterbach Low-level and app ARM and DSP None Extensive trace Green Hills Trace CodeSourcery Linux application debug Linux kernel/app ARM (ARMv7, NEON) Cortex-A8 uses ARMv7 instructions Additional third party information: here

126 Many OS vendors for OMAP35x
MontaVista TimeSys RidgeRun BSquare Many, many more

127 TI OMAP35x software architecture http://www.ti.com/omap35x
Applications GUI App Framework 2D/3D APIs Multimedia Framework Optional DRM GFX Driver Codec Engine and Link Codec Engine FC BIOS Linux Kernel / WinCE & Power Management audio video image video image audio video image audio C64x+ DSP and Video Acceleration GFX ARM

128 Accessing the TMS320C64x™+ DSP
DSP/BIOS™ Link source available Provides code loading and data passing Kernel portions licensed as GPL DSP/BIOS RTOS and components Enables sharing of the DSP as a resource Free TI DSP compiler Non-commercial use Full support in Code Composer Studio

129 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 Go ahead, ask your questions before you buy… Participate and enjoy! Finally, in closing, we want to remind you that BeagleBoard.org is a community of developers and hobbyists and provide unpaid support for BeagleBoard users. Those that participate in and contribute to the BeagleBoard.org technical community will likely get the most out of their BeagleBoard experience. The openness of BeagleBoard.org enables developers, be they hobbyists or product developers, to share advances in code, and helps to keep keeps costs low and enables more people to participate. Remember, There is online 24/7 access to fellow developers at Go ahead, ask your questions before you buy… Participate and enjoy! And to buy your BagleBoard to get started, go to BeagleBoard.org, click on the Digi-Key link to buy a BeagleBoard, and go for it!

130 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

131 Summary Open source is very diverse and OMAP35x supports that diversity Beagle Board enables new possibilities for open collaboration Enjoy programming again!

132 Thank you! jdk@ti.com jkridner@beagleboard.org


Download ppt "Beagle Board 101 Gerald Coley and Jason Kridner October 26, 2008"

Similar presentations


Ads by Google