BEAGLE BOARD OMAP 3530

AUTORA : TAMAR PÉREZ MIRANDA

PONENT : FRANCESC ESCUDERO

RESUME

The Beagle Board is a low cost, fan-less and single board based on ' OMAP device family. OMAP means Open Multimedia Application Platform and it is a Texas Instruments proprietary microprocessor for multimedia applications.

The aim of this work is to explore the capabilities of the Beagle Board and to spark interest in the device with universities.

ABSTRACT

As part of my 13-months internship in Texas Instruments working as University Support Engineer, I was assigned to lead a project which is intended to introduce the Beagle Board to universities. This project was meant to give academic institutions an idea of the wide capabilities of this extraordinary tool. As the current tendency in the components electronics fabrication world is to increase integration, a reduction in component size becomes more and more imperative without compromising the quality of components features and applications. That is why it is so attractive to use small technology, such as fan-less or -power, the technology which is used by Beagle Board. The Beagle Board is a low cost, fan-less and single board computer based on Texas Instruments' OMAP device family. OMAP means Open Multimedia Application Platform and it is a Texas Instruments proprietary microprocessor for multimedia applications.

As university education puts a high value on working with the latest technology available on the market, Beagle Board offers colleges an opportunity to teach how to use state-of- the-art technology with a low cost tool. The aim of this work is to explore the capabilities of the Beagle Board and to spark interest in the device with universities.

OMAP 3530 Beagle Board ______

INDEX

Resume...... I Abstract...... II Index...... III 1. INTRODUCTION ...... - 1 - 2. BEAGLE DEFINITION ...... - 3 - 3. TECHNOLOGY USED ...... - 9 - 3.1. OMAP3530 PROCESSOR ...... - 9 -

4. HARDWARE ...... - 15 - 4.1. BEAGLE HARDWARE CONCLUSION ...... - 19 -

5. ...... - 21 - 5.1. WHY OPEN SOURCE? ...... - 21 -

5.2. WHY ? ...... - 22 -

5.3. WHAT DOES OMAP COMMUNITY GIT TREE CONSIST OF? ...... - 24 -

5.4. DIGITAL MEDIA SOFTWARE ...... - 25 -

5.4.1. CODEC ENGINE ...... - 25 -

5.4.2. XDAIS ...... - 29 -

5.4.3. XDM ...... - 31 -

5.4.4. RTSC...... - 32 -

5.5. BEAGLE SOFTWARE CONCLUSION ...... - 34 -

6. PRACTICAL ...... - 37 - 6.1. WORK EXPERIENCE ...... - 37 -

6.2. BEAGLE BOARD LAB ...... - 41 -

6.2.1. HARDWARE NECESSARY FOR THE APLICATION...... - 41 -

6.2.2. BOOT OPTIONS ...... - 42 -

6.2.3. SOFTWARE NECESSARY FOR THE APLICATION ...... - 44 -

-I-

OMAP 3530 Beagle Board ______

6.2.4. STEPS FOR CONNECTING AND VERIFY PHERIPHERALS ...... - 45 -

6.2.5. HARDWARE SETUP IN THE BEAGLE ...... - 47 -

6.2.6. BEAGLE BOARD RUNNING WITH C64X+ DSP AS STANDALONE .. - 48 -

6.2.7. STEPS FOR WORKING WITH THE BEAGLE BOARD AND ...... - 51 -

7. BEAGLE BOARD APLICATIONS ...... - 53 - 8. CONCLUSIONS AND OUTLOOK ...... - 57 - 9. BIBLIOGRAPHY ...... - 75 - 10. ACRONIMS ...... - 79 -

II

OMAP 3530 Beagle Board ______1. INTRODUCTION

This work is the result as a consequence of my 13-month internship in Texas Instruments working as University Support Engineer. I was assigned a project which is intended to introduce the Beagle Board to universities. The aim of this work is to explore the capabilities of the Beagle Board and to spark interest in the device with universities.

In this introduction, it will be described where suits the Beagle Board in the world of System-on-Chip SOC and why is getting so popular in the university world. First of all, it will be explore what are the benefits and the needs of working with hybrid dual core SOCs. In this work we describe how well can suit Beagle Board in University projects due to the choices that the board has, the embedded software component standards, and some special software framework that make the board working properly such as Codec Engine.

For understanding better what is describe in the following chapters, in this part it is explain what have caused the trend to develop the hybrid System on Chip. The main problem is the wish of an extra high clock frequency and this implicates a lot of power that is not reached with the technology that exists in the market nowadays because they cannot tolerate the heat pollution that the high frequency emits. The problem is that the electrical power is too prohibitive for such higher frequencies and if the power consumption grows the heat dissipation becomes no practical for the . The next step was consider a multi-core board where are packed a lot of transistors however for consider all types of applications as Beagle Board does the best method is used a hybrid core. The hybrid core consists on a general purpose processor or GPP and a special purpose or DSP.

The general purpose processors are high level operating systems oriented for handling a lot of I/O tasks however for voice, audio and video applications the digital signal processor is more efficient. Both processors are complementing each other because the DSP doesn´t support general purpose high-level OS applications efficiently. Beagle is used for applications that mix requirements combining GPP and DSP cores on a single .

The board has an ARM general purpose processor and a high performance C64x+ DSP. The ARM processor is perfect for running common operating system like Linux, WinCE or Greenhills Integrity. The tasks consist on handle a high quantity of I/O and other

- 1 -

OMAP 3530 Beagle Board ______functions such as graphical user interface or GUI. The DSP suits well for handling the digital signal processing functions that are necessary in the multimedia applications.

In Chapter 2, it is shown a Beagle Board definition. Following with the explanation it will be describe in chapter 3 what consist the OMAP3530 technology on. Once studied the technology, in chapter 4, it will be study the hardware where I will provide my feedback about the strongest and the weakness of the Beagle regarding the hardware. The chapter 5 analyze the choice of the right operating systems for the Beagle. Basically, this consists of understanding the DSP scheduler and the use of Linux as a operating system that suits better for the general purpose processor. For the DSP which contains the Beagle (TMS320 family DSPs from TI) has been created the DSP/BIOS. The DSP/BIOS is a real time task scheduler, in other words, it could be also consider as a mini operating system that isn´t suitable for all use, however is ideal for the task that the DSP is designed to run. In the following software subchapters, it is described why the open source is choosing for working with universities and the Linux choice. Linux is free operating system however a real prize is associated with maintaining and developing a Linux application. In this case it is necessary to distinguish a community Linux and a commercial Linux. In this work I will be referring to the community Linux. This Operating System has become so popular because is used in several types of applications. The key is that the updates coming from the commercial Linux are a step behind of the version of the community Linux. I will also emphasize some of the digital media software: Codec Engine, XDAIS, XDM and RTSC.

Once studied how the Beagle Board works, I will focuses on running some practical demos that will be used for working with the dual core technology in the practical chapter 6. The first subchapter consist on relating how my own experiences were useful for realizing this work. In the second subchapter we will be running some demos with Linux in the ARM core and using Code Composer Studio with the DSP. These demos will help to understand the importance of introducing dual core technology for teaching in universities.

Other applications are describe in chapter 7 and in chapter 8 it will be describe the state of the art of the Beagle and OMAP330 technology.

Last but not least, in chapter 9, I will conclude why Beagle Board is getting so important in Universities and in research centres that realize about the importance of working with tools close to the latest options that offers the market regarding system on chip tools.

- 2 -

OMAP 3530 Beagle Board ______

2. BEAGLE DEFINITION

The Beagle Board is a board which has all the functionality of a basic computer. It is based on OMAP3530 which includes an ARM Cortex-A8 CPU and a TMS320C64x+ DSP.

The ARM architecture which previously was the Advanced RISC Machine and prior to that Acorn RISC Machine is now the most widely used 32-bit processor architecture in the world. The ARM architecture is a 32-bit RISC processor. In computer architecture, 32-bit integers, memory addresses, or other data units are at most 32 bits (4 octets) wide. Further, 32-bit CPU and ALU architectures are based on registers, address buses, or data buses of that size. This architecture developed by ARM Limited is widely used in embedded designs. Because of their power saving features, ARM CPUs are dominant in the mobile electronics market, where low power consumption is a critical design goal. The ARM Cortex may run either Windows CE or Linux.

The TMS320C64x+ DSP is a versatile signal processor at up to 430MHz for accelerated video and audio decoding. For video encoding and decoding it has an Imagination Technologies PowerVR. PowerVR is a division of Imagination Technologies that develops hardware and software for 2D-3D and for video encoding, decoding and image processing. The PowerVR is a SGX530 GPU that supports OpenGL ES 2.0. The OpenGL ES or OpenGL for Embedded Systems is a subset of the OpenGL 3D graphics API designed for embedded devices such as mobile phones, PDAs, and video game consoles.

The video out is provided through separate S-Video and HDMI connections. Then, it is describe what consist S-Video off and the HDMI interface.

The S-Video or Separate Video is an analog video signal that carries the video data as two separate signals: luma (luminance) and chroma (colour). Moreover there are: composite video and component vide. The separate video differs from composite video which carries picture information as a single lower-quality signal and it is different from component video which carries picture information as three separate higher-quality signals. The S- Video carries standard definition video, typically at 480i or 576i resolution, but does not carry audio on the same cable.

HDMI or High-Definition Multimedia Interface is a compact audio/video interface for transmitting uncompressed digital data. It represents a digital alternative to consumer

- 3 -

OMAP 3530 Beagle Board ______analog standards such as Radio Frequency (RF) coaxial cable, composite video, S-Video, SCART, component video, D-Terminal and VGA. HDMI connects digital audio/video sources such as set-top boxes, blu-ray Disc players, personal computers (PCs), video game consoles and AV receivers to compatible digital audio devices, computer monitors and digital televisions. Further, HDMI supports on a single cable any TV or PC video format, including standard, enhanced and high-definition video (up to 8 channels of digital audio).

Beagle Board provides a single SD/MMC card or Multi-Media Card which is a solid state disk or data storage device that supports: SDIO, a USB On-the-Go port, an RS-232 serial connection. It also contains a JTAG connection and two stereo jacks for audio in/out. All this features are described further in the fourth chapter which studies the hardware.

The SDIO stands for Secure Digital Input Output. The SD slots can actually be used for more than flash memory cards. Some devices that support SDIO are typically PDAs like the Palm Treo, occasionally laptops or mobile phones.

Other that has been mentioned is the USB On-The-Go, normally abbreviated USB OTG which is a supplement to the USB 2.0 specification. The standard USB uses master/slave architecture. The USB host acts as the protocol master and a USB device acts as the slave. Only the host can schedule the configuration and data transfers the link. The devices cannot initiate data transfers, they only respond to requests given by a host. The OTG introduces the concept that a device can perform both the master and slave roles. Now a device can be either a host (acting as the link master) or a peripheral (acting as the link slave).

The third standard supported is RS-232 or Recommended Standard 232 which is a standard for serial binary data signals, connecting a DTE (Data Terminal Equipment) and a DCE (Data Circuit Terminal Equipment).

Finally, the JTAG or Joint Test Action Group is included also in the Beagle Board for using different JTAG emulators which facilitate the debugging and the software development.

The board uses up to 2W of power and can be powered from either a USB connection or a separate 5V power supply. Further, the board requires no additional cooling due to the low power consumption.

- 4 -

OMAP 3530 Beagle Board ______

Last but not least, Beagle Board is taking a wide variety of projects because has a USB powered, fan-less and act as a single board computer that works as a laptop; however doesn´t have the noise of typical desktop machines. Now, the Linux Android mobile platform, which was developed by Google for smart phone handsets, has been ported to Beagle Board [1].

The Beagle specifications about Package on Package, the connections of the peripheral and development issues are describe in the following chapter. 2.1. SPECIFICATIONS

The Beagle Board specifications are divided by different categories for a better understanding. These categories are Package on Package, Peripheral connections and development are mentioned below:

ƒ Package on Package (POP) CPU/Memory chip.

- Processor TI OMAP3530 Processor - 600MHz ARM Cortex-A8 core

- HD capable TMS320C64x+ core (75MHz up to 720p @30fps)

- Imagination Technologies PowerVR SGX 2D/3D1 graphics processor supporting dual independent displays

- 128MB LPDDR RAM memory

- 256MB NAND Flash memory

ƒ Peripheral connections

- HDMI, S-Video, USB2.0 OTG (mini AB), SD/MMC card slot

- Stereo in and out jack plug sockets

- RS232 port

- JTAG connections

- Power socket (5V barrel connector type)

ƒ Development

- Boot code store in ROM

1 PowerVR: is a division of Imagination Technologies that develops hardware and software for 2D and 3D rendering, video encoding, decoding and image processing.

- 5 -

OMAP 3530 Beagle Board ______

- Boots from NAND memory, SD/MMC, USB, or Serial

- Alternative Boot source button

- The use of Angstrom Linux, Ubuntu and Maemo distributions has been demonstrated

All of the peripherals mentioned above it will be further described in chapter 4.

First of all, the Beagle Board is located in the Single-board computers (SBCs) world. The SBCs are complete computers built on a single circuit board. The design is centred in this case on a hybrid dual microprocessor with RAM, IO and all other features needed to be a functional computer on the one board (cf. chapter 4).

The Beagle Board is defining as a SBC board powered from the usb and fan-less. Moreover, it works as a free platform; the Beagle is also expansible and uses a minimal size (3"x3"). Other specifications that make the board open a wide range of multimedia applications are audio and video output with low noise. Furthermore, it is consider as a silence tool and it has a low price in comparison to other CPUs coming from the same family. To allow the users to experience the power of the OMAP it has been equipped with a minimum set of features.

Texas Instruments OMAP means Open Multimedia Application Platform and is a Texas Instruments proprietary microprocessor for multimedia applications. It is important to understand that is not intended as a full development platform because many of the features and interfaces supplied by the OMAP3530 EVM2 are not accessible from Beagle Board. The board is highly extensible to add many features and interfaces to develop new applications by utilizing standard interfaces.

Some of the processors in the OMAP family contain a dual-core architecture consisting of both a general-purpose host ARM processor and one or more DSP. Beagle board includes an ARM Cortex-A8 CPU and a TMS320C64x+ DSP that will be further studied in this chapter.

In the two following pictures are shown how the Beagle board looks like. The fig.1 shows the top perspective and the fig.2 the bottom view.

2 OMAP3530EVM: OMAP3530 Evaluation Module [25].

- 6 -

OMAP 3530 Beagle Board ______

Fig.1: The Beagle Board top perspective.

