DOWNLOAD COURSE PRESENTATIONS 2 Scan to download course presentations
ZYNQ OS SUPPORT 3
AGENDA 4 > OS/Ecosystem Overview > Xilinx Petalinux/OSL > AMP Reference Design Information > Linux Partial Reconfiguration Demo
OPERATING SYSTEMS OS IS THE FOUNDATION FOR ALL EMBEDDED SOFTWARE 5 Applications Libraries & APIs Operating System Custom Processing System Programmable Logic Linux (incl variants) is #1 OS requested for Zynq
COMPREHENSIVE SOFTWARE ECOSYSTEM SUPPORT 6 Applications Libraries & APIs Operating System Processing System Custom Programmable Logic ARM Ecosystem enables comprehensive OS & Tools support
ECOSYSTEM SUPPORT WELL SUPPORTED BY POPULAR OSES AND TOOLS OS & Libraries Green Hills Integrity Open Source Linux ENEA OSE Wind River VxWorks PetaLinux ThreadX FreeRTOS Android Windows CE ETAS RTA-OS µtron/t-kernel Mentor Nucleus (TBD) Micrium µc/os Wind River Linux (TBD) ENEA Linux (TBD) Available Now Compilers CodeSourcery GNU compiler ARM compiler Diab compiler Microsoft Visual C++ IDE/Debuggers Mentor CodeBench ARM DS-5 WorkBench Lauterbach Trace32 ENEA Optima YDC microview Plus Visual Studio 2008 Mentor EDGE Express Logic BenchX Modeling/Virtual Platform QEMU PS Models (Oct, 2011) MATLAB/Simulink (2H2012) NI LabView (2H2012) 7
AGENDA 8 > OS/Ecosystem Overview > Xilinx Petalinux / OSL > Multi-OS > Linux Partial Reconfiguration Demo
PETALOGIX IS NOW XILINX Xilinx acquires PetaLogix, Brisbane, Australia > PetaLogix develops PetaLinux > PetaLinux is a commercial Linux distribution and development environment for the Zynq AP SOC as well as for all Xilinx FPGA families with MicroBlaze and PowerPC processors The acquisition brings to Xilinx an experienced Linux team > Headed by Dr. John Williams, founder and CEO of PetaLogix > All experts in Linux and development tools and Xilinx products Page 9
LINUX / PETALINUX ROADMAP 10 Xilinx is merging the formerly independent source trees for PetaLinux and Xilinx Open Source Linux into a single GIT PetaLinux will be derived from the OSL kernel > PetaLinux releases will be based on a branch of the OSL GIT and will support both Zynq and MicroBlaze > PetaLinux will continue to provide value-add in the form of ease of use, tools, file system, and customization. > Development branch Kernels on the OSL GIT will have varying degrees of support and testing for Zynq and MicroBlaze
LINUX KERNEL New Feature PetaLinux 12.12 PetaLinux 13.04 PetaLinux 13.10 Kernel Version 3.6 3.6 goal to improve power management which could lead to 3.7 kernel 3.11 (+/-) PetaLinux BSP ZC706, Improved Zed board support Non planned TBD Other Features RPMsg/RemoteProc TBD Select drivers for next generation silicon (NDA) Key Milestones: > December 2012: OSL GIT and PetaLinux GIT Synchronized MicroBlaze kernel version synchronized with Zynq kernel version Page 11
BRANDING & PRICING Branding > There is value associated with the PetaLogix brand that will help in transitioning into a Xilinx branded product Existing PetaLogix customers will feel minimum risk from the acquisition Potential customers will fell minimum risk because PetaLinux is now a Xilinx backed product PetaLinux Licenses Pricing: > On a per-developer basis, with no per-unit or per-project royalties or fees > Node locked, active for 12 months, and are tiered on support level Zynq Edition, 12 month license, Basic Support - $7K* Zynq Edition, 12 month license, Premium Support - $14K* Zynq Edition, 12 month license, AMP Support MicroBlaze / PPC edition, 12 month license, Basic Support - $6K MicroBlaze / PPC edition, 12 month license, Premium Support - $12K Page 12
ZYNQ-7000 AP SOC LINUX COMPONENTS COMPLETE SET OF OPEN SOURCE LINUX SOFTWARE COMPONENTS 13 Linux Source GIT Repository Industry Standard Eclipse IDE & GNU tool chain QEMU system model for software debug Developer Community Wiki and Forums
AGENDA 14 > OS/Ecosystem Overview > Xilinx Petalinux / OSL > Multi-OS > Linux Partial Reconfiguration Demo
OPTIONS FOR MULTI-OS SUPPORT Multi-OS Implementations can be implemented in several ways > AMP: Bare-Metal/Bare-Metal > AMP: Linux/Bare-Metal > Unsupervised AMP: (Linux + FreeRTOS) > Hypervisor (Type 1 - e.g. Wind River, GHS, SYSGO, Sierraware, General Dynamics Broadband) > ARM TrustZone-based Solutions (e.g. GlobalPlatforms) > Dual-kernel Linux (e.g. real-time Linux) Key selection factors: > OS support > Software stack Isolation/separation and certification requirements > Performance Among the alternatives that are considered, performance is presumed to be equivalent
BARE-METAL/BARE-METAL AMP Executable Code Executable Code CPU 0 CPU 1 ZYNQ Separate executables run on CPU 0 and CPU 1 > FSBL is used to load both applications and start CPU 0. > CPU 0 is responsible for starting CPU 1 Bare-metal applications run in pre-defined memory spaces > Within the design example of the XAPP, neither CPU 1 nor CPU 0 use MMU to protect against accessing the other CPU s memory space > However, the MMU can be configured with just a few lines of code to isolate CPU 0 from CPU 1 Implementation Approach > Communications between applications is available via OCM > OCM caching is disabled for improved determinism Use Case now supported by Xilinx WTS > Application Note and reference files available February, 2013
LINUX/BARE-METAL AMP Linux runs on CPU 0 > Linux then starts CPU 1 executable that was loaded into memory by FSBL Bare-metal application runs in dedicated memory space on CPU 1 > MMU 0 is used by Linux as normal; MMU 1 is used to define the memory context of bare-metal application, but no special coding is required > Bare-metal application does not run within the context of Linux memory > Linux doesn't know about the memory used by CPU 1 MMU can be used to contain application > MMU defines what addresses (memory and AXI devices) application may normally access > CPU 1 is not restricted from accessing Linux memory space or shared devices (ICD or SCU), but Linux can detect if/when that occurs and take appropriate action. Implementation Approach Use Case now supported by Xilinx WTS > Application Note and reference files available February, 2013
UNSUPERVISED AMP LINUX + FREERTOS Non Critical Apps Critical Tasks Linux FreeRTOS Kernel CPU 0 CPU 1 ZYNQ Firmware runs in dedicated memory space at address 0x0000_0000 > FreeRTOS Kernel does not run within the context of Linux memory > But, Linux can read and write this address space just like it can read any other device memory MMU limits how Firmware may affect Linux > MMU defines what addresses (memory and AXI devices) FreeRTOS may normally access > Granularity of 1 MB (if two devices lie in a 1 MB area then you can not isolate one without the other) > The GIC controller is shared between Firmware and Linux Interrupts are explicitly routed to Firmware or Linux from GIC Firmware is not prevented from reconfiguring GIC Linux kernel is not prevented from corrupting Firmware
HYPERVISORS Non Critical Apps Critical Tasks General Purpose OS Kernel RTOS Kernel Hypervisor CPU 0 CPU 1 ZYNQ Hypervisor = additional layer of software running at processor privileged level > Very small size (typically ~ 10k 100k LOC), Often certifiable > Imposes performance penalty of approximately 5% Creates partitions in which software stacks run > Hypervisor can access all system resources > Partitions can access only what is allowed by Hypervisor > Can run more than two partitions/operating systems Partitions > Memory, PCIe and AXI Devices, Interrupts, Processor cores Virtualizes > Shared devices (think proxy device)
SIERRAWARE TRUSTED EXECUTION ENVIRONMENT AND HYPERVISOR Sierraware / OpenVirtualization.org > http://www.sierraware.com/ > October, 2012 > ARM Global Platforms compliant, Trusted Execution Environment Open Source GlobalPlatform TEE Best use cases: A TEE used for execution of point-specific application stacks from the regular software stack Examples: crypto, DRM, key storage Running OS Xilinx Zynq Linux 3.0 Global Platforms TEE POSIX RTOS Other additional guest OS possible. Details TBD
SYSGO OS AND HYPERVISOR FOR SAFETY CRITICAL APPLICATIONS SYSGO > Available now! > Safe and secure OS and Hypervisor Best use cases: Basis for safety critical solutions» DO-178B, EN 50128, IEC 62304, IEC 61508, ISO 26262, IEC 61513, ARINC-653 RTOS + OS Automotive, A&D, ISM Underlying technology for OpenSynergy AutoSAR solution Expected Guest OS Xilinx Zynq Linux 3.0 Sysgo RTOS (PikeOS) POSIX PSE52 RTOS Many additional guest OS possible. Previously supported examples include: Bare-metal, In-house RTOS, uitron, AutoSAR, OSEK, RT Java Android, Win EC7
GENERAL DYNAMICS BROADBAND(OK-LABS) RTOS AND HYPERVISOR FOR EMBEDDED SECURITY CRITICAL APPLICATIONS General Dynamics Broadband (OK-Labs) > Demonstrable Q1, 2013 > Embedded Real-Time Hypervisor Best use cases: Automotive, A&D, ISM Expected Running OS Linux + RTOS Many additional guest OS possible. Previously supported examples include: Android, Symbian, GENIVI, QNX ecos, ThreadX, Nucleus, esol T-Engine, Electrobit, Vector Q1, 2013
WIND RIVER HYPERVISOR V2.0 SUPPORTING SAFETY PROFILES Wind River > Demonstrable Q1, 2013 > Safe and secure OS and Hypervisor Wind River hypervisor uses ARM TrustZone Consolidation and re-use of applications combined with safety certification Best Use Cases Virtual Board (Certified) DO-178/IEC61508 Certified Application(s) VxWorks Cert Guest OS Unmanned Systems Integrated Modular Avionics (aircraft platforms) Industrial Control, Railway and Nuclear applications: IEC61508/EN50128 Safety Profile for IEC 61508 SIL3 and DO-178B/C Level A VxWorks Cert Guest OS (GOS) to support safety requirements Wind River Linux GOS Wind River Hypervisor (Safety Profile) Board Support Package Multi-Core ARM Target Hardware Virtual Board (Uncertified) Uncertified Application(s) Wind River Linux Guest OS (or VxWorks GOS) Q1, 2013
GREEN HILLS SOFTWARE Green Hills Software > Integrity is ported to Zynq > Integrity forms baseline for their separation kernel > No active discussions around hypervisor TBD
TRUSTZONE-BASED SOLUTION Trusted Apps Normal Tasks Secure world Trusted Software General Purpose OS Non-secure world CPU 0 CPU 1 ZYNQ TZ supports a secure world and non secure world > Secure and Non Secure run Trusted and Non-Trusted software respectively > Non-secure world software can access only non-secure resources > Secure world software can access all system resources > The Secure World is secured only from the TrustZone Unsecure World (i.e. local) > The Secure World is subject to external attacks Trusted software often comprises of limited software functionality: DRM, encryption, password entry, etc. > Secure World API: Global Platform (http://www.globalplatform.org) DRM, crypto, NetFlix, etc. > If Secure World software can not be safety certified then the whole system may not be certifiable Zynq TrustZone Protection can be applied to > Memory locations, Cache, AXI Devices, Interrupts
AGENDA 26 > OS/Ecosystem Overview > Xilinx OSL > AMP Reference Design Information > Linux Partial Reconfiguration Demo
AGENDA 27 > Thank you!