News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

Standard Linux now runs on DSPs

Jul 9, 2007 — by LinuxDevices Staff — from the LinuxDevices Archive — 4 views

A new Linux kernel released over the weekend adds native support for Analog Devices Inc.'s Blackfin DSP (digital signal processor) architecture. The Linux 2.6.22 release supports six shipping Blackfin DSPs, along with several development boards.

Spread the word:
digg this story

Linux was originally ported to the Blackfin architecture by development tools vendor Metrowerks (a division of Motorola, and later of Freescale), in the spring of 2003. Metrowerks touted the port as the first of Linux to a DSP (digital signal processor), although not until another company, Softier, announced its “MediaLinux” port to TI's DM64x architecture later that Fall.

Blackfin patches were initially committed into the mainline kernel on May 6, according to the 2.6.22 changelog. In a post associated with the commit, ADI's Bryan Wu wrote:

This adds support for the Analog Devices Blackfin processor architecture, and currently supports the BF533, BF532, BF531, BF537, BF536, BF534, and BF561 (Dual Core) devices, with a variety of development platforms including those available from Analog Devices (BF533-EZKit, BF533-STAMP, BF537-STAMP, BF561-EZKIT), and Bluetechnix! Tinyboards.

The Blackfin architecture was jointly developed by Intel and Analog Devices Inc. (ADI) as the Micro Signal Architecture (MSA) core and introduced in December of 2000. Since then ADI has put this core into its Blackfin processor family of devices. The Blackfin core has the advantages of a clean, orthogonal, RISC-like microprocessor instruction set. It combines a dual-MAC (multiply/accumulate), state-of-the-art signal processing engine, and single-instruction, multiple-data (SIMD) multimedia capabilities into a single instruction-set architecture.

The Blackfin architecture, including the instruction set, is described by the ADSP-BF53x/BF56x Blackfin Processor Programming Reference.

The Blackfin processor is already supported by major releases of gcc, and there are binary and source rpms/tarballs for many architectures at: http://blackfin.uclinux.org/gf/project/toolchain/frs. There is complete documentation, including “getting started” guides available at: http://docs.blackfin.uclinux.org/ which provides links to the sources and patches you will need in order to set up a cross-compiling environment for bfin-linux-uclibc.

This patch, as well as the other patches (toolchain, distribution, uClibc) are actively supported by Analog Devices Inc, at: http://blackfin.uclinux.org/.

We have tested this on LTP, and our test plan (including pass/fails) can be found at: http://docs.blackfin.uclinux.org/doku.php?id=testing_the_linux_kernel.

Following the merge, a flurry of patches ensued, from a dozen developers that included (in alphabetical order) ADI employees Michael Frysinger, Robin Getz, Roy Huang, Michael Hennerich, Aubrey Li, Bernd Schmidt, Jie Zhang, and Sonic Zhang. Other contributers included Simon Arlott, Jean-Christian de Rivaz, and Marco Roeland.

The new 2.6.22 kernel includes configure-time (“make config”) options for the following ADI DSPs:

  • BF533 (default)
  • BF531
  • BF532
  • BF533
  • BF534
  • BF536
  • BF537
  • BF561 — Not supported yet – work in progress

Configure-time options for specific Blackfin-powered development boards include:

  • BFIN533_EZKIT — BF533-EZKIT-LITE
  • BFIN533_STAMP — BF533-STAMP board Support (default)
  • BFIN537_STAMP — BF537-STAMP
  • BFIN533_BLUETECHNIX_CM — CM-BF533 support for EVAL- and DEV-Board
  • BFIN537_BLUETECHNIX_CM — CM-BF537 support for EVAL- and DEV-Board
  • BFIN561_BLUETECHNIX_CM — CM-BF561 support for EVAL- and DEV-Board
  • BFIN561_EZKIT — BF561-EZKIT-LITE
  • BFIN561_TEPLA — BF561-TEPLA
  • PNAV10 — PNAV 1.0
  • GENERIC_BOARD — Generic or Custom board support

As usual, the mainline kernel is available from ftp.kernel.org. Architectures currently supported by the kernel include alpha, arm, arm26, avr32, blackfin, cris, frv, h8300, i386, ia64, m32r, m68k, m68knommu, mips, parisc, powerpc, ppc, s390, sh, sh64, sparc, sparc64, um, v850, x86_64, and xtensa.

Other enhancements in the new kernel

Besides Blackfin support, other enhancements in the 2.6.22 kernel include new and much better wireless and FireWire stacks; LVM (Logical Volume Management) for flash storage devices; improvements to TCP/IP networking congestion; IPV6 Optimistic Duplicate Address Detection; relocatable x86-64 kernel support; and various new drivers.

For more details on what's new in the 2.6.22 kernel, read Linux-Watch.com's article about the new kernel release, here.


 
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.



Comments are closed.