Many mobile phones use OMAP microprocessors, including most of Nokia's N-series range. Phones known to use OMAP include the N90, N91, N92, N95, E61, E62, E63, and many other Nokia devices. The Palm Pre, announced at CES 2009, also uses an OMAP processor.

The digital signals processor featured is one variant of the Texas Instruments TMS320 family series DSPs: TMS320C6+ DSP. The Texas Instruments TMS320 is a blanket name for a series of digital signal processors (DSPs) from Texas Instruments [2]. It was introduced on April 8, 1983 through the TMS32010 processor, which was then the fastest DSP on the market. The TMS320 featured a fast multiply-and-accumulate useful in both DSP applications as well as transformations used in computer graphics. The flexibility of this line of processors has led to it being used not only as a co-processor for digital signal processing but also as a main CPU and this makes that it fits in university labs. They all support standard IEEE JTAG control for development. Nowadays, the evolution technology has arrived to the TMS320C6+ DSP.

- 7 -

OMAP 3530 Beagle Board ______

Fig.2: The Beagle Board bottom view.

Once it has been studied how the Beagle Board looks like, in the following chapter it will be describe the technology use in OMAP3530 Processor.

- 8 -

OMAP 3530 Beagle Board ______

3. TECHNOLOGY USED

In this chapter, once defined what the Beagle Board is and studied its specifications it will be studied the technology used in the board. 3.1. OMAP3530 PROCESSOR

Beagle Board is base in OMAP3 platform low power consumption, high performance and low cost. The design is made by the BeagleBoard.org member and it is sold through the Digi-Key distributor.

First of all, we consider the detail block diagram below where we can have a look quickly what consist on the OMAP3530 architecture that we will study further in this chapter.

Fig. 3: Detailed block diagram of the OMAP3530 processor.

In the next chapters there are described with more detail what is base this technology of which consists of two kernels: ARM and DSP.

- 9 -

OMAP 3530 Beagle Board ______

The OMAP3 platform work without precedents such a portable device and has low power consumption. This is thanks to the Cortex-A8 working at 600MHz [3].

Following it will be explained with detail in what the ARM architecture and exactly the ARM9 consist of. The ARM meaning coming from Advanced RISC Machine, this technology is use in a wide variety of embedded designs. The main reason for choosing this board is because ARM has an important low power consumption which is useful for applications which need save energy. The ARM CPU is wide use in the mobile phone market where the goal is gain safe power consumption for enlarges the battery life. Moreover, this kind of applications can also been used in other devices such as: PDAs, iPods, music reproductions, video-consoles, calculators, hard disk, routers, etc. To sum up, it is an ideal architecture for all kind of portable devices.

The ARM9 architecture consists of a CPU family which works with 32-bits RISC. The RISC Reduced Instruction Set Computer is a type of microprocessor architecture that utilizes a small, highly-optimized set of instructions, rather than a more specialized set of instructions often found in other types of architectures. The Cortex-A8 processor is a processor which has a special technology features for been used in multimedia applications and signal digital processing. Due to these features, it complements perfectly the processor for offering high diversity applications.

Cortex-A8

The main characteristics of the Cortex-A8 are that in-order instruction issue is less complex than out-of-order because there are fewer structures which means lower power. It can still maintain high IPC with fully symmetric ALU pipelines, all critical forwarding paths supported, can dual-issue dependent on instructions pairs.

Furthermore, it has a static scheduling with instruction replay on memory stall which implicates low-power consumption due to early availability of gate enables, fire-and-forget instructions issue removes key critical paths from the design. In general, the result is a high-frequency designed with full performances that optimize the clock frequency and power consumption.

In the figure below the full Cortex-A8 pipeline diagram has shown.

- 10 -

OMAP 3530 Beagle Board ______

Fig. 4: Full Cortex-A8 Pipeline Diagram.

Now, in the following paragraphs I am going to explain further in what consists exactly the fetch, decode and execute of the Beagle Board.

Cortex-A8 Instruction Fetch

Following with the Fetch, the high quality branch prediction results in fewer replays and lower power Branch prediction maintains 95% accuracy over a wide codebase. The two important characteristics are the dynamic branch predictor components and the branch resolution [4].

Fig. 5: Cortex-A8 Instruction Fetch.

- 11 -

OMAP 3530 Beagle Board ______

Cortex A-8 Instruction Decode

The instruction decode highlights are pending queue reduces Fetch stalls and increases pairing opportunities, replay queue keeps instructions for reissue on memory system stall scoreboard predicts register availability using static scheduling techniques and cross- checks in D3 allow issue of dependent instruction pairs.

Fig. 6: Instruction Decode.

Cortex A-8 Instruction Execution

Once, I have described the fetch and the decode, the execution pipeline highlights are describe further below:

ƒ 2 symmetric ALU pipelines: Shift/ALU/SAT

ƒ Load/store pipe used by instructions in either pipeline

ƒ Multiply instructions are tied to pipe 0

ƒ All key forwarding paths supported

ƒ Static scheduling allows for extensive clock gating.

In the figure bellow it is describe the execution pipeline. Once save the instruction in the architectural register file, there are different options before entering in the arithmetic logic unit. The different options are represented in picture 7.

- 12 -

OMAP 3530 Beagle Board ______

Fig. 7: Execute Instructions.

In the graphic above, when the two bits which contain the instruction entered in the architectural register file they go into: pipe0, pipe 1 or both as it is shown in figure 7 and then the integer writeback in the register.

Multimedia peripheral

Before, I have analysed the fetch, decode and execute of the general porpoise processor. Now, there are described the multimedia peripheral characteristics which are included in the Beagle:

ƒ DSP: TMS320C64xTM DSP

ƒ OpenGL® ES 2.03: compatible with graphics engine. The codec engine is explained further in posterior chapter.

ƒ Video accelerator

In the following table from below there is comparison of OMAP35x Processors families where the main characteristics are explained [6].

3 OpenGL ES 2.0: the standard for embedded accelerated 3D graphics [5].

- 13 -

OMAP 3530 Beagle Board ______

OMAP3503 OMAP3515 OMAP3525 OMAP3530

Applications Software ARM ARM ARM ARM Compatibility Cortex-A8 Cortex-A8 Cortex-A8 Cortex-A8 600MHz 600MHz 600MHz 600MHz

Shared Peripheral Set Peripherals Peripherals Peripherals Peripherals

2D/3D Graphics - Open GL ES - Open GL ES Compatibility 2.0 Compatible 2.0 Compatible

DSP Processing & - - C64x+ DSP C64x+ DSP Multimedia Software & video & video Compatibility accelerator accelerator

Fig. 8: OMAP35x Family.

After this specification the following interesting chapter is the Beagle board hardware.

- 14 -

OMAP 3530 Beagle Board ______

4. HARDWARE

This chapter describes the main hardware which is included in the Beagle Board. First of all for having a good perspective about the main hardware and the expansion peripherals that can be added to the board the picture below shows a schematic of the different components of Beagle Board and it will be describe further in this chapter.

LCD I², I²S, expansion SPI, JTAG DVI-D video out

OMAP3530 USB HS/host Processor S-Video out

SD/mimic Stereo in/out

RS-232 serial USB Powered Alternate Power RAM

Fig. 9: Main components in the Beagle board.

The aim of the following paragraphs is to clarify the hardware of the Beagle Board and their utility; this is shown in the picture above.

In the Beagle Hardware conclusions it will be also studied the main benefit of the dual core architecture of the Beagle Board and what extra hardware is necessary to work with the C6000 DSP as stand-alone system.

Now, after this introduction it will be describe the different components seen in the picture and what is typically used for.

Hardware Beagle Board description:

- 15 -

OMAP 3530 Beagle Board ______

OMAP3530 Application Processor:

This processor contains the following technology describe above:

ƒ ARM Cortex-A8

ƒ C64x+ DSP

ƒ PowerVR SGX

The OMAP3530 applications processor is a 600MHz super-scalar ARM Cortex-A8 which is one of the industry’s highest performances ARM. It works with more than 1200 Dhrystone MIPS. This gives an idea of the computer’s processor speed. It has a 430MHz C64x+ DSP which is HD video capable and has high resolution video, use for portable media player. The PowerVR SGX GPU allows up to 10 Million polygons per sec graphics. It also includes 256MB LPDDR RAM and 256MB NAND flash.

Peripherals I/O: the peripherals I/O are DVI-D video out, SD/MMC+, S-video out (TV out), USB 2.0 HS OTG, Stereo in/out for audio, SPI, I²C, I²S, RS-232 serial, JTAG. It is easily to expand PC peripherals due to the USB and standard PC peripherals which are included on the board.

In the following paragraphs it will be studied further the Peripherals input/output mention above.

DVI-D video out: DVI or Digital Vide Interface is a popular form of video interface technology made to maximize the quality of flat panel LCD monitors and modern video graphics cards. There are three types of DVI connections. In this case has been incorporated the DVI-Digital. It is useful for direct digital connections between source video (namely, video cards) and digital LCD (or rare CRT) monitors. This provides a faster, higher-quality image than with analog, due to the nature of the digital format. All video cards initially produce a digital video signal, which is converted into analog at the VGA output. The analog signal travels to the monitor and is re-converted back into a digital signal. DVI-D eliminates the analog conversion process and improves the connection between source and display.

SD/MMC+: Secure Digital (SD) and Multimedia Card (MMC) slot is included in the Beagle. The SD is a non-volatile memory card for use in portable devices. Nowadays, it is widely used in digital cameras, handheld computers, PDAs, Media Players, mobile phones,

- 16 -

OMAP 3530 Beagle Board ______

GPS receivers, and video game consoles. The MMC is a flash memory card standard which can be used in most devices that support SD cards.

Fig. 10: SD cards pictures 2.GB and 1.GB.

S-video out (TV out): S-video or Separate Video is an analog video signal that carries the video data as two separate signals, lumen (luminance) and chroma (colour). This differs from composite video which carries picture information as a single lower-quality signal, and component video which carries picture information as three separate higher-quality signals. S-Video carries standard definition video (typically at 480i or 576i resolution), but does not carry audio on the same cable.

USB 2.0 HS OTG: The USB 2.0 high speed On the Go allows power the board with 2W maximum consumption. It can be used many adaptors options such as car, wall, battery or solar between others. Another alternate power is provided as we have already seen in the picture above. The usb 2.0 when it is connected to a PC is able to emulate a network connection. Using the network connection emulation it is available telnet into the board. This is loaded with an operating system and can be used to perform software development without the serial cable. This can be useful in case of a USB-based loader is generated or when the Beagle is initialized with a working file system.

In a different scenario the board can work as a ’host’ when connected to a USB hub and permits an endless array of USB peripheral expansion. That can be using the dedicated high-speed host port.

It is also interesting to mention that the Beagle has no Ethernet port because can be easily added via USB.

Stereo in/out for audio: the stereophonic audio or commonly called stereo allows the reproduction of sound using two or more independent audio channels through a symmetrical configuration of loudspeakers in such a way as to create the impression of sound heard from various directions, as in natural hearing.

- 17 -

OMAP 3530 Beagle Board ______

SPI: the SPI or System Packet Interface family of Interoperability Agreements from the Optical Internetworking Forum specify chip-to-chip, packet interfaces and it is commonly used in synchronous optical networking and Ethernet applications. A typical application of such a packet level interface is between a framer (for optical network) or a MAC (for IP network) and a network processor. Another application of this interface might be between a packet processor ASIC and a traffic manager device.

I²C: the I²C or Inter-Integrated Circuit is a multi-master serial computer bus invented which is used to attach low-speed peripherals to a motherboard, embedded system, or phone.

I²S: the I²S Integrated Inter-chip Sound, is an electrical serial bus interface standard used for connecting digital audio devices together. It is most commonly used to carry PCM information between the CD transport and the DAC in a CD player. The I2S bus separates clock and data signals, resulting in a very low jitter connection. Jitter can cause distortion in a digital-to-analog converter. The bus consists of at least three lines: bit clock line, word clock line (also called word select line) and at least one multiplexed data line.

RS-232 port: the RS-232 (Recommended Standard 232) is a standard for serial binary data signals connecting between a DTE (Data Terminal Equipment) and a DCE (Data Circuit-terminating Equipment). It is commonly used in computer serial ports and the RS- 232 port can be utilized for boot-loader and kernel debug messages (cf. Chapter 6).

JTAG connexion: the Joint Test Action Group (JTAG) is the common name used for the IEEE 1149.1 standard entitled Standard Test Access Port and Boundary-Scan Architecture for test access ports used for testing printed circuit boards using boundary scan. JTAG is often used as an IC debug or probing port. The JTAG connexion provided in the Beagle is use for real time debugging and emulation.

RAM: the LPDDR RAM or LP Double Data Rate RAM supports data transfers doubling the memory chip's data throughput. DDR-RAM also consumes less power, which makes it well-suited to notebook computers. The Beagle board contains 256MB LPDDR RAM and is doubled from 128MB to 256MB which improves the yield of the board.

