ARM Powered SoCs OpenEmbedded: a framework for toolcha. generation and rootfs management

Similar documents
Embest SOC8200 Single Board Computer

ECE 471 Embedded Systems Lecture 3

MYD-C437X-PRU Development Board

DevKit8500D Evaluation Kit

SBC8140 Single Board Computer

MYC-C437X CPU Module

The Information contained herein is subject to change without notice. Revisions may be issued regarding changes and/or additions.

DevKit7000 Evaluation Kit

MYD-IMX28X Development Board

ECE 598 Advanced Operating Systems Lecture 4

w w w. b a s e t r a i n i n g i n s t i t u t e. c o

Introduction to Sitara AM437x Processors

User s Manual for the Boundary Devices Nitrogen R board

MYD-IMX28X Development Board

Contents. 1 Introduction Features Product Specifications Hardware Specification Software Specification...

MYD-JA5D2X Development Board

MYD-Y6ULX Development Board

ECE 471 Embedded Systems Lecture 2

ECE 471 Embedded Systems Lecture 2

Copyright 2016 Xilinx

The Information contained herein is subject to change without notice. Revisions may be issued regarding changes and/or additions.

OK335xS Users Manual Part I - Introduction

AT-501 Cortex-A5 System On Module Product Brief

TOUGH. FAST. WHITE. introducing WHITEspeed. The groundbreaking Computer On Module. Designed & assembled by ERNI in Germany.

DevKit8000 Evaluation Kit

NetBSD Work-in-Progress

MYD-C7Z010/20 Development Board

EMAC SoM Presentation.

EMAC SoM Presentation

Introduction to the Itron Riva Dev Kits

Lab 1. OMAP5912 Starter Kit (OSK5912)

The Information contained herein is subject to change without notice. Revisions may be issued regarding changes and/or additions.

A Low-Cost Embedded SDR Solution for Prototyping and Experimentation

The Information contained herein is subject to change without notice. Revisions may be issued regarding changes and/or additions.

Linux. For BCT RE2G2. User Guide. Document Reference: BCTRE2G2 Linux User Guide. Document Issue: Associated SDK release: 1.

OK335x Products Guide. Contents

MYC-C7Z010/20 CPU Module

Booting Linux Fast & Fancy. Embedded Linux Conference Europe Cambridge, Robert Schwebel

Video Interface Module for TI EVM TMDXEVM8148 and TMDXEVM368

Introduction to the TenByTen6410

SABRE for Automotive Infotainment Quick Start Guide. Smart Application Blueprint for Rapid Engineering Based on the i.mx 6 Series

pcduino V3B XC4350 User Manual

MYD-SAMA5D3X Development Board

XMC-ZU1. XMC Module Xilinx Zynq UltraScale+ MPSoC. Overview. Key Features. Typical Applications

CORRIGENDUM ISSUED FOR NATIONAL COMPETITIVE BIDDING UNDER TEQIP PHASE-II

Hands-on with the Sitara Linux SDK

RK3036 Kylin Board Hardware Manual V0.1

Embedded Systems: Architecture

i.mx5x Modular Design Platform: Product Prototyping Accelerator

IOT-GATE-iMX7 Datasheet

Gumstix Pi Compute USB-Ethernet

Getting Started with BeagleBoard xm

Toradex Colibri Development Board

IPL+UBI: Flexible and Reliable with Linux as the Bootloader

«Real Time Embedded systems» Cyclone V SOC - FPGA

EE 354 Fall 2015 Lecture 1 Architecture and Introduction

LinkSprite Technologies,.Inc. pcduino V2

D1 - Embedded Linux. Building and installing an embedded and real-time Linux platform. Objectives. Course environment.

Yocto Project and OpenEmbedded training 3-day session

CoreTile Express for Cortex-A5

EyeCheck Smart Cameras

. Micro SD Card Socket. SMARC 2.0 Compliant

A tour of the ARM architecture and its Linux support

SABRE Board for Smart Devices

TechNexion PICO SOM Expansion Board

SoC Platforms and CPU Cores

Creator Ci40 product brief

i.mx 6UltraLite Evaluation Kit Quick Start Guide s datasheet has been downloaded from at this pag

Beaglebone green User Manual

ARM+DSP - a winning combination on Qseven

Matrix. Get Started Guide

A Low Power Touch Screen Document Viewer

A Low-Cost Embedded SDR Solution for Prototyping and Experimentation

GLOMATION. Embedded Single Board Computer GESBC-9G10 User s Manual

IB112. Freescale I.MX536 ARM Cortex -A8 Embedded BOARD. USER S MANUAL Version 1.0

