1 Introduction to ARM A15 Linux DSP Platform Software Apps Team 04/19/2013 1TI Confidential - NDA Restrictions.

Slides:



Advertisements
Similar presentations
KeyStone ARM Cortex A-15 CorePac Overview
Advertisements

Multicore Applications
TI Information – Selective Disclosure Boot TI Keystone II Linux Kernel (UBI File-system) Vincent Han Mar,
U-Boot and Linux Kernel Debug using CCSv5
Lab 4 Department of Computer Science and Information Engineering National Taiwan University Lab4 - Bootloader 2014/10/14/ 13 1.
Embedded Systems Programming
OS Fall ’ 02 Introduction Operating Systems Fall 2002.
© 2004, D. J. Foreman 1 Computer Organization. © 2004, D. J. Foreman 2 Basic Architecture Review  Von Neumann ■ Distinct single-ALU & single-Control.
Introduction to Kernel
Introduction to ARM Architecture, Programmer’s Model and Assembler Embedded Systems Programming.
OS Spring’03 Introduction Operating Systems Spring 2003.
Computer System Overview
Figure 1.1 Interaction between applications and the operating system.
OS Spring’04 Introduction Operating Systems Spring 2004.
Embedded Systems Programming
WANs and Routers Routers. Router Description Specialized computer Like a general purpose PC, a router has:  CPU  Memory  System Bus Connecting Internal.
Prardiva Mangilipally
ARM Processor Architecture
COMPUTER SYSTEM LABORATORY Lab4 - Bootloader. Lab 4 Experimental Goal Learn how to build U-Boot bootloader for PXA /10/8/ 142.
Tanenbaum 8.3 See references
U-Boot Debug using CCSv5 In this session we will cover fundamentals necessary to use CCSv5 and a JTAG to debug a TI SDK-based U-Boot on an EVM platform.
Beagleboard and Friends Nathan Gough. Hardware – OMAP3  Based around Texas Instruments OMAP3530 “Applications Processor”  OMAP3 Platform:  Arm Cortex-A8.
Multicore Software Development Kit (MCSDK) Training Introduction to the MCSDK.
Computer Organization
AT91SAM9261-EK WinCE 6.0 DEMO ATMEL AT91 Application & Support Group
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
LPC2148 Programming Using BLUEBOARD
AT91SAM9261-EK WinCE 5.0 DEMO ATMEL AT91 Application & Support Group Version 1.O February 2007.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto OS-Related Hardware.
1 What is a Kernel The kernel of any operating system is the core of all the system’s software. The only thing more fundamental than the kernel is the.
Challenges in KeyStone Workshop Getting Ready for Hawking, Moonshot and Edison.
© 2004, D. J. Foreman 1 Computer Organization. © 2004, D. J. Foreman 2 Basic Architecture Review  Von Neumann ■ Distinct single-ALU & single-Control.
Boot Sequence, Internal Component & Cisco 3 Layer Model 1.
© 2004, D. J. Foreman 1 Computer Organization. © 2004, D. J. Foreman 2 Basic Architecture Review  Von Neumann ■ Distinct single-ALU & single-Control.
SAM9260-EK WinCE DEMO AT91 SAM9 Product Group. Version 1.0 October 2006.
Lecture 6. VFP & NEON in ARM
TI Information – Selective Disclosure Boot TI Keystone II Linux Kernel (RAM File-system) Vincent Han Mar,
Building Your Own Android Systems from Source Adam C. Champion CSE 5236: Mobile App Development 1.
Intro to Linux-c6x SDK. 1.Linux-c6x Introduction 2.SDK Features 3.Supported Devices 4.Boot Loader 5.Toolchains Agenda.
1 Lecture 1: Computer System Structures We go over the aspects of computer architecture relevant to OS design  overview  input and output (I/O) organization.
Implementation of Embedded OS Lab3 Porting μC/OS-II.
ARM 7 & ARM 9 MICROCONTROLLERS AT91 1 AT91RM9200 Software delivery.
Linux Boot Process on the Raspberry Pi 2 1 David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St. Louis,
졸업 프로젝트 발표 1/74 Trinity Snapshot Boot 날 짜: 팀 명: Trinity
Running Commodity Operating Systems on Scalable Multiprocessors Edouard Bugnion, Scott Devine and Mendel Rosenblum Presentation by Mark Smith.
Embedded Software Design Week II Linux Intro Linux Kernel.
CIT 140: Introduction to ITSlide #1 CSC 140: Introduction to IT Operating Systems.
Chap. 4 ARM Boot Loader Internals. 2 S3C2500 ARM940T Core module ARM9TDMI CoreIC.
Introduction to Operating Systems Concepts
Computer System Laboratory
Virtualization.
Outline Installing Gem5 SPEC2006 for Gem5 Configuring Gem5.
Implementation of Embedded OS
Introduction to Kernel
Introduction to Operating Systems
ARM Embedded Systems
Computer System Laboratory
Chapter 3: Operating Systems
IzoT™ Device Stacks March 2014.
Building Android OS Topics: Building Android and Kernel
OS Virtualization.
Introduction to Operating Systems
Booting Up 15-Nov-18 boot.ppt.
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
Lecture9: Embedded Network Operating System: cisco IOS
Computer System Laboratory
Computer System Laboratory
Chapter 1: Introduction CSS503 Systems Programming
Building Your Own Android Systems from Source
Lecture9: Embedded Network Operating System: cisco IOS
Presentation transcript:

1 Introduction to ARM A15 Linux DSP Platform Software Apps Team 04/19/2013 1TI Confidential - NDA Restrictions

2 Outline 1.ARM Cortex-A15 Overview 2.ARM A15 Linux Overview  U-boot  Two Stage Bootloading  Boot Monitor  SMP Boot Sequence  LPAE  Linux Drivers 2 TI Confidential - NDA Restrictions

3 ARM A15 Overview  ARMv7-A Cortex - the latest member of the Cortex-A series of processors  1-4x SMP within a single processor cluster and low power consumption  Thumb-2 Technology  TrustZone Security  Floating Point  NEON  Hardware Virtualization  Large Physical Address Extension (LPAE) 3 TI Confidential - NDA Restrictions

4 Thumb-2 Technology  Thumb Mode  16-bit Thumb instructions vs 32-bit ARM instructions  Thumb-2 extends with additional 32-bit instructions  Code density similar to Thumb  up to a 30% reduction in memory to store instructions  Performance similar to the ARM instruction set on 32-bit memory

5 TrustZone Security  2 virtual processors backed by hardware based access control  Enable application core to switch between 2 states (worlds)  Each world can operate independently while using the same core.  Memory and peripherals are made aware of the operating world and provide access control  Secure Monitor is code that runs in secure Monitor mode and processes switches to and from the secure world

6 Floating Point  Vector Floating Point (VFP) is an FPU coprocessor extension to the ARM architecture  Hardware support for FP operations in half-, single- and double-precision floating point arithmetic.

7 NEON Linux version: 3.6.0, GCC version: Linaro  Advanced SIMD extension, or Media Processing Engine (MPE)  A combined 64- and 128-bit SIMD instruction set  Provides acceleration for media and signal application  NEON hardware shares the same floating-point registers as used in VFP.

8 Hardware Virtualization  Hardware support for multiple software environments available on the same physical processor  Software applications can access the system capabilities simultaneously  Virtual envrionments are isolated from each other

9 LPAE  64-bit “long-descriptor” format for page tables  Supports 40-bit physical address – up to 1TB of memory

10 ARM A15 Linux Overview  U-boot  Two Stage Bootloading  Boot Monitor  SMP Boot Sequence  LPAE  Linux Drivers

11 U-Boot  Based on the Universal Boot Loader public project  Program that moves executable from non-volatile memory to memory and then transfers CPU control to the newly “loaded” executable  Minimal drivers  SPI  I2C  UART  NAND  ETH  USB

12 Two Stage Bootloading  ROM Boot Loader(RBL) loads Secondary Program Loader (SPL) from SPI NOR flash  SPL loads and run the second stage boot loader, a full version of U-Boot) from NOR or NAND  Keystone II – SPI boot mode  The first 64K of the SPI NOR flash is flashed with SPL  Followed by U-Boot image

13 Boot Monitor  ARM Cortex A15 requires certain functions to be executed in the PL1 privilege level  Provides secure privilege level execution service for Linux Kernel code through SMC calls