FLASH: The board contains a NAND Flash. The NAND flash has a different internal structure, which resembles a NAND gate. Several transistors are connected in series, and only if all word lines are pulled high (below the transistors' VT) is the bit line pulled low.

- 18 -

OMAP 3530 Beagle Board ______

These groups are then connected through some additional transistors to a NOR-style bit line array. For reading most of the word lines are pulled up above the VT of a programmed bit, while one of them is pulled up to just over the VT of an erased bit. The series group will conduct and pull the bit line low if the selected bit has not been programmed.

Despite the additional transistors, the reduction in ground wires and bit lines allows a denser layout and greater storage capacity per chip. NAND flash uses tunnel injection for writing and tunnel release for erasing. Exactly, the Beagle board contains a 256MB NAND Flash.

In the figure below it is shown the NAND Flash structure.

Fig.11: NAND Flash memory structure on silicon.

For further information and more explanation about all the hard that contains the Beagle visit can be found in the Beagle Board datasheet [3]. 4.1. BEAGLE HARDWARE CONCLUSION

After studied this chapter about the main hardware in the Beagle Board it is important to stretch the following points as previously discussed.

The C64x DSP and the ARM Cortex A8 can work separately one from each other which it is good for programming both general purpose and specific purpose.

A good feature is the high quantity of RAM which has the Beagle that permits doubling the memory chip's data throughput.

On the other hand, as mention previously the Beagle has not Ethernet port; needs to be added via USB and in my point of view could be an option for improvement to add Ethernet interface.

- 19 -

OMAP 3530 Beagle Board ______

Last but not least, the big number of Peripherals input/output and the easily peripherals expansion that contains the board make fit well in a wide range of applications and scenarios which some of them will be describe in chapter 7.

Once already studied the technology and the main hardware included in the Beagle the following chapter explains the software.

- 20 -

OMAP 3530 Beagle Board ______

5. SOFTWARE

Nowadays, innovators and customers want to add more capabilities to their projects. In order to help them realize their needs, even more of them are requesting open source software, especially Linux-based software. Beagle Board is committed to driving open source technologies and take a more active role in the open source community to quickly innovate better Linux-based software solutions running on TI processors. To complement the DSP solutions companies have added an ARM processor, high-level operating systems like Linux as it is a key requirement in the embedded market. Texas Instruments has been supporting DaVinci™ digital media processors and OMAP™ applications processors via MontaVista™ Linux. Therefore, the Beagle board based on Texas Instruments´ OMAP technology is also designed to support Linux. 5.1. WHY OPEN SOURCE?

Developers and innovators increase their interest in focus their innovation efforts on open source and implement new and more speculative features in the software. They want to work with the community version of Linux for creating innovative products. The result is leads to faster innovation and better solutions that let developers modify the code quicker for finding new applications and faster innovation. Additionally, they have available the source code faster than the release cycles of the internal product development.

Finally, the faster innovation is done by:

ƒ Collaboration. The developer community can make valuable contributions suggesting improvements or helping to fix bugs that they find in their projects. Further, the potential users can have available what the kernel will look like when it enters commercialized distribution. This is important because the customers can have an influence in the product.

ƒ Constant updates. Designers can be sure that the products which they are developing will take advantage of the most recent kernel improvements. Moreover, they can have available the newer kernel features and also they have the possibility to move up to newer kernels. The result is a commercial advantage because the vendors are not worry about the need of the constant drivers update to support the latest kernel when performing update patches because the open community has the latest version available.

- 21 -

OMAP 3530 Beagle Board ______

ƒ Community support. The developers and some of the world’s top programmers around the world collaborate to have the latest open source software.

ƒ Quality improvement. All the world community can make suggestions on improvements and is faster than an individual or a team working alone.

ƒ Faster feedback. In the Open Source Community there are experts from different fields of knowledge such us wireless, medical, video, ... . All the diversity makes possible that the developers can incorporate multiple technologies in different fields integrated together.

ƒ They are able to provide faster feedback on product requirement and tools.

ƒ Peer support. The peer support is referring to software project that has been completed. A few people who have been working with the software during its development are in an excellent position to support peers in the community who later work with this software for provide a long-term support.

ƒ University minds. Thanks to the inexpensive development platforms and the free code availability universities are being involved in the Beagle Board use and they contribute with their talent to the community as well. 5.2. WHY LINUX?

Of some of the embedded operating systems it has been choose Linux because the Linux community has become is focussing on leading-edge software development. Linux is becoming operating system choose for the developers and is used widely in many electronics applications. Further, has a lot of features and networking capabilities for providing greater flexibility. In addition, compared to proprietary operating systems Linux offers developers convenience and more control and visibility.

Below are describing some of the reasons of the Linux selection:

ƒ Vendor independence. Linux source code is freely available for application and platform development. Original equipment manufacturers (OEMs) can work with a commercial Linux distribution (for example MontaVista) and then they can develop systems software by themselves using open source software. It also exist the possibility of do a combination of both.

- 22 -

OMAP 3530 Beagle Board ______

ƒ Customization and optimization. Linux allows original equipment manufacturers to have all the control over their particular applications. The Linux kernel and driver code, and most of the operating system utilities and tool chains, are readily available in source form.

ƒ Reference code. Linux is a reference of implementations for technologies in embedded systems. Actually, the open source community supports a great diversity of standards, specifications and application types.

ƒ Recent kernel updates. Designers have available the latest Linux kernel optimized for their devices. In contrast to commercial distributions this step takes a little longer time period to put a new kernel into their offerings. However, adds extra applications, utilities and test for robust commercialized products.

The open source for the OMAP35x platform and TMS320C64x+™ DSP processors provides a good combination for having optimized GUI or General User Interface, computing and multimedia experience. Finally, the OMAP 3 platform consist on an open, flexible, complete system solution for advanced graphics standards, including OpenGL® ES 2.0 and OpenVG™ support. Below are further information about the open source OpenVG™ and the open source OpenGL® ES 2.0.

ƒ OpenVG™: OpenVG is a standard API designed for hardware-accelerated 2D vector graphics. It is aimed primarily at cell phones, media and gaming consoles such as the PlayStation 3, and other consumer electronic devices. It will help manufacturers create flashier user interfaces that are less dependent on CPUs. OpenVG is well suited to accelerating Flash or SVG sequences. This open source allows universities to create entirely new and unique products, or expand on their current products with additional innovative features. The DSP that contains Beagle is a DaVinci™ which is a digital media-based processor optimized for digital video systems. This DSP is a DSP-based system-on-chips (SOCs), multimedia codec’s, APIs, frameworks and development tools.

ƒ OpenGL® ES 2.0: The OpenGL or Open Graphics Library is a standard specification defining a cross-language for writing applications that produce 2D and 3D computer graphics. The main different between the OpenGL and the OpenVG is that the OpenGL is especially oriented for writing projects in 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-

- 23 -

OMAP 3530 Beagle Board ______

dimensional scenes from simple primitives. OpenGL was developed by Silicon Graphics Inc. It is widely used in CAD, virtual reality, scientific visualization, information visualization, and flight simulation. It is also used in video games, where it competes with Direct3D on Microsoft Windows platforms. The open source for the broad market for OMAP35x provides all the components needed to develop on OMAP35x devices, incorporates application-specific daughter cards and support for Linux developers. An OMAP35x processor provides Linux board support package based on the 2.6.22 kernel, in addition to peripheral drivers, U-boot for boot loading and a Busy box-based root file system.

Another important term that appears studying the software is a Git Tree and will be describe in the following subchapter. 5.3. WHAT DOES OMAP COMMUNITY GIT TREE CONSIST OF?

A concept that we need to introduce for getting deep in the knowledge of the benefits of the Beagle Board is a git tree. First, a Git is a version control system and a git tree is where you go to see the version history and status of a given Linux kernel or other project. This concept is important because if you want to download the latest version of the software you need to visit the public OMAP git tree [6]. That is why is so useful to have the latest version that come one step in advance in comparison to the latest release. And specially because for having access to the latest version is free due to is supervised for the community and for having access to the latest release normally is associated a real cost.

On the ARM Cortex-A8 core under Linux are running all of the PSP drivers. These drivers are provided in source form to facilitate porting to the hardware that developers are designing. The advantages and benefits of following the latest kernel tree are numerous because you can pick up and take profit of the new features others have contributed. Furthermore, it is easier to apply patches. The PSP drivers implement the standard Linux interfaces, such as Advance Linux Sound Architecture (ALSA) for audio and Video 4 Linux 2 (V4L2) on the display subsystem [7].

- 24 -

OMAP 3530 Beagle Board ______

5.4. DIGITAL MEDIA SOFTWARE

In this chapter we describe the digital media solutions software that basically is used for reduce cost, not only real cost if not development cost as well. The first concept that will be described is the Codec Engine. It will be study why is so useful this software framework.

5.4.1. CODEC ENGINE

The Codec Engine is the primary application running on DSP/BIOS on the DSP for OMAP technology. This is a software framework designed, maintained and supported by Texas Instruments to specifically run all the signal processing algorithms. This important concept appears studying the advantages of the Beagle Board because it is used for running so efficiently on the DSP part of the hybrid System on Chip described a little bit before in the introduction chapter. This so important because the latest multimedia electronic devices use digital signal processing for playing, storing, sending and receiving different kinds of media applications and the software need for this is the codec engine. Designers use sophisticated software codec’s that are needed for compressing-decompressing. The difficulty comes when designers must choose one or more algorithms to run on each device to fully enable OMAP devices. These algorithms are called eXpressDSP Digital Media Software and I will describe further in the points below. In the following picture we can see how the codec engine provides a robust and consistent interface for the applications and the algorithms through some functions:

Resource Pool

App Codec Engine Algorithm

VIDENC_create () XDM handshaking (VISA interface) (iAlg, iDMA interfaces)

Fig. 12: Codec engine interacts between the application and the algorithm through some specific functions.

- 25 -

OMAP 3530 Beagle Board ______

To sum up this software is used for different applications in relation to algorithms; however the most typical basically are the two mentioned below:

ƒ Dynamically creating and deleting algorithms

ƒ Accessing and controlling algorithm instances

Following with the explanation, it will be described further why is so useful the Codec Engine regarding, the two points describe above which let researchers create new algorithms:

1. Dynamically creating and deleting algorithms. The Codec Engine provides standardized process and control calls for using new algorithms that the researchers create. It means that allow algorithms of the same class to be easily exchanged without any modification to the application code. In the figure below there is a more representative figure which helps to describe this case:

Codec Engine Algorithm A App

Algorithm B

Fig. 13: Codec Engine allows an easy integration of new algorithms.

2. Accessing and controlling algorithm instances.

In this case allows the same application code to be used across a variety of platforms as it is represented in the picture 13 without any special modification. Here is a representation of the architecture which is used in the Beagle with the dual core: ARM and DSP.

The figures 14, 15 and also 16 are showing a comparison between the using one ARM core, utilizing only the DSP core or the two technologies ARM and DSP at the same time.

- 26 -

OMAP 3530 Beagle Board ______

Arm only (DM355)

App Codec Engine Algorithm

Fig. 14: Codec engine acting with ARM.

DSP only (DM643)

Codec Engine App Algorithm

Fig. 15: Codec engine performing with DSP.

Once understood how the codec engine interacts with one core, the following step explains how the codec engine perform with the dual core as it is shown in the picture below.

Arm + DSP (Beagle board technology)

App Codec Engine Algorithm

Fig. 16: Codec engine acting with dual core.

The software of the codec engine for the Beagle board make independent the algorithm from the application which means that can be used in other independent applications.

There are different codec standards used for taking benefit of all the features of OMAP devices. These codec’s are specifically indicated for audio, video, voice and image.

The Codec Engine is important because allow that they work all together. All of these codec standards are especially indicated for Real Time Software Components. The currently available codec’s for the C64x are mentioned in the table below4 [8]:

4 D1: 720x480; SP: Simple Profile; MP: Main Profile; BP: Base Profile

- 27 -

OMAP 3530 Beagle Board ______

VIDEO AUDIO IMAGE VOICE

H.263 D1 encode AAC LC encode JPEG encode G.711 (baseline profile) H.263 D1 decode AAC LC decode G.726 JPEG decode H.264 BP D1 encode AAC HE decode G.729AB (baseline profile) H.264 BP D1 decode MP3 decode G.723.1

H.264 MP@level 3 D1 decode AC3 decode G.722.2

MPEG2 MP@level 3 D1 decode WMA9 decode

MPEG4 SP D1 encode WMA8 encode

MPEG4 SP D1 decode

Fig. 17: Table of the some of the codec’s for the Beagle.

Now, once introduced some codec’s for the Beagle, then in the following figure it is explained the generic conceptual view of the Codec Engine that it will be studied further in the following points describe below:

App

VISA API Engine API

xDM xDM

Codec Codec Engine SPI

Engine

DSP/BIOS

Fig. 18: Conceptual view of the codec engine. The Application is divided in the VISA API and the Engine API.

- 28 -

OMAP 3530 Beagle Board ______

As it is shown in this picture 18, the Application interfaces to the Codec Engine Framework through the following: VISA API and Class Functions and Engine API Functions.

These standards allow researchers work with the latest video or audio algorithms to easily integrate multiple codec’s into their own projects. We have to mention that there are a lot of algorithms available in the TI web site and others from other companies [9]. Furthermore, there are developers that are creating new algorithms for improve the quality applications all the time.

Some of these algorithms already exist in the industry and are standards (for example, MPEG4, H.264 and so on) however they are also creating new standards for adapting to the existing technology. Due to this high variety of algorithms and because there are a big flexibility using them there are also additional standards that need to be add to the applications. These standards consist on some rules that allow more than one algorithm work at the same time and they avoid a lot of problems in real time systems.

The main codec standards that it will be study in this work for being the most currently are the following:

ƒ XDAIS (eXpressDSP Algorithm Interoperatibility Standard)

ƒ XDM (eXpressDSP Digital Media)

ƒ RTSC (Real Time Software Components)

5.4.2. XDAIS

The first standard that will be described is the XDAIS or eXpressDSP Algorithm Interoperatibility Standard because. This one is the first because it is the most general standard. This standard consists on different rules that allow the codec’s work together properly. The function of this standard is really important because is acting in projects where there are different codec’s and all of them have to work at the same time in a single system.

Basically, XDAIS is an extensive set of rules and guidelines to make codec’s work appropriately all together [10]. There are different sections to consider in the XDAIS: rules, guidelines and generic interfaces [11]. The interesting aspect of this standard rules is

- 29 -

OMAP 3530 Beagle Board ______that the researchers who are using the algorithm, they don´t need to know the number of rules or what they do exactly. This standard coordinates the request coming from the different codec’s working at the same time and is specially indicated for supplied with resources that the codec’s need. The main work of the codec interfaces are being sure that the codec’s have the assignment of the critical resources. And with the XDAIS the system make the decision of who gets what the codec’s need.

The XDAIS standard is created to allow multiple algorithms that exist at the same time in an application. It achieves this by preventing in the algorithm use of critical system resources, such as memory and DMA. On the other hand, the algorithm has to implement two interfaces (IALG and IDMA) that are then queried by the application framework to determine the memory and DMA needs of the codec. The IRES interface depends on the algorithm needs. The framework can then ensure that the resources granted are not already in use by another algorithm. As a result, it is easier to reutilize algorithms that are XDAIS- compliant, especially when utilizing algorithms from multiple sources.

The three core interfaces which XDAIS standard defines for working properly are explained further below:

ƒ IALG: This interface is one of the most important because is required by all algorithms. It handles each algorithm´s memory requirements. That means that enables sharing of scratch memory between algorithms that will not pre-empt each other. It also permits more efficient use of the memory due to the total scratch memory requirements may be reduced.

ƒ IDMA3: It is use when the algorithm works with some types of DMA resources on the DSP C64x+ inside the Beagle because IDMA3 is in charge of coordinate them. This is the latest version of IDMA. With this algorithms can request exclusive EDMA3 resources that they own or dynamically share a pool of DMA channels with other algorithms. Thanks to the IDMA3 it can be ensure that the resources granted are not already in used by other algorithm.

ƒ IRES: This third interface is necessary if the algorithm needs to use other resources. The resources could be for example hardware accelerators [12]. As it has explain in this chapter the codec’s or algorithms should be XDAIS compliant and for ensure this for a given codec it can be used a tool called QualiTI compliance (release

- 30 -

OMAP 3530 Beagle Board ______

6.24 Software XDAIS 6.24 [13]). This tool will emit pass or fail for each rule tested. For each failure, it will indicate precisely what failed possible reasons for the failure and suggested ways to fix it.

The latest releases of XDAIS have extended the standards which already existed to add 'plug-and-play' capabilities for different multimedia codec’s commonly used.

5.4.3. XDM

The second standard is the XDM which is a Standard Interface for Common Classes of Codec’s. This standard is complemented with the XDAIS standard because solved the limitations of the XDAIS. As we have describe above the XDAIS is in charge of handling the rules, guidelines, and interfaces that are common to all codec’s.

However a limitation appears due to the XDAIS standard cannot know which the specific nature of interfaces are used in VISA (Video, Imaging, Speech and Audio codec). That means that users and researchers who want to develop their own interfaces are looking for an easy exchange of the video codec. The system need to easy be able to change one video codec for another or swap brand A for brand B. The principal work of the XDM consists on integrate the replacement of a variety codec interfaces into the system. The XDM allow extend the original XDAIS standard to address this specific issue. The XDM standard is in charge of specifying encoder and decoder interfaces for the four classes of algorithms: video, audio, speech and image.

To sum up, the main benefit of developing XDM interfaces on certain classes of codec’s is provide them with interchange ability. That means that with this interface should be easy replacing one version of the XDM MPEG4 video codec with another different version of the same codec. The application is independent of specific video codec in question and only is necessary to know about the XDM interface which makes an easy use for all the different codec’s.

The XDM interface is distributed with the XDAIS product, in the ti.xdais.dm package (describe in the 5.4.2 XDAIS chapter).

The following question is: how to check if the algorithm is XDM compliant? First of all it is necessary to be sure that the algorithm is XDAIS compliant using the QualiTI compliancy tool (cf. 5.4.2 XDAIS chapter). Then, there is no similar test for xDM compliance as for XDAIS. This requires runtime execution of the codec, which the

- 31 -

OMAP 3530 Beagle Board ______

QualiTI tool does not support. The closest thing is to integrate the codec and the test app into the Codec Engine environment and enable the Codec Engine CE_CHECK feature (it is available in CE 2.20 and later). If there are any violations found will be emitted in the trace logs.

In the case of the Beagle Board as is a dual-core device it is also important enable checking in the Server executable. This can be done by adding the following line to the DSP-side config script:

xdc.useModule('ti.sdo.ce.Settings').checked = true;

Once studied the XDAIS and the XDM codec standards, the next standard explain will be the RTSC.

5.4.4. RTSC

The RTSC or Real Time Software Components is an open source initiative to help standardize embedded systems including DSP and 16-bit micro-controllers. It is also based on rules and guidelines that the codec packages follow for being the standard RTSC- compliant. Some of these rules are related to package name, package files, package compatibility, etc.

The RTSC consist basically in providing packaging requirements such us delivery, configurability and assembly. Delivery is referring to standard and documentation. Configurability is useful when creating a new codec version. Finally, assembly makes reference to modularity. The RTSC project provides tools using the C language for targeting all embedded platforms. The need of the RTSC-compliant is for having a control of the codec’s that currently exist.

An interesting tool referring to RTSC is the Server Package Wizard [14]. The RTSC Server Package Wizard generates the files needed to create a server package containing one codec including:

ƒ XDC files like package.xdc and package.bld

ƒ A TCF file (for BIOS 5 RTOS configuration)

ƒ XDC Configuration scripts (for both server and codec)

ƒ A C file containing a simple main() implementation

- 32 -

OMAP 3530 Beagle Board ______

ƒ Linker command file

It is also important to mention that there are some software prerequisites for the Package Wizzard installation:

ƒ Codec Engine 1.20.02 or greater

ƒ Codec Engine Tools (found in CE directory) or XDAIS 5.21 (or greater)

ƒ DSP/BIOS

ƒ XDC Tools 2.95 or greater

Once the wizard has finished generating the necessary files the server is generated by running the xdc release command.

For being able to create the package it is necessary to follow some steps illustrated in the figure below.

RTSC PACKAGE

RTSC CODEC PACKAGE WIZARD

INPUTS: RTSC codec package

OPTIONAL INPUTS: Platform Codec Module Name Output Repository for the server Server Package Name

PREREQUISITES:

Codec Engine 1.20.02 or greater, Codec Engine Tools, XDAIS (greater 5.21) DSP/BIOS, XDC Tools 2.95 or greater

Fig. 19: RTSC conceptual image.

- 33 -

OMAP 3530 Beagle Board ______

In the figure 19, it is observed how the RTSC package is created. First of all, it is necessary some software prerequisites, then once introduce some inputs and optional inputs the RTSC package is created. The last step is running the xdc release command.

5.5. BEAGLE SOFTWARE CONCLUSION

These combinations of the ARM, DSP core and hardware acceleration blocks and peripherals are especially relevant for designers due to allow them use a full software and tools for their needs. The software development platform enables the product development for advanced video applications and this also helps significantly shorten the development cycle.

Beagle Board has an active role in the open source communities, especially in the embedded Linux community, by pushing content upstream, actively monitoring mailing lists, joining organizations, forums, creating partnerships, and increasing its reach and cost effectiveness of devices and development boards to developers. The right hardware and software allow developers to participate in the community by getting access to the latest kernel versions. Independent on the application or the experienced the development team, the Beagle Board organisation is working to make it easier than ever to create applications around Linux. Designers, developers and also students will have open and immediate access to the expertise of a worldwide community to drive faster innovations and better solutions.

Codec Engine Benefits

After doing the study about what consisted codec Engine on and the functions, basically, to sum up this chapter the Codec Engine Framework benefits are describe more in the paragraph below:

ƒ Allow multiple algorithm channels (instances)

ƒ Can be used dynamic (run-time) algorithm instantiation

ƒ Use plug-and-play for algorithms of the same class (inheritance)

ƒ Share memory and DMA channel resources

ƒ Allow algorithm interoperability with any C·-based framework

- 34 -

OMAP 3530 Beagle Board ______

ƒ Same API no new learning curve for those who have been use the DM644x

Many of these benefits described above are a direct result of the object oriented structure of the codec engine.

It is also interesting to mention that there are also some mechanisms that allow verifying the quality for the codec’s creators before to use in the system integration.

- 35 -

OMAP 3530 Beagle Board ______

- 36 -

OMAP 3530 Beagle Board ______

6. PRACTICAL

This practical chapter will be divided in two main parts. In the first subchapter, I will explain my practical experience working in Texas Instruments and how the training they provided me during the time I was working there was useful for realize this work and helped me to understand the OMAP3530 technology. In the second subchapter, I will be running some beagle board labs with Linux in the ARM core and using Code Composer Studio with the DSP. These labs will help to understand the importance of introducing dual core technology for teaching in universities.

The first subchapter is described below which describe my main task during the experience at Texas Instruments and how that helped me to realize this work. 6.1. WORK EXPERIENCE

In the following chapter as a consequence to my 13 months internship at Texas Instruments I realized a project parallel to my main task described in the introduction chapter.

The company in July 2008 needed to start to introduce Beagle Board to Universities. An easy way to let academicals know about this board is trough trade show. The company gave me the opportunity to do it in one trade show that took place in Nürnberg on March 2009 [15]. There, I had the possibility to talk directly with my customers (basically professors, researchers and PhD) and explain with more details where Beagle can fit well in their applications. The information I provide about the Beagle that I gave the customers in the trade show was based on my 8 months working experience in TI. Some Universities around EMEA provide me with their plans they have for starting work with ARM and DSP in research projects and in Laboratories for teaching dual core (ARM and DSP) technology. The two principal applications I noticed were some of them wanted to work with ARM side running the Beagle with Linux, others wished to work as a DSP C6x+ stand alone system running with Code Composer Studio. When I explained the features of the Beagle Board the acceptance of the OMAP35 technology was in almost all the cases an exit; that was because the Beagle allows achieving all the Academicals entities goals: implement a high number of powerful applications in different fields. I believe the main reason of this success was because universities need to follow the steps the market is

- 37 -

OMAP 3530 Beagle Board ______doing. That is why the aim of this chapter is provide a practical perspective of running both systems: ARM and DSP. I also stretch the importance of understanding the interaction of both of them.

Another important place to promote the board is in my diary work at Texas Instruments based in Freising, Germany. During my time at TI basically the main function, as I mentioned before in this work, was give technical support to Universities and academicals institutions customers.

For proceed with my principal goal at work and be sure that this would be a completely success I had to manage different projects even from the first week at work consisting in a wide range spectrum in an interactive atmosphere. That means receiving formation and also providing knowledge to different teams.

The first step was the formation I have achieved. The training was an important investment that would last during all my complete internship. First of all, I had to travel to Prague to visit a TI outsourcing where it is located front line Customer Support Team (TI call centre for east countries). Once arrived there, I helped to promote European University Program in Easter Europe countries during my second week at work in TI. The results of that promotion one year later have been shown in every of my monthly report. In my statistics reports can be appreciated a high increment in the number of the queries coming from east countries every month.

My statistics reports that I have to write by the end of every month are useful documentation for study and have a full control about the market tendency referring to academicals entities. The first point of the report is about the formation I receive or the training I give to others that month. Secondly, I provide with some statistics based on my monthly work about the number of inquiries I receive from the EMEA countries. Then, analyzing what type of questions I get using the Part number of the product and separating in the different category basically: digital and analog.

The digital family consist on: MSP430, C2000, C5000, C6000, OMAP, and DaVinci. The digital classification of the Texas Instruments embedded processing portfolio is in the picture below [16].

- 38 -

OMAP 3530 Beagle Board ______

Fig. 20: TI embedded processing portfolio

In the analog family we can find: Amplifiers, Data Converters, Interface and also we include ChipCon. The analog product for excellence was ChipCon; however after a Data Converter promotion the numbers of inquiries from converters begin to grow. Once separated this results the next step is doing some statistics referring to the average of inquiries coming from analog or digital.

For being able to getting start in a short period of time with deep technical inquiries about the C2000 family I assisted to 4 days TMS320C28x™ DSP Workshop that took place in Landshut, Germany. That workshop covered the F2833x devices, which are the latest members of C2000 DSP family. First of all, it has been explain how to use Code Composer Studio Platinum Edition 3.3™ to build and debug projects. In this workshop, I have studied the system initialization, peripheral setup, programming an application into flash memory, DMA, DSP/BIOS, IQmath, and the Flash Plug-in utility. There were also Lab exercises using the eZdsp F28335 [16] development board which I consider very useful for my diary work. It helped me also in the realization of this work because I got deep knowledge about general structure of real-time controller and the different peripherals.

After that, I also participated in a 4 days TMS320C64x/C67x™ DSP System Integration Workshop that took place in Landshut too. This workshop allowed me to have a general perspective of C6000 DSP-based system family. The main discussion topics were: basic and advance memory management, EDMA, Hardware Interrupts (HWI), configure and use the serial port (McBSP), channel sorting using EDMA, using double buffer, external memory interface (EMIF), cache between other discussions. I was using in that workshop

- 39 -

OMAP 3530 Beagle Board ______the C6713 DSK and C6416T DSK platform to program the EDMA for moving data onto the processor, navigating double-buffers and sorting data into left and right channels. In my point of view I consider quite useful because makes use of TI´s Chip Support Library (CSL) and DSP/BIOS real-time scheduling which I receive a lot of customer´s cases. However, I appreciated that programming the C6000 family was more difficult than the C2000. This family of DSPs suits well in applications specially oriented for video, audio and multimedia. I found this workshop quite useful for write this work because it is similar to the DSP that contains the Beagle and helped me to understand much better how the DSP/BIOS is working and which are some of the multimedia codec´s standards available (cf. chapter 5.4 Digital Media Software).

Following, due to my position as a back-end applications support engineer and a consequence to the dynamic of the company of restructuration departments during the year I worked in TI, I travelled to Prague again. There were an increase of new agents who needed formation and I provide technical training to the new front-line team based in Prague responsible not only for east countries if not for all EMEA.

Meantime, I received technical trainings about the latest tools that the company acquires (the new devices are coming from internal designers and also coming from other companies that TI company buys) in a different ways: webex or conference rooms.

The webex consist on internet trainings giving by people working around the world by Texas Instruments. In webex basically you see an expert about the product providing other departments further information about the expert area. First of all, they explain a subject and then there is a forum or chat between all the webex participants where you can raise your hand and ask if you have questions about the topic in real time. A positive aspect regarding webex is that is an economical way to go on providing training, formation and sharing knowledge without considering the cost of travelling. I was allowed to follow these training at my work desk from my PC. Some of the webex they provide me were quite interesting for this work especially for the chapter 8, the state of art of the OMAP3530 technology. It has been useful for seeing the road map of this technology.

The conference rooms follow the same aim as the webex however is the easiest way chooses for giving training and providing knowledge coming from different departments based in TI Freising.

- 40 -

OMAP 3530 Beagle Board ______

Meanwhile, I carried a parallel projects and one of them is the aim of this work. Once, I have done an explanation about my main task at work we will be running beagle board demos. 6.2. BEAGLE BOARD LAB

In this chapter, once studied how the Beagle Board works I focus on build and Boot Linux in the Beagle Board and then run some demos; this will be used for working with the dual core technology. First of all, I will do the Beagle demos with ARM running on the Linux Core; secondly, I will run the Beagle Board as a standalone working with the DSP and Code Composer Studio version 3.3. I have chosen in fact, these two scenarios because I consider the better way to understanding the dual core technology. This dual core view makes the board good for incorporating in Universities for teaching the dual core technology between other aspects considered in conclusions chapter.

I will describe how to Boot the Linux in the first part and what we need for program the board and I will explain the meaning of the command for being able to running the Beagle as standalone and understanding the steps which is necessary to follow. These labs are good for seeing some of the applications working with the Beagle board. More exactly, I will follow the instructions for Boot the Linux and programming the board for acting as computer.

I divide this chapter in different sub-chapter because in that way is easy to follow the steps for running with the Beagle.

6.2.1. HARDWARE NECESSARY FOR THE APLICATION

Once I have done this Beagle board introduction let´s start to understand the programs needed to install for being able to run Linux in the beagle board. In the scenario I am going to reproduce the first step is to boot the Linux in the Beagle. Once, it will be good to check all the peripherals before starting to work with the Beagle as desktop Linux computer.

First of all and before programming the Beagle Board we need some specific hardware and software that will be describe further below. When I open the box which contains the Beagle board I only find the 3"x3" OMAP3530 Board (see chapter 4, fig.4), so that means that it is necessary to connect any other extra hardware if the application requires them.

- 41 -

OMAP 3530 Beagle Board ______

For this application, it is necessary connect some extra hardware to the Beagle and these are the following: ƒ USB keyboard ƒ USB mouse ƒ USB Ethernet network adapter ƒ DVI-D monitor

Once I have the keyboard and the mouse, I need to be sure that the adapter used is a mini- A to standard-A USB adapter. This is important because the mini-B adapters will not work without additional hardware modifications. For this reason, it is necessary to build support for USB host mode into the kernel. One of the first problems came using a keyboard and mice that need a higher power than 100mA. The solution was to use a keyboard and a mouse working with less than 100mA or another possible solution it could be also providing them with a powered hub.

6.2.2. BOOT OPTIONS

One of the first things for understand in a lab are build, boot the Linux and the boot options that has the Beagle. Regarding the software, the Beagle Board ships with U-Boot and X-Loader factory default software in flash, however there is no Linux kernel or file system on the board by default, as opposed to the others platforms.

Applications

CPU Kernel Devices Fig. 21: Kernel Layout: the kernel is the central component of most computer operating systems. Its responsibilities include managing the system's

Memory resources (the communication between hardware and software components).

Following with the explanation, it will be describe below what the U-Boot and X-Loader do and why it is necessary to use also other specific software.

- 42 -

OMAP 3530 Beagle Board ______

The U-Boot is an open source boot loader available for a wide range of embedded processor architectures. Without a good boot loader the Beagle is just a complicated hunk of silicon with nothing to do. That is where the U-Boot, a free software universal boot loader, steps in. A boot loader is a small piece of software that executes soon after powering up an embedded system or in that case the Beagle Board. After performing various system initializations, it executes the boot loader located in the MBR (master boot record). The boot loader then passes system information to the kernel and then executes the kernel. For instance, the boot loader tells the kernel which hard drive partition to mount as root.

At a minimum the embedded loader provides the following features:

ƒ Initializing the hardware, especially the memory controller. ƒ Providing boot parameters for the Linux kernel. ƒ Starting the Linux kernel

The XLoader is an executable program that is usually installed without user consent or knowledge. XLoader may display advertisements in various forms including Pop-up Ads, Pop-Under Ads, Button Links, Taskbar Bubbles, and other forms. However, XLoader may cause a slow internet connection as well due to the increased usage of bandwidth.

Once describe what ships with the Beagle Board from the factory, for installing a Linux system on the board, there are available some standard options which will be mention later on this chapter. The different options of getting Linux to run on the Beagle Board are through a boot. The various boot options in the Beagle Board are: Nand, Serial, USB and MMC/SD.

The user button is used for select the boot source at boot. The default option follows this priority:

1. NAND

4. 2. USB MMC/SD

Fig. 22: Priority order for booting: NAND -> 3. SERIAL USB -> serial -> MMC/SD.

- 43 -

OMAP 3530 Beagle Board ______

If the user button is pressed, the priority changes order and it is as it is indicated in the following diagram:

1. USB

4. NAND 2. SERIAL

3. Fig. 23: Priority order for booting if user MMC/SD button is pressed: USB -> serial -> MMC/SD -> NAND.

The user button allows a change in the boot sequence, for example, booting from USB instead of from NAND.

Between all the previous options I choose boot from the MMC/SD because the procedure chooses is described in the Beagle Board's hardware reference manual (Beagle Board HW ref manual from p.110). It will give us a Linux kernel booting from an SD card (FAT32- formatted5) and a Linux file system which can be accessed through the board's serial port. However the weakness is that there does not seem to be a graphic server.

It is important to understand how the boot code works. The boot code is in ROM, which means that even if the flash is erased, the boot code it is always there.

6.2.3. SOFTWARE NECESSARY FOR THE APLICATION

As previously discussed in this chapter Linux will be running in the Beagle board. Now, the following question is: which Linux distribution we should choose for running the application? There are different desktop Linux distributions which are support for the Beagle. In the application we are planning to run the best option is Angstrom because it has been ported to the Beagle and is included as part of the distribution.

5 FAT32: File Allocation Table or FAT is a computer file system architecture now widely used on most computer systems and most memory cards, such as those used with digital cameras.

- 44 -

OMAP 3530 Beagle Board ______

In these labs I was using a Windows PC, and then it is necessary to install some extra software for being able to boot Linux. There are different options depending on the operating system used in the PC. In case of using a Linux PC for development, then there are no needs for adding the following software. In case of use other operating system such for example Windows, which is currently more extended, it is necessary to install software for recreate a virtual machine for been able to run Linux on windows. The software added in this case was the following:

ƒ Terminal Emulator: The terminal emulator choose is TeraTerm Terminal Emulator Software [18]. With this software it will be connected with the PC´s serial port. Once booted up in Linux, this software also can be used as an SSH Client with the Beagle. Free download in the link below: ƒ Virtual Machine Software: This is a "virtual machine" application that will allow the user to run a Linux PC in a window under Windows. The Free VMware Player Software it is necessary to format and load SD Cards [19]. ƒ VMware Image of Ubuntu Desktop: the Chrysaor is a free Ubuntu Desktop for VMware Player with 8 GB Hard Drive [20]. ƒ 7-Zip: 7-Zip File Manager is a free compression/decompression archiving software. This is a utility that allows up unpacking the Ubuntu Zip file [21].

Now, I have a Linux machine in the VMware window. The next step is to program SD cards for the Beagle.

There is an option for connecting to an IRC Beagle board chat group if it is previously installed the Free IM:

ƒ Free IM/Chat Client: as optional it is possible also to connect the Trillian Basic 3 which it is a Free IM/Chat Client. This can be use for connecting with the Beagle IRC Chat group (irc.freenode.net /join #beagle).

6.2.4. STEPS FOR CONNECTING AND VERIFY PHERIPHERALS

Once installed all the software needed for build and boot Linux, it is good to check the peripherals plane to use in the application.

The first step is to connect the cable DB9-M to IDC-10 serial port (AT-EVEREX) for transmit and verify the data through the TeraTerm previously installed in the chapter

- 45 -

OMAP 3530 Beagle Board ______above. For being able to connect this cable into the board the pin number ten should be removed carefully.

The connexion is as follow:

Connect the DB-9 (Pin 1) to the IDC-10 (Pin 1)

Fig. 24: AT-EVEREX connexion

Then after connecting the serial cable, it is necessary to connect the LCD panel digital port to the Beagle Board. This will use the HDMI-M to DVI-D M Cable and then do not forget to turn on the Monitor.

The next step is verifying the audio in the Beagle board. This consists on plug in the speakers in the audio output and then turns them on.

After that, depending on the application it is also possible connect the TV to the Beagle in the S-Video port.

For connecting the mouse and the keyboard into the beagle it is necessary to use an USB- Hub. For this reason, it is necessary to connect the USB Std-A-Female to USB Mini-A- Male Adapter to the OTG socket on the Beagle board.

Then, in the terminal window I can see the message showed above. I can hear a tone coming from the speakers. At the same time, on the DVI-D monitor appears the picture of the Beagle. If a TV is connected then I would see colour bars.

- 46 -

OMAP 3530 Beagle Board ______

6.2.5. HARDWARE SETUP IN THE BEAGLE

As I have already discussed in chapter 6.2.2 about the different Boot options, now in this chapter I am going to describe the connection difference if it is wished to boot form the NAND or boot from the MMC card.

Nand Booting

The steps to follow if choosing the setup for NAND booting are the following. First of all, with the Beagle not powered connect the RS232 port on Beagle to UART port of Windows PC using the RS232 Null modem Cable. Then, open the Terminal program, TeraTerm already installed, running on the host machine. Configure the Terminal program with the typical options (BAUD RATE - 115200, DATA - 8 bit, PARITY- none, STOP - 1bit, FLOW CONTROL - none), and then power on with the external 5V power supply the Beagle.

MMC Booting

For this boot I am following a different procedure and also different tools are required. The tools are: MMC/SD card, MMC/SD card writer, MMC/SD card formatting and partitioning tool (to create a bootable partition on MMC/SD card). Then, I need to format the MMC/SD card for FAT32 FS which is the format of the drive. The steps to follow are described below [22]:

ƒ Open "My Computer" on XP or "Computer" in Vista. ƒ Right-click the SD Drive and click on "Format". ƒ Then select FAT32 under the "File System" option. ƒ Click "Start".

Once followed all the steps mention before about how I verified my Beagle board actually works and set up communication with the board through the serial port under Windows. After this, the next steps are loading the software into the SD card or load some image sample. These steps can be following simply in the Beagle Board wiki [23].

Now, once have a general knowledge about working with the general purpose processor based on ARM Linux, the next interesting lab is working with the DSP and understand how the Beagle is working as a standalone.

- 47 -

OMAP 3530 Beagle Board ______

6.2.6. BEAGLE BOARD RUNNING WITH C64X+ DSP AS STANDALONE

First of all, in this chapter it has a high importance to mention that the two cores are as such independent that can be use independent one from each other. For using the specific purpose core or the C64x+ DSP (cf. chapter 2) as standalone application it is necessary to use:

ƒ Software: Code Composer Studio (CCS) ƒ Hardware: An external emulator.

Regarding the software the version which is working fine for programming the C64x+ is CCS version 3.3 or version 4 (coming by the end of August 2009).

The external emulator should be compatible with the C64x+. For giving some example, it will be mentioning the Blackhawk USB560m JTAG emulator or XDS510PP PLUS JTAG [24]. As part of my practical experience a typical problem occurs regarding the drivers and their version [25]. It is necessary to make sure that have been installed the right drivers for the JTAG-emulator and the version used is compatible with the version used. At least for the Blackhawk drivers normally it is necessary to update them hand in hand with the current CCS Service Release.

In the figure 25 it is observed the Beagle connexion through the JTAG with the XDS5510PP Plus emulator.

Fig. 25: Beagle Board with external emulator XDS510PP Plus connected for working as stand alone.

Moreover, it is important to consider for this stand alone application that only one core access a given IP block at a time and these accesses are somehow synchronized. Another important thing to consider is release the DSP from reset and gets the application into the

- 48 -

OMAP 3530 Beagle Board ______memory through the GEL file. The GEL or Go DSP Extension Language is an interpretive language similar to C that allows creating functions to extend Code Composer’s usefulness. The GEL functions can be created using the GEL grammar and then load them into Code Composer Studio [26]. With GEL, it can be access to the actual or simulated target memory locations and add options to Code Composer Studio menu. GEL is particularly useful for automated testing and user workspace customization. The GEL functions can be called from anywhere and it is only necessary enter the specific expression. Another place where it is able to add GEL functions is in the Watch window so the functions are executing at every breakpoint.

The IP blocks in OMAP3 mention in the paragraph above can be programmed using GEL- files. However, the chip contains more than 15 different IP blocks and several thousand registers and the TRM is around 3.500 pages. The user can program the SDRC, GPMC, I2C, SPI, HDQ (cf. chapter 4. Hardware for further specific details) between others and accesses on other OMAP chips using GEL files however the scripts has to be written by the user. Due to the benefits of the dual core it could be use the functionality in U- Boot/Linux for doing the test instead of writing the code for these peripherals. For an easy comprehension of programming the DSP C64+ as standalone it would be useful to split into the following aspects:

ƒ The standalone application on the DSP without any peripheral initialization.

ƒ The standalone application on the DSP with a peripheral initialization.

In the first case, the standalone application on the DSP without any peripheral initialization means that the DSP program doesn't depend on any peripherals. For this reason, it is possible to run the code even if there isn’t any peripherals initialization. The only peripheral which is needed to initialize is the SDRC.

Having a look at the u-boot code for Beagle board explains that it is also initialized the SDRC register which are also initialized by the OnTargetConnect () function which is located in the GEL file for ARM (omap3530_cortexA.gel). A problem that has appear is when having a look at the GEL file for ARM (omap3530_cortexA.gel), the OnTargetConnect () function initializes the mDDR Samsung memory. But Beagle board Rev. B has Micron 128MB mDDR. And it looks like there is no other function in the gel to initialize the Micron 128MB mDDR. The solution for this problem is commended out the

- 49 -

OMAP 3530 Beagle Board ______

OnTargetConnect (). The reason is because the GEL files don't need to initialize the SDRC when this is already done by u-boot running on the ARM core. For this reason, the OnTargetConnect () function code can just be commend out.

Once this has been done it is important to remember to reload the GEL file after modifying. That means right click at it and select reload. If it is not reload, it will still use the old version although it has been modified.

In the second case, the standalone application on the DSP with a peripheral initialization as the name indicates a peripheral initialization is needed the question that would appear is the following:

- Is it possible to initialize the peripherals on the board from ARM using CCS?

- If so, how can it be achieved?

The answer to these questions is that thanks to the JTAG access it could be done however the users have to write their own GEL-files for doing whatever they need to pock all the relevant registers in all the peripherals.

The way to initialize the other peripherals it is, in fact, in the exact way as if this would be done in a normal C-program. It could be useful to start by reading the TRM (see for further information reference [27]) and go on from there. In case of running a standalone it can be used different gel files versions:

ƒ CCS v. 3.3: omap3530_cortex.gel

ƒ CCS v.4: Mistral_Omap35xx_CortexA8.gel

If it is chosen an old version of the GEL file some possible bugs can happen (if it is used the omap3530_cortex.gel which comes with Code Composer Studio version 3.3). The solution for this problem and for avoiding other compatibility issues it is much better use the Mistral_Omap35xx_CortexA8.gel (which comes with CCS version 4 beta and contains the 4.5.0 toolset). With this GEL, it shouldn’t appear any error when connecting to the ARM processor using CCS 3.3.

The following step is to figure out how to get Code Composer Studio to compile for Cortex and DSP.

- 50 -

OMAP 3530 Beagle Board ______

6.2.7. STEPS FOR WORKING WITH THE BEAGLE BOARD AND CODE COMPOSER STUDIO

In this chapter it will be studied only the first of the two cases mentioned in the previous chapter: the standalone application on the DSP without any peripheral initialization.

The first to consider for using the C64x+ in the Beagle Board is start up Code Composer Studio Config. The following step is verifying the connexion with the external emulator. For be able to verify this connexions it is necessary to choose the register 386 and select the correct emulator. In this case the emulators choose it is the XDS560 PP Plus. Once, this option it has been selected, then press the button R which checks the emulator connexion. After the success message on the screen that verifies the connexion, then it is necessary to start Code Composer Studio Setup. From the factory boards list once the CCS Setup is open it is necessary to specify Blackhawk USB560m JTAG emulator [28] for example to add Blackhawk USB560m - OMAP3530 Beagle Board or choose XDS510PP PLUS JTAG (in case this is the emulator choose). Then, two possible options are available for choosing the family:

ƒ Family: OMAP3503

ƒ Family: OMAP3530

In the first case, due to OMAP compatibility between different families it is possible select the OMAP3503 Family however if this option is selected it is allow to access to some of the ARM registers without having access to the DSP side. Choosing this option could be quite interesting for a better understanding of the ARM registers because it is a prior family and it is not as complicated and plenty of full different options as the OMAP3530. My recommendation is follow this option the first times for explore the ARM registers which it is simple because it is not necessary to use the Parallel Debug Manager [29] (compulsory to use in case the second option is chosen).

The second case is used when it is wish a connection with the DSP or as it is called the ALG. Once this option is chosen, start up CCS brings up the Parallel Debug Manager by default. At this point, it should be able to access the Cortex A8 with the correct service release (SR11) and the right emulator as explained before. For giving further explanation about the release the standard tools following CCS3.3 is version 4.1.4 (from July 2006). However, the Cortex A8 was introduced later, for that reason it is necessary to check that it

- 51 -

OMAP 3530 Beagle Board ______is used the right service release. For being more precise, the Cortex A8 was included later in the version 4.5.0 (October 2008) tool set. With respect to compiling code for the Cortex A8 it is necessary a newer version of TI code generation tools which doesn't get automatically updated by the service releases (SRs). There are two options for having the access to this release.

ƒ The first option is having access to the TI network.

ƒ The second option is getting an evaluation version of the new tool set 4.5.0 from CCSv4.0 [30].

Other important issue to consider is the version of the USCIF drivers used. These can be found in the link below from the company web page [31].

In the Parallel Debug Manager and before connected it, it is important to disable the reset from the ARM side. Otherwise, if it is enable the reset will be activated and it will disturb the DSP core. Hence getting access to the Cortex A8 in CCS, the following step is enabling the DSP in the Cortex A8 GEL-menu and then connects afterwards using the parallel debug manager. There are also free Linux versions (for non-commercial use) of the tools that can be downloaded [32].

The first step is selecting the new toolset in CCS after installing it. This needs to be done from the Parallel-debug-manager by:

1) Select menu Help/About 2) Hit button Component Manager 3) Select "Build Tools" 4) Select "Code Generation Tools " (or whatever it has been installed). Per default is selected.

