Overall message: 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
Linux upstream BYOP and Entry-level cost: Is… Inexpensive as possible Deferring some costs to the user (ex. LCD), and A give-away to key developers Is Not… Subsidizing the board (Price: $149+shipping), Subsidizing the peripherals, or Free for everyone who contributes Because… We can build more boards if they cost less So we will… Keep the cost down by limiting the board layers Include only interfaces to useful peripherals ARM Cortex-A8: Is… Capable of running real applications, Using standard busses for expansion, and A subset of other OMAP3 EVMs Is Not… The most complete OMAP3 development platform, An all-purpose expansion solution, or A target for complex kernel builds Because… Serious customers shouldn’t mind paying $1000, It keeps the kernel and debug relatively simple, and It allows applications to be ported up to other EVMs So we will… Include support for an external monitor, MMC/SD, and USB Not add an LCD or features unsupported on other EVMs Graphics and DSP/Video accelerated, Linux port, and Environment: Is… OMAP3530 based (ARM Cortex-A8/Neon, 2D/3D, C64x+) Interesting for home applications Is Not… OMAP3503, 3515, or 3525 based (subsets of processors) A consumer electronics product Because… Stickiness comes from using the ARM+DSP architecture Open source developers may help simplify DSP programming We don’t want to compete with Nokia or Neuros So we will… Begin with select partners under NDA, and Wait to publicly announce until after the TI OMAP3530 EVM is announced Not target it for any specific end-application (“browser” and “computer” are generic roles) GOALS Leverage community to develop feature-rich robust open source code base on OMAP3530 1,000 external developers 50 major internal/external contributors 10 commercial interests started 10 software IP offerings pushed upstream 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
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.
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-70227-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 http://BeagleBoard.org/hardware And for RSS feed of updates on newly validated peripherals working with BeagleBoard, tap into http://feeds.feedburner.com/BeagleBoardPeripherals
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!
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 http://BeagleBoard.org/support Many links to other software can be found via reference from BeagleBoard.org.
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, …
The Linux kernel repository http://git.kernel.org/ ARM Linux http://www.arm.linux.org.uk/ The Linux Documentation Project http://www.tldp.org/ Linux Device Drivers http://www.xml.com/ldd/chapter/book/index.html News http://kerneltrap.org http://kernelnewbies.org Other http://distrowatch.com https://dncsps.itg.ti.com/sites/soldel/TIDallas_SolDel/HLOS/App_Notes/CS_ANML/Lists/App%20Note%20Master%20List/DispForm.aspx?ID=474&Source=https%3A%2F%2Fdncsps.itg.ti.com%2Fsites%2Fsoldel%2FTIDallas_SolDel%2FHLOS%2FApp_Notes%2FCS_ANML%2FLists%2FApp%2520Note%2520Master%2520List%2FAllItems.aspx
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)
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 http://BeagleBoard.org/discuss 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!
Beagle Board 101 Gerald Coley and Jason Kridner September 22, 2009 Archived at: http://beagleboard.org/esc
Community development > 2,000 participants and growing Open access to hardware documentation Wikis, blogs, promotion of community activity Instant access to >10 million lines of code Addressing open source community needs $149 Free software Freedom to innovate Personally affordable Active & technical community Opportunity to tinker and learn
Kernel Windowing System Creativity Tools Office Suite Browser
A handful of the thousands… Vehicle telematics Linux/Firefox web add-on for the TV in the house SDR platform Speech recognition applications Media centre Bachelor thesis Home security cameras and powered-curtains Powerful nas with media server and transcoding capabilities Clutter & Qt development Port OKL4 Port OpenMoko No idea yet Mobile DTV tuner and receiver Small linux home fileserver Processing images and pattern recognition Home monitoring Networked digital signage Port Google-Android Port OpenWrt Autonomous robot Port xnu LCD picture frame Linux thin client Bluez and GUI using direct frame buffering Low cost linux pc/gaming device Wearable computer VLC VideoLAN Camera streaming application Audio processing Linux home fileserver Fanless multimedia/internet terminal Low-cost kiosk terminal I'm interested to buy 2 to 10 rev-B boards (10 preferred ;) congratulations for your project and its spirit ! Development platform for mobile VoIP phone I'm not interested in waiting for the platform to mature any longer. Let me know how to get hold of a beagleboard now. CMUcam-style applications Smart home After discussing with my dev guys, I confirm I would like to order 20 beagleboards Autonomous vehicles Project for masters degree I'd like my students to design and build hardware and software to do for Linux what TimeCapsule does for MacOS
Start ‘root terminal’ and use ‘/switchboot’ to start other images
Use ‘halt’ to power down (optional?)
#opkg install font-misc-misc xterm -fn 10x20 &
Default boot behavior Is USER pressed? RESET Is u-boot.bin on SD card? Is env var set? Poll USB, Serial, and SD before trying NAND Run u-boot.bin from SD card, possibly ignoring environment Execute commands stored in ‘bootcmd’ environment var Execute default commands
Default environment is used when variables haven’t been stored in flash
Rev C boards are shipped without variables stored in flash
Console can be used to interrupt the boot process and modify variables
The Rev B u-boot only supported the console over the serial port
The Rev C u-boot adds support for the console over the USB OTG port
Future modifications may support USB keyboard/mouse and DVI-D monitor
Fourth flash partition (mtd3) is reserved for the kernel
bootm <RAM addr> – executes kernel from RAM
Default bootcmd for Rev C http://gitorious.org/projects/beagleboard-default-u-boot/repos/jason-clone/blobs/for-khasim-rebase/include/configs/omap3_beagle.h
bootcmd= if mmcinit; then if run loadbootscript; then run bootscript; else if run loaduimage; then if run loadramdisk; then run ramboot; else run mmcboot; fi; else run nandboot; fi; fi; else run nandboot; fi
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.
Some hardware options http://wiki.omap.com/index.php?title=OMAP3_Boards
TI/Mistral OMAP35x EVM
Nokia Internet Tablets
Analogue & Micro Cobra3530
Not to scale. Approximate size noted (in inches) LogicPD OMAP34x Mobile Development Kit 3.8” x 6.3” x .95” LogicPD OMAP35x Dev. Kit / Medical EVM 5.75” x 6.25” OMAP35x EVM 4.25” x 7” OMAP34x SDP 8.5” x 11” Beagle Board 3” x 3” Gumstix Overo Mini Board 3” x 3”
Many tools options http://focus.ti.com/dsp/docs/dspplatformscontenttp.tsp?sectionId=2&familyId=1525&tabId=2224
Cortex-A8 uses ARMv7 instructions
Additional third party information: here 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 Low-level and app ARM and DSP Low-level ARM Trace CodeSourcery Linux application debug Linux kernel/app ARM (ARMv7, NEON)
TI OMAP35x software architecture http://www.ti.com/omap35x GFX ARM Linux Kernel / WinCE & Power Management audio GFX Driver 2D/3D APIs C64x+ DSP and Video Acceleration Applications video image audio Codec Engine Codec Engine and Link video image audio FC BIOS video image Multimedia Framework Optional DRM App Framework GUI