Jade IdeaBoxx. Product Manual

FriendlyARM. Mini2440.

SOM PRODUCTS BRIEF. S y s t e m o n M o d u l e. Engicam. SOMProducts ver

Track Three Building a Rich UI Based Dual Display Video Player with the Freescale i.mx53 using LinuxLink

Quick Start Guide. TWR-VF65GS10 For Vybrid Controller Solutions Based on ARM Cortex -A5 and Cortex-M4 Processors with the DS-5 Toolchain TOWER SYSTEM

Intel Galileo gen 2 Board

S2C K7 Prodigy Logic Module Series

Your Strategic Partner for Renesas RZ/G1x Products & Solutions

Get Started SUPPORT WARRANTY. Visit the i.mx community at

FA3 - i.mx51 Implementation + LTIB

The Information contained herein is subject to change without notice. Revisions may be issued regarding changes and/or additions.

XMC-RFSOC-A. XMC Module Xilinx Zynq UltraScale+ RFSOC. Overview. Key Features. Typical Applications. Advanced Information Subject To Change

Pengwyn Documentation

Micetek International Inc. Professional Supplier for PowerPC Development Tools

Quick start with ecos 3.0 on Sitara AM335x processors

Micetek International Inc. Professional Supplier for PowerPC Development Tools

SABRE Platform for Auto Infotainment

Ten (or so) Small Computers

IoT Project Proposals

Baltos ir Contact Online. More Pictures. Click on the thumbnails for the large picture

Matrix. Get Started Guide V2.0

iw-rainbow-g3 / G3V FAQs:

Oxalis Getting Started

参考資料. LinkSprite.com. pcduino V2

About EmbeddedCraft. Embedded System Information Portal, regularly publishes. Follow us on

Transcription:

ARM Powered SoCs OpenEmbedded: a framework for toolchain generation and rootfs management jacopo @ Admstaff Reloaded 12-2010

An overview on commercial ARM-Powered SOCs Many low-cost ARM powered devices exists on the market nowadays. They are usually designed around a System On Chip platform equipped with a Cortex-A ARMv7 main core such as Texas Instruments OMAP3: N900, Beagleboard, AI Touchbook, most of Apple s i$something devices. Marvell ARMada (was Kirkwood ): Sheevaplug... Qualcomm Snapdragon Google Nexus One, Acer Liquid, HP Smartbook... Freescale i.mx51 Efika, Sharp Netwalker...

Cortex-A8: More Specifications All the previous platforms are built around the Cortex-A8 version of ARMv7 specifications. The Cortex processor series provides the following features: CPU Speed ranging from 600Mhz to more than 1Ghz. L1 and L2 cache (cache size is version dependent). NEON SIMD extension: Arithmetic instruction vectorization extension: parallel operates on multiple data arrays. Support for 64-128 bit instructions, for media codec and signal processing. Support in GCC is not fully available, CodeSourvery G++ GCC based toolchain is more suited for NEON intensive applications.

Cortex-A8: More Specifications VFP (Vector Floating Point): Coprocessor extension for 16-32 bit instructions, handling floating and fixed point arithmetic, also on vectorized data but with no, or reduced, parallelism compared to NEON. Some other extensions such as xn memory protection ad TrustZone instructions subset.

OMAP3530: More Specifications OMAP3530 is last one of the long OMAP3 TI processors line (dual core OMAP4 has been released some months ago). OMAP3 is Texas Instruments proprietary version, and since is an hybrid processor featuring a Cortex-A8 GPP 1, includes a dedicated DSP for hardware signal and data processing. DSP is 430Mhz C64x+ produced by TI. Other processor series, fully dedicated to image processing (DaVinci series) features a 1Ghz DSP, some other provides more than one DSP. 1 General Purpose Processor

DSPBridge and DSP software support Software support for DSP exploitation is provided by a cross-processor kernel modules, that gives access to DSP, called DSPBridge(now in staging also on Linus tree since June 2010). Kernel module is used to dispatch instructions from Linux to DSP where a dedicated BIOS (not the one we are used too) runs and process incoming data in parallel to GPP processing.

DSPBridge and DSP software support A dedicated toolchain for compiling codecs provided by TI is needed to develop DSP-specific software while the Linux counterpart is mainly FLOSS. Some userspace utilities are used to communicate with BIOS-DSP via DSPBrisge. The gst-dsp project aims to include native Gstreamer support for DSP infrastructure, in order to build cross-processors pipelines in a transparent way.

DSPBridge and DSP software support