After this it should be possible to select Cortex as a build target in CCS and have a look at the main registers that appear.

Finally, the most interesting part of this practical chapter that could be an interesting Lab for bachelor or master students is the general knowledge acquired analysing and studying the difference tools and the way to proceed if I want to work with the ARM core or if I am using the DSP in the Beagle Board. The importance of transmitting this knowledge in universities will be described further in the conclusions chapter.

- 52 -

OMAP 3530 Beagle Board ______

7. BEAGLE BOARD APLICATIONS

In this chapter will be described some of the applications and scenarios where Beagle Board can be use. The main reason for use the board is the energy safe that implicates a good resolution in multimedia applications.

Nowadays, due to the versatility of the board customers still trying to find applications where the Beagle Board can play a role. Having a look at the market today the board is use in low-cost computing platforms working as a general-purpose processor.

Moreover, the processor contains 2D and 3D graphics acceleration capabilities as well as a DSP optimized for multimedia processing. A typical configuration of a Beagle Board system would draw power off of a USB port on standard laptop or desktop PC used for developing and downloading the low-level Beagle Board software, but additional peripherals would allow the Beagle Board to operate as a multimedia computer on its own.

The most common applications are describe below in the following paragraphs [33].

Single Board Computer: as previously describe in specifications chapters the Beagle board can work as a single-board computer. That means that is possible to create a functional Linux single-board computer on the cheap as describe for IBM [34].