14 Boot Monitor – High level architecture

Boot Sequence – Primary Core TI Confidential - NDA Restrictions 15  RBL is run on Power On reset  After completion, load and run u-boot in non-secure mode  Boot Monitor gets installed  As part of non-secure entry, boot monitor calls the RBL API through SMC call (SMC #0) passing _init() entry point address.  RBL enters monitor mode, _init() inits the monitor vector and calls init() to init Core/CPU specific inits, set the primary/secondary flag, the Set the secondary core non-secure entry point address  Back to non-secure mode and booting of linux kernel  At linux start up, primary core make SMC call to power on each of the secondary cores  Primary core waits for secondary cores to boot up and then proceeds to rest of booting sequence

16 Boot Sequence – Secondary Core  On Power On reset, RBL initializes and enters the secondary entry point address of the Boot Monitor core through SMC call (SMC #0)  RBL enters monitor mode, _init() inits the monitor vector and calls init() to init Core/CPU specific inits.  On return from _init(), it jumps to secondary kernel entry point address and start booting 2 nd instance of Linux kernel

17 LPAE  DDR3A memory address space 0x – 0x09 FFFF FFFF  Cortex-A15 LPAE with 40-bit address bus may access if MMU is on  ARM has only 32-bit effective address bus if MMU is off  To access DDR3A when MMU is off  MSMC maps first 2GB to 0x – 0x00 FFFF FFFF  The aliased address space can be used when MMU is on or off  Keystone II does not support cache coherency for the aliased address space  Default memory property of TCI6638 is 0x size 0x  When U-boot boots the kernel, it can modify the default start address.  If mem_lpae=0, U-boot does not modify  If mem_lpae=1, U-boot sets the start address to 0x

18 Linux Drivers  GIC IRQ chip driver  Keystone IPC IRQ chip driver  SMP  AEMIF driver  NAND driver  SPI and SPI NOR flash drivers  I2C and EEPROM drivers  Keystone GPIO driver  Keystone IPC GPIO driver  Network driver (NetCP), PktDMA, Packet Accelerator  SGMII driver  QoS driver  USB driver  10Gig Ethernet driver (not validated due to test hardware)  PCIe driver

19 Getting Started with MCSDK

20 Prerequisite  K2EVM-HK (Follow Hardware setup guide to make sure you have the latest BMC updates)  User guide: (getting started guide & exploring as well)  Download MCSDK:  Ubuntu Linux LTS machine, set up Proxy (consult IT)

21 Install CCS & MCSDK  1. Install CCSv5.3.0 at. For processor architecture, make sure "C6x DSP + ARM processors" is selected.  2. Install TI KeyStone2 Emupack, ti_emupack_keystone2_setup_ If installed on Linux, replace \ with / in this file /opt/ti/ccsv5/ccs_base/common/targetdb/devices/TCI6638.xml  3. Install MCSDK , same directory as CCS, e.g.: /opt/ti  4. copy the file tci6638-evm.ccxml from mcsdk_linux_3_00_00_09/host-tools/loadlin folder to ~/ /ti/CCSTargetConfiguration folder where the CCS saves the user specific configuration file.

22 Build Prerequisite  Toolchain installation: Download the gcc-linaro-arm-linux-gnueabi _linux.tar.bz2 from cd ~/ tar xjf gcc-linaro-arm-linux-gnueabi _linux.tar.bz2 export CROSS_COMPILE=arm-linux-gnueabi- export ARCH=arm PATH=$HOME/gcc-linaro-arm-linux-gnueabi _linux/bin:$PATH  Configure git and install packages needed at build time: sudo apt-get install git-core sudo apt-get install build-essential subversion ccache sed wget cvs coreutils unzip texinfo docbook-utils gawk help2man diffstat file g++ texi2html bison flex htmldoc chrpath libxext-dev xserver-xorg-dev doxygen bitbake uboot-mkimage libncurses5-dev

23 Getting started with MCSDK  Either use prebuilt images or build Uboot, boot monitor, kernel & file system on your own.  File systems supported: ramfs, Net mounted file system, UBIFS. Configure environment variable as per user’s guide.  Getting Kernel & file system to boot  Run applications