The World Leader in High Performance Signal Processing Solutions Linux on Blackfin Feb 2010 Sonic Zhang Open Platform Solutions Processor-DSP
The World Leader in High Performance Signal Processing Solutions
Linux on Blackfin
Feb 2010
Sonic Zhang
Open Platform Solutions
Processor-DSP
Agenda
�What is Linux on Blackfin�License�Developing Environment�What’s new in 2009R1 and 2009R1.1�What’s obsolete in 2009R1 and 2009R1.1�Other Key Features�Online Document�Resource and Support�Hardware Available�Q & A
What is Linux on Blackfin
� Linux on Blackfin is a software development platform for Blackfin microprocessor, which is composed of toochain, boot loader and Linux distribution.
� The Linux distribution includes Linux 2.6 kernel as well as a collection of system and user applications and libraries.
� Linux kernel for Blackfin is the same kernel running on x86, ARM, MIPS, etc. Direct access to hardware or MMR managed by kernel from user space is illegal.
� The Linux 2.6 kernel running on Blackfin has MMU option disabled. Kernel and user space code sit in the same flat physical address space. To develop multi-processor application, vfork or thread API other than fork should be used.
� Because memory fragment is a big issue for NOMMU architecture, frequent memory allocation and free should be avoided. Application are recommended to malloc all memory at start up or manage allocation by itself.
� Linux itself is not a real time OS. But, 3rd party RT enhancement enable RT applications to run under Linux as well. ADEOS is such an option for Linux on Blackfin.
License
� The license of Linux is GPL/LGPL.� Customers should determine their IP licensing position for
application/library/driver used in end products.� If customer doesn’t want to open its source code:
� Avoid putting proprietary code in kernel.
� Statically link application with libraries of LGPL other than GPL.
� Ask customer to ask their lawyer before making any decision.
Developing Environment
Appsdebugger
(gdb)
Serial or Ethernet
kerneldebugger
(gdb)
JTAG
uboot
LinuxKernel
Standard Apps
Custom Apps
library
Compiler(gcc)
Assembler(gas)
Linker(ld)
Tool Chain
Binutils
What’s new in 2009R1 and 2009R1.1
� Kernel General� Update kernel to 2.6.28.10� Port to new arch bf51x, bf526/4/2, bf538/9, mobile
ddr bf54xm � New ADEOS against 2.6.28.10 kernel� Full SMP support for bf561� Update KGDB to mainline, support SMP and on chip
RAM access� Improve double fault handling and other exception
handling � Generic GPIO framework� CPUfreq and voltage scaling framework
� Driver Enhancement� 24-bit EPPI and multi ports for BF548� Write operation in OPT driver� Interrupt driven flow control and hardware flow
control for BF548 in serial driver� 4-bit operation in SDIO driver� Full functional PIO/DMA bfin USB 2.0 host/device
driver
� New drivers� AD73322, SM2602, AD7183B, ADZS-BFLLCD-
EZEXT, AD7879, ADP5588, ADP5520� Marvell 8686 wifi, ENC28J60 Ethernet, KS8893M
Ethernet switch� UBIFS on flash, USB Audio gadget, USB video class
gadget, SPI over SPORT
� New Development Boards� BF518-ezbrd� BF526-ezbrd� BF538-ezkit
� Applications� New shell Hush� Benchmark bonnie++, EDN� USB video class gadget utility� CPUfreq utility� PCMCIA utility� PPI/FPGA Demo� Tslib support in Microwin
� Libraries� Optimize libjpeg forward DCT for Blackfin� Bluetooth ALSA library� TIFF, GIF, OGG, AGG, Vorbis libraries� QT embedded 4.5.0 library� Update to Linphone 3.0 with G.729 codec support
What’s new in 2009R1 and 2009R1.1
� Toolchain� GCC stable version 4.1 and tryout version
4.3.� Support new arch bf51x, bf522/4/6, bf538/9,
bf54xm� Performance enhancement for USB 2.0
gnICE JTAG utility and hardware debugger. 100 times faster than old version.
� Support building and loading L2 SRAM code/data with L2 attribute in source
� Better support for MAC OS X and Windows host
� U-boot� Update to version 2008.10� Port to new arch bf51x� Switch to new SPI flash framework� New MMC_SPI driver� On-chip ATAPI support� On-chip SDIO support� On-chip USB host support� New console over JTAG driver� Support resuming kernel from suspend to
RAM.� Support boot from UART at any baud rate.
What’s obsolete in 2009R1 and 2009R1.1
� Page cache limitation patch� Now kernel reap page cache at runtime when memory is allocated.
� No Power of 2(NP2) malloc support� No replacement. Use generic kmalloc.
� PBX Zaptel driver� recommend customer to Asterisk code base
� blackfin specific NAND driver� switch to generic platform NAND driver
� blackfin specific spi_mmc driver� swtich to generic mmc_spi driver.
� blackfin specific IDE driver� switch to libata platform driver and pcmcia driver
� unmaintained pehci USB driver� use ISP 1760 USB HOST driver in kernel
� Uncompressed kernel binary with initramfs� Generate uImage only. Booting kernel ELF image is no longer supported in uboot.
Other Key Features
� Blackfin on chip drivers� Ethernet, UART, DMA, I2C, SPI, CAN Bus,
Power Management, Real Time Clock, Watchdog Timer
� Add-on board drivers� V4L driver for cmos camera� Frame buffer driver for LCD or video� Wireless 802.11/Bluetooth� Sound codec� UART over SPORT� SPI ADC/DAC/SD/MMC/Capacitance to Digital
Converter/Touchscreen� I2C keypad/character LCD
� Kernel Memory Management� L1/L2 SRAM allocator� Reserve RAM in boot arguments� DMA memory copy� Process stack check
� Libraries� uClibc� Blacfin DSP lib, Float point lib� SQL Lite� ALSA, USB, Bluetooth� PNG lib, ffmpeg� Touchscreen lib� Microwin, SDL, DirectFB
� Applications� Network camera capture� Network waveform Gen, software oscilliscope� Network audio player� Mplayer, VLC� HTTPS web server pound
� Tools� Generate FLAT, FDPIC, bare metal ELF binary� Link shared library� Generate hardware loop and long jump� GCC built-in functions� Eclipse developing and debugging support� JTAG Debugger, lmbench, strace, oprofiler
Online documentation
� Developing Guide for Blackfin Linux� getting started, development host setup,
How to use� Drivers and kernel� debugging
� Projects� Linphone� ffmpeg and VLC� ADEOS Real Time� Asterisk PBX
� Examples� Using the Distribution� Adding new board configuration� Adding a Hello Program� Adding a new driver� Using available drivers� Living without forks� Cache management� Example applications
http://docs.blackfin.uclinux.org
Resource and Support
http://blackfin.uclinux.org
Support via Help Forum
Bug Tracker
http://blackfin.uclinux.org
Bug Tracker
Release Download
http://blackfin.uclinux.org
Release Download
Other Resource
�SVN trunk source repository� Linux Distribution
� svn checkout svn://firewall-sources.blackfin.uclinux.org:80/svn/uclinux-dist/trunk uclinux-dist
� Toolchain� svn checkout svn://firewall-sources.blackfin.uclinux.org:80/svn/toolchain/trunk
toolchain� Boot Loader
� svn checkout svn://firewall-sources.blackfin.uclinux.org:80/svn/u-boot u-boot
�Hardware buy stuff� http://docs.blackfin.uclinux.org/doku.php?id=buy_st uff
�Hardware schematics download� http://blackfin.uclinux.org/gf/project/stamp/frs
Hardware Available
BF537 STAMP Board
Part Number: ADDS-BF537-STAMPCost: $200 (distribution only)
Parallel PortAvailable from Excelpoint
www.execelpoint.comCost: $40
IGLOO ICE
USB 2.0Available from Bluetechnix
http://www.bluetechnix.comCost: €60
gnICE
Add-On Boards Available
TFT QVGA LCD CMOS Camera
Add-On Boards Available
I2C Character LCD (24x4) ENC28J60 SPI Ethernet
More Add-On Boards
� AD1836a sound codec� AD73311 sound codec� ADV7393 video out� ADXL34x I2C/SPI accelerator� USB device/host (SL811/isp1362, isp1760, net2272)� AD7142 SPI Capacitance to Digital Converter� AD7877 SPI Touchscreen� I2C Keypad (4x4)� UART/SPI over SPORT
Q & A
The World Leader in High Performance Signal Processing Solutions
Thank You