OMAP3 based platforms Commercial platforms available at a reasonable price found on the market are (random order): BeagleBoard (www.beagleboard.org) HawkBoard (www.hawkboard.org) Overo GumStix OMAP35 EVM More on http://processors.wiki.ti.com/index.php/omap3 Boards

BeagleBoard: Versions Beagleboard was a TI sponsored project, thought to provide an hobbyist low-cost platform. After many years the project is self financed, and many beagleboard versions have been released. Actually, two different releases are co-existing. The last incarnation of the classic beagle (BB-MB-C4) and the new kid on the blocks, the BB-xM version. Price is 100$ for C4 version and $125 for xm version.

C4 version The classic C4 version is equipped with TI OMAP3530 running at 600Mhz, 128Mb RAM, 256Mb NAND Flash Memory. Expansions connectors installed on the board are: DVI-D JTAG S-Video Stereo In/Out RS-232 Power Jack MMC Card Slot 1 USB EHCI Host Port 1 USB OTG Port

xm Version The new xm version (current release is A3) add a new Cortex-A8 OMAP implementation, clocked at 1.25Ghz, 512MB RAM, and substitutes the NAND memory with a 4Gb micro-sd card. New expansions connectors have been added: 10/100 Ethernet Port 1 USB EHCI Host HUB with 4 USB connectors Micro-SD slot Header for camera input.

Expansions Connector Both C4 and xm share an Expansion Slot and 2 LCD expansions slots, where additional connectors could be routed and physically installed. Default behavior is General Purpose Input Output (GPIO), but many other connectors are available, such as I2C, PWM, SPI, additional USARTs and USBs. That is possible thanks to the multiplexing capabilities provided by OMAP3 chipset.

OMAP Multiplexing Multiplexing and OMAP connectors means that same pin could perform (a maximum of) 4 different functions. OMAP datasheet specify what are those functions, and how to set them. It s possible choosing which role a pin must assume modifying bootloader or kernel startup routines. Preferred way is done by patching u-boot, since kernel is rapidly changing and kernel patching is not guarantee to work (the problem it s related to which bootloader-kernel combination is installed) 2 2 Code Example here: /home/jacopo/volta/kernel/patches/applied/uboot MUX UART1 UART2/git/board/omap3/beagle

Software support Yeah, beagleboard is a great pice of hardware, but without software, it would be just bare metal... The first thing one must consider when approaching a new platform, is how to transfer code you write or you compile on the platform itself, and the first thing you want to transfer on the board is usually a bootloader, in order to bootstrap a fully-featured kernel. Before doing so, for OMAP platforms additional software is required...

x-loader, the meta-bootloader X-Loader is a GPLv2 project by TI, and is a bootloader that boots a bootloader... Before launching the multi-platform fully featured u-boot, it s necessary to init some hardware related features, such as clocks, and processors registers. I cannot say much more, since x-loader is written mostly in ARM assembly, maybe because is the software component closer to the bare hardware.

u-boot: a fully featured bootloader X-Loader (aka MLO) launches the real bootloader: u-boot. U-boot is a great project that realizes a small-fast-portable bootloader for various embedded platform. It offers a fallback shell, that could be used for accessing the underlying memory, and transfer linux kernel images, new u-boot versions, and even new x-loader versions onto it. As every bootloader does, u-boot launches the kernel, that is...

Linux (finally) As we all know Linux runs on a incredible number of platforms, and of course OMAP is one of the supported ones... Many other operating systems support OMAP devices, but I could only talk about Linux, since I have no other experience.

Linux-omap Two main branches of Linux kernel development tree are designed specifically for OMAP platforms. As name suggests the linux-omap kernel tree integrate support for main OMAP features such as Multiplexing, Dual Timing, Thumb support, NEON support, Musb.

Linux-omap-pm The other dedicated branch is linux-omap-pm that introduces advanced power management features such as full sleep while board is suspended and improves power retention for OMAP devices while halted or suspended. The pm framework is an OMAP specific development branch, and some of its features have been included in main-line OMAP branch.

Linux: building Configuring and compiling Linux kernel for ARM platforms is done in same way is usually done for other hardware platforms. As for every cross-compilation environment it s mandatory to manually specify the cross-compilation-tools prefix and the architecture for which you are compiling. The string for kernel compilation and configuration becomes something like: make ARCH=arm CROSS COMPILE=arm-angstrom-linux-gnueabi- -j3 INSTALL MOD PATH= pwd

Linux: issues Some kernel features are not yet fully mature, and during different releases some regressions have been introduced and then fixed. In my brief experience the weakest points for OMAP and beagleboard platforms are: USB OTG support (musb hdrc): Support for dual role usb. NAND MTD support: In-device solid state memory, accessed through the jffs2 filesystem.