Fig.26: Different scenario showing the SD card interface, micro, speakers, keyboard, mouse for use as a like-top.

In the figure above it is showed a typical scenario where some Beagle Board applications are describe with especially attention to the interfaces of these peripherals.

Multimedia applications: The OMAP3530 Open Multimedia Application Platform provides a rich solution for developing multimedia rich applications. This highly

- 53 -

OMAP 3530 Beagle Board ______integrated System-On-Chip, comprising a high performance Neon [35] enabled ARM Cortex A8, together with a 64x+ DSP core, a set of hardware codec accelerators and an Imagination Technology SGX 530 3D graphics core, together with an optimised peripheral mix, enable application developers to create compelling and exciting applications. There are projects developed with Beagle board consisting in consoles and platform consoles emulators, and multimedia applications with portability.

Web applications: there are different types in which should stretch the web servers development, the web browser which are programs specifically designed for see TV and surfs on internet.

Codification: in this aspect there are important the OpenGL applications (described in Software chapter), multimedia codification and framework development, plug-in codification for Gstreamers and codifications ARM neon.

User Interfaces:, due to the Beagle characteristics, in general, there are wide use in all the 3-D user interfaces.

Mobil applications: due to the features describe in prior chapters the OMAP technology based on ARM processors is getting importance in the mobile phone market. In 1997, approximately the 98% of more than one billion mobile telephone that have been sales per year use a CPU with ARM architecture. I will study in chapter 8 what is the tendency in OMAP architecture regarding the mobile phone market which every time more and more use multi-core ARM architecture.

One of the different projects is for being able to work with mobile operating systems on Beagle. An example, it is the Android on Beagle. Android is a mobile operating system running on the Linux kernel. The release of the Android code is a free-software with an open source license. For this project there is an Open Handset Alliance’s Android mobile phone operating system based on Linux working with the Beagle. The Android platform is a software stack for mobile devices including an operating system, middleware and key applications. The initiatives have been taken for the Embinux group [36].

Medical Applications: currently there is a project with the beagle for a handheld device to improve hospital functionality and efficiency. It is for adding intelligence to the mundane hospital software. The features are: view and update patient status, medical history, medication details, appointments, billing and stored as a database in central server. It is

- 54 -

OMAP 3530 Beagle Board ______also consider the touch screen with handwriting recognition and hand support pad for data entry. The main feature is the light weight less than 1kg. It has VoIP, video conferencing and recording for consulting other doctors. It also includes Wifi, and Ethernet support. The expected results are improve, efficient and intelligent patient care in hospitals.

Other medical application is a device that has been designed for cerebral palsy kids. The device is circular in nature with a touch screen where an interactive interface is used to display icons, objects, photos and other sharable action oriented stuff. The device has exchangeable memory sticks which allow two or more device’s to get connected and hence facilitating interactions. The result is to get a cerebral palsy kid out of his isolated environment, motivate him to communicate by making a device which will show him the joy of communicating.

Education: for university purpose it has been created some University Labs with the Beagle board. The Beagle is used for academics for creating projects for classes [37]. In some countries it has been created the Beagle Board designed context for undergraduates and graduates engineering students and some Laboratories [38]. Also, companies are interested in the educational field and for this reason they provide with free trainings for undergraduates students from different colleges [39].

Software Define Radio:

The Beagle can also be used for customize Software Define Radio (SFDR). The implementation of the full SDR system is running with OMAP DSP. The software, stereo out jack and a microphone are use for the communication over the air. For been able to implement the SFDR the Universal Software Radio Peripheral (USRP) is connected to the Beagle Board and can interface to different antennas for SDR.

Fig. 27: Different scenario showing the SDR system customize for the user interfacing antennas for SDR.

- 55 -

OMAP 3530 Beagle Board ______

For further information about the SFDR, there are some research projects made by Universities in this field with successful results [40].

Finally, it is important to mention that there are wide diversities of applications working with the Beagle board. For further information about the registered projects see bibliography reference 33.

- 56 -

OMAP 3530 Beagle Board ______

8. CONCLUSIONS AND OUTLOOK

Having studied OMAP3530 technology deeply and having run some practical test for working with both OMAP cores (ARM and DSP), I will draw conclusions in the following section and demonstrate why Beagle board should be used in academic entities. I will further elaborate on the strengths and weaknesses of the Beagle Board, comparing the characteristics of the Beagle with other similar boards that are currently on the market. In addition, I will explain the aspects I consider necessary to be modified in order to compete successfully in the SOC world market. Finally, I will give an outlook on future developments of this technology and the Beagle Board.

Strengths

In the following paragraph, I will focus on the Beagle board’s power consumption as it is one of the most important criteria in the selection of the SoC. The board has two different options for being powered. The first is using the typical 5V which is used for power similar boards from other companies. The second option is to give power to the board through the USB. The latter option is especially advantageous as it allows designers to work without the 5V power supply.

The ARM (Advanced RISC Machine) architecture is used in the Beagle and one of the main characteristics of the processor is the low power consumption. Due to this reason, the board fits well in applications which require high energy efficiency, for example mobile phones as I have explained in the first chapter.

The fact of saving energy doesn´t reduce the speed of the processor significantly which is one of the most interesting characteristics of the board. The DSP also allows parallelizing 8 MACs in a cycle. It works with more than 1200 Dhrystone MIPS and makes it able to execute a high number of . This gives an idea of the computer’s processor speed.

Another positive characteristic of the Beagle board is the big number of peripherals input/output that can be connected to the board. The easily expansion of peripherals makes it further a perfect solution for a wide range of applications and scenarios. It is also important to mention that some of the ports can be utilized for other applications like the boot-loader and kernel debug messages of the Beagle. As it has a high number of

- 57 -

OMAP 3530 Beagle Board ______peripherals, it allows for different kinds of configurations and can perform both, the master and slave roles. Now a device can be either a host (acting as the master) or a peripheral (acting as the slave). When acting as slave it gives the control to another processor. For students, it is also good to be familiar with programming some peripherals. Likewise, it could be quite interesting to program both roles and see the board’s different ways of performing.

One particular aspect of the Beagle board is that it has the possibility of choosing the analog or digital video signal. Nowadays, the digital format wins over the analog video format; however, there are still a lot of applications that are using analog video. Furthermore, the provision of both video possibilities might help universities to decide on which of the two different options they want to teach. The current System on Chip (SOC) markets are based on applications for video and image and the board has DVI-D video out. This is a digital Video Interface which is a popular form of video interface technology made to maximize the quality of flat panel LCD monitors and modern video graphics cards. This provides a faster, higher-quality image compared to an analog video interface, due to the nature of the digital format. However, it also has a separate video interface which is an analog video signal that carries the video data as two separate signals.

For audio, it includes the low noise input/output stereo. The stereo provides the capacity of reproducing sound using two or more independent audio channels through a symmetrical configuration of loudspeakers in such a way as to create the impression of sound heard from various directions, as in natural hearing. This is an important application nowadays which is still in research and evolution. Another relevant characteristic for digital audio is the I²S Integrated Inter-chip Sound which is an electrical serial bus interface standard used for connecting digital audio devices together. The benefit of this is the separation of clock and data signals, resulting in a very low jitter connection. The I²S therefore prevents distortion in a digital-to-analog converter.

As a consequence of all these features the Beagle board fits well in a wide range of multimedia applications. In this respect Texas Instruments pays a lot of attention to commercializing the board in an academic circle, as the company knows that universities and researchers, can develop applications that are in conjunction with the company’s interests of providing the latest technology regarding audio, video and image. Hence, there

- 58 -

OMAP 3530 Beagle Board ______have been some promotions especially dedicated to universities (undergraduate and graduate students) [40].

The following advantage described is the capacity of storing data in the memory. The flash memory data storage device supports different connections: SDIO, an USB On-the-Go port, and a RS-232 serial connection. It also contains a JTAG connection and two stereo jacks for audio in/out. The variety of storing information through different connections makes it important for universities which want to teach different options of saving data (video, image and audio) in the memory.

Furthermore, the SD/MMC card interface makes it possible to utilize big memories, but it depends on the SD memory card choosen for being possible to develop multimedia applications that require high memory capacity in order to reproduce data with a good quality.

Moreover, the LP Double Data Rate RAM supports data transfers doubling the memory chip's data throughput. This also can reduce the power consumption because the DDR- RAM consumes less power, making it well-suited for notebook computers. For improving the yield of the board, the Beagle board contains 256MB LPDDR RAM and is doubled from 128MB to 256MB. The Double Data Rate RAM and the resulting reduction of power consumption therefore is another feature making the Beagle worth to be consider by academics for being used in calss.

The conclusions about the software benefits can also be divided in different topics. First, the open software is the most important characteristic of the board. This result in faster innovation and better solutions letting students modify the code more quickly in order to find new applications. In particular, higher innovation results from close collaboration, among the developer’s community members, constant updates, community support, quality improvement and faster feedback. Regarding the constant updates, the result is a commercial advantage because the vendors don’t have to worry about the need of constant drivers updates to support the latest kernel when performing update patches, as the open community has the latest version available and it’s for free. The benefit resulting from the community support can be seen in the collaboration of some of the world’s top programmers around the world, working together to provide the latest open source software. This also improves the quality because the world community can make suggestions on improvements. Further, it is faster than an individual or a team working

- 59 -

OMAP 3530 Beagle Board ______alone. An additional benefit is the faster feedback students can receive due to the different kinds of experts’ fields of knowledge such as wireless, medical, video, etc, who are members of the Open Source Community working with the board. A few people who have been working with the software during its development are in an excellent position to support peers in the community who later work with this software providing long-term support.

All of the points described above are highly beneficial for academic use because they allow both, professors and students, to get involved in the communities and to receive the best support to solve any problems that might appear.

In addition, another important reason why universities should opt for Linux is the wide variety of electronic applications being accepted. Further, the board comes with a lot of features and networking capabilities which provide greater flexibility.

In this paragraph I will refer to one important point regarding the Beagle board: the boot options. Students will understand what the boot loader is, which is especially relevant for starting to program the Beagle. Its main function is to initialize the hardware, especially the memory controller, proportionate to the Linux the configuration parameters for starting and the Linux kernel. Once started, it is possible to choose the different starting configurations; this allows selecting four different configurations. These codes are in the ROM memory to make sure they are not being erased. Students will understand the different memory sections where they need to save the different information: their code, store samples, etc.

The software benefits are also coming from the Open VG and the Codec Engine. The Open VG makes it possible to create flash applications with less dependence on the CPU. This allows universities to create entirely new and unique products, or expand their current products with additional innovative features.

The Codec Engine is used for running efficiently on the DSP part of the hybrid System on Chip. The latest multimedia electronic devices use digital signal processing for playing, storing, sending and receiving different kinds of media applications and the software needed for this is the codec engine. To sum up, this software is used basically for: dynamically creating and deleting algorithms and accessing and controlling algorithm instances. The Codec Engine is extremely important because it provides the necessary

- 60 -

OMAP 3530 Beagle Board ______rules for joining all algorithms at the same time and allows them to be executed correctly. This means that different codec’s are working at the same time without disturbing each other. Thanks to the Codec Engine students can learn which are the multimedia codec’ currently available in the market, what the standards are and what they need to have for developing their own codec’.

Regarding the open source community, students will be learning, getting free releases and they will get an idea about the fast evolutionary dynamics of software in terms of new releases. They will not only learn about how to find a possible solution but also analyze which solution is best for their application and get to know the procedure to be followed for finding the final solution.

Some webex and conferences allowed me to follow the different changes because the technology is evolving quickly. In these trainings I realized how fast the technology was making progress. Part of the Beagle board’s success is the continuous evolution since its introduction to the market. This becomes obvious considering the different revisions that have been modified for improvements.

It further can be observed how extensively this technology is being used. As this technology is utilized for a lot of companies it is beneficial for universities, because if students are familiarized with this technology, companies will most likely appreciate some experience in programming this kind of boards upon graduation. Due to the characteristics of the board it can be used in different fields, particularly in mobile phones. Moreover, universities are contributing to improve or create new applications, codec’, etc. in collaboration with companies.

To sum up, some of the Beagle’s benefits result from the board’s functionality as a basic computer but at a significantly lower cost. It is based on OMAP3530 which includes an ARM Cortex-A8 CPU and a TMS320C64x+ DSP. It is specially indicated in Digital Signal Processing laboratories due to the possibility to implement algorithms in the DSP core (TMS320C64x+ DSP). On the other hand, it is also interesting to understand how it is working and what they need for being able to run the Linux in the ARM core (ARM Cortex-A8). As a consequence of the dual core architecture another important point to analyze is how both cores are interacting with each other.

- 61 -

OMAP 3530 Beagle Board ______

Finally, it is interesting considering the Beagle board’s cost. In comparison to other boards with similar characteristics and features the Beagle has a cheap price. I will further elaborate on this below, when comparing it to different boards also competing in the SOC market. Considering all the different aspects, the Beagle board can be described as a low cost tool with full features.

Weaknesses

As shown above, there are a number of significant benefits provided by the Beagle board. In the following, however, I will point out the weaknesses of the board and make some suggestions for improvement to stay ahead of the System on Chip market. After this, I will give an outlook on the next technology: OMAP4.

The first weak point of the Beagle, which I have already analysed in the hardware chapter, is its lack of Ethernet port. There have been found some workarounds for trying to connect internet to the Beagle and adapt Ethernet through different options. The main problem however can be seen in the drivers as some of them are not in the kernel and need to be written.

The second weak point is the memory. The built-in memory of the board is usually not enough for running multimedia applications. However, as previously mentioned it has a SD/MMC interface for adding the necessary memory and saving the data, resulting in an increase of the board’s price.

I already mentioned that the Beagle has a lot of peripherals; however, the first board that included OMAP3530 technology had sold at a high price. As the high price lead to the rejection by some customers, the decision was made to manufacture a different board with the same architecture but with less peripheral. This was the origin of the Beagle. I find it important to mentioning that, depending on the application, the Beagle has not all the peripherals compared to other boards with the same technology, such as the OMAP3530 EVM, for example.

The last consideration is that usually in computers Windows is installed by default. So, for being able to use the Beagle they need to have Linux. The different options are to reinstall the operating system with Linux or to install a virtual machine which works with Linux (explained in practical chapter), however this action directly affects the yield or speed in case of being utilized on a less powerful computer.

- 62 -

OMAP 3530 Beagle Board ______

Families Comparisons

In the following subchapter, first I will draw a comparison between the different families using OMAP technology. Second, I will analyze the main differences to other boards from different companies to see how the Beagle board is positioned in the marketplace. Afterwards, I will close this paper with an outlook on OMAP technology and the Beagle board.

As I previously pointed out in the specifications chapter the OMAP family processors are well-suited for portable consumer devices, single-boards, computing and industrial applications, and they support full-featured operating systems including, Linux, QNX and Windows® Embedded CE. The complete platform allows for rapid development of applications and is supported by a broad offering of development tools. However, I will compare the different families for being able to identify the different characteristics between them.

OMAP1: the first OMAP family was designed for a variety of mobile applications and consuming as little as half the power of the application processors at that time. Those allow enabling developers and specially cell phone designers to completely reuse and build upon existing software. Nowadays, it is obsolete because it has been replaced by the next OMAP generations.

OMAP2: this family allows delivering multimedia performance to mobile phones. The hardware accelerator provides an improvement in video processing, being four times faster than the previous family and almost twice as fast in image processing compared to previously available solutions for mobile phones. The processor’s high video performance enables advanced codec algorithms that promote higher compression ratios allowing networks to support more data, to reduce costs for service providers and to implement the revenue generating services such as mobile-to-mobile gaming. This family is not recommended for new designs because OMAP3 is already in the market and has more features than this family.

OMAP3: this family introduces a new level of performance that enables laptop-like productivity and advanced entertainment in multimedia-enabled handsets. OMAP3 devices support all levels of handsets, from the entry-level multimedia-enabled handsets to high- end Mobile Internet Devices (MIDs). The main benefits are the combination of mobile

- 63 -

OMAP 3530 Beagle Board ______entertainment and high-performance productivity applications, the integration of the advanced ARM Cortex-A8 RISC core and its design through CMOS process technologies for less power consumption and increased device performance. As described in the software chapter, it includes hardware accelerators to enable multi-standard encoding and decoding up to HD resolution. The image signal processor enables faster, higher quality image capture, lower system cost and lower power consumption and provides connectivity to hard disk drive devices for mass storage [41]. The family also leverages SmartReflex™6 technologies for advanced power reduction, assures mobile security with M-Shield™7 mobile security technology capability enhanced with ARM TrustZone support, shares fully scalable software solution with all OMAP 2 processors, supports all high-level OSs for customizable interfaces, including Linux, Microsoft Windows Mobile, Open Handset Alliance Android and Symbian [42].

As the OMAP35 is being described in this paper, its family shall only be mentioned for completeness.

OMAP35: application processors are based on the ARM® Cortex™-A8 core with more than four times the processing power of today’s 300MHz ARM9 devices, the superscalar 600 MHz Cortex-A8 core is integrated into new OMAP35x applications processors.

This raises the question what advantages the next family of ARM Cortex A-9 will bring over the current family of ARM Cortex A-8? The requirement for increased performance and increasing tight power budgets is driving many market segments. The Cortex-A8 provides today´s silicon baseline implementation for power efficiency high performance devices. The Cortex-A9 with multi-core processing provides a step-level increase in the power efficiency. From my point of view, this Cortex shows technology leadership and it is the next generation leading multi-core process, with advanced micro architecture and system level optimization.

OMAPL1: this family includes ARM9 and ARM9 plus DSP architectures and offers a variety of peripherals for networking and runs Linux on the DSP/BIOS™ real-time kernel

6 SmartReflex™: are technologies with a broad range of intelligence and flexible hardware and software techniques that dynamically control voltage, frequency and power based on device activity, modes of operation and temperature.

7 M-Shield™: this hardware security technology is a complete infrastructure for mobile platform robustness that includes hardware cryptographic accelerators, random number generator, secure access/restriction to all chip peripherals and memories between others.

- 64 -

OMAP 3530 Beagle Board ______for operating system flexibility. Power consumption ranges from 8mW in standby to 400mW total power.

OMAPL138: it is especially indicated for energy-efficient designs which require high levels of peripheral integration, lower heat dissipation and longer battery life with powering efficiency. It has fixed and floating point options and is a direct competitor of the Beagle Board because of the similar features and the low cost. This board includes flexible system interfaces and networking and the ability to optimize systems for performance and power.

OMAP-DM: these coprocessors are especially indicated for increased multimedia performance in the cellular handset market. As wireless services drive forward into advanced 3G and 4G technologies, camera phones are moving to 5- and 8-megapixel image sensors and beyond, with displays showing a corresponding increase in resolution. OMAP-DM devices allow for a quick adaption of current architectures in order to meet market requirements and differentiate the products. The coprocessors combine expertise in imaging and wireless technologies to help extend the capabilities of handsets to include higher camera and display resolutions.

This family integrates a high-performance ARM microprocessor with a dedicated image signal processor and a video processor. Software is ready to use and operation is transparent to the developer: the phone operating system, media applications and graphical user interface remain on the host processor while the OMAP-DM device accelerates handset imaging and video.

However, there have not been any forthcoming DM family since OMAP, also running with ARM, might replace DM Technology for future projects, as it is easier to use and faster to learn.

The most interesting aspect about OMAP is that the C64x DSP and the ARM Cortex A8 can work separately from each other which are not possible with DM technology.

Once we have studied the Beagle Board with OMAP3 technology I will focus on what will be the next steps in the system on chip world and what will be the technology that developers will use in future designs for mobile phones applications.

- 65 -

OMAP 3530 Beagle Board ______

OMAP4

The latest family necessary to be studied in order to get a better understanding for the future trends and developments in the market (20-09-2009) is the OMAP4.

OMAP4: this platform includes applications processors, a comprehensive software suite and power management technology to bring next-generation Smartphones and Mobile Internet Devices (MIDs) quickly to market. The strength of this family is the removal of the biggest drawbacks of other technologies and families, which will be described in the outlook.

Fig. 28: OMAP4 Platform. This platform will be indicated for 1080p for mobile phones and MIDs.

It is important to mention that OMAP4 (February 2009) appeared on the market only one year after the introduction of OMAP3 (February 2008). The main feature that identifies OMAP3 was the ability to reproduce 720p video in mobile phones, like the Samsung Omnia, for example. Now, a new chip for pocket devices has appeared. It allows 1920x1080 and will make it possible to take pictures with a resolution of 20 megapixels. It has a forward thinking design, offering low power and full features. It consists of a double core ARM Cortex-A9, a programmable multimedia motor based on DSP C64x and a graphic processor POWERVR SGX540. Now, the following question is in what kind of mobiles it can fit. The answer is, in almost all of them. Officially, OMAP 4 will be compatible with operative systems such as Linux (Android and Limo), Symbian and Windows Mobile. It will be a direct competitor of NVIDIA platforms and, therefore, will create more competition in the mobile platform market especially due to the size which is very important in mobile phone market.

As Greg Delagi, senior vice president and head of TI's Wireless Business Unit put it this way:

"For the past decade, TI has focused on providing an optimal balance of high performance and low power consumption in our OMAP product line to address our customers' needs to

- 66 -

OMAP 3530 Beagle Board ______quickly and easily address new market trends. The OMAP 4 platform will enable a new class of mobile devices that will redefine the boundaries of Smartphones and MIDs."

Next, the characteristics of this platform will be described to demonstrate that it removes the weakest aspects of OMAP3.

Software OMAP 4

In addition to the OMAP 4 platform hardware, there is software that supports leading mobile OSs. It is integrated and tested up to the application level, enabling faster and easier development for end equipment manufacturers and application developers and is highly customizable to give developers the flexibility needed to differentiate their product. The OMAP 4 will allow customers to quickly and easily develop new handsets and applications that deliver the performance customers demand. With a flexible and open platform, designers will stay ahead of the rapid rate of innovation in the market plus deliver stunning user experiences.

Power Management OMAP4

Further, there have been improvements with regard to power management. The OMAP 4 platform integrates SmartReflex™ 2 technologies to enable high performance at low power. SmartReflex 2 technologies combine intelligent and adaptive silicon, circuit design and software to solve power and performance management challenges at smaller process nodes, enabling OEMs to offer sleeker, multimedia-enabled mobile devices with long battery life and less heat dissipation. The OMAP 4 platform also includes support for the TWL6030 power management companion device to help maximize battery life.

Symmetric processor (SMP) OMAP4

Another aspect is the symmetric processor (SMP). This family is one of the first dual-core, ARM® Cortex™-A9 MPCore SMP based architectures and employs parallel processing for higher performance and better power efficiency. SMP’s scalable performance activates only the cores that are needed for that particular process to reduce power consumption or substantially increase performance.

Comparisons with other clones and platforms

In the following paragraphs I will analyze some beagle board clones and the most direct competition of platforms from different companies. The platforms and processors from

- 67 -

OMAP 3530 Beagle Board ______other companies I will analyze especially indicated for portable devices and, in particular, for mobile applications.

There are different Beagle board clones in the market. The most important is the EBVBeagle [43]. It is actually a Beagle Board revision C2 with green PCB boxed and some useful accessories. It comes as a quite complete starter kit with AC adapter, USB to Ethernet adapter, MMC card, USB hub and some cables.

Another board similar to the Beagle is the Mini Board. ICETEK-OMAP3530-Mini is a Chinese BeagleBoard clone [44]. It is almost identical but with a simpler power regulator, a full-size DVI-D connector, and a composite video (instead of S-Video) output. It also has a working 2nd USB port (host-only), but on a different port than the Beagle Board Rev C.

A further Chinese clones is the DevKit 8000. This board is slightly larger with additional peripherals (e.g. LCD/TSP, Ethernet and keyboard) [45].

Recently, there is a new Spanish clone called IGEPv2 Platform. Slightly larger than the original, it solves some of the weakest points of the Beagle and provides additional peripherals such as an Ethernet connector, Wifi and Bluetooth [46].

Fig. 29: Spanish Beagle Board IGEPv2 Platform. On the other hand, taking a look at today’s market the board is used in low-cost computing platforms working as a general-purpose processor. There are different platforms on the market competing with the OMAP platform, e.g. ’s Calpella platform (2009) which is the sixth-generation Centrino platform. This platform consists of a SOC (system on chip) design that packs a CPU, graphics processor, video and a memory controller into a single

- 68 -

OMAP 3530 Beagle Board ______chip. Previously, many of these capabilities had been handled by a separate chipset. Combining them with the CPU allows Intel to reduce the space required by the chips and to save power. In addition, this platform includes a communications chip, which will handle input/output for storage and wireless connections. The processor used is the Intel® Core™ i7 Processor. In 2010, Intel will create the socalled Huron River platform that refers to the seventh-generation Centrino platform based on a new processors architecture. With this platform Intel wants to hit the market in 2010. The i7 processors are good, however, ARM processors are more power efficient.

Another platform that will compete with OMAP4 is made by Nvidia. The line-up currently consists of the latest APX 2600 (2009) and applications processors. The APX processor is based on ARM11 600MHz. The main disadvantage comparared to OMAP technology is the processor speed.

Outlook

First of all, before starting to analyse the future development it is important to have presented Moore’s Law.

Fig. 30: Moore’s Law representation.

Considering 35 years of scaling history, with every generation the feature size has shrunk approximately by 30%, transistor density doubled, wafer cost increased by 20% and chip cost come down by about 40%.

New generations occurred regularly on average every 2.9 years over the past 35 years and recently every 2 years.

- 69 -

OMAP 3530 Beagle Board ______

Analyzing the market trends, another important aspect is are the mW/MMACs and the number of MMACs per cycle. Figure 31 shows the power and performance trends.

Fig: 31: mW/MMACs vs. years

It can be observed that the DSP power predictions followed Gene’s Law in the past and will presumably continue to follow it over the next years.

Fig. 32: MMACs vs. Year.

Figure 32 shows the increase of MAC/Cycle depending on the processor year. I observed the tendency that with every year the MAC/Cycle more and more is following a lineal trajectory which means that improvements in the field of parallelizing instructions (i.e. to multiply and accumulate) in a cycle are made quickly and accurate.

Trends and tendency conclusions

In general terms the trends in silicon technology and high-performance applications will have to lead to multi-core architectures with a good balance between processor speed and power consumption. Today’s DSP architectures are confronted with the tough requirement of addressing a wide-range of standards and meeting a cost-effective performance and power trade-off [47].

- 70 -

OMAP 3530 Beagle Board ______

Increasing raw MIPS performance just by running at a higher frequency is not possible anymore since leakage is becoming a dominant factor with shrinking silicon geometries. Therefore, one trend in modern processing architectures is increase the number of cores on a single piece of silicon.

However, what else needs to be taken into considerations are besides to multiple cores? What chances and challenges will come up with multi-core architectures? The main challenges in developing multi-core architectures are: 1, integration, i.e., developers need to increase the number of transistors; 2, an increase in performance within the DSP family; 3, high speed inter-core communication, as it consumes less power compared to inter- device communication; 4, re-use of resources peripherals which eases load balancing. In a nutshell, it is much better do things in parallel instead of increasing clock speed.

In the picture below the actual tendency is illustrated:

Fig. 33: In this figure it is describe the ideal roadmap.

The picture shows that there are single chips doing the function of processors and DSP.

For a deep analysis of the future trends Amdahls Law can be used, which is based on an experiment (Intel experiment) about the asymmetric multi-processor and speed throttling [48]. The main observations are:

ƒ Power budget of 1 core running at 2 GHz equals 4 cores running at 1 GHz. ƒ In fully sequential code execution phase’s system runs 1 core at 2 GHz. ƒ In partial sequential code execution phase’s system runs 2 cores at 1.5 GHz. ƒ In partial parallel code execution phase’s system runs 3 cores at 1.25 GHz. ƒ In fully parallel code execution phase’s system runs 4 cores at 1GHz.

- 71 -

OMAP 3530 Beagle Board ______

The result is that the power budget remains constant while performance without getting hit during sequential execution phases.

Fig. 34: The impact of scalar code on multi-processing over multiple cores.

Having analyzed the tendency in multi-cores architectures the following question arrases: Symmetric multiprocessing (SMP), Asymmetric multiprocessing (AMP)? Which are typically non-real-time or Real-time Operating systems (RTOS)? Which needs to respond very quickly? In a homogenous architecture all cores are the same typically this will be a symmetric architecture. On the other hand, heterogeneous where different cores are combined and each targeted at a specific task as for example the OMAP3530 technology previously studied.

The systems that treat all CPUs equally are called symmetric multiprocessing (SMP) systems. In systems where all CPUs are not equal, system resources may be divided in a number of ways, including asymmetric multiprocessing (AMP), non-uniform memory access (NUMA) multiprocessing, and clustered multiprocessing.

Some of the difficulties that appear are in programming models. The standards are required for code portability, i.e. that means expressing parallelism in the code (e.g. Open MP), communications API’s. The standards are also needed for optimization and debugging referring to drives tools availability and cost (both HW and SW) and code instrumentation.

- 72 -

OMAP 3530 Beagle Board ______

In systems with multiple masters resources may be shared or exclusively assigned. If shared, coherency management would be required because otherwise deadlocks8 could be caused. Further, an exclusive assignment of resources requires a master handling them, which would make it less flexible [49].

In my opinion, companies can make the difference and the success will come easy if companies provide full supporting software.

Another important aspect to consider will be the debugging related to system visibility. It could be easy for researchers and developers if companies made internal data flow visible, as well as the correlation of program flow and events and also enabled code profiling.

Having analyzed the Beagle board and OMAP technology characteristics, studied its currentl position on the market, an given an outlook on the multi-core architecture developments, I conclude that the Beagle Board will continue its evolution according to market needs in order to become an even stronger and competitive technology. In other words, future boards will most likely include more DSPs and ARMs in a single chip, working in parallel at the same time.

8 Deadlocks: it is a situation where in two or more competing actions are waiting for the other to finish, and thus neither ever does.

- 73 -

OMAP 3530 Beagle Board ______

- 74 -

OMAP 3530 Beagle Board ______

9. BIBLIOGRAPHY

[1] OMAP™ & DaVinci™ Software for Dummies, Steve Blonstein, Alan Campbell, TI, Wiley Publishing, 2009.

[2] Beagle Board Organization, Open Source Initiative, Datasheet, Rev. B, Dec 20 2008: www..org

[3] Understanding the Linux Kernel, Bovet, Daniel P. And Cesati Marco, O’reilly&Associates, 2004.

[4] ARM, Cortex A-8, Technical Reference Manual 20-09-2009: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344f/Cacebjhf.html

[5] Khronos Group, Open Standards for media Authoring and Acceleration, May 2008: http://www.khronos.org/opengles/

[6] Dale Farnsworth, OMAP git tree, 2009, 03-03-09: http://source.mvista.com/git/gitweb.cgi?p=linux-omap-2.6.git;a=summary

[7] Advanced Linux Sound Architecture, ALSA, Project homepage article, 04-03-09: http://www.alsa-project.org/main/index.php/Main_Page

[8] TI, Category: Code Composer Studio v4, Rev. 16 July 2009, 12-09-2009: http://tiexpressdsp.com/index.php?title=Category:Code_Composer_Studio...

[9] TI, Using the TMS320 DSP Algorithm Standard in a Static DSP System, Rev. B 30 Nov 2000, spra577, 17-04-2009: http://focus.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=spra577b

[10] TI, XDAIS-DM (Digital Media) User Guide, Rev. B 31 Jan 2007: http://focus.ti.com/docs/toolsw/folders/print/tmdxdaisxdm.html

[11] TI, Rules, guidelines and interfaces: SPRU32.

[12] TI, Using External References in eXpressDSP-Compliant Algorithms, 25-05-2009: http://focus.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=spra929a

[13] Software XDAIS 6.24 Release Notes and Product downloads, May 2009, space on disk 19.6MB, 17-09-2009: http://software- dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais/6_24/index_FDS.html

[14] TI, Codec Engine GenServer Wizard, Rev. 29 May 2009, 10-08-2009: http://wiki.davincidsp.com/index.php/Codec_Engine_GenServer_Wizard_FAQ

[15] Embedded World, Nürnberg, Germany, Nürnberg Messe, 2009, 26-07-2009: http://www.embedded-world.de/en/default.ashx

- 75 -

OMAP 3530 Beagle Board ______

[16] TI, TMDSEZ28335, TMS320F28335 eZdsp Starter Kit, 2007, 05-12-2009: http://focus.ti.com/docs/toolsw/folders/print/tmdsez28335.html

[17] Linux organization, Linux on Line, beginner lessons, 14-12-2008: http://www.linux.org/lessons/beginner/toc.html

[18] TeraTerm, Terminal Emulator Software, January 2009: http://sourceforge.jp/projects/ttssh2/files/

[19] Vmware, Free VMware Player Software: http://www.vmware.com/products/player/

[20] Chrysaor, VMware Image, Ubuntu Desktop for VMware Player: http://chrysaor.info/

[21] 7 Zip organization,7-Zip File Manager, January 2009: http://www.7-zip.org/download.html

[22] Beaglewiky, Low-cost OMAP3 single-board computer, February 2009: http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat

[23] The Busy Coder’s Guide to Android Development, Mark L. Murphy, 2007.

[24] The USB560m JTAG emulator from Blackhawk: http://focus.ti.com/dsp/docs/thirdparty/catalog/devtoolsproductfolder.tsp?actionPerformed =productFolder&productId=1707

[25] Spectrumdigital, XDS510PP PLUS JTAG Scan Path Emulator Pod, 2008: http://www.spectrumdigital.com/product_info.php?products_id=30

[26] TI, GEL functions, 17 March 2009: http://tiexpressdsp.com/index.php/GEL

[27] TI, SPRUF98B.pdf: http://focus.ti.com/lit/ug/spruf98c/spruf98c.pdf

[28] Blackhawk, USB560m JTAG emulator, 2008: www.blackhawk-dsp.com

[29] TI, SPRU509H Parallel Debug Manager , page 23, October 2006: http://focus.ti.com/lit/ug/spru509h/spru509h.pdf

[30] TI, Evaluation version of the 4.5.0 from CCSv4.0, June 2009, 10-07-2009: http://tiexpressdsp.com/index.php?title=Category:Code_Composer_Studio...

[31] Analog Devices, Embedded processing and DSP, Multimedia, article, June 2009: http://www.analog.com/en/embedded-processing-dsp/processors/index.html

[32] Linux Tutorials Index, 2009 by Greg Ippolito, 12-12-2008:

- 76 -

OMAP 3530 Beagle Board ______http://www.yolinux.com/TUTORIALS/

[33] Beagle board Organization, projects registered, 23-09-2009: http://beagleboard.org/project

[34] IBM, DeveloperWorks, Linux, Technical Library, 25-09-2009: http://www.ibm.com/developerworks/linux/library/l-beagle-board/

[35] ARM, Neon Developer Resources, article, 22-09-2009: http://www.arm.com/products/multimedia/neon/developer_resources.html

[36] EMBINUX, Embedded & Wireless Services (EMBINUX Group), SQL Star International Inc., 23-09-2009: http://embinux.com/

[37] Conexions, Beagle Overview, May 2008, 22-08-2009: http://cnx.org/content/m16233/latest/

[38] Sponsored by ARM, Cranes, TI and Beagle Board, 05-09-2009: http://www.cranessoftware.com/services/training/Student_BeagleDesignContest_Release- %2011-02.pdf

[39] Google Code, Beagle Trainings, 23-09-2009: http://code.google.com/p/beagleboard/wiki/Trainings

[40] SFDR, Unitated States Naval Academy, 13-07-2009: http://www.opensdr.com/files/Embedded_SDR_Tutorial_Complete_part_1.pdf

[41] Cranessoftware, Beagle promotion for India, 2009, 17-09-09: http://cranessoftware.com/services/training/beagleboard.html

[42] TI, News Release, 2Q08, Texas Instruments OMAP35x™ processors inspire new inventive applications with unprecedented combination of high performance at handheld power levels, 23-06-2009: http://focus.ti.com/pr/docs/preldetail.tsp?sectionId=594&prelId=sc08026

[43] TI, M-Shield Mobile Security Technology: making wireless secure, Gilles Fayad, white paper, 2008, 24-08-2009: http://focus.ti.com/pdfs/wtbu/ti_mshield_whitepaper.pdf

[44] EVBBeagle, Distributor, 25-09-2009: http://www.ebv.com/index.php?L=0&no_cache=1&id=58&tx_ebvsearch_pi1%5Bqs%5D =1&tx_indexedsearch%5Bsword%5D=beagle&tx_indexedsearch%5Bresults%5D=5&tx_i ndexedsearch%5Blang%5D=0

[45] El Linux, ICETEK-OMAP3530-Mini Board, MiniPC, GNU FDL Free Doc License, 25-09-2009: http://elinux.org/Mini_Board#ICETEK-OMAP3530- Mini.E5.BC.80.E5.8F.91.E5.8C.85.28SDK.29

- 77 -

OMAP 3530 Beagle Board ______

[46] El Linux, DEVKit8000, GNU FDL Free Doc License, 25-09-2009: http://elinux.org/DevKit8000

[47] ISEE, IGEPv2 Platform, 2010, 25-09-2009: http://www.igep-platform.com/

[48] EETimes, CPU designers debate multi-core future, article, 26-09-2009: http://www.eetimes.com/showArticle.jhtml?articleID=206105179

[49] Amdahls Law, May 2008, 21-09-2009: http://amdahlslaw.blogspot.com/

[50] TI, Using the TMS320 DSP Algorithm Standard in a Dynamic DSP System – Rev. B, spra580b, Revision 30 Nov 2000, 19-04-2009: http://focus.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=spra580b

[51] TI, Codec Engine Server Integrator's User's Guide, Rev. B 30 Sep. 2007, 23-04-2009: http://focus.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=sprued5b

[52] TI, Codec Engine Algorithm Creator User's Guide, Rev. C 30 Sep. 2007, 22-04-2009: http://focus.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=sprued6c

[53] DSP for Dummies, Compliments of Texas Instruments, Steve Blonstein, Alan Campbell, 2008.

- 78 -

OMAP 3530 Beagle Board ______

10. ACRONIMS

ALU: Arithmetic Logic Unit

API: Application Programming Interface

ARM: Advanced RISC Machines

BIOS: Basic Input/output System

CCS: Code Composer Studio

C64x+DSP: C64x+ Digital Signal Processor

CPU: Central Process Unit

DTE: Data Terminal Equipment

DCE: Data Circuit Terminal Equipment

DSP: Digital Signal Processor

GL: Graphics Library

GPP: General Purpose Processor

GPU: Graphics Processing Unit

GUI: Graphical User Interface

HDMI: High-Definition Multimedia Interface

JTAG: Joint Test Action Group

MDDR: Mobile Dual Data Rate

MMC: Multimedia Card

OMAP3530: Open Multimedia Application Platform

OTG: On-The-Go

OS: Operating System

PC:

PDA: Personal Digital Assistant

RISC: Reduced Instruction Set Computer

- 79 -

OMAP 3530 Beagle Board ______

RF: Radiofrequency

SCART: Syndicat des Constructeurs d'Appareils Radiorécepteurs et Téléviseurs, Radio and Television Receiver Manufacturers

SD/MMC: Secure Digital (SD)/Multimedia Card (MMC)

SD: Secure Digital

SDRAM: Synchronous Dual Access Memory

SDIO: Secure Digital Input Output

SOC: System On chip

TMS: Name of a series of Digital Signal Processor

USB: Universal Serial Bus

VISA- Video, Image, Speech and Audio

VGA: Video Graphics Array

- 80 -